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