Table값은 direct indexing이나, 증가하는 sampling에 의해 입력되어진다.
i/kr tablei indx, ifn[, ixmode[, ixoff[, iwrap]]]
-ifn ; f-table number. 확장된 guard poing값을 요구한다.
-ixmode (optional); index data mode. Default 값은 0.
0 = index그대로.
1 = nomalized(0 에서 1까지)
-ixoff (optional); index가 offset되기 위한 총량. 중앙에서 발생하는 테이블을 위하여, tablesize/2(raw)또는, 5(nomalized)를 사용한다. default값은 0.
-iwrap (optional); wraparound index flag
0 = nowrap(index<0 은 index를 0으로 취급하며, index table size는 index와 size가 맞게 맞춘다.)
1 = wraparound
table은 control 또는 audio인덱스튿의 초기값을 대신하여 테이블 검색(lookup)을 요구한다. 이 인덱스들은, 입력된 숫자 그대로가 될수도 있으며, 0에서 1까지로 scale된 값이 될수도 있다. 인덱스들은, 검색테이블 전의 영역을 검사할깨 offset값에 의해 첫번째로 수정된다. 만약, 인덱스값이 전체가 scale할것 같거나, 내삽값이 사용하려한다면, 그 테이블은 확장된 guard point를 가지고 있어야 한다. 주기적인 phasor에 의해 인덱스된 table은 ocillator의 simulate가 될것이다.
Example
/* table.orc */
; 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 table kndx, ifn, ixmode
; Generate a sine waveform, use our table values
; to vary its frequency.
a1 oscil 20000, kfreq, 2
out a1
endin
/* table.orc */
/* table.sco */
; 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
/* table.sco */