Project (theoretical):
I have a synth that supports 32 MIDI channels (two MIDI inputs or via USB).
I have created a summary page that illustrates what patch is assigned to each of the 32 MIDI channels. Any channel that has not had a patch selection made will have its patch name 'greyed out'. From this page I can select a MIDI channel (by touching the patch name) and I'm switched to another page that contains a list of the patches in the bank that the current patch was selected from (or default). The page also displays the number of the channel I'm currently working on. The patch name on this page is actually a radio button. Only 1 button for that MIDI channel from all the pages that represent the banks and patches available can ever be selected, and it needs to be highlighted (illuminated). Bear in mind that the total patch list could be 1000's.
So to summarise, I have an array of pages that are each labelled with a bank name, and that each contain a list of the patches available in that bank. Where the patch list for a bank is greater than can be accommodated on 1 page, a second (appendage) page is created. At any one time only 1 patch and page tab can be highlighted for the selected MIDI channel, and the program logic needs to accommodate this for all the available MIDI channels (there could be many more than 32), possibly multiple synths.
The usage flow is: select the summary page - select a channel - see the patches available from the currently used bank for that channel (or default if 1st time) - select new patch from current or other bank/page (highlight it!) - transmit info' - press button to return to summary page. By not executing latter step, you could browse through all the available banks/patches trying out the patches before making a selection. Maybe have more buttons that execute the playing of a preset MIDI file, chord or arpeggio to help in the process of selection while remaining on the panel (real time clock function missing/required?).
Is there any part of this scenario that couldn't be handled by MD, other than the radio button requirement for the highlighted patch names? I'm also hoping that the bank/patch pages can be a single array, dynamically assigned a MIDI channel rather than having to be manually duplicated for each available MIDI channel.