|
Post by qdrtshlz on Jul 15, 2018 21:32:17 GMT
Hi, I am using Stream Byter within MIDI Designer. Is there any way to block all MIDI messages (including sysex)?
I already tried the +B flag without success.
XX = XX +B
... results in a bunch of invalid MIDI messages - especially with lots of sysex going through my filter
|
|
nic
Soapbox Supremo
Troublemaker
Press any key to continue
Posts: 2,011
|
Post by nic on Jul 16, 2018 5:35:23 GMT
Hi qdrtshlz, XX = XX +B will definitely block all events including sysex from leaving the Stream Byter. However, it is possible that MD is leaking the events somehow. I know that Dan has been working on an issue where sysex messages larger than 256 byte can cause confusion. It is possible that this issue is also coming into play in this situation. I will ping Dan about this. Regards, Nic.
|
|
|
Post by mididesigner on Jul 16, 2018 13:19:29 GMT
Thanks for the ping Nic, and thanks qdrtshlz. My question, at this point, can be simplified to: does this still happen in the Beta (MD Next)? There two changes, both significant for Streambyter in MD 2.97 (Beta): - Sysex that came in various MIDI packets (i.e., split up in more than one MIDI packet) was not being processed at all by SB
- Sysex that came in various MIDI packets and was over 256 bytes was being discarded.
Irrelevant side notes: This was all found thanks to Spooky Zoo, Keifer Polaf and Stuart who are collaborating (or competing) on a Circuit layout for MIDI Designer Pro 2. Thanks again.
|
|
|
Post by spookyzoo on Jul 16, 2018 20:26:41 GMT
I’ve just managed to test the ‘Next’ beta Of Midi Designer, and Dan has found the magic to now get sysex working on my Circuit layout.
The patch dump from Circuit is 350 bytes so was falling foul of the 256 limit that Nic and Dan mentioned above.
|
|
|
Post by qdrtshlz on Jul 18, 2018 12:16:20 GMT
Tested this again in my output rule of MIDI Designer (latest Beta).
"XX = XX +B" doesn't seem to work at all (even with very short sysex messages and even Note ON/OFFs). The whole output looks completely invalid.
This is the result I get on my Mac (MIDI Monitor) from a simple Note On/Off combination:
14:14:21.880 From Network EipadMiniSession SysEx Unknown Manufacturer 4 bytes 14:14:21.880 From Network EipadMiniSession Pitch Wheel 7 -8192 14:14:21.880 From Network EipadMiniSession Invalid 3 bytes 14:14:21.880 From Network EipadMiniSession Channel Pressure 14 0 14:14:21.880 From Network EipadMiniSession Invalid 4 bytes 14:14:21.880 From Network EipadMiniSession Invalid 1 bytes 14:14:22.223 From Network EipadMiniSession SysEx Unknown Manufacturer 4 bytes 14:14:22.223 From Network EipadMiniSession Pitch Wheel 7 -8192 14:14:22.223 From Network EipadMiniSession Invalid 3 bytes 14:14:22.223 From Network EipadMiniSession Channel Pressure 14 0 14:14:22.223 From Network EipadMiniSession Invalid 4 bytes 14:14:22.223 From Network EipadMiniSession Invalid 1 bytes
|
|
nic
Soapbox Supremo
Troublemaker
Press any key to continue
Posts: 2,011
|
Post by nic on Jul 18, 2018 12:45:43 GMT
Hi qdrtshlz Yes, that looks like corrupted data. Is there more in your ruleset than just the XX = XX +B? If so, could you post the entire ruleset. And even with your simple notes test, is it possible that sysex is coming in at all? EDIT: I have tried to reproduce by creating a one slider layout in Midi Designer that sends note on events when moved. Using a remote monitoring app, I can see the note events. I add a one rule 'XX = XX +B' to the output Stream Byter and the notes stopped (and no other events either). I'm using the current beta. Could you try this also (auf dem Ei-pad!) please? Regards, Nic.
|
|
|
Post by qdrtshlz on Jul 18, 2018 23:54:59 GMT
Ok, really weird. For some reason I cannot reproduce this anymore. Just updated to the very latest beta 3, which just came in. Dunno if something was fixed with that beta or if I changed something elsewhere. Here's what my entire ruleset looks like:
IF LOAD # Dump Requests SND F0 43 L02 7E 4C 4D 20 20 38 30 32 33 41 45 F7 # ACED2 + ACED + VCED SND F0 43 L02 7E 4C 4D 20 20 38 30 33 36 53 20 F7 # EFEDS + system setup END
MAT L00 = M00 & F0 # get message without channel - MT doesn't seem to work in MD MAT L01 = M00 & 0F # get channel from message - MC doesn't seem to work in MD
IF L00 == C0 # Program Change on any channel MAT L02 = L01 | 20 # Dump Requests SND F0 43 L02 7E 4C 4D 20 20 38 30 32 33 41 45 F7 # ACED2 + ACED + VCED SND F0 43 L02 7E 4C 4D 20 20 38 30 33 36 53 20 F7 # EFEDS + system setup END
#IF G00 == 1 # Global block active? # XX = XX +B #END
I was experimenting with the conditional at the bottom of my ruleset (without the #'s obviously). In my various tests I had the XX = XX +B without the conditional (IF G00 == 1), at the beginning of the entire ruleset and later at the bottom. This didn't make any difference.
But as I've said, now the issue seems to have gone away completely... Yeah!
Thanks much for your help, anyway!
|
|