phaser2
Prev | Opcodes et opérateurs de l'orchestre | Next

## phaser2

phaser2 — Filtres passe-tout du second ordre arrangés en série.

## Description

Une implémentation de iord filtres passe-tout du second ordre en série.

## Syntaxe

    ares phaser2 asig, kfreq, kq, kord, kmode, ksep, kfeedback

## Exécution

kfreq -- fréquence (en Hz) du(des) filtre(s). C'est la fréquence centrale de l'encoche du premier filtre passe-tout de la série. Cette fréquence est utilisée comme fréquence de base à partir de laquelle les fréquences des autres encoches sont dérivées.

kq -- Q de chaque encoche. Des valeurs élevées de Q donnent des encoches étroites. Un Q compris entre 0.5 et 1 donne l'effet de "phasing" le plus fort, mais des valeurs de Q plus grandes peuvent être utilisées pour des effets spéciaux.

kord -- le nombre d'étages passe-tout en série. Ce sont des filtres du second ordre et il peut y en avoir de 1 à 2499. Avec des ordres plus élevés, le temps de calcul augmente.

kfeedback -- quantité du signal de sortie qui est réinjectée dans l'entrée de la chaîne passe-tout. Plus la rétroaction est importante et plus il y aura d'encoches proéminentes dans le spectre de la sortie. kfeedback doit être compris entre -1 et +1 pour la stabilité.

kmode -- utilisé pour le calcul des fréquence des encoches.

| Note
Bien que kord et kmode soient présentés au taux-k, ils ne sont en fait lus qu'à l'initialisation. Ainsi, si l'on utilise des arguments de taux-k, il faut leur affecter une valeur avec init.

ksep -- facteur de mise à l'échelle utilisé en conjonction avec imode pour déterminer les fréquences des encoches ajoutées dans le spectre de sortie.

phaser2 implémente iord sections passe-tout du second ordre, connectées en série. L'utilisation de sections passe-tout du second ordre permet un placement précis de la fréquence, de la largeur et de la profondeur des encoches dans le spectre de fréquence. iord est utilisé pour déterminer directement le nombre d'encoches dans le spectre ; par exemple pour iord = 6, il y aura 6 encoches dans le spectre de sortie.

Il y a deux modes possibles de détermination des fréquences d'encoche. Lorsque imode = 1, les fréquences d'encoche sont déterminées par la fonction suivante :

fréquence de l'encoche N = kbf + (ksep * kbf * N-1)

Par exemple, avec imode = 1 et ksep = 1, les encoches seront en relation harmonique avec la fréquence d'encoche déterminée par kfreq (ainsi, s'il y a 8 encoches, la première étant à 100 Hz, les suivantes seront à 200, 300, 400, 500, 600, 700 et 800 Hz). C'est utile pour générer un effet de "filtre en peigne", dont le nombre d'encoches est déterminé par iord. Différentes valeurs de ksep donnent des fréquences d'encoche inharmoniques et d'autres effets spéciaux. ksep peut être balayé pour créer un mouvement d'expension ou de contraction des fréquences d'encoche. Les soufflets d'un accordéon en mouvement donnent une bonne analogie visuelle de l'effet du balayage de ksep - les encoches sont séparées, puis compressées ensemble, lorsque ksep change.

Losrque imode = 2, les encoches successives sont des puissances du paramètre d'entrée ksep multipliées par la fréquence d'encoche initiale donnée par kfreq. On peut ainsi régler les fréquences d'encoche en octaves ou sur d'autres intervalles musicaux. Par exemple, les lignes suivantes généreront 8 encoches dans le spectre de sortie, les encoches étant réparties sur les octaves supérieures de kfreq:

aphs phaser2 ain, kfreq, 0.5, 8, 2, 2, 0
aout = ain + aphs

Lorsque imode = 2, la valeur de ksep doit être supérieure à 0. ksep peut être balayé pour créer une compression et une expension des fréquences d'encoche (avec des effets plus dramatiques que lorsque imode = 1).

## Exemples

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

Example 623. Exemple de l'opcode phaser2.

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
    ; Audio out   Audio in    No messages
    -odac           -iadc     -d     ;;;RT audio I/O
    ; For Non-realtime ouput leave only the line below:
    ; -o phaser2.wav -W ;;; for file output any platform
    </CsOptions>
    <CsInstruments>

    sr = 44100
    kr = 4410
    ksmps = 10
    nchnls = 1

    instr 2              ; demonstration of phase shifting abilities of phaser2.
      ; Input mixed with output of phaser2 to generate notches.
      ; Demonstrates the interaction of imode and ksep.
      idur   = p3
      iamp   = p4 * .04
      iorder = p5        ; number of 2nd-order stages in phaser2 network
      ifreq  = p6        ; not used
      ifeed  = p7        ; amount of feedback for phaser2
      imode  = p8        ; mode for frequency scaling
      isep   = p9        ; used with imode to determine notch frequencies
      kamp   linseg 0, .2, iamp, idur - .2, iamp, .2, 0
      iharms = (sr*.4) / 100

      ; "Sawtooth" waveform exponentially decaying function, to control notch frequencies
      asig   gbuzz 1, 100, iharms, 1, .95, 2
      kline  expseg 1, idur, .005
      aphs   phaser2 asig, kline * 2000, .5, iorder, imode, isep, ifeed

      out (asig + aphs) * iamp
    endin

    </CsInstruments>
    <CsScore>

    ; cosine wave for gbuzz
    f2 0  8192 9 1 1 .25

    ; phaser2, imode=1
    i2 00 10 7000 8 .2 .9 1 .33
    i2 11 10 7000 8 .2 .9 1 2

    ; phaser2, imode=2
    i2 22 10 7000 8 .2 .9 2 .33
    i2 33 10 7000 8 .2 .9 2 2
    e

    </CsScore>
    </CsoundSynthesizer>

## Historique Technique

On trouve dans Hartmann [1] une description générale des différences entre flanging et phasing. On peut trouver une implémentation ancienne de filtres passe-tout du premier ordre connectés en série dans Beigel [2], dans laquelle la transormation en z bilinéaire est utilisée pour déterminer la fréquence du déphasage de chaque étage. Cronin [3] présente une implémentation similaire pour un réseau déphaseur à quatre étages. Chamberlin [4] et Smith [5] discutent tous deux de l'utilisation de sections passe-tout du deuxième ordre pour un meilleur contrôle de la profondeur, de la largeur et de la fréquence des encoches.

## Références

1. Hartmann, W.M. "Flanging and Phasers." Journal of the Audio Engineering Society, Vol. 26, No. 6, pp. 439-443, Juin 1978.

2. Beigel, Michael I. "A Digital 'Phase Shifter' for Musical Applications, Using the Bell Labs (Alles-Fischer) Digital Filter Module." Journal of the Audio Engineering Society, Vol. 27, No. 9, pp. 673-676,Septembre 1979.

3. Cronin, Dennis. "Examining Audio DSP Algorithms." Dr. Dobb's Journal, Juillet 1994, p. 78-83.

4. Chamberlin, Hal. Musical Applications of Microprocessors. Second edition. Indianapolis, Indiana: Hayden Books, 1985.

5. Smith, Julius O. "An Allpass Approach to Digital Phasing and Flanging." Proceedings of the 1984 ICMC, p. 103-108.

## Voir aussi

phaser1

D'autres informations au sujet des phaseurs sur Wikipedia : http://en.wikipedia.org/wiki/Phaser_(effect)

## Crédits

Auteur : Sean Costello
Seattle, Washington
1999

Novembre 2002. Ajout d'une note sur les paramètres kord et kmode grâce à Rasmus Ekman.

Nouveau dans la version 4.0 de Csound.

Prev | Up | Next
phaser1 | Home | phasor