Open muranyia opened 4 years ago
One thing you can try for now (if it works on the LaunchPad) is to use a particular channel in the midi-control section. Anyway, I will look into adding a buss-filter. Been busy with work travel, etc. And I found (in Seq66) a running-status bug reading a drum file, which took me awhile to work out; I have back-ported that fix to the midi_control branch. Stay tuned.
Looking into this issue, I found that the code I wrote is pretty gnarly. And the ALSA and JACK processing is slightly different. I can theoretically look up the input buss for an event in ALSA, but that would be extra overhead that I am afraid of. Based on some other issues, it would be good to refactor the seq_rtmidi library. However that is a big task, and would best need some upfront research and design work. It will be quite awhile before I get to that, unfortunately.
Thanks for the tip. Separating the MIDI channels does it for me now, as particularly on the Launchpad, I won't be changing patterns while using the MIDI keyboard (as the grid and the keyboard are not visible at the same time). If I wanted to use both simultaneously, pushing the grid would be also interpreted as playing the keys, but the keyboard would not change the patterns any more.
My use case is that I have a control surface (LaunchPad Pro) connected which can act as a grid AND as a keyboard, depending on the mode in use. It sends messages through its separate MIDI ports, again, depending on the mode in use. So you can just consider it a control surface and a separate keyboard.
Right now I cannot use the midi keyboard because the notes are interpreted as pattern change remote control messages. Or I could use the keyboard but have no midi remote control.
I would like to be able to set up in seq64 separate MIDI busses for the control surface input and for the keyboard input.
I think that if the same size/buss/enabled parameters get implemented for [midi-control] that we now have for [midi-control-out], we are done. I imagine that then the GUI setting for MIDI Input will select the keyboard(s) and the buss number in the rc file's [midi-control] section will choose the port for the control surface.