diff --git a/classes/TouchOSC.sc b/classes/TouchOSC.sc index 74be58d..6b705e1 100644 --- a/classes/TouchOSC.sc +++ b/classes/TouchOSC.sc @@ -17,27 +17,41 @@ TouchOSC { net.sendMsg(url, *oargs) } - addbutton { | url, default, apply | + button { | url, default, apply | var ctrl = TouchOSCControl(this, url, apply, default); ctrl.init(); controls.put(url, ctrl); ^ctrl; } - addslider { | url, default, scale, apply | + slider { | url, default, scale, apply | var ctrl = TouchOSCControlScale(this, url, apply, default, scale); ctrl.init(); controls.put(url, ctrl); ^ctrl; } - addxy { | url, default, scale1, scale2, apply | + xy { | url, default, scale1, scale2, apply | var ctrl = TouchOSCControlXY(this, url, apply, default, scale1, scale2); ctrl.init(); controls.put(url, ctrl); ^ctrl; } + v { | url | + ^if( controls.at(url).isNil.not, { + controls.at(url).value + }, + nil + ); + } + + v_ { | url, v | + ^if( controls.at(url).isNil.not, { + controls.at(url).value_(v) + }, + nil); + } } diff --git a/classes/TouchOSCControl.sc b/classes/TouchOSCControl.sc index 0dbb58a..d8395ac 100644 --- a/classes/TouchOSCControl.sc +++ b/classes/TouchOSCControl.sc @@ -10,17 +10,19 @@ TouchOSCControl { init { OSCdef.new( 'osc' ++ url, - { | msg | + { | msg, time | value = msg[1]; - apply.value(value) + apply.value(value, time) }, url ); + apply.value(value, 0); this.send(); } value_ { |newval| value = newval; + apply.value(value, 0); this.send(); } @@ -39,15 +41,20 @@ TouchOSCControlScale : TouchOSCControl { init { OSCdef.new( 'osc' ++ url, - { | msg | + { | msg, time | value = scale.tovalue(msg[1]); - apply.value(value); + apply.value(value, time); }, url ); + apply.value(value, 0); this.send(); } + send { + touchOSC.send(url, scale.toctrl(value)); + } + } TouchOSCControlXY : TouchOSCControl { @@ -60,18 +67,19 @@ TouchOSCControlXY : TouchOSCControl { init { OSCdef.new( 'osc' ++ url, - { | msg | + { | msg, time | value[0] = scale1.tovalue(msg[1]); value[1] = scale2.tovalue(msg[2]); - apply.value(value); + apply.value(value, time); }, url ); + apply.value(value, 0); this.send(); } send { - touchOSC.send(url, value[0], value[1]); + touchOSC.send(url, scale1.toctrl(value[0]), scale2.toctrl(value[1])); } }