tab — Fast table opcodes.
Fast table opcodes. Faster than table and tablew because it does not allow wrap-around and limit and it does not check index validity. Has been implemented in order to provide fast access to arrays.
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]
ifn -- table number
ixmode -- defaults to zero. If zero xndx range matches the length of the table; if non zero xndx has a 0 to 1 range.
isig -- input value to write.
indx -- table index
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.
Here is an example of the tab opcode. It uses the file tab.csd.
Example 990. 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, 0, 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>