vtablewk

vtablewk — Ecrit des vecteurs (dans des tables, ou tableaux de vecteurs).

Description

Cet opcode écrit des vecteurs dans des tables au taux-k.

Syntaxe

vtablewk  kndx, kfn, ixmode, kinarg1 [, kinarg2, kinarg3 , .... , kinargN ]

Initialisation

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).

Exécution

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.

Exemples

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>


Crédits

Ecrit par Gabriel Maldonado.

Exemple écrit par Andrés Cabrera.

Nouveau dans Csound 5 (Auparavant seulement disponible dans CsoundAV)