|
Kyma Forum
![]() Kyma Sound Exchange
![]() 11 Band EQ
|
| next newest topic | next oldest topic |
| Author | Topic: 11 Band EQ | |
|
David McClain Member |
This EQ is absolutely phase flat, like all good FIR filters. The FFT's are 1024 long. Hence at 48 KHz or 44.1 KHz sample rates, this is not quite long enough to capture the lowest frequencies, so you find that the bottom two bands at 20 Hz and 40 Hz don't respond very well to the attenuators. But all the rest of the bands work just fine, starting at around 80 Hz, then 160 Hz, 320 Hz, 640 Hz, 1280 Hz, 2560 Hz, 5120 Hz, 10240 Hz, and 16 KHz+. These are approximate band centers. The included program generates them at logarithmic intervals of 0.3 starting at 20 Hz. The VCS has been preset to work the faders in 0.1 dB increments down to -40 dB. You can use whatever values you like here. - DM IP: Logged | |
|
John Dunn Member |
Very nice. I'll give it a try this weekend with the RIAA settings. Again, thanks! IP: Logged | |
|
David McClain Member |
Windowing these filters presents a bit of a challenge because the actual filter shape used depends on the interpolated filter banks based on the length of the FFT's in use. Change the length of the FFT and you would have to recompute windowed filterbanks. But Kyma allows us to compute a broad shape only once and then have it read out at whatever rate we desire, along with linear interpolation. This means that we can compute the unwindowed filter bank shapes, and have Kyma present them at the correct size. If we could window these now correctly sized filter banks then we're in business! This version uses a "cheap trick" to allow you to compute the filter banks only once and still have them windowed correctly, no matter what size FFT you want to use. The trick comes from noting that windowing the filters is equivalent to convolving their shapes with the Fourier Transform of the windowing function. But a convolution is simply a weighted sum of shifted series. In this case we are using a Hanning window, whose transform is a 3-prong series of delta functions with weights (0.25, 0.5, 0.25). Convolving this against the filter banks is achieved by adding shifted versions of the filter banks with shifts of (0, 1, 2) samples corresponding to these weights. However, this shifing displaces the center frequency of the filter bank by one sample, so we need to shift the convolution result by -1 sample to get everything aligned properly in frequency space with the FFT's of the incoming signal. In modulo arithmetic parlance, a shift of -1 sample is equivalent to a shift by N-1 samples where N is the filter-bank length (in this case N=512 samples). So just after the filter bank convolution sum we shift the result by 511 samples. The windowed filter-bank is now ready to impose its spectral shape on the incoming signal spectrum. Other windowing functions could be used at the expense of a bit more complexity, but the basic idea remains the same. Why not just window the incoming signal data? Well, if you did that, then the resulting output from this filter bank would have the window's shape imposed periodically on the signal causing a low hum AM modulation distortion. No, we really do need to window the filter bank, not the signal, when doing block FFT spectral modification like this. - DM [This message has been edited by David McClain (edited 21 April 2001).] IP: Logged |
All times are CT (US) | next newest topic | next oldest topic |
![]() |
|
This forum is provided solely for the support and edification of the customers of Symbolic Sound Corporation.