LinPan2 : UGen
{
// linear stereo pan
*ar { arg in, pan;
^this.multiChannelPerform('ar1', in, pan)
}
*kr { arg in, pan;
^this.multiChannelPerform('kr1', in, pan)
}
*ar1 { arg in, pan;
//pan = pan.clip2(1) * 0.5 + 0.5;
pan = pan * 0.5 + 0.5;
^[in * (1.0 - pan), in * pan]
}
*kr1 { arg in, pan;
//pan = pan.clip2(1) * 0.5 + 0.5;
pan = pan * 0.5 + 0.5;
^[in * (1.0 - pan), in * pan]
}
}
LinPan4 : UGen
{
// linear quad pan
*ar { arg in, xpan0, ypan0;
^this.multiChannelPerform('ar1', in, xpan0, ypan0)
}
*kr { arg in, xpan0, ypan0;
^this.multiChannelPerform('kr1', in, xpan0, ypan0)
}
*ar1 { arg in, xpan0, ypan0;
var xpan1, ypan1, inx0,
inx1;
xpan0 = xpan0.clip2(1) * 0.5 + 0.5;
ypan0 = ypan0.clip2(1) * 0.5 + 0.5;
xpan1 = 1.0 - xpan0;
ypan1 = 1.0 - ypan0;
inx0 = in * xpan0;
inx1 = in * xpan1;
^[inx1 * ypan0, inx0 * ypan0, inx1 * ypan1, inx0 * ypan1]
}
*kr1 { arg in, xpan0, ypan0;
var xpan1, ypan1, inx0,
inx1;
xpan0 = xpan0.clip2(1) * 0.5 + 0.5;
ypan0 = ypan0.clip2(1) * 0.5 + 0.5;
xpan1 = 1.0 - xpan0;
ypan1 = 1.0 - ypan0;
inx0 = in * xpan0;
inx1 = in * xpan1;
^[inx1 * ypan0, inx0 * ypan0, inx1 * ypan1, inx0 * ypan1]
}
}
LinXFade2 : UGen
{
// linear stereo cross fade
*ar { arg l, r, pan;
^this.multiChannelPerform('ar1', l, r, pan)
}
*kr { arg l, r, pan;
^this.multiChannelPerform('kr1', l, r, pan)
}
*ar1 { arg l, r, pan;
pan = pan.clip2(1) * 0.5 + 0.5;
^l + (pan * (r - l))
}
*kr1 { arg l, r, pan;
pan = pan.clip2(1) * 0.5 + 0.5;
^l + (pan * (r - l))
}
}
LinXFade4 : UGen
{
// quad stereo cross fade
*ar { arg lf, rf, lb, rb, xpan,
ypan;
^this.multiChannelPerform('ar1', lf, rf, lb, rb, xpan, ypan)
}
*kr { arg lf, rf, lb, rb, xpan,
ypan;
^this.multiChannelPerform('kr1', lf, rf, lb, rb, xpan, ypan)
}
*ar1 { arg lf, rf, lb, rb, xpan,
ypan;
var front, back;
xpan = 0.5 * xpan.clip2(1) + 0.5;
ypan = 0.5 * ypan.clip2(1) + 0.5;
front = lf + (xpan * (rf - lf));
back = lb + (xpan * (rb - lb));
^back + (ypan * (front - back))
}
*kr1 { arg lf, rf, lb, rb, xpan,
ypan;
var front, back;
xpan = 0.5 * xpan.clip2(1) + 0.5;
ypan = 0.5 * ypan.clip2(1) + 0.5;
front = lf + (xpan * (rf - lf));
back = lb + (xpan * (rb - lb));
^back + (ypan * (front - back))
}
}
This page was created by SimpleText2Html 1.0.3 on 22-Feb-100.