Sean, on my install, mixxx exposes several ALSA midi in and out ports, currently 6 on my system, called "port-2" through to "port-7" (mixxx always shows ALSA midi ports for me, whether Mixxx is run using Jack or Alsa audio). I currently have three controllers enabled in Mixxx, those are connected to three of the mixxx midi ins, and 3 of the outs, as expected. But none of the mixxx midi ports will accept manual connections - if I try to manually connect a software or hardware midi port to mixxx in Patchage, the connection is rejected. If I wanted to, I could "enable" another controller from within mixxx, and that would connect it to one of the midi ports, but that wouldn't accomplish what I was proposing above.
I don't need mixxx to handle the additional manually connected controller, or even to be aware of it. All I'd need is for the mixxx alsa midi ports to accept connections to midi controllers other than the one "enabled" in mixxx - ie: one out port would be connected to the "enabled" controller, but also could be connected manually in Patchage to any other midi controller or midi enabled software... Then, midi messages sent out that mixxx port would be sent to all connected controllers (or software). If the message sent was on a midi channel that the "enabled" controller doesn't listen to, then the "enabled" controller wouldn't notice the signal, but other manually connected midi enabled software could be set to listen and respond to that signal.
Tough for me to guess how much work would be required under the hood in order to enable manual connections, but I would have assumed it wouldn't be that difficult - Mixxx itself wouldn't have to do anything with the manually connected devices, they'd just be listening for messages sent out that midi port... Any midi device(s) attached to the output port for a controller script would "hear" all the midi.sendShortMsg messages that the script generated, whether Mixxx (or the script) was aware that something was connected or not... All mixxx would have to do is allow them to connect.
Mixxx is unusual among the midi software I use anyway, in that midi devices are connected via the preferences window rather than manually in a program like Patchage... Other software just exposes one or more in and out ports and listens and sends to anything attached to those ports. I haven't run across any other software that rejects manual Patchage connections like Mixxx does.
Anyway, assuming you guys understand what I'm trying to say, then I'll leave this one alone - but I want to make sure you understand, since it seems to me that this would be a relatively easy tweak that would allow a lot of additional functionality without really requiring much by way of internal changes to mixxx. Of course, I could easily be wrong about my guess that this would be "easy"... Haha.
Sean, on my install, mixxx exposes several ALSA midi in and out ports, currently 6 on my system, called "port-2" through to "port-7" (mixxx always shows ALSA midi ports for me, whether Mixxx is run using Jack or Alsa audio). I currently have three controllers enabled in Mixxx, those are connected to three of the mixxx midi ins, and 3 of the outs, as expected. But none of the mixxx midi ports will accept manual connections - if I try to manually connect a software or hardware midi port to mixxx in Patchage, the connection is rejected. If I wanted to, I could "enable" another controller from within mixxx, and that would connect it to one of the midi ports, but that wouldn't accomplish what I was proposing above.
I don't need mixxx to handle the additional manually connected controller, or even to be aware of it. All I'd need is for the mixxx alsa midi ports to accept connections to midi controllers other than the one "enabled" in mixxx - ie: one out port would be connected to the "enabled" controller, but also could be connected manually in Patchage to any other midi controller or midi enabled software... Then, midi messages sent out that mixxx port would be sent to all connected controllers (or software). If the message sent was on a midi channel that the "enabled" controller doesn't listen to, then the "enabled" controller wouldn't notice the signal, but other manually connected midi enabled software could be set to listen and respond to that signal.
Tough for me to guess how much work would be required under the hood in order to enable manual connections, but I would have assumed it wouldn't be that difficult - Mixxx itself wouldn't have to do anything with the manually connected devices, they'd just be listening for messages sent out that midi port... Any midi device(s) attached to the output port for a controller script would "hear" all the midi.sendShortMsg messages that the script generated, whether Mixxx (or the script) was aware that something was connected or not... All mixxx would have to do is allow them to connect.
Mixxx is unusual among the midi software I use anyway, in that midi devices are connected via the preferences window rather than manually in a program like Patchage... Other software just exposes one or more in and out ports and listens and sends to anything attached to those ports. I haven't run across any other software that rejects manual Patchage connections like Mixxx does.
Anyway, assuming you guys understand what I'm trying to say, then I'll leave this one alone - but I want to make sure you understand, since it seems to me that this would be a relatively easy tweak that would allow a lot of additional functionality without really requiring much by way of internal changes to mixxx. Of course, I could easily be wrong about my guess that this would be "easy"... Haha.