clfilt

clfilt — Implémente des filtres passe-bas et passe-haut de différents styles.

Description

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.

Syntaxe

ares clfilt asig, kfreq, itype, inpol [, ikind] [, ipbr] [, isba] [, iskip]

Initialisation

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.

Exécution

asig -- Le signal audio en entrée.

kfreq -- La fréquence de coupure du filtre passe-bas ou passe-haut.

Exemples

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>


Crédits

Auteur : Erik Spjut

Nouveau dans la version 4.20