randh — Génère des nombres aléatoires et les maintient pendant une certaine durée.
ares randh xamp, xcps [, iseed] [, isize] [, ioffset]
kres randh kamp, kcps [, iseed] [, isize] [, ioffset]
iseed (facultatif, par défaut=0,5) -- une graine pour la formule du calcul récursif des nombres pseudo-aléatoires. Une valeur comprise entre 0 et +1 produira une sortie initiale de kamp * iseed. Avec une valeur négative, la réinitialisation de la graine sera ignorée. Avec une valeur supérieure à 1, la graine proviendra de l'horloge du système ; c'est la meilleure option pour générer une séquence aléatoire différente à chaque utilisation.
isize (facultatif, par défaut=0) -- s'il est nul, un nombre sur 16 bit est généré. S'il est non nul, un nombre sur 31 bit est généré. La valeur par défaut est 0.
ioffset (facultatif, par défaut=0) -- une valeur de base ajoutée au résultat aléatoire. Nouveau dans la version 4.03 de Csound.
kamp, xamp -- intervalle sur lequel les nombres aléatoires sont distribués.
kcps, xcps -- fréquence à laquelle de nouveaux nombres aléatoires sont générés.
La formule pseudo-aléatoire interne produit des valeurs uniformément distribuées sur l'intervalle allant de -kamp à +kamp. rand génère ainsi un bruit blanc uniforme avec une valeur moyenne quadratique (RMS) de kamp / (racine de 2).
Les autres unités produisent un bruit à bande limitée : les paramètres kcps et xcps permettent de choisir un taux de génération des nouveaux nombres aléatoires inférieur aux fréquences d'échantillonnage ou de contrôle. randh maintient chaque nouveau nombre durant le cycle spécifié.
Voici un exemple de l'opcode randh. Il utilise le fichier randh.csd.
Exemple 875. Exemple de l'opcode randh.
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 -odac ;;;realtime audio out ;-iadc ;;;uncomment -iadc if RT audio input is needed too ; For Non-realtime ouput leave only the line below: ; -o randh.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> sr = 44100 ksmps = 32 nchnls = 2 0dbfs = 1 instr 1 ;same values every time krnd randh 100, 10 printk2 krnd ; look aout oscili 0.8, 440+krnd, 1 ; & listen outs aout, aout endin instr 2 ;different values every time krnd randh 100, 10, 10 ; seed from system clock printk2 krnd ; look aout oscili 0.8, 440+krnd, 1 ; & listen outs aout, aout endin </CsInstruments> <CsScore> f 1 0 16384 10 1 ;sine wave. i 1 0 1 i 2 2 1 e </CsScore> </CsoundSynthesizer>
L'exemple produit la sortie suivante :
i1 50.00000 i1 50.00305 i1 97.68677 i1 -44.25354 i1 -61.56006 i1 -75.91248 i1 67.57202 i1 12.83875 i1 5.39551 i1 -95.18738 WARNING: Seeding from current time 684387922 i2 -13.81226 i2 -16.49475 i2 69.51904 i2 35.04944 i2 47.47925 i2 63.25378 i2 -59.61914 i2 50.93079 i2 -6.46362 i2 5.89294