JUCE 8.0.11 MIDI PORT NAME

Compared to JUCE 8.0.10, this version completely changes the naming of MIDI ports. For example:

Array<MidiDeviceInfo> itemsIn = MidiInput::getAvailableDevices();

for (const auto& item : itemsIn)
{
    DBG(item.name);
}

Previously the device was listed as “MY PORT”, but now it appears as “MY : PORT”.

Does anyone know why? Is this a JUCE-introduced bug, maybe related to MIDI 2.0 compatibility?

I can confirm that the colon is added only for MIDI 2.0 devices.

Please could you let us know which platform you’re using for testing (macOS/Windows/Linux/etc.) and details of the actual device (physical or virtual) that you’re scanning?

If you’re on Windows, are you using the new Windows MIDI Services, or WinRT Midi, or legacy Win32 Midi?

I’m testing on macOS and this affects only the physical devices. The virtual ones seem to be shown as expected.

What MIDI hardware are you connecting?

Which version of macOS are you running, and which Xcode version are you using to build your application?

I’m connecting Studiologic SL 88 (MK2) and Roland MIDI 2.0

Which version of macOS are you running, and which Xcode version are you using to build your application?

macOS 26.1

xCode 26.1.1 (17B100)

Possibly related: Supperware head trackers that use the JUCE APIs to get head pose data over MIDI are no longer working with JUCE 8.0.11; reverting back to JUCE 8.0.10 makes everything work again. This is on macOS 15.7.2; Xcode 16.2.

Thanks for reporting. We’ve updated the naming scheme here, so it should be closer to the old naming:

We haven’t been able to test the issue with Supperware head trackers. If you’re able, please update to the latest version of the develop branch and check whether the issue is resolved by the naming change. Otherwise, we’ll need some more information in order to continue investigating.

Thanks @reuk for the update. I’ve tested the latest develop with the Supperware tracker, including a recent change that was pushed onto the supperware git repo ( GitHub - Supperware/ht-api-juce: Head Tracker API for C++/JUCE ). but unfortunately the tracker still doesn’t seem to be able to connect over MIDI.

It turns out this is a separate issue related to the use of Universal MIDI packets. The problem is summarised here, in case anybody else experiences similar difficulty with the head tracker or other products.

In its support of for Universal MIDI Packets and MIDI 2 (which JUCE has been rewritten to use internally) Apple has reinstated use of the 0x0F-type USB MIDI message. This type of message, for sending unassociated single bytes of data, is one I haven’t otherwise seen in the wild, under any operating system, since about 2008. As nobody used it for formatted packets anymore, I didn’t bother including it in my drivers (how do you test against data that never occurs?)

Now it’s back and it requires a firmware tweak before JUCE 8.0.11 breaks people’s builds, which I’ll be pushing to all users in January 2026. Other equipment built on newer driver stacks may also have this problem.

2 Likes