As described in #2, MIDI are currently expressed as port IDs. Let's not. Human-readable names are nice. Platform-supported identifiers are just as good. Support the virtual ports (the 4 you select in the system menu).
Why
These are a well-established platform idiom and we should use them. The norns platform already provides a good UI for selecting these and that saves us work - we get port selection for free, users will "get it", and that's a UI problem we don't need to solve.
Considerations
A plisp function to return a low-level port number based on a virtual port number would be fine, and probably the easiest approach based on where the ball lies today.
Refactoring other functions to use virtual ports is also acceptable. Note that the ports identified in #2 do not necessarily overlap with these - there will only ever be 4 of these and there can be many more low-level ALSA ports.
Summary
As described in #2, MIDI are currently expressed as port IDs. Let's not. Human-readable names are nice. Platform-supported identifiers are just as good. Support the virtual ports (the 4 you select in the system menu).
Why
These are a well-established platform idiom and we should use them. The norns platform already provides a good UI for selecting these and that saves us work - we get port selection for free, users will "get it", and that's a UI problem we don't need to solve.
Considerations