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: 65 2 0 Pickup Enable Off 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