here's a simple example:
say i have a single ramp from 0 to 1 over 1000ms stored in a table at 44100 hz. The table will be 44100 samples long.
if i choose sample #0, then the value will be 0
if i choose sample #22050, the value will be (very close to) 0.5
if i choose sample #44099, the value will be 1
all of those sample #numbers, are the 'index'. And PD can read them in a variety of ways.
for example, with [tabread], you can get a simple float output:
[4410(
|
[tabread mytable]
because the table is 44100 samples long, then 4410 will be equal to (or very close to) 0.1
similarly, we can use [tabread~] with signals to drive the index, rather than floats.
so, for example, the following construct will oscillate our table from index 0 to 44100 and back again in a sinewave form. (We first scale the sinewave to 0 to 1 range, because normally [osc~] goes from -1 to 1)
[osc~]
|
[+~ 1]
|
[*~ 0.5]
|
[*~ 44100]
|
[tabread~]
|