table

table — Accède aux valeurs d'une table par indexation directe.

Description

Accède aux valeurs d'une table par indexation directe.

Syntaxe

ares table andx, ifn [, ixmode] [, ixoff] [, iwrap]
ires table indx, ifn [, ixmode] [, ixoff] [, iwrap]
kres table kndx, ifn [, ixmode] [, ixoff] [, iwrap]

Initialisation

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.

Exécution

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.

Exemples

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>


Voir aussi

tablei, table3, oscil1, oscil1i, osciln