We'd like to inform all readers that our new web site is now starting
to come on line, and that you can find us now at http://www.decap.be/
We have given some MIDI specs a few days ago, and for interested
readers we like to be a little more specific and correct.
MIDI is serial data, so one command is send after an other. This is
done in different blocks, called bytes. Each byte consists of 10 bits
(one or zero). The first is the start bit, following by 8 data bits,
and the last is the stop bit. One byte takes 0.320 milliseconds to
send. To send a note, you need 3 bytes: The status byte, the note
number byte and the velocity byte. This takes 0.960 milliseconds to
send.
The status byte tells the receiving device to which channel the
following data must be sent (1..16), and what kind of data it is, for
example, note-on or note-off data to play and stop notes, or controller
data to change volume or pan settings etc. The second and third bytes
are data1 and data2.
The second and the third are easy to understand. For notes data1 tells
you which key is to be played (0..127), and data2 at which velocity
(0..127) this note should be played.
Running state is an agreement, added to increase the amount of data
that can be send through MIDI. This agreement says: When the following
kind of data (for example a note-on) is the same as the previous kind
of data, the status byte can be omitted. This speeds MIDI up by
one-third. As note-on data is a different status compared to note-off
data, it is handy that you can send a note-on with velocity zero to
substitute for a note-off command, so you do not interrupt the running
state. So to send a note-on command, you need 0.960 milliseconds.
With running state this decreases to 0.640 milliseconds, as long as you
send the same kind of data.
This explanation is not complete by any means, but just serves to give
a little more insight.
Tony Decap
The Decap Bros., Herentals, Belgium.
|