clfilt — Implémente des filtres passe-bas et passe-haut de différents styles.
Implémente les types de filtres analogiques standard classiques : passe-bas et passe-haut. Ils sont implémentés avec les quatre sortes de filtre classiques : Butterworth, Tchebychev de type 1, Tchebychev de type 2 et elliptique. Le nombre de pôles peut être n'importe quel nombre pair compris entre 2 et 80.
itype -- 0 pour passe-bas, 1 pour passe-haut.
inpol -- Le nombre de pôles du filtre. Ce doit être un nombre pair compris entre 2 et 80.
ikind (facultatif) -- 0 pour Butterworth, 1 pour Tchebychev de type 1, 2 pour Tchebychev de type 2, 3 pour elliptique. 0 par défaut (Butterworth).
ipbr (facultatif) -- Ondulation de la bande passante en dB. Doit être supérieure à 0. Elle est ignorée dans les filtres de Butterworth et de Tchebychev de type 2. La valeur par défaut est 1 dB.
isba (facultatif) -- Atténuation de la bande bloquée en dB. Doit être inférieure à 0. Elle est ignorée dans les filtres de Butterworth et de Tchebychev de type 1. La valeur par défaut est -60 dB.
iskip (facultatif) -- 0 initialise tous les états internes du filtre à 0. 1 ignore l'initialisation. La valeur par défaut est 0.
asig -- Le signal audio en entrée.
kfreq -- La fréquence de coupure du filtre passe-bas ou passe-haut.
Voici un exemple de l'opcode clfilt comme filtre passe-bas. Il utilise le fichier clfilt_lowpass.csd.
Exemple 144. Exemple de l'opcode clfilt comme filtre passe-bas.
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 -odac ;;;RT audio out ;-iadc ;;;uncomment -iadc if RT audio input is needed too ; For Non-realtime ouput leave only the line below: ; -o clfilt_lowpass.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> sr = 44100 ksmps = 32 nchnls = 2 0dbfs = 1 instr 1 ; white noise asig rand 0.5 outs asig, asig endin instr 2 ; filtered noise asig rand 0.9 ; Lowpass filter signal asig with a ; 10-pole Butterworth at 500 Hz. a1 clfilt asig, 500, 0, 10 outs a1, a1 endin </CsInstruments> <CsScore> i 1 0 2 i 2 2 2 e </CsScore> </CsoundSynthesizer>
Voici un exemple de l'opcode clfilt comme filtre passe-haut. Il utilise le fichier clfilt_highpass.csd.
Exemple 145. Exemple de l'opcode clfilt comme filtre passe-haut.
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 -odac ;;;RT audio out ;-iadc ;;;uncomment -iadc if RT audio input is needed too ; For Non-realtime ouput leave only the line below: ; -o clfilt_highpass.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> sr = 44100 ksmps = 32 nchnls = 2 0dbfs = 1 instr 1 ; white noise asig rand 0.6 outs asig, asig endin instr 2 ;filtered noise asig rand 0.7 ; Highpass filter signal asig with a 6-pole Chebyshev ; Type I at 20 Hz with 3 dB of passband ripple. a1 clfilt asig, 20, 1, 6, 1, 3 outs a1, a1 endin </CsInstruments> <CsScore> i 1 0 2 i 2 2 2 e </CsScore> </CsoundSynthesizer>