nlfilt
Précédent | Opcodes et opérateurs de l'orchestre | Suivant

## nlfilt

nlfilt — Un filtre avec un effet non-linéaire.

## Description

Implémente le filtre :

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

décrit dans Dobson et Fitch (ICMC'96)

## Syntaxe

    ares nlfilt 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
Les ensembles des valeurs "utiles" des paramètres n'ont pas encore été explorés.

## Exemples

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

Exemple 644. Exemple de l'opcode nlfilt.

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 nlfilt asig, ka, kb, kd, kC, kL
    asig  clip afilt, 2, .9
          outs asig, asig

    endin
    </CsInstruments>
    <CsScore>

    i 1 0 2				; unfiltersd

    ;        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=paas 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
1997

Nouveau dans la version 3.44

Précédent | Niveau supérieur | Suivant
nestedap | Sommaire | nlfilt2