add HACKING file
This commit is contained in:
68
HACKING
Normal file
68
HACKING
Normal file
@@ -0,0 +1,68 @@
|
|||||||
|
In general everything brings down to figure out:
|
||||||
|
-ID
|
||||||
|
-Position
|
||||||
|
-Possible value range
|
||||||
|
|
||||||
|
There seems to be two 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
|
||||||
Reference in New Issue
Block a user