LinLin map a linear range to another linear range

LinLin.ar(in, srclo, srchi, dstlo, dsthi)

LinLin.kr(in, srclo, srchi, dstlo, dsthi)

in - input 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.

// 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;

)