zdf_2pole_mode — Implémentation d'un filtre à 2 pôles avec rétroaction sans retard et sortie multimodale.
Implémentation d'un filtre à 2 pôles avec rétroaction sans retard (12 dB/oct). Propose une sortie passe-bas, passe-bande et passe-haut.
istor --état initial de l'espace de données interne. Comme le filtrage comprend une boucle de rétroaction sur la sortie précédente, l'état initial de l'espace de stockage utilisé est significatif. Une valeur nulle provoquera l'effacement de cet espace ; une valeur non nulle autorisera la persistance de l'information précédente. La valeur par défaut est 0.
alp -- signal de sortie passe-bas.
abp -- signal de sortie passe-bande.
ahp -- signal de sortie passe-haut.
ain -- signal d'entrée.
xcf -- fréquence de coupure du filtre (taux-i-, k ou a).
Q -- valeur Q du filtre (taux-i-, k ou a). Dans l'intervalle 0.5-25.0.
Voici un exemple de l'opcode zdf_2pole_mode. Il utilise le fichier zdf_2pole_mode.csd.
Exemple 1246. Example of the zdf_2pole_mode opcode.
<CsoundSynthesizer> <CsOptions> -o dac </CsOptions> <CsInstruments> sr = 44100 ksmps = 1 nchnls = 2 0dbfs = 1 instr 1 asig = random:a(-1.0, 1.0) asigs[] init 3 asigs[0], asigs[1], asigs[2] zdf_2pole_mode asig, line(20, p3, 10000), 4 asig = asigs[p4] outc(asig, asig) endin instr 2 asig = vco2(0.5, 220) asigs[] init 3 asigs[0], asigs[1], asigs[2] zdf_2pole_mode asig, line(20, p3, 10000), 4 outc(asigs[p4], asigs[p4]) endin </CsInstruments> <CsScore> i1 0 4 0 i1 5 4 1 i1 10 4 2 i2 15 4 0 i2 20 4 1 i2 25 4 2 </CsScore> </CsoundSynthesizer>
Ce filtre est basé sur les travaux de Will Pirkle qui emploie le travail de Vadim Zavalishin pour créer des implémentation de filtres analogiques à transformation préservant la topologie (TPT), avec des transformées bilinéaires.
Pirkle, Will. Designing Software Synthesizer Plug-ins in C++: For RackAFX, VST3, and Audio Units. CRC Press, 2014.
Pirkle, Will. AN-4: Virtual Analog (VA) Filter Implementation. 2013.
Zavalishin, Vadim. "The Art of VA filter design." Native Instruments, 2012.