So, on my journey to hook up the EDIROL V-8 to Touchdesigner, I realized that a lot of menu parameters aren’t able to be accessed normally through the MIDI interface by assigning them to CC channels. One of the things I wanted to be able to do is change the effects and transitions on the fly from software without having to go through clunky menus or actually properly plan out my sets. So rather than working on self improvement or trying to find a video toaster or a stack of 8 capture cards so I can do this all digitally, I’ve decided to reverse engineer the parameter memory map for full control over this thing.
When you go to the MIDI menu on the EDIROL V-8 and go to MIDI Bulk Dump, the output looks something like this:
f0417f417f00000028122001000000003d0040001000520029010c0020005d005f010c01010101035af7
f0417f417f0000002812200200000000340108003b0044001b007d00650061005f0115010101010348f7
f0417f417f00000028122003000001005c020300100044001b007d00650061005f0115272501010303f7
f0417f417f00000028122004000003012b01680015004d005b010c000b0061005f0115202101010353f7
f0417f417f000000281220050000000025005c000b002000290052010d011001120114010101010366f7
f0417f417f000000281220060000000007015500000020002900440000005d005f010f01010101031df7
f0417f417f000000281220070000000007006a000b00200029007d010c0061005f010d010101010236f7
f0417f417f0000002812201000007e0015056a036100200000001f0000002000000001000000000af7
f0417f417f0000002812201100011b00210528032e00200000001f00000020000000010000000054f7
f0417f417f00000028122020000060005d005b005a005c005e005f00600055f7
f0417f417f000000281220210000070008000b000c0011000f001000120057f7
f0417f417f000000281220220000330039003600370033003900360037020af7
f0417f417f00000028122023000059004e0065002e001a0046001a00590030f7
f0417f417f00000028122030000342013b002800280028000300010000000000052ef7
f0417f417f00000028122031000041013b0028002800280003000100000000000531f7
f0417f417f0000002812203200034200400028002800280003000100000000000528f7
f0417f417f000000281220330000410040002800280028000300010000000000052bf7
f0417f417f00000028122034000000014f012001200120000600010000000000056df7
f0417f417f0000002812203500012301160120012001200006000900000000000579f7
f0417f417f00000028122036000152010300500050005000060001000b000000054cf7
f0417f417f00000028122037000057013201200120012000040001000b000e000519f7
f0417f417f00000028122040000100000e0100000e00010100000a010075f7
f0417f417f0000002812205000000000000024331000000000000000000000000000000a0000000006000000000000020000000000000017f7
f0417f417f000000281220600200300100007f007601000076010a00000000000000000000000a0148000000020000000500010000000001000100000079f7
f0417f417f00000028122f7f000052f7
I’ve taken the liberty to make this more sane to read by stripping off all the extra bits.
200100: 00 00 00 3d 00 40 00 10 00 52 00 29 01 0c 00 20
200110: 00 5d 00 5f 01 0c 01 01 01 01 03 00 00 00 34 01
200205: 08 00 3b 00 44 00 1b 00 7d 00 65 00 61 00 5f 01
200215: 15 01 01 01 01 03 00 01 00 5c 02 03 00 10 00 44
20030a: 00 1b 00 7d 00 65 00 61 00 5f 01 15 27 25 01 01
20031a: 03 00 03 01 2b 01 68 00 15 00 4d 00 5b 01 0c 00
20040f: 0b 00 61 00 5f 01 15 20 21 01 01 03 00 00 00 25
200504: 00 5c 00 0b 00 20 00 29 00 52 01 0d 01 10 01 12
200514: 01 14 01 01 01 01 03 00 00 00 07 01 55 00 00 00
200609: 20 00 29 00 44 00 00 00 5d 00 5f 01 0f 01 01 01
200619: 01 03 00 00 00 07 00 6a 00 0b 00 20 00 29 00 7d
20070e: 01 0c 00 61 00 5f 01 0d 01 01 01 01 02 00 7e 00
201003: 15 05 6a 03 61 00 20 00 00 00 1f 00 00 00 20 00
201013: 00 00 01 00 00 00 00 01 1b 00 21 05 28 03 2e 00
201109: 20 00 00 00 1f 00 00 00 20 00 00 00 01 00 00 00
201119: 00 00 60 00 5d 00 5b 00 5a 00 5c 00 5e 00 5f 00
20200f: 60 00 00 07 00 08 00 0b 00 0c 00 11 00 0f 00 10
20210e: 00 12 00 00 33 00 39 00 36 00 37 00 33 00 39 00
20220d: 36 00 37 02 00 59 00 4e 00 65 00 2e 00 1a 00 46
20230c: 00 1a 00 59 00 03 42 01 3b 00 28 00 28 00 28 00
20300b: 03 00 01 00 00 00 00 00 05 00 41 01 3b 00 28 00
203107: 28 00 28 00 03 00 01 00 00 00 00 00 05 03 42 00
203203: 40 00 28 00 28 00 28 00 03 00 01 00 00 00 00 00
203213: 05 00 41 00 40 00 28 00 28 00 28 00 03 00 01 00
20330f: 00 00 00 00 05 00 00 01 4f 01 20 01 20 01 20 00
20340b: 06 00 01 00 00 00 00 00 05 01 23 01 16 01 20 01
203507: 20 01 20 00 06 00 09 00 00 00 00 00 05 01 52 01
203603: 03 00 50 00 50 00 50 00 06 00 01 00 0b 00 00 00
203613: 05 00 57 01 32 01 20 01 20 01 20 00 04 00 01 00
20370f: 0b 00 0e 00 05 01 00 00 0e 01 00 00 0e 00 01 01
20400b: 00 00 0a 01 00 00 00 00 00 00 24 33 10 00 00 00
20500b: 00 00 00 00 00 00 00 00 00 00 00 0a 00 00 00 00
20501b: 06 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00
206003: 30 01 00 01 0a 00 76 01 00 00 76 01 0a 00 00 00
206013: 00 00 00 00 00 00 00 00 0a 01 48 00 00 00 02 00
206023: 00 00 05 00 01 00 00 00 00 01 00 01 00 00 00 00
You might notice there’s no FF values in here. That’s because MIDI is only 7 bits, which makes the max value 7F. This threw me for a loop when trying to identify how one of the settings worked.
As an example. I’ve already taken a look at how the VideoA Color Adjust
setting is stored in memory.
The byte at address 206006
is set to 01
when the number is positive (+0 to +11) and 00
when the number is negative (-1 to -10).
The byte at address 206007
has a positive range of 00
to 0b
(0-11 in hex) and a negative range of 7f
to 76
(-1 to -10 in hex because the eighth bit is unused in MIDI)
This looks a lot like a signed integer to me and I think it might be possible to write values outside of the range it’s expecting and get stronger saturation or desaturation than what it natively lets you do. I don’t know how it will respond to this yet (may very well crash it), so I am going to open up the mixer and back up EEPROM and Flash contents with a chip programmer before potentially breaking something. For now I will be sticking to known safe values.
Essentially, you are able to poke values directly into the V-8’s memory on the fly over MIDI. The end result of this project is going to be full documentation on what each one of these bytes does, what setting it corresponds to, the range of values, and address it exists at. This will allow for the expansion of the capabilities of the V-8 (and possibly other V- series mixers on the same architecture) beyond anything previously possible.
I’m posting this here to gauge interest and see if anybody would be willing to collaborate with me on this.
I’ve set up a public GitHub repository and I will keep both this post and the respository up to date with any developments. GitHub - geepot/edirol-midi-dump: A project for reverse engineering the MIDI Bulk Dump of the EDIROL V-4 and V-8 series of video mixers to allow for total control of all parameters of the mixer via sysex commands.