vrandh

vrandh — Génère un vecteur de nombre aléatoires stockés dans une table, en maintenant les valeurs pendant une certaine durée.

Description

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".

Syntaxe

vrandh  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 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.

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 à 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.

Exemples

Voici un exemple de l'opcode vrandh. Il utilise le fichier vrandh.csd.

Exemple 1054. 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>


Voir aussi

vrandi, randh

Crédits

Ecrit par Gabriel Maldonado.

Nouveau dans Csound 5 (Auparavant seulement disponible dans CsoundAV)