Swapping my midi controller USB ports generates incrementing device names

I have a Nord Stage 3, a Novation Impulse 61, and I’m using a USB HUB.

If I swap the Nord into a different USB Hub port then the Nord’s MIDI Device name stays the same “Nord Stage 3 MIDI”, which is perfect.

However, when I do the same with the Impulse, “something” seems to generate an incrementing device name for each different USB port that I plug it into. As shown in the logs below, using 5 different ports, generated 5 separate device names. The last entry of “Impulse” is me plugging it back into the original port.

This is a pain because changing the USB port makes the original “Impulse” device name show as “disconnected” until I manually remap to the numbered device name.

00231366 15866 [21880:2]: MidiDeviceManager - Found MIDI Device: input : Nord Stage 3 MIDI
00231366 0 [21880:2]: MidiDeviceManager - Found MIDI Device: output: Nord Stage 3 MIDI
00244382 13016 [21880:2]: MidiDeviceManager - Lost MIDI Device: input : 3- Impulse
00244382 0 [21880:2]: MidiDeviceManager - Lost MIDI Device: input : MIDIIN2 (3- Impulse)
00244382 0 [21880:2]: MidiDeviceManager - Lost MIDI Device: output: 3- Impulse
00254453 10071 [21880:2]: MidiDeviceManager - Found MIDI Device: input : 4- Impulse
00254453 0 [21880:2]: MidiDeviceManager - Found MIDI Device: input : MIDIIN2 (4- Impulse)
00254453 0 [21880:2]: MidiDeviceManager - Found MIDI Device: output: 4- Impulse
00370499 116046 [21880:2]: MidiDeviceManager - Lost MIDI Device: input : 4- Impulse
00370499 0 [21880:2]: MidiDeviceManager - Lost MIDI Device: input : MIDIIN2 (4- Impulse)
00370499 0 [21880:2]: MidiDeviceManager - Lost MIDI Device: output: 4- Impulse
00384601 14102 [21880:2]: MidiDeviceManager - Found MIDI Device: input : 5- Impulse
00384601 0 [21880:2]: MidiDeviceManager - Found MIDI Device: input : MIDIIN2 (5- Impulse)
00384601 0 [21880:2]: MidiDeviceManager - Found MIDI Device: output: 5- Impulse
00397618 13017 [21880:2]: MidiDeviceManager - Lost MIDI Device: input : 5- Impulse
00397618 0 [21880:2]: MidiDeviceManager - Lost MIDI Device: input : MIDIIN2 (5- Impulse)
00397618 0 [21880:2]: MidiDeviceManager - Lost MIDI Device: output: 5- Impulse
00402636 5018 [21880:2]: MidiDeviceManager - Found MIDI Device: input : Impulse
00402636 0 [21880:2]: MidiDeviceManager - Found MIDI Device: input : MIDIIN2 (Impulse)
00402636 0 [21880:2]: MidiDeviceManager - Found MIDI Device: output: Impulse

Yes, this is a major annoyance with Windows, that it re-numbers devices like this (sometimes even when using the same port). My wish (if it could be implemented) would be to tell Cantabile to ignore prefixes 1-, 2-, etc. in the device name and recognize that it’s the same device. This would need to be a user option (maybe per device) since there may be some users who actually have two of the same device, where the prefix actually distinguishes devices. @Brad, any possiblities for help here ?

Is an application for “Ghostbusters” or “USB Oblivion” to remove the non-connected hardware? FWIW, I label my USB ports so the controllers and audio devices are always returned to the same USB port.

There is a kind of work around for this:

  1. When the device gets a new name…
  2. Go to Tools → Options → MIDI Ports
  3. Instead of right clicking and choosing the new device name…
  4. Double click the port and select the new device name, while leaving the old device name checked.
  5. Repeat this everytime it happens and eventually the numbers will start recycling

You’ll end up with a whole bunch of numbered devices all selected and Cantabile will use whichever one happens to be available at the time.

As a better fix, what if I was to add an option to manually add a device, and it allowed wildcard characters or regex? Logged it here.

1 Like

That’s what I’ve been doing. I just can’t figure out how/why Windows adds devices…

image

I know this doesn’t help: Windows USB enumeration tends to suck!
Maybe a good workaround is to use dear old-school MIDI if possible.

1 Like