Closed ericfont closed 3 years ago
I've verified this works on my ModDuo. AUTOFF with note-on message types works such that pressing a footswitch controlling the momentary button results in a note-on message with MOMENTARY value followed by a note off with VALUE approximately 3 milliseconds later. (The mod footswitch does not have the concept of holding down a button, so even if the mod footswitch is held down, the note-off still happens right after the note-on.)
And with the parameter GUI names shortened to fit within 16 characters, they are now readable in the Mod's GUI:
If anyone wants to try out it, here is the build for ModDuo:
And I'm verifying that I'm able to use this with AUTOFF to use my Mod's footswitch as a control surface for Ardour by setting each footswitch button to a different pitched note, so one controls Ardour's play button, one controls stop, and one controls record!
hmm...I'm noticing although momentary button behavior is fine on mod footswitch and in Carla, however it isn't nice in jalv. The momentary button remains on when turned on, so it produces a continuous stream of note-on events when pressed. I guess it should only produce one note on on transition. Let me see if I can fix this to work nicely across all those hosts.
ok, I fixed that issue in my last comment with my force update, so now it works ok in jalv.
And I've rebuilt with that last force-push for modduo:
And I've verified that the behavior on modduo still works.
So it now seems to work on both modduo, jalv, carla. Anything other I should test?
btw, I am happy to update the gui layout for this. Maybe increase the width of the plugin image and put a "MOMENTARY VALUE" lcd to the right of the existing VALUE lcd, and also put a button labeled "MOMENT" under that, and move the main enable button and the main enable light leftwards and label it "ENABLE", so that button and light doesn't get confused with the momentary one.
I just got ModDwarf and built this PR for it:
I'm noticing a bug if I assign the momentary button to be one of the "Knobs", then pressing the Knob results in the browser UI producing a message along the lines of "bug, not addressable parameter" and then all the ModDwarf's physical controls failing to produce any response. Though I am still able to control the ModDwarf via the browser UI. Upon resetting the ModDwarf, it is functional again. I guess this might be a bug with how the mod treats trigger buttons when assigned to the Knobs.
Hey you've done a ton of work and I'm going to just merge this and do a few changes on my own. I'm going to switch the momentary value to be the release value which will I think make more sense for both buttons to send the same message. I'm also going to add a -1 in the range to disable it. If you want to contribute an updated modgui I would love it because I don't like html/css stuff at all and it takes me forever. Again, I really appreciate all your help and effort!
On further thought I can't think of a use-case for having it disabled (you'd just use the enable button), and calling it a release value may confuse legacy users doing that so I think I'll just leave everything in the code the way you have it here. Thanks again!
Channel pressure/aftertouch (msgtype 13) now uses the UI's "Value" parameter for value, not the UI's "Note/CC/PG Number" parameter. This makes the behavior consistent with the UI and also consistent with the midi specs https://www.midi.org/specifications-old/item/table-1-summary-of-midi-message which refers to the Channel Pressure message's pressure value as "vvvvvvv". I've renamed DATA1, DATA2, DATA2B in the .c and .h files to NOTECCPG, VALUE, MOMENTARYVALUE so they are consistent with the UI expressed in the .ttl file, and to simplify the code for how Channel Pressure messages will use VALUE.
If AUTOFF is enabled and a note has been sent, a note-off event is sent with VALUE when the momentary button is released.
Updated README with momentary behavior.
Shortened "Note/CC/PG Number" and "1st Msg Repeat Delay Time" in the .ttl to fit within the 16 character limit of ModDuo's GUI.