I'm currently working on a program bank / state saving system for my external synths to exceed their memory capacity, and to create an easy approach to performance using the limited gear I possess.
The gist is that I use an APC 40, and have pure data switch LED lights referencing either a patch or state.
Each program references a loaded sysex message which creates the base sound. Between songs, or when inaudible. A state is a list of any values safely transmitted as CC data without interrupting the external's sound (pauses, etc). These switches happen while sound is transmitted
Signal flow example:
iemmatrix - first two relate to x-y coordinates of LED, followed by 42-2 as CC-Value Pairs
4 1 matrix 42 2 5 0 6 0 7 127 10 64 12 20 13 82 14 4 15 0 18 1 19 64
20 127 21 115 22 0 23 0 24 0 25 0 26 88 27 127 28 70 29 64 30 64 31
64 59 0 70 74 71 29 72 84 74 70 73 4 75 0 76 47 77 54 78 64 79 120
82 127 83 43 85 85 87 0 88 85 89 0 92 0 93 0 94 0```
[row(
|
[matrix]
|
[route 5 74 72, etc]
| |
[ctlout 5] [ctlout 74] [etc]
This solution works, even though it looks slightly silly in the route object extending out for however many CCs.
I was more concerned with efficiency than something conveniently dynamic. There is a slight "catching up" effect, whether it's from the external synth or the current rate of transfer I'm not completely sure. Without a method to test this(?), it's all in the ears. However I'm interested in eliminating all potential bottlenecks outside of the actual transfer rate from my usb midi - to external synth.
If anyone has a recommended potential alternative, which may be more efficient I'd be grateful. Or some foresight to say "it can't get more efficient, it's midi. Have a cookie" Thanks.