|
|
|
|
ar pareq asig, kc, iv, iq, imode
Implementation of Zoelzer's parametric equalizer filters, with some modifications by the author.
The formula for the low shelf filter is:
omega = 2*pi*f/sr K = tan(omega/2) b0 = 1 + sqrt(2*V)*K + V*K^2 b1 = 2*(V*K^2 - 1) b2 = 1 - sqrt(2*V)*K + V*K^2 a0 = 1 + K/Q + K^2 a1 = 2*(K^2 - 1) a2 = 1 - K/Q + K^2
The formula for the high shelf filter is:
omega = 2*pi*f/sr K = tan((pi-omega)/2) b0 = 1 + sqrt(2*V)*K + V*K^2 b1 = -2*(V*K^2 - 1) b1 = 1 - sqrt(2*V)*K + V*K^2 a0 = 1 + K/Q + K^2 a1 = -2*(K^2 - 1) a2 = 1 - K/Q + K^2
The formula for the peaking filter is:
omega = 2*pi*f/sr K = tan(omega/2) b0 = 1 + V*K/2 + K^2 b1 = 2*(K^2 - 1) b2 = 1 - V*K/2 + K^2 a0 = 1 + K/Q + K^2 a1 = 2*(K^2 - 1) a2 = 1 - K/Q + K^2
iv – amount of boost or cut. If iv > 1, gain of kc is increased. If iv <1, gain of kc is decreased. If iv = 1, there is no gain change at kc.
iq – Q of the filter (sqrt(.5) is no resonance)
imode – operating mode
kc - center frequency in peaking mode, corner frequency in shelving mode.
asig – the incoming signal
instr 15
ifc = p4 ; Center / Shelf
iq = p5 ; Quality factor sqrt(.5) is no resonance
iv = ampdb(p6) ; Volume Boost/Cut
imode = p7 ; Mode 0=Peaking EQ, 1=Low Shelf, 2=High Shelf
kfc linseg ifc*2, p3, ifc/2
asig rand 5000 ; Random number source for testing
aout pareq asig, kfc, iv, iq, imode ; Parmetric equalization
outs aout, aout ; Output the results
endin
; SCORE:
; Sta Dur Fcenter Q Boost/Cut(dB) Mode
i15 0 1 10000 .2 12 1
i15 + . 5000 .2 12 1
i15 . . 1000 .707 -12 2
i15 . . 5000 .1 -12 0
e
Hans Mikelson
December, 1998 (New in Csound version 3.50)
|
|
|
|