statevar

statevar — Un filtre à variable d'état.

Description

statevar est une nouvelle implémentation numérique du filtre analogique à variable d'état. Ce filtre a quatre sorties simultanées : passe-haut, passe-bas, passe-bande et réjecteur de bande. Ce filtre utilise le sur-échantillonnage pour obtenir une résonance plus raide (sur-échantillonné 3 fois par défaut). Il comprend un limiteur de résonance qui empêche le filtre de devenir instable.

Syntaxe

ahp, alp, abp, abr statevar ain, kcf, kq [, iosamps, istor]

Initialisation

iosamps -- nom de fois que le sur-échantillonnage est utilisé dans le processus de filtrage. Cela détermine la raideur maximale de la résonance du filtre (Q). Plus de sur-échantillonnage permet des valeurs de Q plus élevées, moins de sur-échantillonnage limite la résonance. La valeur par défaut est 3 fois (iosamps=0).

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.

Exécution

ahp -- signal de sortie du passe-haut.

alp -- signal de sortie du passe-bas.

abp -- signal de sortie du passe-bande.

abr -- signal de sortie du réjecteur de bande.

asig -- signal d'entrée.

kcf -- fréquence de coupure du filtre.

kq -- Q du filtre. Cette valeur est limitée en interne en fonction de la fréquence et du nombre de fois que le sur-échantillonnage est utilisé durant le processus (sur-échantillonnage de 3 fois par défaut).

Exemples

Voici un exemple de l'opcode statevar. Il utilise le fichier statevar.csd.

Exemple 815. Exemple de l'opcode statevar.

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      ;;;realtime audio out
;-iadc    ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o statevar.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>

sr = 44100 
ksmps = 32 
0dbfs  = 1 
nchnls = 2

instr 1

kenv linseg 0,0.1,1, p3-0.2,1, 0.1, 0		;declick envelope	
asig buzz .6*kenv, 100, 100, 1
kf   expseg 100, p3/2, 5000, p3/2, 1000		;envelope for filter cutoff
ahp,alp,abp,abr statevar asig, kf, 4
     outs alp,ahp				; lowpass left, highpass right
	
endin	
</CsInstruments>
<CsScore>
f 1 0 16384 10 1	;sine wave

i1 0 5 
e
</CsScore>
</CsoundSynthesizer>


Crédits

Auteur : Victor Lazzarini
Janvier 2005

Nouveau greffon dans la version 5

Janvier 2005.