This is a fairly simple utility, designed to scroll through program changes (PCs) incrementally and decrementally. You could also apply the mechanism (a sample and hold feedback counter) to other targets, if you would like, e.g. MIDI CCs or targets within ZOIA.
It was prompted by this question in r/ZOIA from u/lwrnhldr. There are some schematic examples in the thread: https://www.reddit.com/r/ZOIA/comments/ih7smm/incremental_midi_program_changes/
There are two versions contained within the patch:
Count 1-3 (pages 0-2) is a more complicated version that allows you to define the range of the counter and reset it to the lowest PC in that range. By default this version is set to MIDI channel 1.
Count simple 1-2 (pages 3-4) is a simplified version that just counts up and down from 0 to 127. By default, this version is set to MIDI channel 2.
As I figured this was a utility that you might add to an existing patch, you can import those pages you wish to use.
The patch uses the left stompswitch. A tap will produce an increment (PC goes up by 1), a hold (defined by the hold stage of the ADSR module on the top of pages 1 and 4, respectively for each version; anything longer than the time period will be interpretted by the patch as a hold) will produce a decrement (PC goes down by 1).
You could swap the behaviors by swapping the connections to the inputs of the CV switch on this page.
You can set the increment/decrement value, if you would want to increment/decrement by some amount greater than 1 PC per tap/hold. (For some reason. I mostly included it because you might want to use this mechanism for another purpose.)
The stompswitch module is located on the top left corner of pages 1 and 4 (again, respectively for each version), if you would like to use a different stompswitch.
If you would like to use a separate stompswitch to select patches (i.e. scroll with one stompswitch, change to the selected PC with a separate stompswitch), disconnect the output of the second ADSR module on pages 1 and 4 (second row) from the CV delay below it. Connect your stompswitch to the CV delay input (or directly to the PC out trigger input); this will not control whether or not a PC change is executed.
Pertinent controls (the PC out module, Increment value, Low and High range values for the more complex version, the hold stage of the AHD envelope) have been starred.