class:: IndexL summary:: Index into a table with a signal, linear interpolated categories:: UGens>Buffer related:: Classes/Index, Classes/IndexInBetween description:: The input signal value is used as an index into the table, with linear interpolation. Out of range index values are clipped to the valid range. classmethods:: method:: ar, kr argument:: bufnum index of the buffer. argument:: in the input signal. examples:: code:: // indexing into a fixed table ( { SinOsc.ar( IndexL.kr( LocalBuf.newFrom([ 200, 300, 400, 500, 600, 800 ].scramble), LFSaw.kr(2.0).range(0, 7) ), 0, 0.5 ) }.play; ) // with mouse control ( { SinOsc.ar( IndexL.kr( LocalBuf.newFrom([ 200, 300, 400, 500, 600, 800 ].scramble), MouseX.kr(0, 7) ), 0, 0.5 ) }.play; ) ( // indexing into a changeable table s = Server.local; t = [ 200, 300, 400, 500, 600, 800 ]; b = Buffer(s, t.size, 1); // alloc and set the values s.listSendMsg( b.allocMsg( b.setnMsg(0, t) ).postln ); SynthDef(\help_index, { arg out = 0, i_bufnum = 0; Out.ar(0, SinOsc.ar( IndexL.kr( i_bufnum, LFSaw.kr(2).range(0, 7) ), 0, 0.5 ) ) }).play(s, [\i_bufnum, b]); ) b.setn(*[ 200, 300, 400, 500, 600, 800 ].scramble.postln - 30); ( SynthDef(\help_index, { arg out = 0, i_bufnum = 0; Out.ar(0, SinOsc.ar( IndexL.kr( i_bufnum, MouseX.kr(0, BufFrames.ir(i_bufnum)) ), 0, 0.5 ) ) }).play(s, [\i_bufnum, b]); ) b.free; ::