vrandi

vrandi — Génère une sorte de "bruit vectoriel à bande limitée".

Description

Génère une sorte de "bruit vectoriel à bande limitée".

Syntaxe

vrandi  ifn,  krange, kcps, ielements [, idstoffset] [, iseed] \
      [, isize] [, ioffset]

Initialisation

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.

Exécution

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.

Exemples

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> 


Voir aussi

vrandh, randi

Crédits

Ecrit par Gabriel Maldonado.

Nouveau dans Csound 5 (Auparavant seulement disponible dans CsoundAV)