Universe Input Mapping and Network MIDI

Ask a question about the usage of QLC+ with the Mac OSX operating system
Post Reply
richandrews
Posts: 5
Joined: Mon May 08, 2023 5:56 pm
Real Name: Rich Andrews

Hi everyone, I'm probably being dumb, but can't figure this out on my own.

So my use case is running MainStage with scripter plugin scripts that spin off MIDI to a configured MacOS MIDI Network Session.

QLC+ 4 does not list host MacOS Network MIDI session despite other applications being able to see it. I'm currently running QLC+ on the same host as MainStage, but even this does not enable QLC+ 4 to see it. (edit: QLC+ does appear to see it - but the session name is not used and the Universe MIDI plugin just enumerates it as, "3:")

My expectation is that the MIDI messages that the frequently used 'MIDI Monitor' utility is able to receive from the configured MIDI Network are also receivable by QLC+. MIDI Monitor works wonderfully - shows the MIDI network, shows MIDI data from the network.

What I've tried to do is exhaustively work with input/output and Universe 1. There are several MIDI plugins listed in the Universe Mapping. Instrument MIDI devices list, the IAC MIDI port lists when activated. And, the little joystick blinks and all of the other expectations for how MIDI works seem to be there.

But I'm simply unable to figure how to configure QLC+ to see the MacOS 'MIDI Network Session' which appears to be functioning properly. It ought to look like a MIDI device to QLC+.

Maybe it is true that QLC+ 4 doesn't support MacOS MIDI Network sessions? I've seen other posts that suggests that in fact does. So then I simply need to know how to get the Universe input mapping to show the named MIDI Network session and receive MIDI as configured in MacOS.

Thanks in advance!
Last edited by richandrews on Tue Sep 26, 2023 3:06 pm, edited 1 time in total.
User avatar
GGGss
Posts: 2732
Joined: Mon Sep 12, 2016 7:15 pm
Location: Belgium
Real Name: Fredje Gallon

QLC+ does not look for any midi-messages sent throughout a network. You need a man-in-the-middle tool for that. Not implemented to my knowledge.
I'd look for another solution by f.i. using OSC messages, which is, by design, much more mature and can be routed through your network(s)...
All electric machines work on smoke... when the smoke escapes... they don't work anymore
kproth
Posts: 76
Joined: Sun Jan 01, 2023 2:31 pm
Real Name: Kevin Roth

Are you able to get it working using the MIDI Bus feature on the mac? https://support.apple.com/guide/audio-m ... ms1013/mac. Conceptually, this functions a lot like LoopBe on a PC, which works fine in QLC+.

If that at least works, and I'm only guessing here because the only Mac I use MIDI on has ProPresenter and LightKey, but is there any way to re-route the Networked MIDI session (https://support.apple.com/guide/audio-m ... ms1012/mac) over to the IAC Bus?
richandrews
Posts: 5
Joined: Mon May 08, 2023 5:56 pm
Real Name: Rich Andrews

GGGss wrote: Mon Sep 25, 2023 11:32 am QLC+ does not look for any midi-messages sent throughout a network. You need a man-in-the-middle tool for that. Not implemented to my knowledge.
I'd look for another solution by f.i. using OSC messages, which is, by design, much more mature and can be routed through your network(s)...
Indeed, I'm able to see that by the plugins enumerated for a Universe. MacOS supports RTP-MIDI and the MacOS configuration utility permits setting up a network session, including naming of it. That name is then expected to appear as a MIDI device on the host OS. As I understand, this is the MiM. Indeed I'm able to configure a MacOS network MIDI session named, 'foo' and sending MIDI to it from tools like LogicProX and mainstage and then sniff 'foo' with the wonderful utility, "MIDI Monitor" from Snoize.

Also, when I create a MacOS network MIDI session, and name it, 'foo', the list of available MIDI devices in the QLC+ Universe changes: A new numbered device appears, but is listed without the expected name, 'foo'. Rather, it looks like "3:". I'm pretty sure this is the new MIDI device (but secretly networked) available to QLC+. However, I'm unable to see MIDI messages landing on that device from the PoV of QLC+ (IE no blinking joystick on MIDI activity).

I'm still working through numerous combinatorics. I love OSC and use it, but I'm looking to have MIDI sync'd with my ensemble's backing tracks to drive QLC+. I can't escape MIDI because of other people, workflow and tools that can't be changed.

Thanks for helping me clarify this in my mind, it is part of getting good enough to gain the insight I need.
richandrews
Posts: 5
Joined: Mon May 08, 2023 5:56 pm
Real Name: Rich Andrews

kproth wrote: Mon Sep 25, 2023 11:44 am Are you able to get it working using the MIDI Bus feature on the mac? https://support.apple.com/guide/audio-m ... ms1013/mac. Conceptually, this functions a lot like LoopBe on a PC, which works fine in QLC+.
Definitely - the MacOS CoreMIDI subsystem as far as inter-app MIDI communication - from a MIDI USB device to the Mac to QLC+ - is working great. The Universe input shows the device via the MIDI Plugin. And, the Universe Joystick icon blinks for each note and I'm able to orchestrate QLC+ w/ MIDI as desired.
kproth wrote: Mon Sep 25, 2023 11:44 am If that at least works, and I'm only guessing here because the only Mac I use MIDI on has ProPresenter and LightKey, but is there any way to re-route the Networked MIDI session (https://support.apple.com/guide/audio-m ... ms1012/mac) over to the IAC Bus?
Interesting perspective - I understood the Apple CoreMIDI system to use the IAC driver exclusively for on the MacOS host as an inter-app MIDI bus. Possibly the network MIDI can land on IAC, but I was under the impression - possibly wrongly - that the Mac's CoreMIDI Network MIDI session looks like a MIDI device and no special routing is required.

Indeed a MacOS CoreMIDI Network Session has 'Live Routings' settings that show the MIDI source and destination. But IIRC, IAC isn't a destination. But will check when I can get back to my testing setup.

Thx for helping me articulate all of this in my head.
richandrews
Posts: 5
Joined: Mon May 08, 2023 5:56 pm
Real Name: Rich Andrews

Ok, I've figured out everything I need.

richandrews wrote: Sun Sep 24, 2023 9:29 pm Hi everyone, I'm probably being dumb, but can't figure this out on my own.
Nope, definitely not dumb. Read on if having a similar experience.
richandrews wrote: Sun Sep 24, 2023 9:29 pm So my use case is running MainStage with scripter plugin scripts that spin off MIDI to a configured MacOS MIDI Network Session.
This always worked like a charm. Using MIDI Monitor from Snoize, verification was Easy. However, Mainstage is simply not designed to originate MIDI as a synchronized control signal that marries up w/ playback wav files using the playback plugin. It has no feature to do such a thing, is not designed to do it and one is left to use the Scripter plugin at extreme peril. And then the external MIDI inst track in MS then will send to the output destination, which then comes back into Mainstage because by default it listens for all possible MIDI which then is sent to the channel strips by default causing endless MIDI loops.
richandrews wrote: Sun Sep 24, 2023 9:29 pm QLC+ 4 does not list host MacOS Network MIDI session despite other applications being able to see it. I'm currently running QLC+ on the same host as MainStage, but even this does not enable QLC+ 4 to see it. (edit: QLC+ does appear to see it - but the session name is not used and the Universe MIDI plugin just enumerates it as, "3:")
It does... However, it does not use the name of the MacOSX Network MIDI session, which is a QLC+ bug. But I looked over the source code, and QLC+ merrily picks up the network session and displays it in the Universe input as "". (Blank)
richandrews wrote: Sun Sep 24, 2023 9:29 pm My expectation is that the MIDI messages that the frequently used 'MIDI Monitor' utility is able to receive from the configured MIDI Network are also receivable by QLC+. MIDI Monitor works wonderfully - shows the MIDI network, shows MIDI data from the network.
Sort of works, there seems to be a one octave difference in the MIDI notes (A C3 comes across as a C4) for some reason. Probably has something to do with MIDI itself.

But QLC+ doesn't know that the Universe MIDI input is from a network, it doesn't care, and when MacOS X MIDI Networking is configured and working (itself a pretty good feat) the QLC+ gets MIDI and things like the virtual console can be trained and bound to the received MIDI.
richandrews wrote: Sun Sep 24, 2023 9:29 pm What I've tried to do is exhaustively work with input/output and Universe 1. There are several MIDI plugins listed in the Universe Mapping. Instrument MIDI devices list, the IAC MIDI port lists when activated. And, the little joystick blinks and all of the other expectations for how MIDI works seem to be there.

But I'm simply unable to figure how to configure QLC+ to see the MacOS 'MIDI Network Session' which appears to be functioning properly. It ought to look like a MIDI device to QLC+.
So there is no way for QLC+ to say, "Nah, Network MIDI isn't working because one of the two computers involved in the network just roamed over to another AP and then suddenly networking is different between the two computers" So for the sake of humanity, when trying to work things out, do so with WiFi turned off, do it on a wire ethernet LAN and use other tools to prove that the Mac OS MIDI Networking is stable.

richandrews wrote: Sun Sep 24, 2023 9:29 pm Maybe it is true that QLC+ 4 doesn't support MacOS MIDI Network sessions? I've seen other posts that suggests that in fact does. So then I simply need to know how to get the Universe input mapping to show the named MIDI Network session and receive MIDI as configured in MacOS.
This is not true, QLC+ supports Mac MIDI Networking, though the network session name gets lost in the Universe Input UI because of either CoreMIDI or QLC+ or both. So, when looking for the MIDI Network session, look for nothing, and it will be found (QLC+ 4.12.7)

And now... further complicating my figuring this out, nothing less than a constant set of issues:
- Bad USB port on a hub causing my Enttect to flake out occassionally
- Flaky USB-C connect to the hub that had a bad port - yes, two issues with that part
- Entect not coming back as a USB device after a laptop sleep
- A bad cable between the light fixtures
- As noted above, my WiFi LAN is complex and can cause CoreMIDI network issues if laptops roam around
- Flaky fixture behavior in general - seems like terminating the DMX network got that under control
- Looks like maybe an issue with channel adjacency with my test fixtures
- DMX Address setting on fixtures provided no feedback that an 'enter' was required and just left the selected, but not set, channel displayed.
- QLC+ just occasionally losing its mind with respect to the Entect and deselect/select of the Universe DMX output seems to address that
- QLC+ 'blackout' needs a much better UI state - when flipping between design/operate and using blackout, it is really easy to go back to operate and be in blackout making it looks like no MIDI is arriving.

Anyway, LMK if anyone is interested in Mainstage sending MIDI to QLC. I'm pretty much an expert at this point!
User avatar
GGGss
Posts: 2732
Joined: Mon Sep 12, 2016 7:15 pm
Location: Belgium
Real Name: Fredje Gallon

richandrews wrote: Sun Oct 01, 2023 11:24 pm
And now... further complicating my figuring this out, nothing less than a constant set of issues:
- Bad USB port on a hub causing my Enttect to flake out occassionally
- Flaky USB-C connect to the hub that had a bad port - yes, two issues with that part
- Entect not coming back as a USB device after a laptop sleep
- A bad cable between the light fixtures
- As noted above, my WiFi LAN is complex and can cause CoreMIDI network issues if laptops roam around
- Flaky fixture behavior in general - seems like terminating the DMX network got that under control
- Looks like maybe an issue with channel adjacency with my test fixtures
- DMX Address setting on fixtures provided no feedback that an 'enter' was required and just left the selected, but not set, channel displayed.
- QLC+ just occasionally losing its mind with respect to the Entect and deselect/select of the Universe DMX output seems to address that
- QLC+ 'blackout' needs a much better UI state - when flipping between design/operate and using blackout, it is really easy to go back to operate and be in blackout making it looks like no MIDI is arriving.

Anyway, LMK if anyone is interested in Mainstage sending MIDI to QLC. I'm pretty much an expert at this point!
Enttect Pro MK2 needs a 600mA power source. This power is beyond the USB-A (old) standard, so laptops and periphery built to that standard may cause issues.
>Enttec not coming ... -> you need the deep change a windows setting, not allowing to put the USB ports into energy-save mode. This is quite important and the first the you should check upon using a 'new' laptop in your environment.
>a bad cable: ow boy - welcome to the world: "yesterday everything worked just fine ... but now. 'What did you change today?' 'We changed a couple of fixture positions while focussing.' 'Voila!'. Therefore I have a DMX tester in my daily stack (and after noticing a DMX glitch, an inexpensive cable tester).
> flaky fixture behavior: my DMX tester helps me tremendously here. If in trouble: add a DMX splitter (somewhere in the middle?) and retry. DMX is limited to 31 devices (per line that is). Keep this in mind.
>as a rule of thumb I always assume you have to validate new values with the fixtures. So yes 'enter' the new values where possible.
>if your interface gets enough juice to work with, (no power save etc) it is dead stable for weeks / 3 months I noticed once in a fixed install of mine.
>Please note that you don't need to switch too often between produce and design. Use the 2 super handy functions: 'live edit a function' and 'toggle virtual console live edit'. If things change on the input side of QLC+ a toggle produce/edit is needed. QLC+ needs to reset its input-signal-bus. So yes you need to, but if you plan ahead, not so much.
All electric machines work on smoke... when the smoke escapes... they don't work anymore
Post Reply