One specific MIDI port doesn't work in instances

I’m using GP5 on Windows 10. My audio interface is a Focusrite Scarlett (3rd gen.) I’m using its 5-pin MIDI jacks (both in and out) to connect my iPad to GP. In the Rig Manager, this device shows up as “2- Focusrite USB MIDI”.

When I’m running GP in regular non-instance mode, I can send CC messages from the iPad and they show up in GP as expected. (That is, the MIDI light in the top-right corner near the CPU monitor blinks green; the CC message shows up in the Global MIDI monitor; and GP switches song parts in response to the CC message).

However, when I’m running GP as an instance, incoming CC messages from the iPad don’t appear anywhere: the MIDI light doesn’t blink; nothing shows in the Global MIDI monitor; and GP doesn’t switch song parts.)

My other MIDI inputs work fine in instances, and the MIDI output to the Focusrite (to the iPad) works fine in instances. It’s just this one MIDI input which seems to be dead from the perspective of the instance.

Help, please!

Are you sure that 2- Focusrite USB MIDI isn’t selected in both main and secondary instances at the same time? It should only be selected in the instance you’re wanting to receive the messages.

This issue happens even if the instance in question is the only instance. By which I mean that I’ve invoked the application with the -in option, and it’s the only one running.

But, what do you mean by “selected”?

I mean selected in the MIDI Ports section of the Options menu:

I think this may be tripping you up a little.
When you have the main instance (I’ll call it AAA) running and you load a second instance(I’ll call it BBB), that instance becomes its own entity, with its own MIDI port selections etc. Whatever port selections you make for BBB become the ports that will be selected whenever you load BBB.

So when you load BBB with the -in parameter by itself, even though its the only instance running, it is still using the mappings given to it when it was an additional instance to AAA, and acting as an auxiliary instance. You can tell that because if you wanted to create another instance from BBB at this point, that option would not be available to you.

1 Like

I have a named instance called “main”, and another called “pianos”. The “pianos” instance doesn’t do any MIDI (or audio) I/O, only communicating with the “main” instance via Relayer.

My intention once I get everything working is to have both named instances running at once, and not have a default (un-named) instance at all. However, I’m finding that named instances (spefically, the instanced named “main”) can’t see this one MIDI port which is connected to my iPad. If I run the default un-named instance, it works just fine.

(By the way, you can’t create instances from any instance except the default instance.)

After what you said about MIDI port selections, I thought that maybe I had somehow de-selected this port in my “main” instance. But that’s not the case.

Ah… okay, yeah, I don’t think that’s the issue. The relevant port is indeed selected in the one and only instance that’s running.

Did you check the global MIDI monitor for incoming messages? Just to make sure we’re not barking up the wrong tree.

The Global MIDI monitor shows nothing if I’m running a named instance, but shows the incoming CC messages if I’m running in the default instance.

Idea: Sending MIDI from one device to multiple programs

(note: multiple instances are considered to be multiple programs)

Why do that? The gig file you open first should be ‘main’ and then open a second instance ‘pianos’. Does it work when you do it this way?

I don’t intend or wish to have multiple instances attempting to read MIDI events from the same input. And, this problem happens even when I only have a single instance running, as long as it’s a named instance and not the default instance.

Also only to make sure: no other clients (for example instances of GP) are running or even only ‘loaded’?

You don’t happen to use a plugin that accesses MIDI ports on its own (without using the connection the host itself provides)? It’s not common but there are a few. You can rule this out by having an empty gig and save that. Then close the gp instance and start it again. (Saving an empty gig file is necessary in case you automatically reload the latest gig file)

I’m not sure what you’re asking. To isolate this problem, I’m only loading a single instance. Once I get everything working, I intend to have multiple instances, one of which will be called “main”, and none of which will be the default nameless instance. But right now, I’m only just running one instance, and I’m finding that it can’t receive any data from the Focusrite MIDI input.

The problem goes away if I used the default instance, but as long as I’m using a named instance, even if it’s the only instance running, I don’t get any MIDI from that port.

This may also help troubleshoot the issue, if a MIDI driver remain loaded and somehow “stuck” in one instance.

Link: Loop MIDI ports not automatically discovered on Windows - #8 by npudar

And that is with the same gig file opened?

This problem happens even with an empty gig. And I can’t think of any other MIDI clients that might be running.

The problem happens on two different laptops, one running Windows 10 and the other running Windows 11.

Does anybody reading this have a Focusrite Scarlett interface to try to replicate the issue?

And that is with the same gig file opened?

It happens with any or no gig file opened. If I reboot the computer, then start a new named instance from the commandline, that instance will not receive any MIDI input from my Scarlett.

I have, but I need to go to my work now. I won’t be at home until later tonight, so that will be at least 13 hours from now. I’m working late today, because I have a change that can only be done outside office hours.

Edit: an empty gigfile rules out the possibility of a problematic plugin.
Only one copy (albeit a gp instance) should rule out a conflict

One other thing to try: disable the MIDI port in the options dialogue, close the dialogue: (a short lived message should occur about an interface disconnecting in the main gui). Then enable the MIDI port again in options dialogue and close the dialogue.

Once again, I ask why? You’re wanting to open auxiliary instances as standalones, and while you can technically do that, you may be running into unsupported territory by doing so.
I’d just stick to having your gig file be for ‘main’, and then open another instance for ‘pianos’.