statevar — Un filtre à variable d'état.
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.
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.
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.
xcf -- fréquence de coupure du filtre (taux-k ou taux-a).
xq -- Q du filtre (taux-k ou taux-a). 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).
Voici un exemple de l'opcode statevar. Il utilise le fichier statevar.csd.
Exemple 1004. 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>