ptable — Accesses table values by direct indexing.
ares ptable andx, ifn [, ixmode] [, ixoff] [, iwrap]
ires ptable indx, ifn [, ixmode] [, ixoff] [, iwrap]
kres ptable kndx, ifn [, ixmode] [, ixoff] [, iwrap]
ifn -- function table number.
ixmode (optional) -- index data mode. The default value is 0.
0 = raw index
1 = normalized (0 to 1)
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.
0 = nowrap (index < 0 treated as index=0; index > tablesize sticks at index=size)
1 = wraparound.
ptable invokes table lookup on behalf of init, control or audio indices. These indices can be raw entry numbers (0, 1, 2,... size - 1) or scaled values (0 to 1). 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.
Here is an example of the ptable opcode. It uses the file ptable.csd.
Example 661. Example of the ptable 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 ; Audio out Audio in No messages -odac -iadc -d ;;;RT audio I/O ; For Non-realtime ouput leave only the line below: ; -o table.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> ; 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 ptable kndx, ifn, ixmode ; Generate a sine waveform, use our table values ; to vary its frequency. a1 oscil 20000, kfreq, 2 out a1 endin </CsInstruments> <CsScore> ; 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 </CsScore> </CsoundSynthesizer>