ahhh, gotcha – this is cool! it sorta asks for cranes to be more like a mellotron, which requires a slight extension of the script to track offsets for each voice. here’s a WIP refactor.
osc + norns
generally, there are two basic approaches to use OSC with norns – one where the OSC names are hard-coded into the script (for cases where script controls are not mirrored by the PARAMS) and one where you simply address the OSC names of the PARAMS you wish to control (for cases where script controls are all mirrored by the PARAMS).
the WIP refactor I shared roots all the script controls you’re describing into the PARAMS, so we can go with the simpler of the two approaches.
it might be best to share the TouchOSC file here, but basically you can follow these steps to address the PARAMS: https://monome.org/docs/norns/play/#osc
getting OSC names
by navigating to PARAMETERS > MAP, you can see the OSC names for all parameters.
to confirm you’re looking at the right thing, some of the OSC names for cranes are:
-
speed_voice_1 and speed_voice_2: octaves, controlled by your V-Pitch sliders
-
offset_1 and offset_2: semitones, controlled by your keyboard buttons
-
vol_1 and vol_2: levels, controlled by your Level sliders
…and so on for filter, res, panning, etc
sizing
the only wiggly thing is going to be figuring out the right ranges – eg. /param/speed_voice_1 11 should bring voice 1 to 4x speed because the list of speeds is {-4,-2,-1,-0.5,-0.25,0,0.25,0.5,1,2,4} and the 11th item is 4x. ymmv on the best UI config for these cases.
with that in mind, try mapping volume first just to confirm things are working as expected. eg. /param/vol_1 0.2 should set the lvl out voice 1 param to 0.2
hope this helps! lmk where things get weird 