Yeah, AI has many of us questioning our future relevance.
Kurz uses the obvious scheme of combining Bank Select LSB (CC 32) and Program Change messages to recall patches, so for my current need-
entering 0-127 sends CC32 0 + PC 0-127
entering 128-255 sends CC32 1 + PC 0-127
entering 256-383 sends CC32 2 + PC 0 -127
etc....
An alternate implementation would facilitate entry as "bank.PC", i.e.-
entering 4.100 sends CC32 4 + PC 100
this could be extended to include channel-
entering "3.4.100" sends CC32 4 + PC 100 on channel 3- this could be very useful in a complex live rig.
Although Kurz uses either CC0 or CC32 for Bank Select, for universality the various options need to be considered, different combinations of CC0 and CC32 are used for bank select.
I've been using the hardware MIDI Patch Changer Keypad by Music Technologies Group- it's pretty well thought out- you might check out the documentation for ideas. Having this functionality in an App with WiFi MIDI would be super convenient.
http://musictechnologiesgroup.com/midipatch.htm
quote from the web page:
Manual mode lets you send Program Change as well as optional Bank Select MSB and LSB.
Preset mode sends program-change-per-MIDI-channel as well as Bank Select on all 16 channels simultaneously -- per preset.
Send 180 bytes of MIDI data of your choice ...controller data, system exclusive, RPN, NRPN or anything! ... per Preset. (v3.00+)
Holds 200 Presets. (v3.00+)
Chain mode let you build a song list or Preset list for even faster performance live.
Holds 99 chains of up to 18 Presets each. (v3.00+)
Speed Dial hot-key combinations all access to your 9 favourite Presets. (v3.00+)
(end quote)
The most important feature of this is to not send anything until the Enter is pressed; while playing, you can quickly type in your patch#, it sits there until you need the patch, then one keystroke calls it up. Might be great to have the Enter button be as large a target as is possible.
This is so great that you've done this... let me know where I can make a $$ contribution to your continuing attention.