cuserrnd

cuserrnd — Générateur de nombres aléatoires de distribution continue définie par l'utilisateur.

Description

Générateur de nombres aléatoires de distribution continue définie par l'utilisateur.

Syntaxe

aout cuserrnd kmin, kmax, ktableNum
iout cuserrnd imin, imax, itableNum
kout cuserrnd kmin, kmax, ktableNum

Initialisation

imin -- limite inférieure de l'intervalle

imax -- limite supérieure de l'intervalle

itableNum -- numéro d'une table contenant la fonction de la distribution aléatoire. Cette table est générée par l'utilisateur. Voir GEN40, GEN41 et GEN42. La longueur de la table peut être différente d'une puissance de 2.

Exécution

ktableNum -- numéro d'une table contenant la fonction de la distribution aléatoire. Cette table est générée par l'utilisateur. Voir GEN40, GEN41 et GEN42. La longueur de la table peut être différente d'une puissance de 2.

kmin -- limite inférieure de l'intervalle

kmax -- limite supérieure de l'intervalle

cuserrnd (Continuous USER-defined-distribution RaNDom generator) génère des nombres aléatoires selon une distribution aléatoire continue créée par l'utilisateur. Dans ce cas la forme de l'histogramme de la distribution peut être dessinée ou générée par n'importe quelle routine GEN. La table contenant la forme d'un tel histogramme doit être transformée ensuite en une fonction de distribution au moyen de GEN40 (voir GEN40 pour plus de détails). Cette fonction doit ensuite être allouée à l'argument XtableNum de cuserrnd. L'intervalle de sortie sera ensuite mis à l'échelle selon les arguments Xmin et Xmax. cuserrnd faisant une interpolation linéaire entre les éléments de la table, il n'est pas recommandé pour les distributions discrètes (GEN41 et GEN42).

Pour un tutoriel sur les histogrammes et les fonctions de distribution aléatoires consulter :

  • D. Lorrain. "A panoply of stochastic cannons". In C. Roads, ed. 1989. Music machine. Cambridge, Massachusetts: MIT press, pp. 351 - 379.

Exemples

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

Exemple 201. Exemple de l'opcode cuserrnd.

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

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

instr 1	; every run time same values

kuser cuserrnd 0, 100, 1
      printk .2, kuser
asig  poscil .5, 220+kuser, 3
      outs asig, asig
endin

instr 2	; every run time different values

      seed 0
kuser cuserrnd 0, 100, 1
      printk .2, kuser
asig  poscil .5, 220+kuser, 3
      outs asig, asig
endin
</CsInstruments>
<CsScore>
f 1 0 16 -7 1 4 0 8 0 4 1	;distrubution using GEN07
f 2 0 16384 40 1		;GEN40 is to be used with cuserrnd
f 3 0 8192 10 1			;sine

i 1 0 2
i 2 3 2
e
</CsScore>
</CsoundSynthesizer>


Sa sortie contiendra des lignes comme celles-ci :

 i   1 time     0.00067:    53.14918
 i   1 time     0.20067:     0.00000
 i   1 time     0.40067:     0.00000
 i   1 time     0.60067:    96.80406
 i   1 time     0.80067:    94.20729
 i   1 time     1.00000:     0.00000
 i   1 time     1.20067:    86.13032
 i   1 time     1.40067:    31.37096
 i   1 time     1.60067:    70.35889
 i   1 time     1.80000:     0.00000
 i   1 time     2.00000:    49.18914

WARNING: Seeding from current time 2006647442

 i   2 time     3.00067:    21.45002
 i   2 time     3.20067:    44.32333
 i   2 time     3.40067:    46.05420
 i   2 time     3.60000:     0.00000
 i   2 time     3.80067:    41.32175
 i   2 time     4.00000:     0.00000
 i   2 time     4.20000:    63.72019
 i   2 time     4.40067:     0.00000
 i   2 time     4.60067:     0.00000
 i   2 time     4.80067:     0.00000
 i   2 time     5.00000:    74.49330

Voir aussi

duserrnd, urd

Crédits

Auteur : Gabriel Maldonado

Nouveau dans la version 4.16