--- /dev/null
+// factory methods for controllers
+
+~controllerNextNum = 1;
+~controllers = [];
+
+~makeControlMouseGeneric = {|ugen, prefix|
+ {|min=0.0, max=1.0, warp=0|
+ var synthName = prefix ++ \_dejucyfu_ ++ ~controllerNextNum;
+ var bus = Bus.control;
+ synthName = synthName.asSymbol;
+ SynthDef(synthName, {|kout|
+ Out.kr(kout, ugen.kr(min, max, 1));
+ }).add;
+ fork {
+ 0.5.wait; // to be sure synthdef is finalized on the server
+ ~controllers = ~controllers.add(Synth(synthName, [\kout, bus]));
+ };
+ ~controllerNextNum = ~controllerNextNum + 1;
+ bus.asMap
+ }
+};
+
+~makeControlMouseX = ~makeControlMouseGeneric.(MouseX, \mousex);
+~makeControlMouseY = ~makeControlMouseGeneric.(MouseY, \mousey);
\ No newline at end of file
dur: Pseq([3, 3, 2].split(4)/2, inf),
release: Pwhite(0.5, 1.2)*TempoClock.tempo.reciprocal*0.2,
legato: Pwhite(0.2, 0.4),
- cut: ~testControl.asMap,//Pexprand(400, 3200),
+ cut: ~cont,//Pexprand(400, 3200),
rez: Pwhite(0.6, 0.9),
modFreqMin: 4,
modFreqMax: 11,
- modAmp: Pwhite(0.05, 0.1),
+ modAmp: ~conty, //Pwhite(0.05, 0.1),
pan: Pwhite(-0.2, 0.2) * [-1, 1],
out: a.h,
])).quant_(4).play;
SynthDef(\testmouse, {|kout|
Out.kr(kout, MouseX.kr(400, 12800, 1));
}).add;
-)
\ No newline at end of file
+)
+
+~cont = ~makeControlMouseX.(200, 17000, 1);
+~conty = ~makeControlMouseY.(0.001, 0.8, 0);
\ No newline at end of file