I'm setting up controls for a Mosaic applet for an arpeggiator (hosted in AUM). My ultimate goal is a single on/off button that starts and stops the arp at the speed it was last set at--for example, 1/4 note>OFF>1/4 note. Sounds simple, but the problem is that within the Mosaic program, CC 127 is the trigger for off, while the rest of the range (CC 0-126) triggers 15 different speeds (1/2 to 1/32, etc.). When I send 127 it turns off, but it's a toggle and CC0 sets the speed to 1/2.
I think the solution is to have a rotary with named steps that send the 16 commands, including 127 for OFF, but that will automaticall revert to the last speed I set it at (e.g. 1/4 or 1/8dotted). I tried many variations of the super-/sub-options and radio buttons but I can't get it to work. I can get radio buttons to work using "Bounce to Previous Button," but only if I press the buttons on the screen, not with a supercontrol. Is there some way to save and recall the last speed value automatically and control it all from a button (that I can copy and put on other pages)?
I can't just bypass the arp because the midi signals for the target synth go through the arp: When OFF it's passing all notes through.
I could solve the problem by routing the signal around the arps, but I have four separate Mosaic arps receiving separately from two hardware keyboards in my setup and that would add eight tracks to an already complex setup. Which is why I'm hoping for an elegant solution in MD. Also, I'm using this question to learn more advanced features of MD. I'm intrigued to see the solution that's been eluding me.
The truest solution would be a programming tweak to the Mosaic program to add a separate OFF function separate from the speed controls. If anybody here knows Mosaic (I'm not a programmed), I'd love to hear from you. As far as I can tell, this arp applet is public domain and this fix could help other users, not just me.
But for now, I'd just like some tips as to how to get MD to do this. I'm confident it can, I just don't see it.
Thanks,
Steve