vrandi
Précédent | Opcodes et opérateurs de l'orchestre | Suivant

## 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 1190. 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)

Précédent | Niveau supérieur | Suivant
vrandh | Sommaire | vsubv