Classes | UGens > Buffer

WrapIndex : Index : PureUGen : UGen : AbstractFunction : Object

Index into a table with a signal.
Source: Osc.sc

Description

The input signal value is truncated to an integer value and used as an index into the table. Out-of-range index values are wrapped cyclically to the valid range.

Class Methods

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

From superclass: Index

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

From superclass: Index

Arguments:

bufnum

Index of the buffer.

in

The input signal.

mul

Output will be multiplied by this value.

add

This value will be added to the output.

Inherited class methods

Instance Methods

Inherited instance methods

Examples

// indexing into a table
(
{
    var buf = LocalBuf.newFrom([ 200, 300, 400, 500, 600, 800 ]);
    var freq = WrapIndex.kr(buf, MouseX.kr(0, BufFrames.ir(buf) * 3));
    SinOsc.ar(freq) * 0.1
}.play;
)

// the same using a global buffer
(
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(
            WrapIndex.kr(
                bufnum,
                MouseX.kr(0, BufFrames.ir(bufnum) * 3)
            ),
            0,
            0.5
        )
    )
}).play(s, [\bufnum, b.bufnum]);
)