DonNews #11
21 апреля 2000 |
|
coding - The algorithm of spectral analysis of sound in real time.
2000 TheRom / OHG Hi coders, people and Snake ^ y. Algorithm for spectral analysis of sound real-time. We will do the audio spectrum analyzer (such a shifty strips to the music. centers who jump to the music and illiterate people call their EQ). The algorithm is simple. From the viewpoint does not understand Codes Mathematics: 1. Rear of the function y = f (x), interval delta x too ask. 2. calculate the arithmetic mean of set of differentials delta y / delta x. Obtain the result Y ^ - is the coordinate Y, on it we construct a point in our spectral plot (x = 0 we take, but in other times will allow him to rise). 3. produce antiinterpolyatsiyu function y = f (x) (I do not know what it's called. Well, in generally smooths her). The result is new function f (x). 4. repeat many times with all of paragraph 2, but each time increasing the interval x between the differentials. From the standpoint of unknowing math encoder: 1. drives a piece of sound from the ADC or at least end of the file into a buffer (512 bytes) with a given frequency (eg delayed 5). 2.1 HL set the first byte of the buffer into register x lyapaem 0, take a number # 80. Subtract 2.2 (HL). 2.3 If the carry flag = 1 then NEG ^ amu result, otherwise proceed to section 2.4 2.4 calculate the arithmetic mean result and register X, the result throws in the register's. Add to the HL unit. 2.5 repeat 2.2-2.4 until the end buffer. 3. result of draw for the first strip. 4.1 HL set again on the clipboard, and DE too. 4.2 Take the number of (HL). 4.3 add to the HL unit. 4.4 calculate the arithmetic mean number and (HL). 4.5 zashvyrivaem result in (DE) and add to (DE) yedinichku. 4.6 add to the HL unit back to DE too. Povtaryaem 4.7 4.2-4.6 has not yet completed buffer. Please note that the new buffer will be at the same address, but its length 2 times smaller than the previous one. It should be considered in Section 2 and 4 5. repeat 2.1-4.7 for the remaining seven strips. 6. cleared or toggle the screen and make all over again p.1. From the standpoint of me (cool to say). We have polosopropuskayuschy filter, the upper frequency is theoretically determined by the number of times the smoothed considered a piece of sound before this analysis. The lower frequency is determined by ratio of the difference in the differentiation of addresses to the amount of time a piece of smooth before this analysis (item 2 in the description for coders). Thus, if a piece of smooth after each analysis, then the band filter is shifted down and we are building a strip for each frequency chunk in the buffer. For advanced coders (hello Disableru): Due to the fact that at the time when the stone zamudrennye formula calculates many many times from the buffer, a piece of sound passes strips jerk pretty ugly, use a trick. Remember the current value in the array height of the strip for each frequency and then before drawing the strip if the resulting the height of stored for more this strip, then take memorized, add 1, throw in an array of results and it also draw the strip. If less, then subtract and so on for all bands. The effect of super-duper. P.S. I am a complete zero in mathematics, so that What can and made a mess in the mathematical description, but the program works beautifully. Who's supposed to, I cite the example in zazipovanny xas ^ format as well. P. P. S. Spekrtuma people - unite The people of the radar-call tel. 71-33-08. ... Continuing the theme of Algorithm shifts the spectrum of sound in real- time (changes in tone, male voice the female, by contrast, etc.). Hello to all who have the ADC, and all who it's interesting. In order to move the sound spectrum need to play it with more or less sampling rate than it was recorded. However, with this change and the rate of sound (speed of rhythm of speech, etc.), and as well, and playing time, but in the real time such a method generally not possible. To realize this effect, I came up with this algorithm (although he probably was coined to me): Sound is played with more or less sampling but not all, but a small piece of it (512 ... 1024 bytes). If the piece is played faster, then after he played playback Yeshe some time again and again until the time comes the next piece. If slower, he would not finish the game before end. This izvrashenie by ear almost not noticeable. The algorithm consists of two programs running simultaneously and independently by Drigo other. This is a program to digitize buffer constant sampling and playback software with a variable frequency playback. Sampling program figure the sound buffer, and to achieve the end of the buffer moves to its beginning and so on to infinity. Program play loses out the same buffer also cyclical, but on the other speed. Technical description of the program. The program only works with ADC and DAC (S.drive, covox) and does not affect the screen; occupies 118 bytes in low memory and 768 bytes for the buffer at the top, the sampling frequency is unknown to me, in the source ADC Port # F7, D / ports # 0F, # 1F, # 4F, # 5F (s. drive). Press the "6", "7" is carried out shift of the spectrum smoothly, "8", "9"-roughly, "0" output. Interesting feature. 1. If the shift range of songs Kirkorov, then get spilled Pugacheva. 2. Turn on a song where a piano. Pick up the tone by ear almost like the original. Align the audio from your computer and magnitafona so that in a place where you sit could hear both equally loud. Not yet man has managed to not fall off laughter after that. P.S. Hi Disabler ^ y, his wife, Snake ^ y and the rest of the OHG and DHG, as well as RADARavtsem from TheRom ^ but (he is Roman 71)! P.P.S. Good people sell the modem. tel. 71 33 08.
Other articles:
Similar articles:
В этот день... 21 November