// an ExternalControlSource is used as an argument for the Plug UGen.
// warps for external control sources can
be either 'linear', or 'exponential' currently.
// if exponential, then minval and maxval
must be non zero and have the same sign.
ExternalControlSource {
var <>minval = 0.0, <>maxval
= 1.0, <>warp = 'linear';
*new { arg minval = 0.0, maxval
= 1.0, warp = 'linear';
^super.new.setRange(minval, maxval, warp).activate;
}
setRange { arg argMinVal, argMaxVal,
argWarp;
minval = argMinVal;
maxval = argMaxVal;
warp = argWarp;
}
value {
_ExternalControlSource_Value
^this.primitiveFailed
}
// PRIVATE
activate {
// initializes raw data part to
access host specific external data
_ExternalControlSource_Activate
^this.primitiveFailed
}
}
MIDIController : ExternalControlSource {
var <>channel = 1, <>controller
= 7;
*new { arg channel = 1, controller
= 7, minval = 0.0, maxval = 1.0, warp = 'linear';
^super.new(minval, maxval, warp).initMIDIController(channel,
controller);
}
*kr { arg channel = 1, controller
= 7, minval = 0.0, maxval = 1.0,
warp = 'linear',
lagTime = 0.1;
^Plug.kr(this.new(channel, controller, minval, maxval, warp),
lagTime)
}
initMIDIController { arg argChannel,
argController;
channel = argChannel;
controller = argController;
}
}
MIDIPolyTouch : ExternalControlSource {
var <>channel = 1, <>key
= 60;
*new { arg channel = 1, key =
60, minval = 0.0, maxval = 1.0, warp = 'linear';
^super.new(minval, maxval, warp).initMIDIPolyTouch(channel,
key);
}
*kr { arg channel = 1, key =
60, minval = 0.0, maxval = 1.0,
warp = 'linear',
lagTime = 0.1;
^Plug.kr(this.new(channel, key, minval, maxval, warp), lagTime)
}
initMIDIPolyTouch { arg argChannel,
argKey;
channel = argChannel;
key = argKey;
}
}
MIDINoteGate : ExternalControlSource {
var <>channel = 1, <>key
= 60;
*new { arg channel = 1, key =
60, minval = 0.0, maxval = 1.0;
^super.new(minval, maxval).initMIDINoteGate(channel, key);
}
*kr { arg channel = 1, key =
60, minval = 0.0, maxval = 1.0, lagTime = 0.1;
^Plug.kr(this.new(channel, key, minval, maxval), lagTime)
}
initMIDINoteGate { arg argChannel,
argKey;
channel = argChannel;
key = argKey;
}
}
MIDIPitchBend : ExternalControlSource {
var <>channel = 1;
*new { arg channel = 1, minval
= -1.0, maxval = 1.0, warp = 'linear';
^super.new(minval, maxval, warp).initMIDIPitchBend(channel);
}
*kr { arg channel = 1, minval
= -1.0, maxval = 1.0,
warp = 'linear',
lagTime = 0.1;
^Plug.kr(this.new(channel, minval, maxval, warp), lagTime)
}
initMIDIPitchBend { arg argChannel;
channel = argChannel;
}
}
MIDITouch : ExternalControlSource
{
var <>channel = 1;
*new { arg channel = 1, minval
= 0.0, maxval = 1.0, warp = 'linear';
^super.new(minval, maxval, warp).initMIDITouch(channel);
}
*kr { arg channel = 1, minval
= 0.0, maxval = 1.0,
warp = 'linear',
lagTime = 0.1;
^Plug.kr(this.new(channel, minval, maxval, warp), lagTime)
}
initMIDITouch { arg argChannel;
channel = argChannel;
}
}
MIDIProgram : ExternalControlSource
{
var <>channel = 1;
*new { arg channel = 1, minval
= 0.0, maxval = 127.0, warp = 'linear';
^super.new(minval, maxval, warp).initMIDIProgram(channel);
}
*kr { arg channel = 1, minval
= 0.0, maxval = 1.0,
warp = 'linear',
lagTime = 0.1;
^Plug.kr(this.new(channel, minval, maxval, warp), lagTime)
}
initMIDIProgram { arg argChannel;
channel = argChannel;
}
}
MIDIMostRecentNote : ExternalControlSource {
var <>channel = 1;
*new { arg channel = 1, minval
= 0.0, maxval = 127.0, warp = 'linear';
^super.new(minval, maxval, warp).initMIDIMostRecentNote(channel);
}
*kr { arg channel = 1, minval
= 0.0, maxval = 127.0,
warp = 'linear',
lagTime = 0.0;
^Plug.kr(this.new(channel, minval, maxval, warp), lagTime)
}
initMIDIMostRecentNote { arg
argChannel;
channel = argChannel;
}
}
MIDIMostRecentVelocity : ExternalControlSource {
var <>channel = 1;
*new { arg channel = 1, minval
= 0.0, maxval = 1.0, warp = 'linear';
^super.new(minval, maxval, warp).initMIDIMostRecentVelocity(channel);
}
*kr { arg channel = 1, minval
= 0.0, maxval = 1.0,
warp = 'linear',
lagTime = 0.1;
^Plug.kr(this.new(channel, minval, maxval, warp), lagTime)
}
initMIDIMostRecentVelocity { arg
argChannel;
channel = argChannel;
}
}
MouseAxis : ExternalControlSource
{
var <>axis = 'x'; // or 'y'
*kr { arg minval = 0.0, maxval
= 1.0, warp = 'linear', lagTime
= 0.1;
^Plug.kr(this.new(minval, maxval, warp), lagTime)
}
}
MouseX : MouseAxis
{
*new { arg minval = 0.0, maxval
= 1.0, warp = 'linear';
^super.new(minval, maxval, warp);
}
}
MouseY : MouseAxis
{
*new { arg minval = 0.0, maxval
= 1.0, warp = 'linear';
^super.new(minval, maxval, warp).axis_('y');
}
}
This page was created by SimpleText2Html 1.0.3 on 22-Feb-100.