I looked at your layout and it takes a different approach than I did. I chose to filter during the sequence limited by the timer setting, which I will keep as low as possible. I will always filter the output and unfilter only while the one repeating message is being sent. You unblock each individual message. But that requires an extra control. Also, I found in your layout if I select Selections upwards, the message is output and not filtered. I have run into similar situations withundesired interactions in the past.
I have developed an approach that also uses the Stream Byter (SB). I haven’t developed any code yet, it uses strange rules I need to spend time at. I wasn’t sure what the IF LOAD did in your code, but now I see it initializes the filter variable. I am reversing the logic to start with the filter on, so the undesired message always gets filtered unless I initiated Start. All other midi msgs have to pass through at all times. I hope you can help again.
I have 2 options to identify the start and stop of the sequence when the knob counts down. Create a delayed msg in MDP that gets output when the Countdown is finished, which is what I implemented. Another option that I think I prefer is to insert a delay in SB that will turn the filter back on after a time somewhat greater than the time set in the Timer control.
The SB code I need in plain English is:
My parameters:
F0 58 01 F7 turns the filter off
F0 58 03 F7 turns the filter on
CC 7 8 XX resets the stepper in the organ by activating the “000” button (to be tested later)
CC 7 9 XX activates the Step up button in the organ (to be tested later)
CC 7 14 xx msg to be blocked or allowed to pass through
Initialize filter to ‘on’
For each msg received:
If SysEx F0 58 03 is received #last msg was transmitted, turn filter back on
Turn on filter
End
If SysEx F0 58 01 F7 is received #turn off filter to allow CC 7 14 msgs to pass through
Turn off filter
End
If filter is on #this is the normal condition to block all CC 7 14’s
If CC 7 14 XX is received #CC 7 14 XX? I may use a 5 byte SysEx
Block it
End
I’m thinking it may be possible to block the SysEx msgs from being output as well?
Midi Monitor Output shown below when button “4” was pressed (first 2 lines) and then Start pressed. I would prefer the CC 7 9 0 at the end to be ahead of the SysEx that turns the filter off. Will need to test the organ behavior after the code is working.
16:53:59.196 From Session 1 SysEx Unknown Manufacturer 4 bytes F0 58 02 F7
16:53:59.199 From Session 1 Control 7 9 127
16:54:34.140 From Session 1 SysEx Unknown Manufacturer 4 bytes F0 58 01 F7
16:54:34.140 From Session 1 Control 7 8 127
16:54:34.145 From Session 1 Control 7 9 0
16:54:34.146 From Session 1 Control 7 9 127
16:54:34.163 From Session 1 Control 7 9 0
16:54:34.164 From Session 1 Control 7 9 127
16:54:34.184 From Session 1 Control 7 9 0
16:54:34.184 From Session 1 Control 7 9 127
16:54:34.202 From Session 1 SysEx Unknown Manufacturer 4 bytes F0 58 00 F7
16:54:34.202 From Session 1 Control 7 8 0
16:54:34.203 From Session 1 Control 7 9 0
16:54:34.203 From Session 1 Control 7 9 127
16:54:34.224 From Session 1 SysEx Unknown Manufacturer 4 bytes F0 58 03 F7
16:54:34.224 From Session 1 Control 7 9 0