On Sunday 29 January 2006 01:04, Robson Cozendey wrote: > Does anyone knows where I can find tutorials on parametric equalizers? I'd > like to understand what means "Q", high shelf and low shelf, etc. Peaking EQ means that the magnitude of the filter frequency response is 1 (0 dB) at 0 Hz and the Nyquist frequency (sr/2), while it is the level parameter at the center frequency (kc for pareq). In this mode, Q controls the bandwidth of the filter (kc / kq, a higher Q means narrower bandwidth). In low shelf mode, the magnitude is 1 at sr/2, and the level parameter (kv) at 0 Hz. There is resonance controlled by Q at the corner frequency if Q is greater than 0.7071. With kv=0 and kq=0.7071 you get a response very similar to butterhp. High shelf mode is similar, but in this case the magnitude is 1 at 0 Hz, and the level parameter (kv) at 0 sr/2. There is resonance controlled by Q at the corner frequency if Q is greater than 0.7071. With kv=0 and kq=0.7071 you get a response very similar to butterlp. Here is a CSD file that allows changing pareq parameters with a GUI in real time, and displays the frequency response of the filter. It should be used with a version of Csound 5 that was built with the FLTK plugin with threading disabled (e.g. the latest Gogins release for Windows, or the Lazzarini package for OS X). --displays -+rtaudio=null -o dac -b 1024 -B 2048 sr = 48000 ksmps = 32 nchnls = 1 0dbfs = 1 FLpanel "pareq", 360, 120 ih1 FLvalue " ", 50, 22, 20, 90 gkfco, ih1v FLknob "Freq", 500, 10000, -1, 1, ih1, 60, 15, 10 FLsetVal_i 5000, ih1v ih2 FLvalue " ", 50, 22, 120, 90 gklvl, ih2v FLknob "Level", 0.01, 3, -1, 1, ih2, 60, 115, 10 FLsetVal_i 3, ih2v ih3 FLvalue " ", 50, 22, 220, 90 gkQ, ih3v FLknob "Q", 0.1, 3, -1, 1, ih3, 60, 215, 10 FLsetVal_i 3, ih3v ih4 FLvalue " ", 40, 22, 310, 90 gkmode, ih4v FLroller "Mode", 0, 2, 1, 0, 2, ih4, 20, 60, 320, 10 FLsetVal_i 2, ih4v FLpanelEnd FLrun opcode pulse, a, ki setksmps 1 kprd, iphs xin kcnt init iphs aout = 0 kcnt = kcnt + 1 if (kcnt < kprd) kgoto cont1 kcnt = 0 aout = 1 cont1: xout aout endop instr 1 gkmode_old init -1 a1 pulse 4096, 2048 kc port gkfco, 0.04 kv port gklvl, 0.04 kq port gkQ, 0.04 modeChange: a2 pareq a1, kc, kv, kq, round(i(gkmode)) if (gkmode == gkmode_old) kgoto noChange reinit modeChange rireturn noChange: gkmode_old = gkmode dispfft a2, 4096.01 / sr, 4096, 1 endin i 1 0 3600 e