vtablek — Lit des vecteurs (à partir de tables, ou tableaux de vecteurs).
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).
kndx - 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).
kfn - numéro de la table.
kinterp - bascule entre sortie interpolée ou non-interpolée. 0 -> pas d'interpolation, différent de zéro -> interpolation activée.
kout1...koutN - composantes du vecteur de sortie.
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 (kout1, kout2, kout3, ..., koutN).
vtablek permet à l'utilisateur de basculer entre sortie interpolée ou non-interpolée au taux-k au moyen de l'argument kinterp.
vtablek permet aussi de changer le numéro de table au taux-k (mais ceci n'est possible que si les trames de vecteur de chaque table utilisée ont le même nombre d'éléments, sinon il peut y avoir des résultats imprévisibles), ainsi que de choisir le style d'indexation (brute ou normalisée, voir aussi l'argument ixmode de l'opcode table).
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 vtablek, afin de corriger d'éventuelles valeurs hors-limites.
Voici un exemple de l'opcode vtablek. Il utilise le fichier vtablek.csd.
Exemple 1206. Exemple de l'opcode vtablek.
<CsoundSynthesizer> <CsOptions> -odac -B441 -b441 </CsOptions> <CsInstruments> sr = 44100 kr = 100 ksmps = 441 nchnls = 2 gkindx init -1 instr 1 kindex init 0 ktrig metro 0.5 if ktrig = 0 goto noevent gkindx = gkindx + 1 noevent: endin instr 2 kout1 init 0 kout2 init 0 kout3 init 0 kout4 init 0 vtablek gkindx, 1, 1, 0, kout1,kout2, kout3, kout4 printk2 kout1 printk2 kout2 printk2 kout3 printk2 kout4 endin </CsInstruments> <CsScore> f 1 0 32 10 1 i 1 0 20 i 2 0 20 </CsScore> </CsoundSynthesizer>