Replies: 4 comments 8 replies
-
Hi @DavidOpgh Can you upload an example dump file as sysex? |
Beta Was this translation helpful? Give feedback.
-
Thanks for that - I was able to find where the patch names are in the All Access - 04-13-2022.zip file. They start at the 8th byte but there seems to be an empty 00 byte between each ASCII binary number, so for a 12 letter name, which seems to be the limit, there are 24 bytes of data. Each patch has its own message so you should be able to slow down the transmission of each message in Ctrlr, but I'm not sure how to slow the individual byte rate transfer in Ctrlr. What each byte of data represents would be a case of trial and error, finding what each byte does, but this should give you a start. But, it looks like you can use a similar method to extract the data as with the name. -- -- Called when a panel receives a midi message (does not need to match any modulator mask) -- @midi CtrlrMidiMessage object -- sf = string.format myMidiReceived = function(--[[ CtrlrMidiMessage --]] midi) local s = midi:getSize() panel:getLabelComponent("d"):setText(sf("received %d bytes", s)) if s == 309 then extractName(midi, s) end end extractName = function(midi, size) local nameData, tmp = MemoryBlock(), MemoryBlock() -- there's a zero byte between each Ascii character tmp:loadFromHexString(midi:getData():getRange(8, 24):toHexString(1)) local t = {} for i = 0, tmp:getSize() - 1, 2 do -- only access every second byte table.insert(t, tmp:getByte(i)) end nameData:createFromTable(t) panel:getLabelComponent("d"):append(sf("\n%s", nameData:toString())) end |
Beta Was this translation helpful? Give feedback.
-
Version 2 has a timer and sends out the 309 byte message according to the ms time you set on the panel. |
Beta Was this translation helpful? Give feedback.
-
@dnaldoog I'm having issues today with reliable sysex uploads using MIDI-OX. I currently have it configured with an output buffer of 32 bytes and waiting 200ms between each buffer but was still getting a buffer overflow error. If the Rocktron can't handle an upload of the entire patch at full speed I'll probably have to add some additional code to break up the sysex into smaller blocks. Looking at the display on the Rocktron I believe patch names start at byte x0006 (7th byte), The names normally begin with a space x20 after the patch number. Looking at the sysex each character has a trailing byte of x00 which gives a total of 13 characters for names. Yes, it looks like it's going to be a lot of trial and error trying to figure out what each byte does. I believe a lot of the data is similar so once I figure out the data for one function does it should apply to multiple locations. |
Beta Was this translation helpful? Give feedback.
-
I want to create a panel for the Rocktron All Access midi footpedal.
It has minimal sysex implementation and little available documentation.
It only supports Sysex dumps and uploads of the entire memory so I'd like to dump the sysex, create/modify patches, and upload the modified sysex.
Is there an existing panel I can use as a starting point?
I haven't done a deep dive but it seems like a lot of panels dump/edit/load individual patches, not an entire sysex memory dump.
Is there documentation / code examples that show how to parse the sysex dump into patches?
Are there code examples that show how to modify the speed of sysex uploads?
The Rocktron is very slow handling uploads. It requires a delay after sending a block of data or you'll get a buffer overflow. Using the Midi-OX app I've been able to configure the parameters to upload sysex files reliably. I want to duplicate that in Ctrlr
thanks!
Beta Was this translation helpful? Give feedback.
All reactions