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 use rounding of the index.
Here is an example of the tab opcode. It uses the file tab.csd.
Example 983. 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>