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

## vtablei

vtablei — Lit des vecteurs (à partir de tables, ou tableaux de vecteurs).

## Description

Cet opcode lit des vecteurs à partir de tables.

## Syntaxe

    vtablei  indx, ifn, interp, ixmode, iout1 [, iout2, iout3, .... , ioutN ]

## Initialisation

indx - Index dans la ftable, soit un nombre positif inférieur à la longueur de la table (ixmode = 0) soit un nombre compris entre 0 et 1 (ixmode != 0).

ifn - numéro de la table.

iout1...ioutN - composantes du vecteur de sortie.

ixmode - mode d'indexation. Vaut 0 par défaut.

== 0 l'index est traité comme une position brute dans la table,

== 1 l'index est normalisé (entre 0 et 1).

interp - bascule entre sortie interpolée ou non-interpolée. 0 -> pas d'interpolation, différent de zéro -> interpolation activée.

## Exécution

Cet opcode est utile dans tous les cas où il faut accéder à des ensembles de valeurs associés à des indices uniques (par exemple, des échantillons multi-canaux, des trames de bin de TFCT, des formants spectraux, des partitions basées sur des p-champs, etc). Le nombre de composantes de chaque vecteur (longueur du vecteur) est déterminé par le nombre d'arguments facultatifs à droite (iout1, iout2, iout3, ..., ioutN).

La famille d'opcodes vtable (vector table) permet à l'utilisateur de basculer entre sortie interpolée ou non-interpolée au moyen de l'argument interp.

Noter qu'aucun mode de repliement ou de limitation d'indexation n'est implémenté. Si l'index tente d'accéder à une zone non allouée par la table, il est probable que Csound plante. Cependant on peut facilement éviter cet écueil en utilisant des opcodes de repliement ou de limitation appliqués à l'index avant l'utilisation de vtablei, afin de corriger d'éventuelles valeurs hors-limites.

| Note
Noter que les arguments de sortie de vtablei sont placés à droite du nom de l'opcode, contrairement à l'habitude (ce style est aussi utilisé dans d'autres opcodes utilisant des listes indéfinies d'arguments de sortie comme fin ou trigseq).

## Exemples

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

Exemple 1193. Exemple de l'opcode vtablei.

    <CsoundSynthesizer>
    <CsOptions>
    -odac -B441 -b441
    </CsOptions>
    <CsInstruments>

    sr     =        44100
    kr     =        100
    ksmps  =        441
    nchnls =        2

    gindx init 0

           instr    1
    kindex init 0
    ktrig metro 0.5
    if ktrig = 0 goto noevent
    event "i", 2, 0, 0.5, kindex
    kindex = kindex + 1
    noevent:

    	endin

    	instr	2
    iout1 init 0
    iout2 init 0
    iout3 init 0
    iout4 init 0
    indx = p4
    vtablei  indx, 1, 1, 0, iout1,iout2, iout3, iout4
    print iout1, iout2, iout3, iout4
    turnoff
    	endin

    </CsInstruments>
    <CsScore>
    f 1 0 32 10 1
    i 1 0 20

    </CsScore>
    </CsoundSynthesizer>

## Voir aussi

vtablea, vtablek, vtabi, vtablewi, vtabwi,

## Crédits

Ecrit par Gabriel Maldonado.

Nouveau dans Csound 5 (Auparavant seulement disponible dans CsoundAV)

Précédent | Niveau supérieur | Suivant
vtable1k | Sommaire | vtablek