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

## urandom

urandom — Opcodes de nombres vraiment aléatoires dans un intervalle contrôlable.

## Description

Opcodes de nombres vraiment aléatoires dans un intervalle contrôlable. Ces unités ne fonctionnent que sous système de type Unix et utilisent /dev/urandom pour construire les valeurs aléatoires de Csound.

## Syntaxe

    ax urandom [imin, imax]

    ix urandom [imin, imax]

    kx urandom [imin, imax]

## Initialisation

ix -- valeur de sortie au taux-i.

imin -- valeur minimale de l'intervalle ; -1 par défaut.

imax -- valeur maximale de l'intervalle ; +1 par défaut.

| Notes
L'algorithme produit 264 valeurs possibles différentes qui sont mises à l'échelle pour s'inscrire dans l'intervalle demandé. Le hasard vient de la méthode usuelle /dev/urandom de Linux/OSX. Il n'y a aucune garantie que ce soit vraiment aléatoire, mais il y a de grandes chances. Il ne produit pas de valeurs cycliques.

## Exécution

ax -- valeur de sortie au taux-a.

kx -- valeur de sortie au taux-k.

## Exemples

Voici un exemple de l'opcode urandom au taux-a. Il utilise le fichier urandom.csd.

Exemple 989. Exemple de l'opcode urandom au taux-a.

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
    ; Audio out   Audio in
    -odac           -iadc    ;;;RT audio I/O
    ; For Non-realtime ouput leave only the line below:
    ; -o rnd31.wav -W ;;; for file output any platform
    </CsOptions>
    <CsInstruments>

    ; Initialize the global variables.
    sr = 44100
    kr = 4410
    ksmps = 10
    nchnls = 1

    ; Instrument #1.
    instr 1
      ; Create random numbers at a-rate in the range -2 to 2
      aur urandom  -2, 2

      ; Use the random numbers to choose a frequency.
      afreq = aur * 500 + 100

      a1 oscil 30000, afreq, 1
      out a1
    endin

    </CsInstruments>
    <CsScore>

    ; Table #1, a sine wave.
    f 1 0 16384 10 1

    ; Play Instrument #1 for one second.
    i 1 0 1
    e

    </CsScore>
    </CsoundSynthesizer>

Voici un exemple de l'opcode urandom au taux-k. Il utilise le fichier urandom_krate.csd.

Exemple 990. Exemple de l'opcode urandom au taux-k.

    <CsoundSynthesizer>
    <CsOptions>
    ; Select audio/midi flags here according to platform
    ; Audio out   Audio in
    -odac           -iadc    ;;;RT audio I/O
    ; For Non-realtime ouput leave only the line below:
    ; -o rnd31_krate.wav -W ;;; for file output any platform
    </CsOptions>
    <CsInstruments>

    ; Initialize the global variables.
    sr = 44100
    kr = 4410
    ksmps = 10
    nchnls = 1

    ; Instrument #1.
    instr 1
      ; Create random numbers at k-rate in the range -1 to 1
      ; with a uniform distribution.
      k1 urandom

      printks "k1=%f\\n", 0.1, k1
    endin

    </CsInstruments>
    <CsScore>

    ; Play Instrument #1 for one second.
    i 1 0 1
    e

    </CsScore>
    </CsoundSynthesizer>

Sa sortie contiendra des lignes comme celles-ci :

    k1=0.229850
    k1=-0.077047
    k1=-0.199339
    k1=-0.620577
    k1=-0.119447
    k1=-0.596258
    k1=0.525800
    k1=-0.171583
    k1=-0.017196
    k1=-0.974613
    k1=-0.036276

## Crédits

Auteur : John ffitch

Nouveau dans la version 5.13

Précédent | Niveau supérieur | Suivant
upsamp | Sommaire | urd