vrandh — Génère un vecteur de nombre aléatoires stockés dans une table, en maintenant les valeurs pendant une certaine durée.
Génère un vecteur de nombre aléatoires stockés dans une table, en maintenant les valeurs pendant une certaine durée. Génère une sorte de "bruit vectoriel à bande limitée".
ifn - numéro de la table dans laquelle le signal vectoriel sera généré.
ielements - nombre de composantes du vecteur.
idstoffset - (facultatif, 0 par défaut) - décalage d'indexation pour la table de destination.
iseed (facultatif, 0.5 par défaut) - valeur de la graine pour la formule récursive des nombres pseudo-aléatoires. Une valeur entre 0 et +1 produira comme sortie initiale kamp * iseed. Avec une valeur négative, la réinitialisation de la graine sera ignorée. Avec une valeur supérieure à 1, la graine viendra de l'horloge système, ceci étant la meilleure option pour générer une séquence aléatoire différente à chaque exécution.
isize (facultatif, 0 par défaut) - s'il vaut zéro, un nombre sur 16 bit est généré. S'il est différent de zéro, un nombre aléatoire sur 31 bit est généré. Vaut 0 par défaut.
ioffset - (facultatif, 0 par défaut) - une valeur de base ajoutée au résultat aléatoire.
krange - intervalle des éléments alétoires (entre -krange et krange).
kcps - taux de génération des éléments en Hz.
Cet opcode est semblable à randh, mais il opère sur des vecteurs au lieu de valeurs scalaires.
Bien que l'argument isize soit nul par défaut, ce qui induit l'utilisation d'un générateur de nombres aléatoires sur 16 bit, il est recommandé d'utiliser l'algorithme sur 31 bit plus récent car il produit une séquence aléatoire avec une période plus longue (plus de nombre aléatoires avant que la séquence ne se répète).
Le vecteur de sortie est contenu dans ifn (qui doit avoir été allouée au préalable).
Tous ces opcodes sont conçus pour être utilisés avec d'autres opcodes qui opèrent sur des vecteurs comme adsynt, etc.
Voici un exemple de l'opcode vrandh. Il utilise le fichier vrandh.csd.
Exemple 1201. Exemple de l'opcode vrandh.
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 No messages -odac -iadc -d ;;;RT audio I/O ; For Non-realtime ouput leave only the line below: ; -o vranh.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> ;Example by Andres Cabrera sr=44100 ksmps=128 nchnls=2 gitab ftgen 0, 0, 16, -7, 0, 128, 0 instr 1 krange init p4 kcps init p5 ioffset init p6 kav1 init 0 kav2 init 0 kcount init 0 ; table krange kcps ielements idstoffset iseed isize ioffset vrandh gitab, krange, kcps, 3, 3, 2, 0, ioffset kfreq1 table 3, gitab kfreq2 table 4, gitab kfreq3 table 5, gitab ;Change the frequency of three oscillators according to the random values aosc1 oscili 4000, kfreq1, 1 aosc2 oscili 2000, kfreq2, 1 aosc3 oscili 4000, kfreq3, 1 outs aosc1+aosc2, aosc3+aosc2 endin </CsInstruments> <CsScore> f 1 0 1024 10 1 ; krange kcps ioffset i 1 0 5 100 1 300 i 1 5 5 300 1 400 i 1 10 5 100 2 1000 i 1 15 5 400 4 1000 i 1 20 5 1000 8 2000 i 1 25 5 250 16 300 e </CsScore> </CsoundSynthesizer>