Start a new topic

Sysex Specification

George Mason University has done some analysis of the Roli Seaboard Block's sysex stream.  Messages *to* the Block are pretty much deciphered: no idea about messages *from* the Block, which are kind of a mess.  Help would be welcome.  However before I posted what we've got so far, I am waiting for confirmation from Roli that Section 6.5 of their EULA does not refer to banning reverse engineering of the sysex messages (I believe it does not).


None of this would be necessary if Roli just posted their spec.  It's crazy that they have not.



Hey Sean,


Thanks for asking about the BLOCKS SysEx messages.


The BLOCKS API is in the JUCE library, and we recommend that app developers use JUCE to support this, as the non-byte aligned concatenation of messages to and from Blocks is complex to parse outside of JUCE, as you've probably discovered yourself!


If you'd like to reverse engineer the messages, rather than relying entirely on the SysEx messages themselves, I recommend that you look at the JUCE source code. 


Please let us know if you have any questions.


Red


1 person likes this

Thank you, Red.  Here are many of the messages received by the Seaboard Block.  The sysex pattern is pretty straightforward.  Will be checking out the JUCE source presently.

 

Heartbeat	F0 00 21 10 77 2E 01 03  00 63 F7
Note: this happens constantly

Request?	F0 00 21 10 77 2E 10 02  44 F7
Note: this seems to be made twice, and different amounts of data arrives as a result			

MPE			F0 00 21 10 77 2E 10 20  20 00 00 00 00 00 38 F7
Multi		F0 00 21 10 77 2E 10 20  00 00 00 00 00 00 58 F7 
Single		F0 00 21 10 77 2E 10 20  40 00 00 00 00 00 18 F7

Chan 1		F0 00 21 10 77 2E 10 00  20 00 00 00 00 00 18 F7 
Chan 2		F0 00 21 10 77 2E 10 00  40 00 00 00 00 00 78 F7 
Chan 3		F0 00 21 10 77 2E 10 00  60 00 00 00 00 00 58 F7
Chan 4		F0 00 21 10 77 2E 10 00  00 01 00 00 00 00 09 F7
Chan 5		F0 00 21 10 77 2E 10 00  20 01 00 00 00 00 69 F7 
Chan 6		F0 00 21 10 77 2E 10 00  40 01 00 00 00 00 49 F7 
Chan 7		F0 00 21 10 77 2E 10 00  60 01 00 00 00 00 29 F7
Chan 8		F0 00 21 10 77 2E 10 00  00 02 00 00 00 00 5A F7
Chan 9		F0 00 21 10 77 2E 10 00  20 02 00 00 00 00 3A F7
Chan 10		F0 00 21 10 77 2E 10 00  40 02 00 00 00 00 1A F7
Chan 11		F0 00 21 10 77 2E 10 00  60 02 00 00 00 00 7A F7
Chan 12		F0 00 21 10 77 2E 10 00  00 03 00 00 00 00 2B F7
Chan 13		F0 00 21 10 77 2E 10 00  20 03 00 00 00 00 0B F7
Chan 14		F0 00 21 10 77 2E 10 00  40 03 00 00 00 00 6B F7
Chan 15		F0 00 21 10 77 2E 10 00  60 03 00 00 00 00 4B F7
Chan 16		F0 00 21 10 77 2E 10 00  00 04 00 00 00 00 7C F7

MIDIStart 1	F0 00 21 10 77 2E 10 00  20 00 00 00 00 00 18 F7
...
MIDIStart16	F0 00 21 10 77 2E 10 00  00 04 00 00 00 00 7C F7

MIDIEnd 1	F0 00 21 10 77 2E 10 10  20 00 00 00 00 00 28 F7
...
MIDIEnd	16	F0 00 21 10 77 2E 10 10  00 04 00 00 00 00 0C F7

MPELowZone	F0 00 21 10 77 2E 10 00  05 00 00 00 00 00 77 F7
MPEUpZone	F0 00 21 10 77 2E 10 00  25 00 00 00 00 00 57 F7

MPENumChn 1	F0 00 21 10 77 2E 10 10  21 00 00 00 00 00 1B F7
MPENumChn 2	F0 00 21 10 77 2E 10 10  41 00 00 00 00 00 7B F7
...
MPENumChn15	F0 00 21 10 77 2E 10 10  61 03 00 00 00 00 4E F7

Bend 0		F0 00 21 10 77 2E 10 30  00 00 00 00 00 00 68 F7
Bend 1		F0 00 21 10 77 2E 10 30  20 00 00 00 00 00 48 F7
Bend 2		F0 00 21 10 77 2E 10 30  40 00 00 00 00 00 28 F7
...
Bend 4		F0 00 21 10 77 2E 10 30  00 01 00 00 00 00 39 F7
...
Bend 24		F0 00 21 10 77 2E 10 30  00 06 00 00 00 00 4E F7
...
Bend 96		F0 00 21 10 77 2E 10 30  00 18 00 00 00 00 00 F7

Octave -4	F0 00 21 10 77 2E 10 40  00 7F 7F 7F 7F 03 03 F7
Octave -3	F0 00 21 10 77 2E 10 40  20 7F 7F 7F 7F 03 63 F7
Octave -2	F0 00 21 10 77 2E 10 40  40 7F 7F 7F 7F 03 43 F7
Octave -1	F0 00 21 10 77 2E 10 40  60 7F 7F 7F 7F 03 23 F7
Octave 0	F0 00 21 10 77 2E 10 40  00 00 00 00 00 00 78 F7
Octave 1	F0 00 21 10 77 2E 10 40  20 00 00 00 00 00 58 F7
Octave 2	F0 00 21 10 77 2E 10 40  40 00 00 00 00 00 38 F7
Octave 3	F0 00 21 10 77 2E 10 40  60 00 00 00 00 00 18 F7
Octave 4	F0 00 21 10 77 2E 10 40  00 01 00 00 00 00 49 F7
Octave 5	F0 00 21 10 77 2E 10 40  20 01 00 00 00 00 29 F7
Octave 6	F0 00 21 10 77 2E 10 40  40 01 00 00 00 00 09 F7

Transp -11	F0 00 21 10 77 2E 10 50  20 7D 7F 7F 7F 03 51 F7
Transp -10	F0 00 21 10 77 2E 10 50  40 7D 7F 7F 7F 03 31 F7
...
Transp 0	F0 00 21 10 77 2E 10 50  00 00 00 00 00 00 08 F7
...
Transp 11	F0 00 21 10 77 2E 10 50  60 02 00 00 00 00 4A F7

Slide CC 0	F0 00 21 10 77 2E 10 60  00 00 00 00 00 00 18 F7
Slide CC 1	F0 00 21 10 77 2E 10 60  20 00 00 00 00 00 78 F7
...
Slide CC127	F0 00 21 10 77 2E 10 60  60 1F 00 00 00 00 07 F7

Absolute	F0 00 21 10 77 2E 10 70  00 00 00 00 00 00 28 F7
Unipolar	F0 00 21 10 77 2E 10 70  20 00 00 00 00 00 08 F7
Bipolar		F0 00 21 10 77 2E 10 70  40 00 00 00 00 00 68 F7

Piano Off	F0 00 21 10 77 2E 10 10  02 00 00 00 00 00 2E F7
Piano On	F0 00 21 10 77 2E 10 10  22 00 00 00 00 00 0E F7

Glide 0		F0 00 21 10 77 2E 10 20  02 00 00 00 00 00 3E F7
Glide 1		F0 00 21 10 77 2E 10 20  22 00 00 00 00 00 1E F7
Glide 127	F0 00 21 10 77 2E 10 20  62 1F 00 00 00 00 2D F7

GlideLk Off	F0 00 21 10 77 2E 10 30  02 00 00 00 00 00 4E F7
GlideLk On	F0 00 21 10 77 2E 10 30  22 00 00 00 00 00 2E F7

Chord Off	F0 00 21 10 77 2E 10 00  03 00 00 00 00 00 11 F7
Chord Oct	F0 00 21 10 77 2E 10 00  23 00 00 00 00 00 71 F7
...
Chord m7b5	F0 00 21 10 77 2E 10 00  43 03 00 00 00 00 44 F7
Chord options: Off Octave 5th Major minor Sus4 Sus2 7th Major7 Minor7 9th Minor9 diminished Augmented m7b5

Glide Trk 1	F0 00 21 10 77 2E 10 60  23 00 00 00 00 00 51 F7
Glide Trk 2	F0 00 21 10 77 2E 10 60  43 00 00 00 00 00 31 F7
Glide Trk 3	F0 00 21 10 77 2E 10 60  63 00 00 00 00 00 11 F7
Glide Trk 4 F0 00 21 10 77 2E 10 60  03 01 00 00 00 00 42 F7
Glide Tracking Mode: Last Played, Highest, Lowest, Disabled

Slide Trk 1	F0 00 21 10 77 2E 10 70  23 00 00 00 00 00 61 F7
Slide Trk 2	F0 00 21 10 77 2E 10 70  43 00 00 00 00 00 41 F7
Slide Trk 3	F0 00 21 10 77 2E 10 70  63 00 00 00 00 00 21 F7
Slide Trk 4	F0 00 21 10 77 2E 10 70  03 01 00 00 00 00 52 F7
Slide Tracking Mode: Last Played, Highest, Lowest, Disabled

Press Trk 1	F0 00 21 10 77 2E 10 00  04 00 00 00 00 00 04 F7
Press Trk 2	F0 00 21 10 77 2E 10 00  24 00 00 00 00 00 64 F7
Press Trk 3	F0 00 21 10 77 2E 10 00  44 00 00 00 00 00 44 F7
Press Trk 4	F0 00 21 10 77 2E 10 00  64 00 00 00 00 00 24 F7
Press Trk 5	F0 00 21 10 77 2E 10 00  04 01 00 00 00 00 55 F7
Press Trk 6	F0 00 21 10 77 2E 10 00  24 01 00 00 00 00 35 F7
Pressure Tracking Mode: Multi-Channel, Last Played, Highest, Lowest, Disabled, Hardest

Str Sens 0	F0 00 21 10 77 2E 10 20  01 00 00 00 00 00 4B F7
...
Str Sens127	F0 00 21 10 77 2E 10 20  61 1F 00 00 00 00 3A F7

Gli Sens 0	F0 00 21 10 77 2E 10 30  01 00 00 00 00 00 5B F7
...
Gli Sens127	F0 00 21 10 77 2E 10 30  61 1F 00 00 00 00 4A F7

Sli Sens 0	F0 00 21 10 77 2E 10 40  01 00 00 00 00 00 6B F7
...
Sli Sens127	F0 00 21 10 77 2E 10 40  61 1F 00 00 00 00 5A F7

Prs Sens 0	F0 00 21 10 77 2E 10 50  01 00 00 00 00 00 7B F7
...
Prs Sens127	F0 00 21 10 77 2E 10 50  61 1F 00 00 00 00 6A F7

Lft Sens 0	F0 00 21 10 77 2E 10 60  01 00 00 00 00 00 0B F7
...
Lft Sens127	F0 00 21 10 77 2E 10 60  61 1F 00 00 00 00 7A F7

Vel 1		F0 00 21 10 77 2E 10 00  22 00 00 00 00 00 7E F7
Vel 2		F0 00 21 10 77 2E 10 00  42 00 00 00 00 00 5E F7
...
Vel 127		F0 00 21 10 77 2E 10 00  62 1F 00 00 00 00 0D F7

FixedVelOff	F0 00 21 10 77 2E 10 70  01 00 00 00 00 00 1B F7
FixedVelOn	F0 00 21 10 77 2E 10 70  21 00 00 00 00 00 7B F7

 

Hey guys! Thanks for this info; I have just decided to get into sysex today as I want to change the layout of my Roli blocks directly inside of AUM (iOS) through the use of MOZAIC scripts which pretty much lets us program how to handle our midi and sysex. Although I could explore the juce source code, I would really appreciate if someone who already knows the command that is needed could simply tell me as I am gonna have to do a lot of research beforehand if I want to decipher this myself (new to sysex). I never connect my rolis to my PC and although i do have “Block Dashboard” on iOS which can do all of this, I would rather be able to control the layout directly inside of AUM.” Without the use of the block dashboard. Thank you! Ps: fantastic list of commands btw, thank you I will certainly try to put some of these to use through Mozaic to get familiarized with Sysex and how Roli uses it.

Hi Enrique, how did you get around to sending sysex from ipad? I have a Lumi and really want to control its light modes (scale, root) through ipad instead of studio desktop because i mostly dabble in ios. Very cumbersome to plug to PC just to change key/scale! 

I tried “Midi toolbox” app but it doesnt work, “sysex base” cant create sysex file from scratch in ipad.

Login to post a comment