pareq — Implementation of Zoelzer's parametric equalizer filters.
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
imode (optional, default: 0) -- operating mode
0 = Peaking
1 = Low Shelving
2 = High Shelving
iskip (optional, default=0) -- if non zero skip the initialisation of the filter. (New in Csound version 4.23f13 and 5.0)
kc -- center frequency in peaking mode, corner frequency in shelving mode.
kv -- amount of boost or cut. A value less than 1 is a cut. A value greater than 1 is a boost. A value of 1 is a flat response.
kq -- Q of the filter (sqrt(.5) is no resonance)
asig -- the incoming signal
Here is an example of the pareq opcode. It uses the file pareq.csd.
Example 301. Example of the pareq opcode.
See the sections Real-time Audio and Command Line Flags for more information on using command line flags.
<CsoundSynthesizer> <CsOptions> ; Select audio/midi flags here according to platform ; Audio out Audio in No messages -odac -iadc -d ;;;RT audio I/O ; For Non-realtime ouput leave only the line below: ; -o pareq.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> sr = 44100 kr = 4410 ksmps = 10 nchnls = 2 instr 15 ifc = p4 ; Center / Shelf kq = p5 ; Quality factor sqrt(.5) is no resonance kv = 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, kv, kq, imode ; Parmetric equalization outs aout, aout ; Output the results endin </CsInstruments> <CsScore> ; 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 </CsScore> </CsoundSynthesizer>