fret
Experienced
I'm not 100% sure this is a bug but it's making my life a right pain at the moment. For my foot controller I take the approach of querying the state of instant access switches using the MIDI_GET/SET_PARAMETER(0x02) sysex command and the bypass parameter ID. This works great when switching presets, the instant access buttons track the new state of their blocks. The problem occurs when I switch scene. I basically have to update the IA switches as if I had changed preset. Which is fine, except the results I get back are the same as when I first changed to that preset (i.e. scene 1 not the new scene).
E.g.
Axefx2 is on preset 1
Foot controller changes to preset 2 with:
9, out: b0 00 00 c0 01
Then the controller issues a bunch of commands to update the UI:
10, out: f0 00 01 74 03 02 05 01 07 00 00 00 00 00 07 f7
11, in: f0 00 01 74 03 02 05 01 07 00 00 00 10 3f 00 00 00 00 30 2e 30 30 00 36 f7
// GET/SET_PARAM Block=0x85(Drive1) ParamId=7 ParamVal=0 Text='0.00'
12, out: f0 00 01 74 03 02 70 00 16 00 00 00 00 00 62 f7
13, in: f0 00 01 74 03 02 70 00 16 00 07 00 1c 3f 00 00 00 00 31 2e 30 30 00 59 f7
// GET/SET_PARAM Block=0x70(Delay1) ParamId=22 ParamVal=7 Text='1.00'
14, out: f0 00 01 74 03 0f 09 f7
15, in: f0 00 01 74 03 0f 42 6f 75 74 69 71 75 65 20 44 6f 74 38 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 00 6a f7
// GET_PRESET_NAME 'Boutique Dot8 '
16, in: f0 00 01 74 03 10 f7
17, in: f0 00 01 74 03 21 27 f7
// Unknown cmd '0x21'
This is fine, preset 2 has Drive1 engaged (value&0x01 = 0 so engaged right?) and Delay1 off (value&0x01 is 1 so bypassed).
Now I change to scene 3 where Drive1 AND Delay1 are bypassed (both should have bit 0x01 set to TRUE).
37, out: f0 00 01 74 03 29 02 2d f7
38, in: f0 00 01 74 03 29 02 2d f7
// MIDI_SET_SCENE_NUMBER Scene=3
39, out: f0 00 01 74 03 02 05 01 07 00 00 00 00 00 07 f7
40, in: f0 00 01 74 03 10 f7
41, in: f0 00 01 74 03 02 05 01 07 00 00 00 10 3f 00 00 00 00 30 2e 30 30 00 36 f7
// GET/SET_PARAM Block=0x85(Drive1) ParamId=7 ParamVal=0 Text='0.00'
42, out: f0 00 01 74 03 02 70 00 16 00 00 00 00 00 62 f7
43, in: f0 00 01 74 03 02 70 00 16 00 07 00 1c 3f 00 00 00 00 31 2e 30 30 00 59 f7
// GET/SET_PARAM Block=0x70(Delay1) ParamId=22 ParamVal=7 Text='1.00'
44, out: f0 00 01 74 03 0f 09 f7
45, in: f0 00 01 74 03 0f 42 6f 75 74 69 71 75 65 20 44 6f 74 38 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 00 6a f7
// GET_PRESET_NAME 'Boutique Dot8 '
46, in: f0 00 01 74 03 21 27 f7
// Unknown cmd '0x21'
Now nothing has changed in the GET_PARAM responses but the Drive1 block has obviously switched to bypassed. This causes my footcontroller user interface to lose sync with what's happening in the Axefx2.
E.g.
Axefx2 is on preset 1
Foot controller changes to preset 2 with:
9, out: b0 00 00 c0 01
Then the controller issues a bunch of commands to update the UI:
10, out: f0 00 01 74 03 02 05 01 07 00 00 00 00 00 07 f7
11, in: f0 00 01 74 03 02 05 01 07 00 00 00 10 3f 00 00 00 00 30 2e 30 30 00 36 f7
// GET/SET_PARAM Block=0x85(Drive1) ParamId=7 ParamVal=0 Text='0.00'
12, out: f0 00 01 74 03 02 70 00 16 00 00 00 00 00 62 f7
13, in: f0 00 01 74 03 02 70 00 16 00 07 00 1c 3f 00 00 00 00 31 2e 30 30 00 59 f7
// GET/SET_PARAM Block=0x70(Delay1) ParamId=22 ParamVal=7 Text='1.00'
14, out: f0 00 01 74 03 0f 09 f7
15, in: f0 00 01 74 03 0f 42 6f 75 74 69 71 75 65 20 44 6f 74 38 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 00 6a f7
// GET_PRESET_NAME 'Boutique Dot8 '
16, in: f0 00 01 74 03 10 f7
17, in: f0 00 01 74 03 21 27 f7
// Unknown cmd '0x21'
This is fine, preset 2 has Drive1 engaged (value&0x01 = 0 so engaged right?) and Delay1 off (value&0x01 is 1 so bypassed).
Now I change to scene 3 where Drive1 AND Delay1 are bypassed (both should have bit 0x01 set to TRUE).
37, out: f0 00 01 74 03 29 02 2d f7
38, in: f0 00 01 74 03 29 02 2d f7
// MIDI_SET_SCENE_NUMBER Scene=3
39, out: f0 00 01 74 03 02 05 01 07 00 00 00 00 00 07 f7
40, in: f0 00 01 74 03 10 f7
41, in: f0 00 01 74 03 02 05 01 07 00 00 00 10 3f 00 00 00 00 30 2e 30 30 00 36 f7
// GET/SET_PARAM Block=0x85(Drive1) ParamId=7 ParamVal=0 Text='0.00'
42, out: f0 00 01 74 03 02 70 00 16 00 00 00 00 00 62 f7
43, in: f0 00 01 74 03 02 70 00 16 00 07 00 1c 3f 00 00 00 00 31 2e 30 30 00 59 f7
// GET/SET_PARAM Block=0x70(Delay1) ParamId=22 ParamVal=7 Text='1.00'
44, out: f0 00 01 74 03 0f 09 f7
45, in: f0 00 01 74 03 0f 42 6f 75 74 69 71 75 65 20 44 6f 74 38 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 00 6a f7
// GET_PRESET_NAME 'Boutique Dot8 '
46, in: f0 00 01 74 03 21 27 f7
// Unknown cmd '0x21'
Now nothing has changed in the GET_PARAM responses but the Drive1 block has obviously switched to bypassed. This causes my footcontroller user interface to lose sync with what's happening in the Axefx2.