vtablewk — Ecrit des vecteurs (dans des tables, ou tableaux de vecteurs).
ixmode - mode d'indexation. La valeur par défaut est 0.
== 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.
kinarg1...kinargN - Composantes du vecteur d'entrée.
Cet opcode est utile dans tous les cas où il faut écrire 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 (kinarg1, kinarg2, kinarg3, ..., kinargN).
vtablewk 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 vtablewk, afin de corriger d'éventuelles valeurs hors-limites.
Voici un exemple de l'opcode vtablewk. Il utilise le fichier vtablewk.csd.
Exemple 1207. Exemple de l'opcode vtablewk.
<CsoundSynthesizer> <CsOptions> ;-ovtablewa.wav -W -b441 -B441 -odac -b441 -B441 </CsOptions> <CsInstruments> sr=44100 kr=441 ksmps=100 nchnls=2 instr 1 ilen = ftlen(1) knew1 oscil 10000, 440, 3 knew2 oscil 15000, 440, 3, 0.5 kindex phasor 0.3 asig oscil 1, sr/ilen , 1 vtablewk kindex*ilen, 1, 0, knew1, knew2 out asig,asig endin </CsInstruments> <CsScore> f1 0 262144 -1 "beats.wav" 0 4 0 f2 0 262144 2 0 f3 0 1024 10 1 i1 0 10 </CsScore> </CsoundSynthesizer>