For various reasons MIDI devices/controllers present to LMMS with a different port as assigned by the OS during boot. So for example sometimes a MIDI controller will show up as 22:0 and other times 16:0 depending on how the computer was booted (reset vs. cold start, etc.), and of course if any USB devices have been added, removed, or plugged/unplugged before or after boot. At least in Linux, the port number is assigned based on the order in which the USB devices are detected while booting. The "client name" and "port name" stay the same, however.

This is an issue because if/when a MIDI device port number changes, you have to update the tracks in LMMS as their MIDI input/outputs become unassigned. You can save a project with tracks with preassigned MIDI device inputs as the "default template" in LMMS for convenience, but this functionality is defeated when a port changes and the mapping is lost. I have a static DAW setup with two USB mics, two USB MIDI controller keyboards, and a USB Rock Band drumset allowing control through custom software. That's a lot of USB to go wrong (and it does), which defeats the idea of me flipping a power switch and everything automatically loading and working because I configured it to do so.

My question is what can be done to make MIDI devices consistently recognizable to LMMS? I'm guessing either LMMS will need to be modified to recognize and/or assign MIDI devices differently (for example by using the client and/or port name instead of the port number), or the OS configuration will need to be modified so that devices are somehow assigned the same port numbers regardless of the order they're detected in.

As far as locking the port numbers to specific devices in Linux, *maybe* this could help:

https://superuser.com/questions/536478/ ... -addresses

I'll screw around with it to see if it is useful and report back, but if anyone has already solved this problem that'd be great.