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

## wterrain2

wterrain2 — Un opcode de synthèse par terrain d'onde utilisant différentes courbes.

## Description

Un opcode de synthèse par terrain d'onde qui améliore l'opcode wterrain en fournissant plus de courbes, des paramètres de table de taux-k et un paramètre pour faire une rotation de la courbe.

## Syntaxe

    aout wterrain2 kamp, kcps, kx, ky, krx, kry, krot, \
          ktab0, ktab1, kcurve, kcurveparam

## Exécution

ktabx, ktaby -- Les deux tables définissant le terrain - on peut les changer au taux-k.

La sortie est le résultat de la traversée à la fréquence kcps de la courbe kcurve avec le paramètre kcurveparam (voir ci-dessous), pondérée par krx et kry et centrée en kx, ky sur le terrain et tournée autour du centre de krot radians.

kcurve=0 : ellipse comme dans l'opcode wterrain mais avec une extension spéciale. kcurveparam contrôle une variation de la vitesse du point traversant. La formule est :

fx(t) = kx + krx * sin( t + kcurveparam * sin(t) )
fy(t) = ky + kry * cos( t + kcurveparam * sin(t) )

kcurve=1 : lemniscate - c'est un simple 8. Ici aussi kcurveparam contrôle une variation de la vitesse du point traversant. La formule est :

fx(t) = kx + krx * cos( t + kcurveparam * sin(t) )
fy(t) = ky + kry * sin( t + kcurveparam * sin(t) ) * cos( t + kcurveparam * sin(t) )

kcurve=2 : limaçon

fx(t) = kx + krx * sin(t) * (cos(t) + kcurveparam);
fy(t) = ky + kry * cos(t) * (cos(t) + kcurveparam);

limaçon avec différents paramètres

kcurve=3 : cornoïde

fx(t) = kx + krx * sin(t) * (cos(t) + kcurveparam);
fy(t) = ky + kry * cos(t) * (cos(t) + kcurveparam);

cornoïde avec différents paramètres

kcurve=4 : trisectrice (Ceva)

fx(t) = kx + krx * cos(t) * (1+kcurveparam*sin(2*t));
fy(t) = ky + kry * sin(t) * (1+kcurveparam*sin(2*t));

trisectrice avec différents paramètres

kcurve=5 : scarabée

fx(t) = kx + krx * cos(t) * (1+kcurveparam*sin(2*t));
fy(t) = ky + kry * sin(t) * (1+kcurveparam*sin(2*t));

scarabée avec différents paramètres

kcurve=6 : folium

fx(t) = kx + krx * cos(t) * cos(t) * (sin(t)*sin(t) - kcurveparam);
fy(t) = ky + kry * sin(t) * cos(t) * (sin(t)*sin(t) - kcurveparam);

a folium avec différents paramètres

kcurve=7 : courbe de Talbot

fx(t) = kx + krx * cos(t) * (1 + kcurveparam * sin(t)*sin(t));
fy(t) = ky + kry * sin(t) * (1 - kcurveparam - kcurveparam*cos(t)*cos(t));

courbe de Talbot avec différents paramètres

## Exemples

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

Exemple 1216. Exemple de l'opcode wterrain2.

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>
    -odac -d
    </CsOptions>

    <CsInstruments>
    sr     = 48000
    ksmps  = 32
    nchnls = 2
    0dbfs  = 1

    gisine ftgen 0,0,2^12,10,1
    gScurves[] fillarray "ELLIPSE ", "LEMNISKATE ", "LIMACON ","CORNOID ","TRISEXTIC ","SCARABEUS ","FOLIUM ","TALBOT "

    instr 1
    prints gScurves[p4]
    kdclk init 0
    kdclk   linsegr  0, 0.1, 1, p3-0.02, 1, 0.9, 0
    kparam init 0
    krot init 0
    krot linseg 0,p3,6.28 ; ROTATE THE CURVE SLOWLY
    kparam linseg 0,p3,4 ; INCREASE CURVEPARAMETER

    asigL wterrain2 0.5, 110, 0.5, 0.5, 0.8, 0.4, krot, gisine, gisine, p4, kparam
    ; LET THE POINT FOR RIGHT RUNNING BACKWARDS FOR A LITTLE STEREO EFFECT
    asigR wterrain2 0.5, -110, 0.5, 0.5, 0.8, 0.4, krot, gisine, gisine, p4, kparam
    asigR dcblock asigL
    asigL dcblock asigR
    asigL*=kdclk
    asigR*=kdclk
    aL,aR reverbsc asigL, asigR, 0.6, 15000, 44100, 0.5, 1
    outs aL,aR

    endin

    </CsInstruments>

    <CsScore>

    i 1 0 40 0 ; ELLIPSE
    i 1 41 40 1; LEMNSIKATE
    i 1 82 40 2; LIMACON
    i 1 123 40 3; CORNOID
    i 1 164 40 4; TRISEXTIC
    i 1 205 40 5; SCARABEUS
    i 1 246 40 6; FOLIUM
    i 1 287 40 7; TALBOT

    e
    </CsScore>
    </CsoundSynthesizer>

Voici un autre exemple de l'opcode wterrain2 - une fugue sonore. Il utilise le fichier wterrain2_2.csd.

Exemple 1217. Un autre exemple de l'opcode wterrain2 - une fugue sonore.

    <CsoundSynthesizer>
    <CsOptions>
    -odac -d
    </CsOptions>

    <CsInstruments>
    sr     = 48000
    ksmps  = 32
    nchnls = 2
    0dbfs  = 1

    gisine ftgen 0,0,2^12,10,1

    instr 1

    kamp adsr 0.1,0.01,1,10

    ; THE MODULATION PARAMETERS
    krot linseg 0,p3,6.28 ; ROTATE
    kparam randc 2.5,0.1,0.993 ; CONTROL CURVEPARAMETER WITH CUBIC RANDOM
    kx linseg 0,p3/2,1,p3/2,0 ; MOVE HORIZONTAL THROUGH THE TERRAIN
    ky linseg 0,p3,1 ; MOVE VERTICAL THROUGH THE TERRAIN

    ; TRY THE OTHER CURVES AS WELL
    asigL wterrain2 0.2, 55*p4, kx, ky, 0.5, 0.4, krot, gisine, gisine, 5, kparam
    asigR wterrain2 0.2, -55*p4, kx, ky, 0.5, 0.4, krot, gisine, gisine, 5, kparam

    asigR dcblock asigL
    asigL dcblock asigR
    asigL butterlp asigL,9000
    asigR butterlp asigR,9000
    aL,aR reverbsc asigL, asigR, 0.7, 15000, 44100, 0.5, 1
    outs aL*kamp*p5,aR*kamp*p5

    endin

    </CsInstruments>

    <CsScore>

    i 1 0 300 1 1
    i 1 1 300 7 0.4
    i 1 2 299 [9/2] 0.4
    i 1 3.1 296.9 [16/3] 0.45
    i 1 4.3 295.7 [27/4] 0.5
    i 1 6.9 292.1 6 0.5

    e
    </CsScore>
    </CsoundSynthesizer>

## Voir aussi

wterrain, sterrain

## Crédits

Author : Christian Bacher
Nouveau dans la version 6.15

Précédent | Niveau supérieur | Suivant
wterrain | Sommaire | xadsr