fbpx
  Wednesday, 07 March 2018
  2 Replies
  4.6K Visits
0
Votes
Undo
  Subscribe
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.
4 years ago
·
#1299
Accepted Answer
0
Votes
Undo
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
4 years ago
·
#1294
0
Votes
Undo
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
4 years ago
·
#1299
Accepted Answer
0
Votes
Undo
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
  • Page :
  • 1
There are no replies made for this post yet.
Be one of the first to reply to this post!