tab
Prev | Orchestra Opcodes and Operators | Next

## tab

tab — Fast table opcodes.

## Description

Fast table opcodes. Faster than table and tablew because don't allow wrap-around and limit and don't check index validity. Have been implemented in order to provide fast access to arrays. Support non-power of two tables (can be generated by any GEN function by giving a negative length value).

## Syntax

    ir tab_i indx, ifn[, ixmode]

    kr tab kndx, ifn[, ixmode]

    ar tab xndx, ifn[, ixmode]

    tabw_i isig, indx, ifn [,ixmode]

    tabw ksig, kndx, ifn [,ixmode]

    tabw asig, andx, ifn [,ixmode]

## Initialization

ifn -- table number

ixmode -- defaults to zero. If zero xndx and ixoff ranges match the length of the table; if non zero xndx and ixoff have a 0 to 1 range.

isig -- input value to write.

indx -- table index

## Performance

asig, ksig -- input signal to write.

andx, kndx -- table index.

tab and tabw opcodes are similar to table and tablew, but are faster and support tables having non-power-of-two length.

Special care of index value must be taken into account. Index values out of the table allocated space will crash Csound.

## Examples

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

Example 831. Example of the tab 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
    -odac    ;;;realtime audio out
    ;-iadc    ;;;uncomment -iadc if realtime audio input is needed too
    ; For Non-realtime ouput leave only the line below:
    ; -o tab.wav -W ;;; for file output any platform
    </CsOptions>
    <CsInstruments>

    sr = 44100
    ksmps = 32
    nchnls = 2
    0dbfs  = 1

    gifn1 ftgen 1, 0, 0, 1, "flute.aiff", 0, 4, 0	;deferred-size table

    instr 1

    atab  init 0
    isize tableng 1					;length of table?
    print isize
    andx  phasor 1 / (isize / sr)
    asig  tab andx, 1, 1				;has a 0 to 1 range
          outs asig, asig

    endin
    </CsInstruments>
    <CsScore>

    i 1 0 2.3
    e
    </CsScore>
    </CsoundSynthesizer>

## Credits

Written by Gabriel Maldonado.

Prev | Up | Next
tb | Home | tabrec