tablekt

tablekt — Permet de contrôler au taux-k les numéros de table.

Description

Contrôle des numéros de table au taux-k.

L'opcode standard table de Csound, bien que produisant un résultat au taux-k ou au taux-a, ne peut utiliser qu'une variable de taux-i pour choisir le numéro de la table. tablekt accepte un contrôle au taux-k aussi bien qu'au taux-i. Pour le reste, il est semblable à l'opcode original.

Syntaxe

ares tablekt xndx, kfn [, ixmode] [, ixoff] [, iwrap]
kres tablekt kndx, kfn [, ixmode] [, ixoff] [, iwrap]

Initialisation

ixmode -- s'il vaut 0, xndx et ixoff couvrent toute la longueur de la table. S'il est différent de zéro, xndx et ixoff varient de 0 à 1. La valeur par défaut est 0.

ixoff -- s'il vaut 0, l'indice résultant est directement contrôlé par xndx,, démarrant au début de la table. S'il est différent de zéro, l'indexation démarre à l'intérieur de la table. Sa valeur doit être positive et inférieure à la longueur de la table (ixmode = 0) ou inférieure à 1 (ixmode différent de 0). La valeur par défaut est 0.

iwrap -- si iwrap = 0, mode Limite : lorsque l'indice résultant est inférieur à 0, l'indice final vaut 0. Un indice résultant dépassant la longueur de la table donne un indice final égal à la longueur de la table : les indices résultants trop grands se limitent à l'index supérieur de la table. Si iwrap est différent de 0, mode Cyclique : l'indice résultant est replié modulo la longueur de la table de façon à ce que tous les indices résultants tombent dans la table. Par exemple, dans une table de longueur 8, xndx = 5 et ixoff = 6 donnent un indice résultant de 11, qui se replie en un indice final de 3. La valeur par défaut est 0.

Exécution

kndx -- Indice dans la table, un nombre positif compris entre 0 et la longueur de la table (ixmode = 0) ou entre 0 et 1 (ixmode différent de 0).

xndx -- varie sur la longueur de la table (ixmode = 0) ou dans l'intervalle allant de 0 à 1 (ixmode différent de 0).

kfn -- Numéro de table. Doit être >= 1. Les valeurs flottantes sont arrondies à un entier. Si un numéro de table n'indique pas une table valide, ou si la table n'a pas encore été chargée (GEN01) une erreur se produit et l'instrument est désactivé.

[Attention] Attention avec les numéros de table au taux-k

Au taux-k, si un numéro de table < 1 est donné, ou si le numéro de table indique une table inexistante ou une table de longueur nulle (devant être chargée à partie d'un fichier ultérieurement), une erreur se produit et l'instrument est désactivé. kfn doit être initialisé au taux approprié en utilisant init. Si l'on essaie de charger un valeur de taux-i dans kfn, il y aura une erreur.

Exemples

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

Exemple 1070. Exemple de l'opcode tablekt.

Voir les sections Audio en Temps Réel et Options de la Ligne de Commande pour plus d'information sur l'utilisation des options de la ligne de commande.

<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-odac     ;;;realtime audio out
;-iadc    ;;;uncomment -iadc if RT audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o tablekt.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>

sr = 44100
ksmps = 32
nchnls = 2
0dbfs  = 1

seed 0

gift1 ftgen 1, 0, 1024, 10, 1				;sine wave
gift2 ftgen 2, 0, 1024, 10, 1, 1, 1, 1, 1, 1, 1, 1, 1	;pulse


instr 1
andx phasor 400 		;phasor for reading the index
kfn init 1 			;initialize the choice of the function table
kmetro init 1			;initialize the frequency of the metro
knewft metro kmetro		;make a new choice for selecting the function table once a second

if knewft == 1 then
  kfn = (kfn == 1 ? 2 : 1) 	;switch between 1 and 2
  kmetro random .5, 2 		;create new metro frequency
  printk2 kfn
endif

ares tablekt andx, kfn, 1
outs ares,  ares
endin

</CsInstruments>
<CsScore>
i 1 0 10
e
</CsScore>
</CsoundSynthesizer>


Sa sortie comprendra des lignes comme celles-ci :

 i1     2.00000
 i1     1.00000
 i1     2.00000
 i1     1.00000
....

Voir aussi

tableikt

Crédits

Auteur : Robin Whittle
Australie
Mai 1997

Nouveau dans la version 3.47