I have a setup with a master keyboard that will be sending midi to the midihub. The midihub will be sending midi to two synths and a fx pedal and a drummachine.
I would like the midihub to be able to receive program change from the master keyboard (lets say 1 - 20) and then send different pc on the outputs (like receive 1, send 4, 65, 2, 9; receive 2, send 7, 72, 13, 2 etc)
I would like bank change as well.
This seems a bit tricky.. or maybe Iβm just not that good at it yet.
Also I would still like to be able to send note and control data to the synths, and maybe som clocking (and maybe start/stop) to the drum-machine and FX pedal.
@Lordmoller Would take us through this step-by-step?
For example, do you mean PC 1-in sends a different PC-out each time in a cycle:
PC 1 β PC 4
PC 1 β PC 65
PC 1 β PC 2
PC 1 β PC 9
PC 1 β PC 4, etc?
or something else?
If you want to include Bank Select, itβs probably best to include those specifics too.
In short: Yes itβs possible but the details of exactly how will depend on your precise specifications.
PS. a little involved but not super tricky; read up on Transform + Dispatcher
All the other features are also possible.
They would be handled independently by other sets of pipelines. (except in the case where you want sent is dependent on which program is selected)
Or in case you need PC1 to trigger sending of PC4, PC65, PC2 and PC9 on A, B, C & D of the outputs respectively, it would be mostly Transforms that do this.
You would place four lines like:
[FROM MIDI A] β [FILTER all but PC] β Transforms for output A β [TO MIDI A]
[FROM MIDI A] β [FILTER all but PC] β Transforms for output B β [TO MIDI B]
[FROM MIDI A] β [FILTER all but PC] β Transforms for output C β [TO MIDI C]
[FROM MIDI A] β [FILTER all but PC] β Transforms for output D β [TO MIDI D]
There would be some caveats to be aware of - when you want PC1 to send PC4 to Output A, and PC4 to send PC1 to Output A, you would have to take care of not retriggering double-processing of these rules in the sequence of pipes. This is easiest done by temporarily changing the message type in this chain, and changing it back to PC just before the output.
Anyway, to come up with the best strategy for this processing, itβs best to start with the exact PC mappings you want to use, including any bank changes.