fbpx
Skip to main content

MIDI Forum

Sysex Vs my sanity
 
Notifications
Clear all

Sysex Vs my sanity

3 Posts
3 Users
0 Reactions
6,017 Views
Sam
 Sam
Posts: 1
New Member
Topic starter
 

Hello,
I am learning how to control a Roland A-01 using sysex and an app called MidiDesigner. I have managed to interpret the manual for values between 0-127 that only use one byte and are written as “0aaa aaaa” in the manual.
What I cannot understand is values of two bytes that control parameters with more than 128 values such as tempo (40 - 240) and pitch of each sequenced note (-1 - 127) and they are represented as two bytes of “0000 aaaa”, “0000 aaaa”.
Basically for what I have done so far, I haven’t grasped the principle. Any help would be very much appreciated as I am desperate to understand this.
Many thanks.

 
Posted : 07/03/2018 11:02 am
Geoff
Posts: 1039
Noble Member
 

The specific things you've mentioned so far are NOT SYSEX.

Tempo is a specific midi command, which has a defined structure, including 3 bytes of data - although the second byte of the command is the number of data bytes which COULD be something other than 3 -because it's a defined length and a defined format, then bytes with the high bit set are allowable.

Normally, if the high bit is set, then it's a command byte and not data.

SYSEX messages have a defined header and terminator (F0 and F7 respectively) and part of the start of the message usually indicates device specific info, but the format of the bulk of the message does NOT follow a specific pattern and different messages will have different structures. Messages are usually device specific Again, usually, the data is passed as 7 bit numbers. Including data addresses. But note that the midi data charts usually show all the data addresses in the same format, you don't need to worry too much about converting addresses.

Where a number template is shown as 0bbb bbbb this is because the first bit must be 0, but that's the first bit of the 8. The first bit of the second 'nibble' (half a byte) can be 0 or 1 as required.

If the template is shown as 0000 aaaa then this is actually a 0 - 15 value, lower nibble ONLY, say for channel setting.

Any help so far?

Geoff

 
Posted : 07/03/2018 11:47 am
Eddie Lotter
Posts: 295
Reputable Member
 

Search your manual for the word "nibbled" and you will find a description of how to use nibbled data.
In essence, given the bit pattern you posted, the first byte is multiplied by 16 and added to the second byte.
In your example, the bytes 0Fh 00h will equal 240 because 15 x 16 + 0 = 240. The bytes 02h 08h will equal 40 because 2 x 16 + 8 = 40.

Cheers
Eddie

 
Posted : 07/03/2018 9:04 pm
Share: