Well, hang on... can't you force a client to take a particular ID? You
can do that with the hardware addresses by specifying it in asound.conf
so your MIDI interfaces stay in the same place across reboots (otherwise
it's a race to see which interface initialises first).