table

table — Accesses table values by direct indexing.

Description

Accesses table values by direct indexing.

Syntax

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

Initialization

ifn -- function table number.

ixmode (optional) -- index data mode. The default value is 0.

  • 0 = raw index

  • 1 = normalized (0 to 1)

ixoff (optional) -- amount by which index is to be offset. For a table with origin at center, use tablesize/2 (raw) or .5 (normalized). The default value is 0.

iwrap (optional) -- wraparound index flag. The default value is 0.

  • 0 = nowrap (index < 0 treated as index=0; index > tablesize sticks at index=size)

  • 1 = wraparound.

Performance

table invokes table lookup on behalf of init, control or audio indices. These indices can be raw entry numbers (0,l,2...size - 1) or scaled values (0 to 1-e). Indices are first modified by the offset value then checked for range before table lookup (see iwrap). If index is likely to be full scale, or if interpolation is being used, the table should have an extended guard point. table indexed by a periodic phasor ( see phasor) will simulate an oscillator.

Examples

Here is an example of the table opcode. It uses the file table.csd.

Example 1089. Example of the table opcode.

See the sections Real-time Audio and Command Line Flags for more information on using command line flags.

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


See Also

Table Access

More information on this opcode: http://www.csoundjournal.com/issue12/genInstruments.html , written by Jacob Joaquin