IndexL:
Filter:
Classes | UGens > Buffer

IndexL : Index : PureUGen : UGen : AbstractFunction : Object

Index into a table with a signal, linear interpolated
Source: Osc.sc

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.

Class Methods

IndexL.ar(bufnum, in: 0, mul: 1, add: 0)

From superclass: Index

IndexL.kr(bufnum, in: 0, mul: 1, add: 0)

From superclass: Index

Arguments:

bufnum

index of the buffer.

in

the input signal.

Inherited class methods

Instance Methods

Inherited instance methods

Examples

// 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
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, { |out = 0, bufnum = 0|
    Out.ar(out,
        SinOsc.ar(
            IndexL.kr(
                bufnum,
                LFSaw.kr(2).range(0, BufFrames.kr(bufnum))
            ),
            0,
            0.5
        )
    )
}).play(s, [\bufnum, b]);
)

b.setn(*[ 200, 300, 400, 500, 600, 800 ].scramble.postln - 30);


(
SynthDef(\help_index, { |out = 0, bufnum = 0|
    Out.ar(out,
        SinOsc.ar(
            IndexL.kr(
                bufnum,
                MouseX.kr(0, BufFrames.ir(bufnum))
            ),
            0,
            0.5
        )
    )
}).play(s, [\bufnum, b]);
)

b.free;