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 879. 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 ...