gendyx

gendyx — Variation de l'approche dynamique stochastique de la synthèse de forme d'onde conçue par Iannis Xenakis.

Description

gendyx (gendy eXtended) est une implémentation de la Génération Dynamique Stochastique (GENDYN), une approche dynamique stochastique de la synthèse de forme d'onde conçue par Iannis Xenakis, en utilisant des courbes au lieu de segments.

Syntaxe

ares gendyx kamp, kampdist, kdurdist, kadpar, kddpar, kminfreq, kmaxfreq, \
            kampscl, kdurscl, kcurveup, kcurvedown [, initcps] [, knum]
kres gendyx kamp, kampdist, kdurdist, kadpar, kddpar, kminfreq, kmaxfreq, \
            kampscl, kdurscl, kcurveup, kcurvedown [, initcps] [, knum]

Initialisation

initcps (facultatif, 12 par défaut) -- nombre maximum de points de contrôle.

Exécution

kamp -- amplitude.

kampdist -- choix de la distribution de probabilité pour la perturbation d'amplitude suivante d'un point de contrôle. Les distributions valides sont :

  • 0 - LINEAIRE

  • 1 - CAUCHY

  • 2 - LOGISTIQUE

  • 3 - COSINUS HYPERBCOLIQUE

  • 4 - ARCSINUS

  • 5 - EXPONENTIELLE

  • 6 - SINUS (signal externe de taux-k)

Si kampdist=6, on peut utiliser un signal externe de taux-k via kadpar.

kdurdist -- choix de la distribution de probabilité pour la perturbation de la durée courante entre points de contrôle. Voir kampdist pour les distributions valides. Si kdurdist=6, on peut utiliser un signal externe de taux-k via kddpar.

kadpar -- paramètre pour la distribution kampdist. Doit être compris entre 0.0001 et 1.

kddpar -- paramètre pour la distribution kdurdist. Doit être compris entre 0.0001 et 1.

kminfreq -- fréquence d'oscillation minimale autorisée.

kmaxfreq -- fréquence d'oscillation maximale autorisée.

kampscl -- multiplicateur pour la valeur du delta de la distribution pour l'amplitude (1.0 pour tout l'intervalle).

kdurscl -- multiplicateur pour la valeur du delta de la distribution pour la durée.

kcurveup -- contrôle la courbe de croissance des amplitudes entre deux points ; doit être non négatif.

  • 0 : fonction en escalier (comme dans échantillonneur-bloqueur)

  • <1 : concave

  • 1 : linéaire (comme gendy)

  • >1 : convexe

kcurvedown -- contrôle la courbe de décroissance des amplitudes entre deux points ; doit être non négatif.

  • 0 : fonction en escalier

  • <1 : convexe

  • 1 : linéaire

  • >1 : concave

knum (facultatif, initcps par défaut) -- nombre courant de points de contrôle utilisés.

La forme d'onde est générée par knum - 1 segments et se répète dans le temps. Les sommets (points de contrôle) bougent par une action stochastique dans les limites de leur réflexion sur un mirroir formé par une barrière d'amplitude et une barrière temporelle.

[Extrait d'une forme d'onde générée avec gendyx.]

Extrait d'une forme d'onde générée avec gendyx.

Exemples

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

Exemple 418. Example of the gendyx opcode.

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 oscil.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>

sr = 44100
ksmps = 32
nchnls = 2
0dbfs  = 1

instr 1

aout gendyx 0.7, 1, 1, 1, 1, 20, 1000, 0.5, 0.5, 4, 0.13
outs aout, aout

endin
</CsInstruments>
<CsScore>
i1 0 10
e
</CsScore>
</CsoundSynthesizer>


Voici un exemple de l'opcode gendyx avec des modulations. Il utilise le fichier gendyx-2.csd.

Exemple 419. Exemple de l'opcode gendyx avec des modulations.

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 oscil.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>

sr = 44100
ksmps = 32
nchnls = 2
0dbfs  = 1

instr 1
kenv expseg 0.001, p3*0.05, 0.5, p3*0.9, 0.5, p3*0.05, 0.001
kc1  linseg 1, p3/2, 12, p3/2, 3
kc2  random 0, 4
seed 20120124
asig gendyx kenv, 1, 3, 0.7, 0.8, 120, 4300, 0.2, 0.7, kc1, kc2, 12, kc1
aout dcblock asig
outs aout, aout
endin
</CsInstruments>
<CsScore>
i1 0 20
e
</CsScore>
</CsoundSynthesizer>


Références

  1. I. Xenakis. Formalized Music (1992, Stuyvesant, NY: Pendragon Press), pp. 246 - 254, 289 - 322.

Voir aussi

gendy gendyc

Crédits

Variation du générateur unitaire Gendy1 de Nick Collins (SuperCollider)
Auteur : Tito Latini
Janvier 2012

Nouveau dans la version 5.16 de Csound.