79 lines
3.1 KiB
Plaintext
79 lines
3.1 KiB
Plaintext
In general everything brings down to figure out:
|
|
-ID
|
|
-Position
|
|
-Possible value range
|
|
|
|
There seems to be three possible ways to figure that out.
|
|
1) Use USB sniffer together with X-Edit
|
|
Once you set up X-Edit and usb sniffer, set some option.
|
|
USB sniffer should report something like this being sent to device:
|
|
(all numbers here are hex)
|
|
04 F0 00 00 04 10 00 5E 04 02 41 00 04 30 09 00 07 00 34 F7
|
|
|
|
To get SysEx command out of it, remove every 4th byte, so we have:
|
|
F0 00 00 10 00 5E 02 41 00 30 09 00 00 34 F7
|
|
|
|
SysEx message format seems to be formed like this:
|
|
magic bytes - F0 00 00 10 00 5E 02 41
|
|
status byte - in this example 00
|
|
ID - in this example 30 09
|
|
Position - in this example 00
|
|
Value - in this example 00 (can be more bytes long, see below)
|
|
Checksum - to calculate it, XOR all bytes, and then XOR it with 07
|
|
Every message ends with F7
|
|
|
|
Status byte bits explained:
|
|
7th - ???
|
|
6th - if active add 80 to ID
|
|
5th - ???
|
|
4th - is active when value will start with length
|
|
In such case value can be something like:
|
|
01 12 or 02 12 34 or 03 12 34 56
|
|
and proper values are:
|
|
01 - 12
|
|
02 - 1234
|
|
03 - 123456
|
|
3rd - when 4th bit is also active, and first value byte is 01
|
|
then add 80 to value
|
|
2nd - when 4th bit is also active, and first value byte is 02
|
|
then add 80 to value
|
|
1st - when 4th bit is also active, and first value byte is 03
|
|
then add 80 to value
|
|
|
|
So for above example:
|
|
ID = 3009 (hex) = 12297 (decimal)
|
|
Position = 0
|
|
One of possible values is 0. Usually value range is 0 to 99,
|
|
albeit in some cases it's different - you have to check what values can
|
|
X-Edit assign (there doesn't seem to be any sanity check in firmware)
|
|
This is especially needed for IDs that set some effect type.
|
|
|
|
2) Save preset patch
|
|
Patches seem to be simple XML files.
|
|
Every parameter is written like this:
|
|
<Param>
|
|
<ID>65</ID>
|
|
<Position>2</Position>
|
|
<Value>0</Value>
|
|
<Name>Pickup Enable</Name>
|
|
<Text>Off</Text>
|
|
</Param>
|
|
ID is ID, Position is Position and Value is one of possible values.
|
|
To get all possible values you can:
|
|
do
|
|
change value to next one possible in X-Edit
|
|
(for example next effect type)
|
|
save new patch
|
|
check patch file and note the change
|
|
while you don't have all possible values
|
|
3) Use gdigi
|
|
After starting gdigi turn the knobs on your device.
|
|
Check out console output, you should notice something like this:
|
|
** Message: Received parameter change ID: 210 Position: 4 Value: 0
|
|
ID is ID, Position is Position and Value is one of possible values.
|
|
To get all possible values keep turning knobs and watch the output.
|
|
If you change effect type usually there's more messages - where,
|
|
usually the first one is type change, and rest are default values.
|
|
This way you *CANNOT* gather all information (there're X-Edit only
|
|
controlled values, check device manual for more information).
|