vrandi — 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 d'éléments à traiter.
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 à randi, 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 vrandi. Il utilise le fichier vrandi.csd.
Exemple 1202. Exemple de l'opcode vrandi.
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 vrandi.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> sr=44100 ksmps=128 nchnls=2 ;Example by Andres Cabrera gitab ftgen 0, 0, 16, -7, 0, 128, 0 instr 1 krange init p4 kcps init p5 ioffset init p6 ; table krange kcps ielements idstoffset iseed isize ioffset vrandi gitab, krange, kcps, 3, 3, 2, 1, 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 2048 10 1 ; krange kcps ioffset i 1 0 5 100 1 300 i 1 5 5 5 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 20 5 300 32 350 e </CsScore> </CsoundSynthesizer>