tablekt — Permet de contrôler au taux-k les numéros de table.
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.
ares tablekt xndx, kfn [, ixmode] [, ixoff] [, iwrap]
kres tablekt kndx, kfn [, ixmode] [, ixoff] [, iwrap]
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.
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 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. |
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 ....