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 1061. 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 1062. 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