urandom

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

Description

Opcode du greffon urandom.

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.

[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/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 1138. 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      ;;;RT audio out
; For Non-realtime ouput leave only the line below:
; -o urandom.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>

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

instr 1     ; Create random numbers at a-rate in the range -2 to 2
  
aur     urandom  -2, 2
afreq1  =   aur * 500 + 100         ; Use the random numbers to choose a frequency.
afreq2  =   aur * 500 + 200
a1 oscil .3, afreq1
a2 oscil .3, afreq2
outs a1, a2
endin

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


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

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

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

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

instr 1 ; Create random numbers at k-rate in the range -1 to 1 at krate
   
k1 urandom                              ; with a uniform distribution.
printks "k1=%f\\n", 0.1, k1
asig1    poscil.2, k1 * 500 + 100
asig2    poscil.2, k1 * 500 + 200
outs    asig1, asig2    
endin

</CsInstruments>
<CsScore>
i 1 0 3
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