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

## 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 197. 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

Précédent | Niveau supérieur | Suivant
ctrlselect | Sommaire | dam