Accurate way to determine if a block supports X/Y switching

bossredman

Inspired
I read that one of the words in the 0x0E sysex returns the block's XY cc number. Ie:

"The block's XY CC# (if the value is 0 or more than 127, it means the block doesn't have a CC# assigned or doesn't have X/Y)"

My question is though.
If value is 0 or 》127...How can determine 100% of the time if it's just that the cc has not been set or just doesn't support XY?

I am currently displaying each blocks current XY status... but want to omit it if the block doesn't support it.
 
So to extract each Effect ID from the 0x0E sysex array - ie use this code.

Code:
eID = (0xf0 & ((LastestSysexArray[i] & 0x0f) << 4)) + ((LastestSysexArray[i - 1] & 0x78) >> 3);
where i is the last byte of each 5 byte chunk.

I'm totally hopeless at this bitwise stuff - so can anyone show me how to do the same for XY CC# please.
 
OK - been trying to work this out & have come up with this.
Does this look correct - pls?
Code:
XorY_CC = (0xE0 & ((4th Byte & 0x07) << 5)) + ((3rd Byte & 0x7C) >> 2);

...where 4th Byte & 3rd byte - are the respective bytes of each Effect's 5 byte chunk from teh 0x0E sysex.
 
Back
Top Bottom