<- C I ->

table, tablei,able, tablei, table, tablei, oscil1, oscil1i

     ir   table          indx, ifn[, ixmode][, ixoff][, iwrap]
     ir   tablei         indx, ifn[, ixmode][, ixoff][, iwrap]
     kr   table          kndx, ifn[, ixmode][, ixoff][, iwrap]
     kr   tablei         kndx, ifn[, ixmode][, ixoff][, iwrap]
     ar   table          andx, ifn[, ixmode][, ixoff][, iwrap]
     ar   tablei         andx, ifn[, ixmode][, ixoff][, iwrap]
     kr   oscil1         idel, kamp, idur, ifn
     kr   oscil1i        idel, kamp, idur, ifn 
Table values are accessed by direct indexing or by incremental sampling.

INITIALIZATION

ifn - function table number. tablei, oscil1i require the extended guard point.

ixmode (optional) - ndx data mode. 0 = raw ndx, 1 = normalized (0 to 1). The default value is 0.

ixoff (optional) - amount by which ndx 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 ndx flag. 0 = nowrap (ndx < 0 treated as ndx=0; ndx > tablesize sticks at ndx=size), 1 = wraparound. The default value is 0.

idel - delay in seconds before oscil1 incremental sampling begins.

idur - duration in seconds to sample through the oscil1 table just once. A zero or negative value will cause all initialization to be skipped.

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

oscil1 accesses values by sampling once through the function table at a rate determined by idur. For the first idel seconds, the point of scan will reside at the first location of the table; it will then begin moving through the table at a constant rate, reaching the end in another idur seconds; from that time on (i.e. after idel + idur seconds) it will remain pointing at the last location. Each value obtained from sampling is then multiplied by an amplitude factor kamp before being written into the result.

tablei and oscil1i are interpolating units in which the fractional part of ndx is used to interpolate between adjacent table entries. The smoothness gained by interpolation is at some small cost in execution time (see also oscili, etc.), but the interpolating and non-interpolating units are otherwise interchangeable. Note that when tablei uses a periodic index whose modulo n is less than the power of 2 table length, the interpolation process requires that there be an (n + 1)th table value that is a repeat of the 1st ( see F statement in Score).

<- C I ->
Prepared from the MIT Media Lab Csound Manual, PJN, Nov 1994.