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 f-table, 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] 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 1111. 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)