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

## randomi

randomi — Génère une suite contrôlée de nombres aléatoires avec interpolation entre chaque nouveau nombre.

## Description

Génère une suite contrôlée de nombres aléatoires avec interpolation entre chaque nouveau nombre.

## Syntaxe

    ares randomi kmin, kmax, xcps [,imode] [,ifirstval]

    kres randomi kmin, kmax, kcps [,imode] [,ifirstval]

## Initialisation

imode (facultatif, 0 par défaut) -- mode du premier cycle d'interpolation (voir ci-dessous)

ifirstval (facultatif, 0 par défaut) -- première valeur retournée

## Exécution

kmin -- limite inférieure de l'intervalle

kmax -- limite supérieure de l'intervalle

kcps, acps -- taux de génération des points aléatoires

L'opcode randomi est semblable à randi mais il permet à l'utilisateur de fixer arbitrairement les valeurs du minimum et du maximum.

Si imode = 0 (par défaut), la valeur de l'argument kmin est retournée pendant 1/kcps (resp. 1/xcps) secondes au début de la note, avant que le premier nombre aléatoire ne soit généré. Puis le processus d'interpolation démarre, d'abord entre kmin et le premier nombre aléatoire généré, et ensuite entre les nombres aléatoires générés successivement, chaque cycle d'interpolation durant 1/kcps (resp. 1/xcps) secondes.

Si imode = 1, un nombre aléatoire est génére à l'initialisation et l'interpolation commence immédiatement entre la valeur de l'argument kmin et ce nombre aléatoire.

Si imode = 2, un nombre aléatoire est génére à l'initialisation et l'interpolation commence immédiatement entre la valeur de l'argument ifirstval et ce nombre aléatoire.

Si imode = 3, deux nombres aléatoires sont générés à l'initialisation et servent de bornes pour le premier cycle d'interpolation.

## Exemples

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

Exemple 865. Exemple de l'opcode randomi.

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
    -odac           -iadc    ;;;RT audio I/O
    ; For Non-realtime ouput leave only the line below:
    ; -o randomi.wav -W ;;; for file output any platform
    </CsOptions>
    <CsInstruments>

    ; Initialize the global variables.
    sr = 44100
    kr = 4410
    ksmps = 10
    nchnls = 1

         seed 0

    ; Instrument #1.
    instr 1
      ; Choose a random frequency between 220 and 440.
      ; Generate new random numbers at 10 Hz.
      kmin    init 220
      kmax    init 440
      kcps    init 10
      imode   =    p4
      ifstval =    p5

         printf_i "\nMode: %d\n", 1, imode
      k1 randomi kmin, kmax, kcps, imode, ifstval
         printks "k1 = %f\n", 0.1, k1
    endin

    </CsInstruments>
    <CsScore>

    ; Play Instrument #1 for one second.
    ; each time with a different mode.
    i 1 0 1
    i 1 1 1 1
    i 1 2 1 2 330
    i 1 3 1 3
    e

    </CsScore>
    </CsoundSynthesizer>

Sa sortie contiendra des lignes comme celles-ci :

    Mode: 0
    k1 = 220.000000
    k1 = 220.000000
    k1 = 220.146093
    k1 = 246.827703
    k1 = 395.595775
        ...

    Mode: 1
    k1 = 220.000000
    k1 = 224.325329
    k1 = 274.370074
    k1 = 343.216049
    k1 = 414.324347
        ...

    Mode: 2
    k1 = 330.000000
    k1 = 292.628171
    k1 = 334.519777
    k1 = 290.610602
    k1 = 394.905366
        ...

    Mode: 3
    k1 = 360.727674
    k1 = 431.680412
    k1 = 380.625254
    k1 = 289.267139
    k1 = 303.038109
        ...

## Voir aussi

randi, random, randomh

## Crédits

Auteur : Gabriel Maldonado

Les arguments imode et ifirstval ont été ajoutés par François Pinot, en janvier 2011, après une discussion avec Peiman Khosravi sur la liste csnd.

Exemple écrit par Kevin Conder et adapté pour les nouveaux arguments par François Pinot.

Précédent | Niveau supérieur | Suivant
randomh | Sommaire | rbjeq