blank.gif (43 bytes)

Church Of The
Swimming Elephant



All MIDI communication is achieved through multi-byte "messages" consisting of one Status byte followed by one or two Data bytes, except Real-Time and Exclusive messages (see below).


Status Bytes
Status bytes are eight-bit binary numbers in which the Most Significant Bit (MSB) is set (binary 1). Status bytes serve to identify the message type, that is, the purpose of the Data bytes which follow the Status byte.
Except for Real-Time messages, new Status bytes will always command the receiver to adopt their status, even if the new Status is received before the last message was completed.
Running Status
For Voice and Mode messages only, when a Status byte is received and processed, the receiver will remain in that status until a different Status byte is received. Therefore, if the same Status byte would be repeated, it may (optionally) be omitted so that only the correct number of Data bytes need be sent. Under Running Status, then, a complete message need only consist of specified Data bytes sent in the specified order.

The Running Status feature is especially useful for communicating long strings of Note On/Off messages, where "Note On with Velocity of 0" is used for Note Off. (A separate Note Off Status byte is also available.)

Running Status will be stopped when any other Status byte intervenes, except that Real-Time messges will only interrupt the Running Status temporarily.

Unimplemented Status
Any status bytes received for functions which the receiver has not implemented should be ignored, and subsequent data bytes ignored.
Undefined Status
Undefined Status bytes must not be used. Care should be taken to prevent illegal messages from being sent during power-up or power-down. If undefined Status bytes are received, they should be ignored, as should subsequent Data bytes.
Data Bytes
Following the Status byte, there are (except for Real-Time messages) one or two Data bytes which carry the content of the message. Data bytes are eight-bit binary numbers in which the MSB is reset (binary 0). The number and range of Data bytes which must follow each Status byte are specified in the tables which follow. For each Status byte the correct number of Data bytes must always be sent. Inside the receiver, action on the message should wait until all Data bytes required under the current status are received. Receivers should ignore Data bytes which have not been properly preceeded by a valid Status byte (with the exception of "Running Status," above).

  • Introduction & Conventions
  • Hardware
  • Message Types
  • Data Types
  • Channel Modes
  • Summary of Status Bytes
  • Channel Voice Messages
  • System Common Messages
  • System Real Time Messages
  • System Exclusive Messages
  • Controllers



    Protect yourself from cyberstalkers, identity thieves, and those who would snoop on you.
    Stop spam from invading your inbox without losing the mail you want. We give you more control over your e-mail than any other service.
    Block popups, ads, and malicious scripts while you surf the net through our anonymous proxies.
    Participate in Usenet, host your web files, easily send anonymous messages, and more, much more.
    All private, all encrypted, all secure, all in an easy to use service, and all for only $5.95 a month!

    Service Details

    Have you gone to church today?
    All pages ©1999, 2000, 2001, 2002, 2003 Church of the Swimming Elephant unless otherwise stated
    Church of the Swimming Elephant©1999, 2000, 2001, 2002, 2003 is a wholly owned subsidiary of Packetderm, LLC.

    Packetderm, LLC
    210 Park Ave #308
    Worcester, MA 01609