randomi — Génère une suite contrôlée de nombres aléatoires avec interpolation entre chaque nouveau nombre.
Génère une suite contrôlée de nombres aléatoires avec interpolation entre chaque nouveau nombre.
ares randomi kmin, kmax, xcps [,imode] [,ifirstval]
kres randomi kmin, kmax, kcps [,imode] [,ifirstval]
imode (facultatif, 0 par défaut) -- mode du premier cycle d'interpolation (voir ci-dessous)
ifirstval (facultatif, 0 par défaut) -- première valeur retournée
kmin -- limite inférieure de l'intervalle
kmax -- limite supérieure de l'intervalle
kcps, acps -- taux de génération des points aléatoires
L'opcode randomi est semblable à randi mais il permet à l'utilisateur de fixer arbitrairement les valeurs du minimum et du maximum.
Si imode = 0 (par défaut), la valeur de l'argument kmin est retournée pendant 1/kcps (resp. 1/xcps) secondes au début de la note, avant que le premier nombre aléatoire ne soit généré. Puis le processus d'interpolation démarre, d'abord entre kmin et le premier nombre aléatoire généré, et ensuite entre les nombres aléatoires générés successivement, chaque cycle d'interpolation durant 1/kcps (resp. 1/xcps) secondes.
Si imode = 1, un nombre aléatoire est génére à l'initialisation et l'interpolation commence immédiatement entre la valeur de l'argument kmin et ce nombre aléatoire.
Si imode = 2, un nombre aléatoire est génére à l'initialisation et l'interpolation commence immédiatement entre la valeur de l'argument ifirstval et ce nombre aléatoire.
Si imode = 3, deux nombres aléatoires sont générés à l'initialisation et servent de bornes pour le premier cycle d'interpolation.
Voici un exemple de l'opcode randomi. Il utilise le fichier randomi.csd.
Exemple 865. Exemple de l'opcode randomi.
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 randomi.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> ; Initialize the global variables. sr = 44100 kr = 4410 ksmps = 10 nchnls = 1 seed 0 ; Instrument #1. instr 1 ; Choose a random frequency between 220 and 440. ; Generate new random numbers at 10 Hz. kmin init 220 kmax init 440 kcps init 10 imode = p4 ifstval = p5 printf_i "\nMode: %d\n", 1, imode k1 randomi kmin, kmax, kcps, imode, ifstval printks "k1 = %f\n", 0.1, k1 endin </CsInstruments> <CsScore> ; Play Instrument #1 for one second. ; each time with a different mode. i 1 0 1 i 1 1 1 1 i 1 2 1 2 330 i 1 3 1 3 e </CsScore> </CsoundSynthesizer>
Sa sortie contiendra des lignes comme celles-ci :
Mode: 0
k1 = 220.000000
k1 = 220.000000
k1 = 220.146093
k1 = 246.827703
k1 = 395.595775
...
Mode: 1
k1 = 220.000000
k1 = 224.325329
k1 = 274.370074
k1 = 343.216049
k1 = 414.324347
...
Mode: 2
k1 = 330.000000
k1 = 292.628171
k1 = 334.519777
k1 = 290.610602
k1 = 394.905366
...
Mode: 3
k1 = 360.727674
k1 = 431.680412
k1 = 380.625254
k1 = 289.267139
k1 = 303.038109
...