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

## babo

babo — Une réverbération par modèle physique.

## Description

babo est une abréviation pour ball-within-the-box (balle dans la boîte). C'est un modèle physique de réverbération basé sur le papier de Davide Rocchesso "The Ball within the Box: a sound-processing metaphor", Computer Music Journal, Vol 19, N.4, pp.45-47, Hiver 1995.

La géométrie du résonateur peut être définie, de même que certaines caractéristiques de la réponse, la position de l'auditeur dans le résonateur et la position de la source sonore.

## Syntaxe

    a1, a2 babo asig, ksrcx, ksrcy, ksrcz, irx, iry, irz [, idiff] [, ifno]

## Initialisation

irx, iry, irz -- les coordonnées géométriques du résonateur (longueur des côtés en mètres).

idiff -- est le coefficient de diffusion sur les murs, qui contrôle l'importance de la diffusion (0-1, où 0 = pas de diffusion, 1 = diffusion maximale - vaut 1 par défaut).

ifno -- fonction des valeurs pour expert : un numéro de fonction contenant tous les paramètres additionnels du résonateur. C'est normalement une fonction de type GEN2 en mode non normalisé. Les paramètres sont :

- decay -- décroissance principale du résonateur (0.99 par défaut)

- hydecay -- décroissance des hautes fréquences du résonateur (0.1 par défaut)

- rcvx, rcvy, rcvz -- coordonnées de la position de l'auditeur (en mètres ; 0,0,0 est le centre du résonateur)

- rdistance -- la distance en mètres entre deux récepteurs (vos oreilles, par exemple - 0.3 par défaut)

- direct -- l'atténuation du signal direct (0-1, 0.5 par défaut)

- early_diff -- le coefficient d'atténuation des premières réflexions (0-1, 0.8 par défaut)

## Exécution

asig -- le signal en entrée

ksrcx, ksrcy, ksrcz -- les coordonnées virtuelles de la source sonore (le signal en entrée). Elles peuvent changer au taux-k et fournissent toutes les variations nécessaires en terme de réponse du résonateur.

## Exemples

Voici un exemple simple de l'opcode babo. Il utilise les fichiers babo.csd et beats.wav.

Exemple 81. Un exemple simple de l'opcode babo.

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     ;;;RT audio out
    ;-iadc    ;;;uncomment -iadc if RT audio input is needed too
    ; For Non-realtime ouput leave only the line below:
    ; -o babo.wav -W ;;; for file output any platform
    </CsOptions>
    <CsInstruments>

    /* Written by Nicola Bernardini */

    sr = 44100
    ksmps = 32
    nchnls = 2

    ; minimal babo instrument
    ;
    instr 1
           ix     = p4  ; x position of source
           iy     = p5  ; y position of source
           iz     = p6  ; z position of source
           ixsize = p7  ; width  of the resonator
           iysize = p8  ; depth  of the resonator
           izsize = p9  ; height of the resonator

    ainput soundin "beats.wav"

    al,ar  babo    ainput*0.7, ix, iy, iz, ixsize, iysize, izsize

           outs    al,ar
    endin

    </CsInstruments>
    <CsScore>

    /* Written by Nicola Bernardini */
    ; simple babo usage:
    ;
    ;p4     : x position of source
    ;p5     : y position of source
    ;p6     : z position of source
    ;p7     : width  of the resonator
    ;p8     : depth  of the resonator
    ;p9     : height of the resonator
    ;
    i  1  0  20 6  4  3    14.39 11.86 10
    ;           ^^^^^^^    ^^^^^^^^^^^^^^
    ;           |||||||    ++++++++++++++: optimal room dims according to
    ;           |||||||                    Milner and Bernard JASA 85(2), 1989
    ;           +++++++++: source position
    e

    </CsScore>
    </CsoundSynthesizer>

Voici un exemple avancé de l'opcode babo. Il utilise les fichiers babo_expert.csd et beats.wav.

Exemple 82. Un exemple avancé de l'opcode babo.

    <CsoundSynthesizer>
    <CsOptions>
    ; Select audio/midi flags here according to platform
    -odac     ;;;RT audio out
    ;-iadc    ;;;uncomment -iadc if RT audio input is needed too
    ; For Non-realtime ouput leave only the line below:
    ; -o babo_expert.wav -W ;;; for file output any platform
    </CsOptions>
    <CsInstruments>

    /* Written by Nicola Bernardini */

    sr = 44100
    ksmps = 32
    nchnls = 2

    ; full blown babo instrument with movement
    ;
    instr 2
      ixstart = p4   ; start x position of source (left-right)
      ixend   = p7   ; end   x position of source
      iystart = p5   ; start y position of source (front-back)
      iyend   = p8   ; end   y position of source
      izstart = p6   ; start z position of source (up-down)
      izend   = p9  ; end   z position of source
      ixsize  = p10  ; width  of the resonator
      iysize  = p11  ; depth  of the resonator
      izsize  = p12  ; height of the resonator
      idiff   = p13  ; diffusion coefficient
      iexpert = p14  ; power user values stored in this function

    ainput    soundin "beats.wav"
    ksource_x line    ixstart, p3, ixend
    ksource_y line    iystart, p3, iyend
    ksource_z line    izstart, p3, izend

    al,ar     babo    ainput*0.7, ksource_x, ksource_y, ksource_z, ixsize, iysize, izsize, idiff, iexpert

              outs    al,ar
    endin

    </CsInstruments>
    <CsScore>

    /* Written by Nicola Bernardini */
    ; full blown instrument
    ;p4         : start x position of source (left-right)
    ;p5         : end   x position of source
    ;p6         : start y position of source (front-back)
    ;p7         : end   y position of source
    ;p8         : start z position of source (up-down)
    ;p9         : end   z position of source
    ;p10        : width  of the resonator
    ;p11        : depth  of the resonator
    ;p12        : height of the resonator
    ;p13        : diffusion coefficient
    ;p14        : power user values stored in this function

    ;         decay  hidecay rx ry rz rdistance direct early_diff
    f1  0 8 -2  0.95   0.95   0  0  0    0.3     0.5      0.8  ; brighter
    f2  0 8 -2  0.95   0.5    0  0  0    0.3     0.5      0.8  ; default (to be set as)
    f3  0 8 -2  0.95   0.01   0  0  0    0.3     0.5      0.8  ; darker
    f4  0 8 -2  0.95   0.7    0  0  0    0.3     0.1      0.4  ; to hear the effect of diffusion
    f5  0 8 -2  0.9    0.5    0  0  0    0.3     2.0      0.98 ; to hear the movement
    f6  0 8 -2  0.99   0.1    0  0  0    0.3     0.5      0.8  ; default vals
    ;        ^
    ;         ----- gen. number: negative to avoid rescaling

    i2 0 10  6  4  3   6   4  3  14.39  11.86  10    1  6 ; defaults
    i2 +  4  6  4  3   6   4  3  14.39  11.86  10    1  1 ; hear brightness 1
    i2 +  4  6  4  3  -6  -4  3  14.39  11.86  10    1  2 ; hear brightness 2
    i2 +  4  6  4  3  -6  -4  3  14.39  11.86  10    1  3 ; hear brightness 3
    i2 +  3 .6 .4 .3 -.6 -.4 .3  1.439  1.186  1.0 0.0  4 ; hear diffusion 1
    i2 +  3 .6 .4 .3 -.6 -.4 .3  1.439  1.186  1.0 1.0  4 ; hear diffusion 2
    i2 +  4 12  4  3 -12  -4 -3  24.39  21.86  20    1  5 ; hear movement
    ;
    i2 +  4  6  4  3   6   4  3  14.39  11.86   10   1  1 ; hear brightness 1
    i2 +  4  6  4  3  -6  -4  3  14.39  11.86   10   1  2 ; hear brightness 2
    i2 +  4  6  4  3  -6  -4  3  14.39  11.86   10   1  3 ; hear brightness 3
    i2 +  3 .6 .4 .3 -.6 -.4 .3  1.439  1.186  1.0 0.0  4 ; hear diffusion 1
    i2 +  3 .6 .4 .3 -.6 -.4 .3  1.439  1.186  1.0 1.0  4 ; hear diffusion 2
    i2 +  4 12  4  3 -12  -4 -3  24.39  21.86   20   1  5 ; hear movement
    ;       ^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^   ^  ^
    ;       |||||||||||||||||||  |||||||||||||||||   |   --: expert values function
    ;       |||||||||||||||||||  |||||||||||||||||   +--: diffusion
    ;       |||||||||||||||||||  ----------------: optimal room dims according to Milner and Bernard JASA 85(2), 1989
    ;       |||||||||||||||||||
    ;       --------------------: source position start and end
    e

    </CsScore>
    </CsoundSynthesizer>

## Crédits

Auteur : Paolo Filippi
Padoue, Italie
1999

Nicola Bernardini
Rome, Italie
2000

Nouveau dans la version 4.09 de Csound

Précédent | Niveau supérieur | Suivant
autocorr | Sommaire | balance