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