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
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
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.
Sean Luke
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.