spf

spf — Filtre de Steiner-Parker.

Description

Spf est une implémentation numérique d'un filtre analogique linéaire de Steiner-Parker, qui est un filtre multimodal du second ordre avec trois entrées séparées pour le passe-bas, le passe-haut et le passe-bande et une sortie.

Syntaxe

asig spf alp, ahp, abp, xcf, xR[, istor]

Initialisation

istor -- disposition initiale de l'espace de données interne. Comme ce filtre comprend une boucle de rétroaction de la sortie antérieure, l'état initial de l'espace de stockage utilisé est pris en compte. Une valeur nulle efface cet espace ; une valeur non nulle retient l'information antérieure. 0 par défaut.

Exécution

alp, ahp, abp -- signaux passe-bas, passe-haut et passe-bande en entrée. On peut utiliser différents signaux en entrée ; si le même signal est placé sur les entrées passe-bas et passe-haut, le résultat est une sortie à réjection de bande pour ce signal. Si le même signal est utilisé sur toutes les entrées, cela produit un filtre passe-tout.

xcf -- fréquence de coupure du filtre (taux-a ou -k).

xR -- facteur d'atténuation du filtre, qui contrôle la crête (en passe-bande, R = 1/Q, où Q est le rapport entre la fréquence centrale et la largeur de bande). Une valeur de racine de 2 (approximativement 1.414) supprime la crête (réponse de Butterworth), et des valeurs inférieures donnent un filtre à crête et résonnant. Une valeur de 0 transforme le filtre en oscillateur sinusoïdal. Les valeurs admises sont comprise entre 0 et 2. A 2, le filtre a des pôles réels et est ainsi équivalent à deux filtres du premier ordre en série.

Exemples

Voici un exemple de l'opode spf. Il utilise le fichier spf.csd.

Exemple 985. Exemple de l'opode spf.

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>
-odac -d
</CsOptions>
<CsInstruments>

0dbfs = 1

// three different inputs
instr 1
 alp = diskin:a("fox.wav",1,0,1)/3
 ahp rand p4/3
 abp vco2 p4,100 
 af expon 100,p3,10000
 a3 spf alp,ahp,abp,af,0.707
 out a3
 a1 = 0
endin

// band-reject
instr 2
 a0 init 0
 anoi rand p4
 af expon 100,p3,10000
 as spf anoi,anoi,a0,af,0.3
 out as
endin

// self-oscillation
instr 3
 a0 init 0
 anoi rand p4
 af expon 100,p3,10000
 as spf anoi,a0,a0,af,0
 out as
endin

</CsInstruments>
<CsScore>
i1 0 10 0.2
i2 10 10 0.5
i3 20 10 0.004
</CsScore>
</CsoundSynthesizer>


Crédits

Auteur : Victor Lazzarini
Février 2021