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 linux 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.

[Note] 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. 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 932. 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 933. 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