table

Name

table --  Accesses table values by direct indexing.

Description

Accesses table values by direct indexing.

Syntax

ar table andx, ifn [, ixmode] [, ixoff] [, iwrap]
ir table indx, ifn [, ixmode] [, ixoff] [, iwrap]
kr table kndx, ifn [, ixmode] [, ixoff] [, iwrap]

Initialization

ifn -- function table number.

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

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.

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 files table.orc and table.sco.

Example 15-1. Example of the table opcode.

/* table.orc */
; Initialize the global variables.
sr = 44100
kr = 4410
ksmps = 10
nchnls = 1

; Instrument #1.
instr 1
  ; Vary our index linearly from 0 to 1.
  kndx line 0, p3, 1

  ; Read Table #1 with our index.
  ifn = 1
  ixmode = 1
  kfreq table kndx, ifn, ixmode

  ; Generate a sine waveform, use our table values 
  ; to vary its frequency.
  a1 oscil 20000, kfreq, 2
  out a1
endin
/* table.orc */
        
/* table.sco */
; Table #1, a line from 200 to 2,000.
f 1 0 1025 -7 200 1024 2000
; Table #2, a sine wave.
f 2 0 16384 10 1

; Play Instrument #1 for 2 seconds.
i 1 0 2
e
/* table.sco */
        

See Also

tablei, table3, oscil1, oscil1i, osciln

Credits

Example written by Kevin Conder.