Hi, I am using Melbourne Instruments Roto-Control (motorized knobs) in MIDI mode and I experience “friction” in the knobs if Gig Performer or Ableton Live are sending the CC values back to the device. While that may be an issue of the device not handling loops correctly, I want to fix it with software for now.
I want to debounce MIDI messages going back into the device so that the knobs operate smoothly but are updated with the latest value after a period of “silence”. I can use BMT with setting/killing timers but it seems that I would need to have multiple transformers for each CC so that they operate independently of each other (and at least 256 variables). Is there a way to implement this transformation for all CCs on one channel in one go? Using proxy/virtual ports is fine as the software I am using allows to define any in/out port for the connected device.
I believe the attached will do what you want to achieve.
In this example we detect CC values from the controller and if they are within scope of the desired CC’s to delay feedback (in this case 0-19), then we set a one shot watchdog timer to trigger after 250 ms of inactivity (translator 1.0).
We capture MIDI messages coming from the DAW in translator 1.0. Again, if they are in-scope, we capture them in global variables but there is not output (yet).
When you stop moving an in-scope CC and the watchdog timer trips (after 250 ms) we call a refresh timer to send all of the values back to the controller)
The watchdog timer is translator 2.1 and the refresh timer is translator 2.2
Translator 0.2 documents the global variables I use in the project.