Two-way controller/MIDI-CC mapping

Post Reply
User avatar
queries
Posts: 316
Joined: Tue May 10, 2016 9:51 pm

Two-way controller/MIDI-CC mapping

Post by queries »

A global option (and/or a flag per MIDI mapping) to reflect SunVox module controller values back out to a MIDI mapped controller would be cool.

I suppose it would have to be rate-limited in some way since many SunVox controllers can be updated at audio-rate frequency. It would also need to account for the mapping curve.

I recently picked up a MIDI controller with endless encoders and visual position indicators. If you send a CC to it, it will update the value for that encoder and show the updated position.

This kind of feedback would allow two-way interaction. Any changes to the controller in SunVox would be reflected on the hardware, ensuring that value changes on the hardware would end up near the value already in the SunVox controller, instead of instantly jumping to the last value set via the MIDI.
User avatar
queries
Posts: 316
Joined: Tue May 10, 2016 9:51 pm

Re: Two-way controller/MIDI-CC mapping

Post by queries »

For what it's worth, you can simulate this now by doing this:

MultiCtl, connected to MultiSynth, output controller 0x80 + the CC number, range 0-32767. MultiSynth MIDI out set to the hardware controller. This provides the MIDI-out feedback to the MIDI hardware so it will update to the current value of the MultiCtl.

The MultiCtl is also connected to your destination module and mapped to the controller of your choice.

Then, the value controller of the MultiCtl is MIDI-in mapped to the MIDI hardware.

Optional: The MultiCtl is also connected to an Amplifier, controlling DC offset from 16384 to 32768 (maps to 0 to +128), so you can visualize where the current value of the controller is via linear level visualization on the Amplifier. You can get even fancier by having one Amp at DC offset +128 feed into another Amp, and then control the second amp's Fine volume from the MultiCtl, from 0 to 32768.

I've confirmed that the above works, although this all requires a fair bit of up-front setup, so I will probably write a script to automate the boring bits of creating a template... there is also a level of indirection, in that to maintain the two-way mapping, you have to never directly manipulate the desired SunVox controller. Instead you have to always manipulate the MultiCtl value that maps to it.

It illustrates the objective using existing SunVox features, and also shows how having a built-in controller MIDI out feedback could make the setup much simpler to manage and more fun/spontaneous.

(BTW, with this feature... if someone sets up 2+ SunVox controllers mapped to the same MIDI hardware knob, that's on them to figure out how they want to manage that. The behavior would be that moving the knob would change both SunVox controllers. Changing one of the SunVox controllers would cause the MIDI out to be sent to the hardware. The new value on the hardware would reflect only the last controller changed inside of SunVox, but would not cause the other SunVox controllers to change.)
Post Reply