Files
BuboQuark/Classes/BuboNodeProxy.sc

100 lines
2.4 KiB
Python

+ NodeProxy {
/* Simple FX chain management */
fx {
arg number=1, wet=1, function = {|in| in};
this[number] = \filter -> function;
if (wet > 1, {wet = 1});
this.set(("wet" ++ number).asSymbol, wet);
^this;
}
fx1 { arg wet, function; this.fx(100, wet, function); }
fx2 { arg wet, function; this.fx(200, wet, function); }
fx3 { arg wet, function; this.fx(300, wet, function); }
fx4 { arg wet, function; this.fx(400, wet, function); }
fx5 { arg wet, function; this.fx(500, wet, function); }
fx6 { arg wet, function; this.fx(600, wet, function); }
fx7 { arg wet, function; this.fx(700, wet, function); }
fx8 { arg wet, function; this.fx(800, wet, function); }
fx9 { arg wet, function; this.fx(900, wet, function); }
wet { arg number=1, wet=1;
this.set(("wet" ++ number).asSymbol, wet);
^this;
}
xwet { arg number=1, wet=1;
this.xset(("wet" ++ number).asSymbol, wet);
^this;
}
fxin {
arg number=1, wet=1, function = {|in| in};
this[number] = \filterIn -> function;
this.set(("wet" ++ number).asSymbol, wet);
^this;
}
/* Syntax for sending MIDI messages */
>> {
arg pattern;
pattern = EventShortener.findShortcuts(pattern);
pattern = pattern ++ [type: 'midi'];
this[0] = Pbind(*pattern);
this.quant = 4; this.fadeTime = 0.01;
^this
}
/* Player-like syntax sugar */
=> {
arg pattern;
pattern = EventShortener.findShortcuts(pattern);
pattern = pattern ++ [\type, \buboEvent];
this[0] = Pbind(*pattern);
this.quant = 4; this.fadeTime = 0.01;
^this
}
/* FIX: Completely broken. What is the event type
* BuboEvent should fall back to after tweaking
* the pattern to my liking?
*/
-> {
arg pattern;
pattern = EventShortener.findShortcuts(pattern);
// pattern = pattern ++ [\type, \buboMonoEvent];
this[0] = Pmono(*pattern);
this.quant = 4;
this.fadeTime = 0.01;
}
f {
arg value;
this.fadeTime = value;
^this
}
p {
arg quant, fade;
this.quant = quant;
this.fadeTime = fade;
this.play(fadeTime: fade);
^this
}
s {
arg duration;
this.stop(fadeTime: duration)
^this
}
/ {
arg pattern;
this.stop(1);
^this
}
}