urandom — Opcodes de nombres vraiment aléatoires dans un intervalle contrôlable.
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.
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. |
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