GEN42 — Génère une distribution aléatoire d'intervalles discrets de valeurs.
Génère une fonction de distribution aléatoire d'intervalles discrets de valeurs en donnant une liste de groupes de trois nombres.
Le premier nombre de chaque groupe est la valeur minimum de l'intervalle, le second est la valeur maximum et le troisième est la probabilité qu'un élément appartenant à cet intervalle de valeurs soit choisi par un algorithme aléatoire. La probabilité pour un intervalle doit être une fraction de 1, et la somme des probabilités pour tous les intervalles doit être égale à 1.
Ce sous-programme est prévu pour être utilisé avec les opcodes duserrnd et urd (voir duserrnd pour plus d'information). Comme ni duserrnd ni urd n'utilisent l'interpolation, il est suggéré de donner une taille raisonnablement grande.
Voici un exemple de l'opcode GEN42. Il utilise le fichier gen42.csd.
Exemple 1308. Exemple de l'opcode GEN42.
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 GEN42.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 ......
Voici le diagramme de la forme d'onde de la routine GEN42 utilisée dans l'exemple :