The MIDI Forum

  1. Eric Kampman
  2. MIDI Software
  3. Sunday, 03 April 2016
  4.  Subscribe via email
And is that likely to change?

And no, i'm not going to admit why I'm asking (you'd just tell me not to)

Thanks
Eric
Comment
There are no comments made yet.
Accepted Answer
Jan Kučera Accepted Answer Pending Moderation
0
Votes
Undo
Don't. :)

The first byte of MIDI message is always a status byte, and it is the only one that has the highest bit set (i.e. is >=0x80). That way you can always detect when a MIDI message begins in a stream of bytes. When you don't support given message (maybe because it hasn't been specified at the time of your implementation, so you don't even know how long such message is), you can simply skip all the following bytes that are <0x80. The other thing is that real-time messages (>=0xF8) can be interleaved anywhere (e.g. in the middle of 'note on' data), so you need to be able to detect that. Last but not least - running status, i.e. if the status byte was the same for multiple consecutive messages, you can leave it out.

So if the question is, can a hypothetical new status byte be lower than 0x80, than the answer is no unless breaking every device and software out there is acceptable.
If the question is what to do when we run out of status bytes, you could use one of the existing status bytes and give special meaning to the bytes that follow. Oh wait a minute, that's what universal SysEx messages do.
If you want to transfer arbitrary data, then use SysEx for it, but it's your job again to ensure none of the payload data is >=0x80.

Hope this helps, but as you can imagine stating your intents might not only amuse others but also - more likely - allow them to come up with constructive feedback, solution, or examples when it wouldn't work. You can always do whatever you want regardless what others tell you, you know...
Comment
There are no comments made yet.
  1. more than a month ago
  2. MIDI Software
  3. # Permalink
Eric Kampman Accepted Answer Pending Moderation
0
Votes
Undo
Thanks for the thorough reply.

My software needs to send (timing) messages to itself, and it's convenient to use MIDI msg format, since that's what my processing chains are expecting. By your answer, it looks like that should be an ok thing to do as long as these messages never end up on the wire.

Eric
Comment
There are no comments made yet.
  1. more than a month ago
  2. MIDI Software
  3. # 1
Mike Kent Accepted Answer Pending Moderation
0
Votes
Undo
MIDI has defined timing messages.

For musical tempo based timing: MIDI has messages for Start,Continue, Stop, Song Position Pointer, and Timing Clock (Sent 24 times per quarter note).

For time based on hours, minutes, seconds, frames: MIDI has MIDI Time Code. This is based on SMPTE timecode, with Quarter Frame resolution.
Comment
There are no comments made yet.
  1. more than a month ago
  2. MIDI Software
  3. # 2
Hasad Accepted Answer Pending Moderation
0
Votes
Undo
There are so many pages that are created for some special purpose, the given page is the best example of the pages. If you want to join the essay writers australia then increase your knowledge and have grip on writing on every topic.
Comment
There are no comments made yet.
  1. more than a month ago
  2. MIDI Software
  3. # 3
  • Page :
  • 1


There are no replies made for this post yet.
However, you are not allowed to reply to this post.