Hi, so I asked Codex to add support for multiple MIDI controllers through a hub. After quite a bit of back and forth, the edited firmware has now been working for a couple of months, tested with a Launchpad Mini MK3 and Launch Control mk2, flawless.
Anyone need it? I don’t know if this is acceptable to be added to GitHub at all.
That’s great! Question: are the MIDI streams merged, or did you also tackle a way to select a MIDI device in the GUI?
I’d be happy to see the code if you can push it to a github fork. I just made a big refactor of the USB system (v2.3.0), not sure how far back you branched off, but the latest has USB Device mode support.
I’d caution that USB hub support is going to need a lot of testing with a wide range of HS/FS hubs and HS/FS MIDI devices and HS/FS USB drives, in various combinations (across lot of attach/detach events). There are a lot of non-compliant hubs, drives, and MIDI devices out there and handling the corner cases is usually a significant part of it.
I also found when I played with hubs a while back was that using some USB drives at the same time as MIDI caused the MIDI to stutter and drop messages, which was unfortunate because that’s my main use case.
The MIDI streams are merged, didn’t do any GUI work. Branched off at 2.1.0, I tried redoing it with 2.3.0 yesterday, since I want to use some of the new modules that require it, and failed, but spent very little time.
Now, I have “testing it with a larger number of controllers/different hubs” on my shortlist for the sake of curiosity, but quite honestly, I would not be surprised at all if MIDI messages do stutter or drop - my current use-case doesn’t include heavy simultaneous MIDI messaging (at least not extensively). For what it’s worth (not much), I intentionally did the initial tests by using the lousiest USB hub that I own, and it has behaved with MetaModule like with no other device.
I’ll be back from holiday in 10 days and I’ll push the experiment, and will try and get this to work on 2.3.0 (at least for my own purposes, if not for an official addition to the firmware :)).
p.s. also got some mmplugs I’m keen on sharing, but in another thread.
I use the Launchpad to trigger samples in keySampler (which I’ve obnoxiously extended to 32 slots) or play oscillator voices. Meanwhile, I use the LC for filters, FX and mixer controls (I pass Peak and/or Nymphes signals to my Eurorack and through my MM)