bossredman
Inspired
HI,
I've been trying implement Effect Block X/Y switching in my DIY MFC.
I'm "getting" the current XY state of an effect using:
And then "setting" the opposite state via:
I then re-capture PRESET_BLOCKS_DATA using 0x0E.
Each effect's eff ID ( in the preset_) is written to an array after being captured & extracted using the 0x0E sysex.
The 0x0E work's fine when changing preset & is accurate 100% of teh time.
But after toggling the X/Y state, it frequently reports back a SHORTER length 0x0E msg & therefore a lesser amount of Effects.
It essentially truncates the Array & the last few effects are missing.
This is casuing the XY toggle to not work for the missing effects from the array.
Any ideas why the 0x0E msg can report back differnt lenghth msgs for the same preset?
I've checked teh last byte & it is always an F7.(terminating bit)
My Test Preset has 14 blocks - so msg length should be 77 (5, for Hdr,1 for Function 14*5 for effs. 1 for F7 (terminating bit)
WHen it does not work - I get varying lengths eg 67, 68, 69
I've been trying implement Effect Block X/Y switching in my DIY MFC.
I'm "getting" the current XY state of an effect using:
Code:
byte Get_EffectXY_Sysex[12] = {0xF0, 0x00, 0x01, 0x74, 0x03, 0x11, byte1, byte2, 0x00, 0x00, CheckSum, 0xF7};
MIDI.sendSysEx(12, Get_EffectXY_Sysex, true);
And then "setting" the opposite state via:
Code:
byte Set_EffectXY_Sysex[12] = {0xF0, 0x00, 0x01, 0x74, 0x03, 0x11, byte1, byte2, Set_XY, 0x01, CheckSum, 0xF7};
MIDI.sendSysEx(12, Set_EffectXY_Sysex, true);
I then re-capture PRESET_BLOCKS_DATA using 0x0E.
Each effect's eff ID ( in the preset_) is written to an array after being captured & extracted using the 0x0E sysex.
The 0x0E work's fine when changing preset & is accurate 100% of teh time.
But after toggling the X/Y state, it frequently reports back a SHORTER length 0x0E msg & therefore a lesser amount of Effects.
It essentially truncates the Array & the last few effects are missing.
This is casuing the XY toggle to not work for the missing effects from the array.
Any ideas why the 0x0E msg can report back differnt lenghth msgs for the same preset?
I've checked teh last byte & it is always an F7.(terminating bit)
My Test Preset has 14 blocks - so msg length should be 77 (5, for Hdr,1 for Function 14*5 for effs. 1 for F7 (terminating bit)
WHen it does not work - I get varying lengths eg 67, 68, 69