Talk:MIDI 1.0
![]() | This article was nominated for deletion on 11 March 2020. The result of the discussion was redirect. |
![]() | This redirect does not require a rating on Wikipedia's content assessment scale. It is of interest to the following WikiProjects: | ||||||||||
|
WikiProject Video games template removed
Per a discussion at WT:VG, I've removed the WikiProject Video games scope template from this article. This article describes a technical specification for a technology often used to produce music in video games, but an article specifically about video game music would be more appropriate for inclusion in the project, and that in turn could link to this article. —Preceding unsigned comment added by KieferSkunk (talk • contribs)
Page move discussion
This article has been renamed from The MIDI 1.0 Protocol to MIDI 1.0 as the result of a move request.
- The following is a closed discussion of the proposal. Please do not modify it. Subsequent comments should be made in a new section on the talk page. No further edits should be made to this section.
The result of the proposal was - Move.
Suggesting that we rename this page to MIDI 1.0 - the current name (The MIDI 1.0 Protocol) is not a proper title of a book, movie, game or other form of media. Alternative suggestion would be MIDI 1.0 protocol (note caps and lack of definite article). Please discuss. —Preceding unsigned comment added by KieferSkunk (talk • contribs)
MIDI 1.0 is probably the place for it. Andrewa (talk) 03:52, 9 January 2008 (UTC)
- I'm gonna give it a couple more days. If no more discussion occurs, I'm going to go ahead and move it. — KieferSkunk (talk) — 00:56, 11 January 2008 (UTC)
Support. I don't feel "protocol" is required so simply MIDI 1.0 --Lox (t,c) 12:20, 12 January 2008 (UTC)
- Done: Since yours was the only comment since I said I was going to do it, I'm moving it as non-controversial. :) — KieferSkunk (talk) — 19:37, 12 January 2008 (UTC)
- The above discussion is preserved as an archive of the proposal. Please do not modify it. Subsequent comments should be made in a new section on this talk page. No further edits should be made to this section.
RTP MIDI Reference removed
There is a mention in the body of an external reference to RTP MIDI "below" but it was obviously removed a long time ago. Tsk Tsk. Charlie Richmond (talk) 05:59, 21 July 2008 (UTC)
Standard MIDI Files
Should this article mention the Standard MIDI File format (and/or have links to information about it)? Musanim (talk) 02:53, 25 August 2008 (UTC)
Table being worked on
Feel free to finish and paste into the article. 71.41.210.146 (talk) 23:56, 23 December 2010 (UTC)
A message begins with a status byte, in the range 128–255 (0x80–0xFF, high bit set), followed by a message-dependent number of data bytes, which are in the range of 0–127 (0x00–0x7F, high bit clear). 7 of the messages (status bytes from 0x80–0xEF) encode a channel number in the low nibble. Status bytes from 0xF0–0xFF are system-wide messages. These are further divided into system common messages from 0xF0–0xF7 and system real-time messages from 0xF0–0xF7. The latter have no data bytes and are specially permitted to appear anywhere in the MIDI data stream, even in the middle of other MIDI messages.
If two data bytes are combined into one 14-bit value, they are always sent least significant bits first.
Note off | 1000ccc 0nnnnnnn 0vvvvvvv |
Note messages contain a note number and a velocity. The numbers have a precision of 1 semitone and can represent any note in the 10.5 octave range from C−1 (MIDI note 0, five octaves below middle C4 or 8.176 Hz in common Western musical tuning) to G9 (MIDI note 127, five octaves above the G above middle C or 12,544 Hz). A note-on message starts a note, and a separate note-off message is needed to end it. If running status is 'active', a note-on message with the velocity byte set to zero is used in place of a note-off message. |
---|---|---|
Note on | 1001ccc 0nnnnnnn 0vvvvvvv | |
Aftertouch | 1010ccc 0nnnnnnn 0vvvvvvv |
Aftertouch messages (also known as Poly Pressure messages) are sent in some instruments to indicate pressure changes on the note while it is being played. The individual pressure sensors that aftertouch messages require are reserved mainly for expensive, high-end keyboards. |
Control change | 1010cccc 0nnnnnnn 0vvvvvvv |
"Control Change" messages (frequently wrongly called Continuous Controller) are quite versatile; they are usually generated by a musician using knobs, sliders, footswitches, or pressure on a physical MIDI controller (or MIDI-equipped instrument). While the response to these messages is generally totally up to the receiving device, they are typically used to change the tone, timbre, or volume of an instrument's sound. In non-musical applications of MIDI, Control Change messages can be used to move motorized faders, to dim lights, or even to move a motorized joint in an animatronic figure. For on/off controls, any value 0–63 is off, and any value 64–127 is on. Controls 120–127 are reserved for special "channel mode messages". |
Channel Mode Message | 1010cccc 01111nnn 0vvvvvvv |
A variety of special channel messages can be sent this way. The simplest is n=0, v=0, "All notes off" which silences a channel, even if a note-off message got lost. |
Program Change | 1100cccc 0ppppppp |
Program change messages are sent to an instrument on a particular channel to instruct it to recall another patch, or program. The MIDI protocol uses 7 bits for this message, supporting only 128 programs to change to. Many devices which are more modern than the MIDI specification store far more than 128 programs. To overcome the limitation, a bank-switching method has been added to the spec (Each bank of 127 programs can be selected using a controller message, enabling access to 127² = 16129 programs). |
Channel pressure | 1101cccc 0vvvvvvv |
Another aftertouch feature, this channel pressure changes the pressure for the entire instrument, not just one note. The channel pressure messages are more commonly implemented in most synthesizers, while the individual pressure sensors that aftertouch messages require are reserved mainly for expensive, high-end synthesizers. |
Pitch wheel change | 1110cccc 0aaaaaaa 0bbbbbbb |
Pitch-bend messages range in ±2 semitones (sometimes adjustable with Registered Parameter Numbers), with precision of 1/8192 semitone (The human ear cannot hear the difference between adjacent pure tones that differ by less than 1/20 semitone). Most synthesizers allow you to adjust the pitch bend range over several octaves. The first byte encodes the least-significant bits, while the second byte encodes the most significant bits. |
System | 1111xxxx | System messages contain meta-data about other MIDI messages. A sequencer, for example, often sends MIDI clock messages during playback that correspond to the MIDI timecode, so the device receiving the messages (usually a synthesizer) will be able to keep time. Also, some devices will send Active Sense messages, used only to keep the connection between the sender and the receiver alive after all MIDI communication has ceased. |
System common messages | 11110xxx | These communicate various system-wide information |
---|---|---|
System exclusive | 11110000 0ccccccc 0ddddddd 0ddddddd… 11110111 |
Manufacturer's System Exclusive messages (also known as Manufacturer SysEx, Manuf Sysx, etc.) are defined by the manufacturer of the sequencer/synthesizer and can be any length. These messages are commonly used to send non-MIDI data over a MIDI connection, such as patch settings, a sound sample, or a sequencer's memory dump. Because they are defined by the device's manufacturer, they are mainly used for backup purposes and rarely (if ever) useful in another MIDI device. The first data byte is a manufacturer code which identifies the devices that should listen to the remaining bytes. A first byte of 126 or 127 identifies special "universal system exclusive" messages that can be understood by any device. |
Midi time code | 11110001 0nnnvvvv |
MIDI time code quarter frame. 8 consecutive messages (with values of n from 0 to 7) form a 32-bit abbreviated SMPTE timecode, beginning with the low nibble of the frame number and ending with tens of hours. Only one bit of the latter is used, with two other bits identifying the frame rate (24, 25, 29.97 or 30 frames/s), and one bit unused. Unlike the standard SMPTR timecode, no user bits are provided. These messages are sent every quarter frame, to it takes 2 frames to assemble a complete time code. |
Song position pointer | 11110010 0aaaaaaa 0bbbbbbb |
This indicates the point to begin playing a pre-programmed sequence, in units of 1/16 notes (6 timing clock messages). |
Song select | 11110011 0vvvvvvv |
This selects one of 128 pre-programmed songs to play. |
11110100 | (reserved) | |
11110101 | ||
Tune request | 11110110 | Requests analog synthesizers to tune themselves. No data. Essentially obsolete. |
End system exclusive | 11110111 | Marks the end of a system exclusive message. |
System real-time messages | 11111xxx | System real-time messages may be sent at any time, even in the middle of other MIDI messages (including manufacturer's system exclusive messages). They never have associated data bytes. |
---|---|---|
Timing clock | 11111000 | Sent 24 times per quarter note when a sequence is playing. |
MIDI tick | 11111001 | Sent once per 10 ms when absolute timing is in use. |
Start | 11111010 | Start playing a pre-programmed sequence at the beginning. Equivalent to Song Position Pointer 0 + Continue. |
Continue | 11111011 | Continue (unpause) at the point a sequence was stopped. |
Stop | 11111100 | Stop (pause) a playing sequence. |
11111101 | (reserved) | |
Active sensing | 11111110 | Used to detect disconnected cables, once the first active sensing message is sent, all devices start a 300 ms watchdog timer. If no active sensing message is detected for 300 ms, devices will stop playing all notes and return to normal (not active sensing) operation. |
Reset | 11111111 | Reset all MIDI devices. |
Redirect to MIDI
I don't understand why we need this article.
- Notable, relevant, encyclopaedic information about midi 1.0 should be covered in the MIDI article.
- This article seems only to comprise extensive tables of technical information. This might be useful to those seeking technical information about midi, particularly how to use it, but that is not the purpose of Wikipedia (see WP:NOT). We should serve a general readership (see WP:TECHNICAL).
- As per WP:INDISCRIMINATE, Wikipedia is not an indiscriminate collection of information. As the policy says,
To provide encyclopedic value, data should be put in context with explanations referenced to independent sources.
- The article has very few sources, which is a fundamental requirement of Wikipedia (see WP:CITE).
Let's redirect it to MIDI. Popcornfud (talk) 15:38, 7 March 2020 (UTC)