table — Accède aux valeurs d'une table par indexation directe.
ares table andx, ifn [, ixmode] [, ixoff] [, iwrap]
ires table indx, ifn [, ixmode] [, ixoff] [, iwrap]
kres table kndx, ifn [, ixmode] [, ixoff] [, iwrap]
ifn -- numéro de la table de fonction.
ixmode (facultatif) -- type de l'index. La valeur par défaut est 0.
0 = index brut
1 = normalisé (de 0 à 1)
ixoff (facultatif) -- décalage de l'index. Pour une table dont l'origine est au centre, utiliser taille_table/2 (brut) ou 0.5 (normalisé). La valeur par défaut est 0.
iwrap (facultatif) -- indicateur d'indexation cyclique. La valeur par défaut est 0.
0 = indexation normale (index < 0 traité comme index=0 ; index > taille_table ramené à index=taille_table)
1 = indexation cyclique.
table effectue une consultation de table avec des index variant au taux d'initialisation, de contrôle ou audio. Ces index peuvent être des nombres bruts (0, 1, 2, ..., taille - 1) ou des valeurs normalisées (0 à 1). Les index sont d'abord modifiés par la valeur de décalage puis leur appartenance à un intervalle valable est testée avant la consultation de la table (voir iwrap). Si l'index peut prendre la valeur maximale ou si l'on utilise l'interpolation, la table doit avoir un point de garde. Une table indéxée par un phaseur périodique (voir phasor) simulera un oscillateur.
Voici un exemple de l'opcode table. Il utilise le fichier table.csd.
Exemple 1063. Exemple de l'opcode table.
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 ; Audio out Audio in -odac ;;;realtime audio out ; For Non-realtime ouput leave only the line below: ; -o table.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> ; by Kevin Conder sr = 44100 ksmps = 32 nchnls = 2 0dbfs = 1 instr 1 kndx line 0, p3, 1 ; Vary our index linearly from 0 to 1. ifn = 1 ; Read Table #1 with our index. ixmode = 1 kfreq table kndx, ifn, ixmode a1 oscil .5, kfreq, 2; Generate a sine waveform, use our table values to vary its frequency. outs a1, a1 endin </CsInstruments> <CsScore> f 1 0 1025 -7 200 1024 2000 ; Table #1, a line from 200 to 2,000. f 2 0 16384 10 1 ; Table #2, a sine wave. i 1 0 2 e </CsScore> </CsoundSynthesizer>