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

## zdf_ladder

zdf_ladder — Implémentation d'un filtre en échelle à 4 pôles avec rétroaction sans retard.

## Description

Implémentation d'un filtre en échelle à 4 pôles avec rétroaction sans retard (24 dB/oct) basé sur le filtre en échelle de Moog.

## Syntaxe

    asig zdf_ladder ain, xcf, xQ [, istor]

## Initialisation

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

asig -- signal de sortie.

asig -- signal d'entrée.

xcf -- fréquence de coupure du filtre (taux-i-, k ou a).

xQ -- valeur Q du filtre (taux-i-, k ou a). Dans l'intervalle 0.5-25.0.

## Exemples

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

Exemple 1239. Exemple de l'opcode zdf_ladder.

    <CsoundSynthesizer>
    <CsOptions>
    -o dac
    </CsOptions>
    <CsInstruments>

    sr	=	48000
    ksmps	=	1
    nchnls	=	2
    0dbfs	=	1

    instr 1
      asig = random:a(-1.0, 1.0)
      asig = zdf_ladder(asig, expon(220, p3, 5000), p4)
      outc(asig, asig)
    endin

    instr 2
      asig = vco2(0.5, 220)
      asig = zdf_ladder(asig, expon(220, p3, 5000), p4)
      outc(asig, asig)
    endin

    instr 3
      asig = vco2(0.5, p4)
      asig = zdf_ladder(asig, expon(5000, p3, 200), 0.5 + p5* 24)
      asig *= madsr(0.05, 0, 1, 0.25)
      outc(asig, asig)
    endin

    instr play_instr3
      schedule(3, 0, 0.25, mtof(48 + (p4 % 2) * 12), p4 / 16)

      if(p4 < 16) then
        schedule("play_instr3", 0.25, 0.25, p4 + 1)
      else
        event_i("e", 0.5,0)
      endif
      turnoff
    endin

    </CsInstruments>
    <CsScore>
    i1 0 2 0.5
    i1 + . 1
    i1 + . 4
    i1 + . 10
    i1 + . 18
    i1 + . 24.5
    i2 12 2 0.5
    i2 + . 1
    i2 + . 4
    i2 + . 10
    i2 + . 18
    i2 + . 24.5

    s
    i "play_instr3" 0 0.25 0
    f0 60
    </CsScore>
    </CsoundSynthesizer>

## Références

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.

1. Pirkle, Will. Designing Software Synthesizer Plug-ins in C++: For RackAFX, VST3, and Audio Units. CRC Press, 2014.

2. Pirkle, Will. AN-4: Virtual Analog (VA) Filter Implementation. 2013.

3. Zavalishin, Vadim. "The Art of VA filter design." Native Instruments, 2012.

## Crédits

Auteur : Steven Yi
Avril 2017

Nouveau dans Csound 6.09.0

Précédent | Niveau supérieur | Suivant
zdf_2pole_mode | Sommaire | zfilter2