urd — Un générateur de nombres aléatoires de distribution discrète définie par l'utilisateur que l'on peut utiliser comme une fonction.
Un générateur de nombres aléatoires de distribution discrète définie par l'utilisateur que l'on peut utiliser comme une fonction.
itableNum -- numéro d'une table contenant la fonction de la distribution aléatoire. Cette table est générée par l'utilisateur. Voir GEN40, GEN41 et GEN42. La longueur de la table peut être différente d'une puissance de 2.
ktableNum -- numéro d'une table contenant la fonction de la distribution aléatoire. Cette table est générée par l'utilisateur. Voir GEN40, GEN41 et GEN42. La longueur de la table peut être différente d'une puissance de 2.
urd est le même opcode que duserrnd, mais on peut l'utiliser à la manière d'une fonction.
Pour un tutoriel sur les histogrammes et les fonctions de distribution aléatoires consulter :
D. Lorrain. "A panoply of stochastic cannons". In C. Roads, ed. 1989. Music machine. Cambridge, Massachusetts: MIT press, pp. 351 - 379.
Voici un exemple de l'opcode urd. Il utilise le fichier urd.csd.
Exemple 1140. Exemple de l'opcode urd.
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 realtime audio input is needed too ; For Non-realtime ouput leave only the line below: ; -o urd.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> sr = 44100 ksmps = 32 nchnls = 2 0dbfs = 1 instr 1 ktab = 1 ;ftable 1 kurd = urd(ktab) ktrig metro 5 ;triggers 5 times per second kres samphold kurd, ktrig ;sample and hold value of kurd printk2 kres ;print it asig poscil .5, 220+kres, 2 outs asig, asig endin instr 2 seed 0 ;every run new values ktab = 1 ;ftable 1 kurd = urd(ktab) ktrig metro 5 ;triggers 5 times per second kres samphold kurd, ktrig ;sample and hold value of kurd printk2 kres ;print it asig poscil .5, 220+kres, 2 outs asig, asig endin </CsInstruments> <CsScore> f1 0 -20 -42 10 20 .3 100 200 .7 ;30% choose between 10 and 20 and 70% between 100 and 200 f2 0 8192 10 1 ;sine wave i 1 0 5 i 2 6 5 e </CsScore> </CsoundSynthesizer>
Sa sortie contiendra des lignes comme celles-ci :
i1 184.61538 i1 130.76923 i1 169.23077 i1 12.00000 ....... WARNING: Seeding from current time 3751086165 i2 138.46154 i2 12.00000 i2 123.07692 i2 161.53846 i2 123.07692 i2 153.84615 ......