I am writing an extensive template in MidiDesigner Pro for the Boss Katana amp. I use StreamByter a fair amount in it. I have a situation in my output rules where I would like to send some MIDI back to MDP (where the input rules will do some magic and set some knobs).
I know now that I can inject a send, but I think that just sends it back to be processed by the output rule rather than being treated by MDP as an incoming MIDI message.
I'm not at all sure whether MDP even supports the +I flag. I have a feeling it doesn't, so even injecting back into the top of the ruleset might not work.
The only way I can think of doing this would be to use MidiFire as a loopback processor to handle the inject events. Probably not what you want to hear.
Here is how it could work:
1. In MidiFire add both the MidiFire source/in and the MidiFire dest/out as well as a Stream Byter module. Connect them as follows:
MidiFire in -> Stream Byter -> MidiFire out
We now have a loop so we need to break it and handle inject events. The format of your inject events will be of significance here. For this example I am going to only support 3 byte events (notes and CC's) as inject candidates.
2. In MDP output StreamByter, we will wrap the desired inject event into a specific sysex message, say something like this (I have coloured in the inject message):
SND F0 7D 22 B0 12 34 F7
Obviously MDP needs to be configured to send and receive to/from MidiFire's virtual ports.
3. Finally in MidiFire's StreamByter you would do something like:
IF M0 == F0 7D 22 # match our 'special' sysex header IF M3 < C0 # 3 byte message (note, CC) SND M3 M4 M5 # send extracted inject message END END XX = XX +B # block all incoming messages