LinLin:
Filter:
Classes | UGens > Maths

LinLin : Object

Map a linear range to another linear range
Source: Line.sc

Description

Maps a linear range of values to another linear range of values.

Class Methods

LinLin.ar(in: 0, srclo: 0, srchi: 1, dstlo: 1, dsthi: 2)

LinLin.kr(in: 0, srclo: 0, srchi: 1, dstlo: 1, dsthi: 2)

Arguments:

in

The input signal to convert.

srclo

Lower limit of input range.

srchi

Upper limit of input range.

dstlo

Lower limit of output range.

dsthi

Upper limit of output range.

Inherited class methods

Instance Methods

Inherited instance methods

Examples

// examples:

(
{
    var mod = SinOsc.kr(Line.kr(1, 10, 10));
    SinOsc.ar(LinLin.kr(mod, -1,1, 100, 900)) * 0.1
}.play;
)

// modulating destination values.
(
{
    var mod = LFNoise2.ar(80);
    SinOsc.ar(LinLin.ar(mod, -1,1, MouseX.kr(200, 8000, 1), MouseY.kr(200, 8000, 1))) * 0.1
}.play;
)

// modulating source and destination values.
(
{
    var mod = LFNoise2.ar(80);
    SinOsc.ar(
        LinLin.ar(mod,
            SinOsc.kr(0.2), SinOsc.kr(0.2543),
            MouseX.kr(200, 8000, 1), MouseY.kr(200, 8000, 1)
        )
    ) * 0.1
}.play;
)

linlin and range can be used to create a LinLin implicitly from a ugen, mapping its output values from linear range to an exponential one. The rate is derived from the ugen.

// linlin
(
{
    var mod = LFNoise2.ar(80);
    SinOsc.ar(mod.linlin(-1,1, MouseX.kr(200, 8000, 1), MouseY.kr(200, 8000, 1))) * 0.1
}.play;
)

// range
(
{
    var mod = LFNoise2.ar(80).range(MouseX.kr(200, 8000, 1), MouseY.kr(200, 8000, 1));
    SinOsc.ar(mod) * 0.1
}.play;
)