From 94be9f50f7dc5684fe3354a9187079e511373c97 Mon Sep 17 00:00:00 2001 From: Mike Lynch Date: Sun, 27 Mar 2022 12:05:42 +1100 Subject: [PATCH] Receiving messages from a basic linear control --- classes/TouchOSC.sc | 14 ++++- classes/TouchOSCControl.sc | 110 +++++++++++++++++++++++++++---------- 2 files changed, 92 insertions(+), 32 deletions(-) diff --git a/classes/TouchOSC.sc b/classes/TouchOSC.sc index 9b3f899..c62dc8b 100644 --- a/classes/TouchOSC.sc +++ b/classes/TouchOSC.sc @@ -14,11 +14,21 @@ TouchOSC { controls = (); } - add { | name, control | - controls.put(name, control) + add1d { | url, min, max, default, apply | + var scale = TouchOSCScale(min, max, default); + controls.put(url, TouchOSCControl(url, scale, apply)); } + add2d { | name, scale1, scale2, apply | + + } + + addradio { | name, apply | + } + } + + // // TODO: each of these needs to be able to write its value back // // to its TouchOSC control - this should be a fairly simple // // method like ~ctrlset and ~ctrlget diff --git a/classes/TouchOSCControl.sc b/classes/TouchOSCControl.sc index 0f4900d..d91d331 100644 --- a/classes/TouchOSCControl.sc +++ b/classes/TouchOSCControl.sc @@ -1,6 +1,4 @@ -// fader, xy, radial, encoder, radar, radio, group, pager, grid - // 1d - fader, radial // 2d - xy, radar @@ -8,38 +6,90 @@ // radio -// OSCControl { -// var value -// apply.value(value) -// } -// } +// ~ctrlexpset = { | self, msg | self.v = msg[1].linexp(0, 1, self.min, self.max); }; +// +// ~ctrlexpget = { | self | self.v.linlin(self.min, self.max, 0, 1) }; // // -// OSCdef.new( -// 'osc' ++ name, -// { | msg | -// settings.at(name).ctrlset(msg); -// settings.at(name).apply() }, -// url -// ); +// // getter and setter for an x-y control - the default, max and min are arrays +// // of [ x, y ] pairs // +// // note: msg is what we get from the OSC and x = 1, y = 2 // +// ~ctrlxyset = { +// | self, msg | +// self.v[0] = msg[1].linlin(0, 1, self.min[0], self.max[0]); +// self.v[1] = msg[2].linlin(0, 1, self.min[1], self.max[1]); +// }; // -// } \ No newline at end of file +// ~ctrlxyget = { +// | self | +// var vals = [ 0, 0 ]; +// vals[0] = self.v[0].linlin(self.min[0], self.max[0], 0, 1); +// vals[1] = self.v[1].linlin(self.min[1], self.max[1], 0, 1); +// vals; +// };