pareq — Implémentation des filtres égaliseurs paramétrique de Zoelzer.
Implémentation des filtres égaliseurs paramétrique de Zoelzer, avec quelques modifications par l'auteur.
La formule du filtre low shelf est :
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
La formule du filtre high shelf est :
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
La formule du filtre peak est :
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 (facultatif, 0 par défaut) -- mode opératoire
0 = Peak
1 = Low Shelf
2 = High Shelf
iskip (facultatif, 0 par défaut) -- s'il est différent de zéro, l'initialisation du filtre est ignorée. (Nouveau dans les versions 4.23f13 et 5.0 de Csound)
kc -- fréquence centrale dans le mode peak, fréquence de coupure dans le mode shelf.
kv -- importance du renforcement ou de l'atténuation. Une valeur inférieure à 1 produit une atténuation. Une valeur supérieure à 1 produit un renforcement. La valeur 1 donne une réponse plate.
kq -- Q du filter (racine carrée de 0.5 ne produit pas de résonance)
asig -- le signal entrant
Voici un exemple de l'opcode pareq. Il utilise le fichier pareq.csd.
Exemple 726. Exemple de l'opcode pareq.
Voir les sections Audio en Temps Réel et Options de la Ligne de Commande pour plus d'information sur l'utilisation des options de la ligne de commande.
<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>