nlfilt2

nlfilt2 — Un filtre avec effet non-linéaire et protection contre l'explosion.

Description

Implémente le filtre :


Y{n} =tanh(a Y{n-1} + b Y{n-2} + d Y^2{n-L} + X{n} - C)

décrit dans Dobson et Fitch (ICMC'96) et selon les modifications de Risto Holopainen.

Syntaxe

ares nlfilt2 ain, ka, kb, kd, kC, kL

Exécution

  1. Effet non-linéaire. L'ensemble de définition des paramètres est :


      a = b = 0
      d = 0.8, 0.9, 0.7
      C = 0.4, 0.5, 0.6
      L = 20

    Cela affecte surtout le registre grave mais il y a des effets audibles sur tout le registre. Peut être utile pour colorer des sons de percussion et pour renforcer arbitrairement des notes.

  2. Passe-bas non-linéaire.L'ensemble de définition des paramètres est :


      a = 0.4
      b = 0.2
      d = 0.7
      C = 0.11
      L = 20, ... 200

    Cette variante présente des problèmes d'instabilité mais l'effet est plus prononcé dans le registre grave, sinon elle ressemble beaucoup à un filtre en peigne. De courtes valeurs de L peuvent renforcer l'attaque du son.

  3. Passe-haut non-linéaire. L'ensemble de définition des paramètres est :


      a = 0.35
      b = -0.3
      d = 0.95
      C = 0,2, ... 0.4
      L = 200

  4. Passe-haut non-linéaire. L'ensemble de définition des paramètres est :


      a = 0.7
      b = -0.2, ... 0.5
      d = 0.9
      C = 0.12, ... 0.24
      L = 500, 10

    La version passe-haut est moins sujette aux oscillations. Elle ajoute de la brillance dans le registre medium-aigu. Avec un long délai L cela ressemble un peu à de la réverbération, tandis qu'avec de petites valeurs apparaissent des régions comme des formants. Il y a des changements de couleur arbitraires et des résonances lorsque la hauteur change. Fonctionne bien avec des notes seules.

[Avertissement] Avertissement

Les ensembles des valeurs "utiles" des paramètres n'ont pas encore été explorés.

Exemples

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

Exemple 523. Exemple de l'opcode nlfilt2.

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 nlfilt.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>

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

instr 1	;unfiltered noise

asig rand .7
     outs asig, asig

endin

instr 2	;filtered noise

ka = p4
kb = p5
kd = p6
kC = p7
kL = p8
asig  rand .3
afilt nlfilt2 asig, ka, kb, kd, kC, kL
      outs    afilt, afilt
endin
</CsInstruments>
<CsScore>

i 1 0 2				; unfiltered

;        a    b    d    C    L
i 2 2 2  0    0   0.8  0.5  20	; non-linear effect
i 2 + 2 .4   0.2  0.7  0.11 200	; low=pass with non-linear
i 2 + 2 0.35 -0.3 0.95 0.1  200	; high-pass with non-linear
i 2 + 2 0.7 -0.2  0.9  0.2  20 	; high-pass with non-linear

e
</CsScore>
</CsoundSynthesizer>


Crédits

Auteur : John ffitch
Université de Bath/Codemist Ltd.
Bath, UK
2012

Nouveau dans la version 5.19