MIDI (; Musical Instrument Digital Interface) is a technical standard that describes a communication protocol, digital interface, and electrical connectors that connect a wide variety of electronic musical instruments, computers, and related audio devices for playing, editing, and recording music.
A single MIDI cable can carry up to sixteen channels of MIDI data, each of which can be routed to a separate device. Each interaction with a key, button, knob or slider is converted into a MIDI event, which specifies musical instructions, such as a note's pitch, timing and loudness. One common MIDI application is to play a MIDI keyboard or other controller and use it to trigger a digital sound module (which contains synthesized musical sounds) to generate sounds, which the audience hears produced by a keyboard amplifier. MIDI data can be transferred via MIDI or USB cable, or recorded to a sequencer or digital audio workstation to be edited or played back.
MIDI also defines a file format that stores and exchanges the data. Advantages of MIDI include small file size, ease of modification and manipulation and a wide choice of electronic instruments and synthesizer or digitally sampled sounds.[1] A MIDI recording of a performance on a keyboard could sound like a piano or other keyboard instrument; however, since MIDI records the messages and information about their notes and not the specific sounds, this recording could be changed to many other sounds, ranging from synthesized or sampled guitar or flute to full orchestra.
Before the development of MIDI, electronic musical instruments from different manufacturers could generally not communicate with each other. This meant that a musician could not, for example, plug a Roland keyboard into a Yamaha synthesizer module. With MIDI, any MIDI-compatible keyboard (or other controller device) can be connected to any other MIDI-compatible sequencer, sound module, drum machine, synthesizer, or computer, even if they are made by different manufacturers.
MIDI technology was standardized in 1983 by a panel of music industry representatives, and is maintained by the MIDI Manufacturers Association (MMA). All official MIDI standards are jointly developed and published by the MMA in Los Angeles, and the MIDI Committee of the Association of Musical Electronics Industry (AMEI) in Tokyo. In 2016, the MMA established The MIDI Association (TMA) to support a global community of people who work, play, or create with MIDI.[2]
In the early 1980s, there was no standardized means of synchronizing electronic musical instruments manufactured by different companies.[3] Manufacturers had their own proprietary standards to synchronize instruments, such as CV/gate, DIN sync and Digital Control Bus (DCB).[4] Ikutaro Kakehashi, the president of Roland, felt the lack of standardization was limiting the growth of the electronic music industry. In June 1981, he proposed developing a standard to the Oberheim Electronics founder Tom Oberheim, who had developed his own proprietary interface, the Oberheim System.[5]
Kakehashi felt the Oberheim System was too cumbersome, and spoke to Dave Smith, the president of Sequential Circuits, about creating a simpler, cheaper alternative. While Smith discussed the concept with American companies, Kakehashi discussed it with Japanese companies Yamaha, Korg and Kawai. Representatives from all companies met to discuss the idea in October. Initially, only Sequential Circuits and the Japanese companies were interested.[6] Using Roland's DCB as a basis, Smith and Sequential Circuits engineer Chet Wood devised a universal interface to allow communication between equipment from different manufacturers. Smith and Wood proposed this standard in a paper, Universal Synthesizer Interface,[7] at the Audio Engineering Society show in October 1981.[8] [9] The standard was discussed and modified by representatives of Roland, Yamaha, Korg, Kawai, and Sequential Circuits.[3] [10] Kakehashi favored the name Universal Musical Interface (UMI), pronounced you-me, but Smith felt this was "a little corny".[11] However, he liked the use of instrument instead of synthesizer, and proposed Musical Instrument Digital Interface (MIDI). Robert Moog, the president of Moog Music, announced MIDI in the October 1982 issue of Keyboard.[12]
At the 1983 Winter NAMM Show, Smith demonstrated a MIDI connection between Prophet 600 and Roland JP-6 synthesizers. The MIDI specification was published in August 1983. The MIDI standard was unveiled by Kakehashi and Smith, who received Technical Grammy Awards in 2013 for their work.[13] [14] [15] In 1983, the first instruments were released with MIDI, the Roland Jupiter-6 and the Prophet 600. In 1983, the first MIDI drum machine, the Roland TR-909,[16] [17] and the first MIDI sequencer, the Roland MSQ-700, were released.[18]
The MIDI Manufacturers Association (MMA) was formed following a meeting of "all interested companies" at the 1984 Summer NAMM Show in Chicago. The MIDI 1.0 Detailed Specification was published at the MMA's second meeting at the 1985 Summer NAMM Show. The standard continued to evolve, adding standardized song files in 1991 (General MIDI) and adapted to new connection standards such as USB and FireWire. In 2016, the MIDI Association was formed to continue overseeing the standard. An initiative to create a 2.0 standard was announced in January 2019.[19] The MIDI 2.0 standard was introduced at the 2020 Winter NAMM Show.[20]
The BBC cited MIDI as an early example of open-source technology. Smith believed MIDI could only succeed if every manufacturer adopted it, and so "we had to give it away".[21]
MIDI's appeal was originally limited to professional musicians and record producers who wanted to use electronic instruments in the production of popular music. The standard allowed different instruments to communicate with each other and with computers, and this spurred a rapid expansion of the sales and production of electronic instruments and music software. This interoperability allowed one device to be controlled from another, which reduced the amount of hardware musicians needed.[22] MIDI's introduction coincided with the dawn of the personal computer era and the introduction of samplers and digital synthesizers.[23] The creative possibilities brought about by MIDI technology are credited for helping revive the music industry in the 1980s.[24]
MIDI introduced capabilities that transformed the way many musicians work. MIDI sequencing makes it possible for a user with no notation skills to build complex arrangements.[25] A musical act with as few as one or two members, each operating multiple MIDI-enabled devices, can deliver a performance similar to that of a larger group of musicians.[26] The expense of hiring outside musicians for a project can be reduced or eliminated, and complex productions can be realized on a system as small as a synthesizer with integrated keyboard and sequencer.
MIDI also helped establish home recording. By performing preproduction in a home environment, an artist can reduce recording costs by arriving at a recording studio with a partially completed song. In 2022, the Guardian wrote that MIDI remained as important to music as USB was to computing, and represented "a crucial value system of cooperation and mutual benefit, one all but thrown out by today's major tech companies in favour of captive markets". As of 2022, Smith's original MIDI design was still in use.[27]
MIDI was invented so that electronic or digital musical instruments could communicate with each other and so that one instrument can control another. For example, a MIDI-compatible sequencer can trigger beats produced by a drum sound module. Analog synthesizers that have no digital component and were built prior to MIDI's development can be retrofitted with kits that convert MIDI messages into analog control voltages. When a note is played on a MIDI instrument, it generates a digital MIDI message that can be used to trigger a note on another instrument. The capability for remote control allows full-sized instruments to be replaced with smaller sound modules, and allows musicians to combine instruments to achieve a fuller sound, or to create combinations of synthesized instrument sounds, such as acoustic piano and strings.[28] MIDI also enables other instrument parameters (volume, effects, etc.) to be controlled remotely.
Synthesizers and samplers contain various tools for shaping an electronic or digital sound. Filters adjust timbre, and envelopes automate the way a sound evolves over time after a note is triggered.[29] The frequency of a filter and the envelope attack (the time it takes for a sound to reach its maximum level), are examples of synthesizer parameters, and can be controlled remotely through MIDI. Effects devices have different parameters, such as delay feedback or reverb time. When a MIDI continuous controller number (CCN) is assigned to one of these parameters, the device responds to any messages it receives that are identified by that number. Controls such as knobs, switches, and pedals can be used to send these messages. A set of adjusted parameters can be saved to a device's internal memory as a patch, and these patches can be remotely selected by MIDI program changes.[30]
MIDI events can be sequenced with computer software, or in specialized hardware music workstations. Many digital audio workstations (DAWs) are specifically designed to work with MIDI as an integral component. MIDI piano rolls have been developed in many DAWs so that the recorded MIDI messages can be easily modified.[31] These tools allow composers to audition and edit their work much more quickly and efficiently than did older solutions, such as multitrack recording. Compositions can be programmed for MIDI that are impossible for human performers to play.[32]
Because a MIDI performance is a sequence of commands that create sound, MIDI recordings can be manipulated in ways that audio recordings cannot. It is possible to change the key, instrumentation or tempo of a MIDI arrangement, and to reorder its individual sections,[33] or even edit individual notes. The ability to compose ideas and quickly hear them played back enables composers to experiment.[34]
Algorithmic composition programs provide computer-generated performances that can be used as song ideas or accompaniment.
Some composers may take advantage of standard, portable set of commands and parameters in MIDI 1.0 and General MIDI (GM) to share musical data files among various electronic instruments. The data composed via the sequenced MIDI recordings can be saved as a standard MIDI file (SMF), digitally distributed, and reproduced by any computer or electronic instrument that also adheres to the same MIDI, GM, and SMF standards. MIDI data files are much smaller than corresponding recorded audio files.
See also: Comparison of MIDI standards and Computer music.
The personal computer market stabilized at the same time that MIDI appeared, and computers became a viable option for music production. In 1983 computers started to play a role in mainstream music production. In the years immediately after the 1983 ratification of the MIDI specification, MIDI features were adapted to several early computer platforms. The Yamaha CX5M introduced MIDI support and sequencing in an MSX system in 1984.
The spread of MIDI on home computers was largely facilitated by Roland Corporation's MPU-401, released in 1984, as the first MIDI-equipped sound card, capable of MIDI sound processing and sequencing.[35] [36] After Roland sold MPU sound chips to other sound card manufacturers, it established a universal standard MIDI-to-PC interface.[37] The widespread adoption of MIDI led to computer-based MIDI software being developed. Soon after, a number of platforms began supporting MIDI, including the Apple II, Macintosh, Commodore 64, Amiga, Acorn Archimedes, and IBM PC compatibles. The 1985 Atari ST shipped with MIDI ports as part of the base system.
In 2015, Retro Innovations released the first MIDI interface for a VIC-20, making the computer's four voices available to electronic musicians and retro-computing enthusiasts for the first time.[38] Retro Innovations also makes a MIDI interface cartridge for Tandy Color Computer and Dragon computers.[39]
Chiptune musicians also use retro gaming consoles to compose, produce and perform music using MIDI interfaces. Custom interfaces are available for the Nintendo Entertainment System (NES)/Famicom,[40] Game Boy,[41] Game Boy Advance[42] and Sega Genesis (Mega Drive).[43]
A MIDI file is not an audio recording. Rather, it is a set of instructionsfor example, for pitch or tempoand can use a thousand times less disk space than the equivalent recorded audio.[44] Due to their tiny filesize, fan-made MIDI arrangements became an attractive way to share music online, before the advent of broadband internet access and multi-gigabyte hard drives.[45] The major drawback to this is the wide variation in quality of users' audio cards, and in the actual audio contained as samples or synthesized sound in the card that the MIDI data only refers to symbolically. Even a sound card that contains high-quality sampled sounds can have inconsistent quality from one sampled instrument to another. Early budget-priced cards, such as the AdLib and the Sound Blaster and its compatibles, used a stripped-down version of Yamaha's frequency modulation synthesis (FM synthesis) technology[46] played back through low-quality digital-to-analog converters. The low-fidelity reproduction of these ubiquitous cards was often assumed to somehow be a property of MIDI itself. This created a perception of MIDI as low-quality audio, while in reality MIDI itself contains no sound, and the quality of its playback depends entirely on the quality of the sound-producing device.
Standard MIDI File | |
Mime: | audio/midi |
Uniform Type: | public.midi-audio[47] |
The Standard MIDI File (SMF) is a file format that provides a standardized way for music sequences to be saved, transported, and opened in other systems. The standard was developed and is maintained by the MMA, and usually uses a .mid
extension.[48] The compact size of these files led to their widespread use in computers, mobile phone ringtones, webpage authoring and musical greeting cards. These files are intended for universal use and include such information as note values, timing and track names. Lyrics may be included as metadata, and can be displayed by karaoke machines.[49]
SMFs are created as an export format of software sequencers or hardware workstations. They organize MIDI messages into one or more parallel tracks and time-stamp the events so that they can be played back in sequence. A header contains the arrangement's track count, tempo and an indicator of which of three SMF formats the file uses. A type 0 file contains the entire performance, merged onto a single track, while type 1 files may contain any number of tracks that are performed synchronously. Type 2 files are rarely used[50] and store multiple arrangements, with each arrangement having its own track and intended to be played in sequence.
Microsoft Windows bundles SMFs together with Downloadable Sounds (DLS) in a Resource Interchange File Format (RIFF) wrapper, as RMID files with a .rmi
extension. RIFF-RMID has been deprecated in favor of Extensible Music Files (XMF).[51]
See main article: Comparison of MIDI editors and sequencers.
The main advantage of the personal computer in a MIDI system is that it can serve a number of different purposes, depending on the software that is loaded. Multitasking allows simultaneous operation of programs that may be able to share data with each other.
See main article: Music sequencer.
See also: Digital audio workstation.
Sequencing software allows recorded MIDI data to be manipulated using standard computer editing features such as cut, copy and paste and drag and drop. Keyboard shortcuts can be used to streamline workflow, and, in some systems, editing functions may be invoked by MIDI events. The sequencer allows each channel to be set to play a different sound and gives a graphical overview of the arrangement. A variety of editing tools are made available, including a notation display or scorewriter that can be used to create printed parts for musicians. Tools such as looping, quantization, randomization, and transposition simplify the arranging process.
Beat creation is simplified, and groove templates can be used to duplicate another track's rhythmic feel. Realistic expression can be added through the manipulation of real-time controllers. Mixing can be performed, and MIDI can be synchronized with recorded audio and video tracks. Work can be saved, and transported between different computers or studios.[52] [53]
Sequencers may take alternate forms, such as drum pattern editors that allow users to create beats by clicking on pattern grids, and loop sequencers such as ACID Pro, which allow MIDI to be combined with prerecorded audio loops whose tempos and keys are matched to each other. Cue-list sequencing is used to trigger dialogue, sound effect, and music cues in stage and broadcast production.
See main article: Scorewriter. With MIDI, notes played on a keyboard can automatically be transcribed to sheet music. Scorewriting software typically lacks advanced sequencing tools, and is optimized for the creation of a neat, professional printout designed for live instrumentalists. These programs provide support for dynamics and expression markings, chord and lyric display, and complex score styles. Software is available that can print scores in braille.[54]
Notation programs include Finale, Encore, Sibelius, MuseScore and Dorico. SmartScore software can produce MIDI files from scanned sheet music.[55]
Patch editors allow users to program their equipment through the computer interface. These became essential with the appearance of complex synthesizers such as the Yamaha FS1R,[56] which contained several thousand programmable parameters, but had an interface that consisted of fifteen tiny buttons, four knobs and a small LCD.[57] Digital instruments typically discourage users from experimentation, due to their lack of the feedback and direct control that switches and knobs would provide, but patch editors give owners of hardware instruments and effects devices the same editing functionality that is available to users of software synthesizers.[58] Some editors are designed for a specific instrument or effects device, while other, universal editors support a variety of equipment, and ideally can control the parameters of every device in a setup through the use of System Exclusive messages. System Exclusive messages use the MIDI protocol to send information about the synthesizer's parameters.
Patch librarians have the specialized function of organizing the sounds in a collection of equipment and exchanging entire banks of sounds between an instrument and a computer. In this way the device's limited patch storage is augmented by a computer's much greater disk capacity. Once transferred to the computer, it is possible to share custom patches with other owners of the same instrument.[59] Universal editor/librarians that combine the two functions were once common, and included Opcode Systems' Galaxy, eMagic's SoundDiver, and MOTU's Unisyn. Although these older programs have been largely abandoned with the trend toward computer-based synthesis using virtual instruments, several editor/librarians remain available, including Coffeeshopped Patch Base,[60] Sound Quest's Midi Quest, and several editors from Sound Tower. Native Instruments' Kore was an effort to bring the editor/librarian concept into the age of software instruments,[61] but was abandoned in 2011.[62]
Programs that can dynamically generate accompaniment tracks are called auto-accompaniment programs. These create a full-band arrangement in a style that the user selects, and send the result to a MIDI sound generating device for playback. The generated tracks can be used as educational or practice tools, as accompaniment for live performances, or as a songwriting aid.
See main article: Software synthesizer and Software sampler. Computers can use software to generate sounds, which are then passed through a digital-to-analog converter (DAC) to a power amplifier and loudspeaker system. The number of sounds that can be played simultaneously (the polyphony) is dependent on the power of the computer's CPU, as are the sample rate and bit depth of playback, which directly affect the quality of the sound.[63] Synthesizers implemented in software are subject to timing issues that are not necessarily present with hardware instruments, whose dedicated operating systems are not subject to interruption from background tasks as desktop operating systems are. These timing issues can cause synchronization problems, and clicks and pops when sample playback is interrupted. Software synthesizers also may exhibit additional latency in their sound generation.[64]
The roots of software synthesis go back as far as the 1950s, when Max Mathews of Bell Labs wrote the MUSIC-N programming language, which was capable of non-real-time sound generation.[65] Reality, by Dave Smith's Seer Systems was an early synthesizer that ran directly on a host computer's CPU. Reality achieved a low latency through tight driver integration, and therefore could run only on Creative Labs soundcards.[66] [67] Syntauri Corporation's Alpha Syntauri was another early software-based synthesizer. It ran on the Apple IIe computer and used a combination of software and the computer's hardware to produce additive synthesis.[68] Some systems use dedicated hardware to reduce the load on the host CPU, as with Symbolic Sound Corporation's Kyma System, and the Creamware/Sonic Core Pulsar/SCOPE systems,[69] which power an entire recording studio's worth of instruments, effect units, and mixers.[70] The ability to construct full MIDI arrangements entirely in computer software allows a composer to render a finalized result directly as an audio file.
Early PC games were distributed on floppy disks, and the small size of MIDI files made them a viable means of providing soundtracks. Games of the DOS and early Windows eras typically required compatibility with either Ad Lib or Sound Blaster audio cards. These cards used FM synthesis, which generates sound through modulation of sine waves. John Chowning, the technique's pioneer, theorized that the technology would be capable of accurate recreation of any sound if enough sine waves were used, but budget computer audio cards performed FM synthesis with only two sine waves. Combined with the cards' 8-bit audio, this resulted in a sound described as "artificial"[71] and "primitive".[72]
Wavetable daughterboards that were later available provided audio samples that could be used in place of the FM sound. These were expensive, but often used the sounds from respected MIDI instruments such as the E-mu Proteus. The computer industry moved in the mid-1990s toward wavetable-based soundcards with 16-bit playback, but standardized on a 2 MB of wavetable storage, a space too small in which to fit good-quality samples of 128 General MIDI instruments plus drum kits. To make the most of the limited space, some manufacturers stored 12-bit samples and expanded those to 16 bits on playback.[73]
Despite its association with music devices, MIDI can control any electronic or digital device that can read and process a MIDI command. MIDI has been adopted as a control protocol in a number of non-musical applications. MIDI Show Control uses MIDI commands to direct stage lighting systems and to trigger cued events in theatrical productions. VJs and turntablists use it to cue clips, and to synchronize equipment, and recording systems use it for synchronization and automation. Apple Motion allows control of animation parameters through MIDI. The 1987 first-person shooter game MIDI Maze and the 1990 Atari ST computer puzzle game Oxyd used MIDI to network computers together.
Per the original MIDI 1.0 standard, cables terminate in a 180° five-pin DIN connector (DIN 41524). Typical applications use only three of the five conductors: a ground wire (pin 2), and a balanced pair of conductors (pins 4 and 5) that carry the MIDI signal as an electric current.[74] [75] This connector configuration can only carry messages in one direction, so a second cable is necessary for two-way communication.[76] Some proprietary applications, such as phantom-powered footswitch controllers, use the spare pins for direct current (DC) power transmission.[77]
Opto-isolators keep MIDI devices electrically separated from their MIDI connections, which prevents ground loops[78] and protects equipment from voltage spikes. There is no error detection capability in MIDI, so the maximum cable length is set at 15meters to limit interference.[79]
To save space, some MIDI devices (smaller ones in particular) started using 3.5 mm TRS phone connectors (also known as audio minijack connectors).[80] This became widespread enough that the MIDI Manufacturers' Association standardized the wiring.[81] The MIDI-over-minijack standards document also recommends the use of 2.5 mm connectors over 3.5 mm ones to avoid confusion with audio connectors.[82]
Most devices do not copy messages from their input to their output port. A third type of port, the thru port, emits a copy of everything received at the input port, allowing data to be forwarded to another instrument in a daisy-chain arrangement.[83] Not all devices feature thru ports, and devices that lack the ability to generate MIDI data, such as effects units and sound modules, may not include out ports.[84]
Each device in a daisy chain adds delay to the system. This can be avoided by using a MIDI thru box, which contains several outputs that provide an exact copy of the box's input signal. A MIDI merger is able to combine the input from multiple devices into a single stream, and allows multiple controllers to be connected to a single device. A MIDI switcher allows switching between multiple devices, and eliminates the need to physically repatch cables. MIDI routers combine all of these functions. They contain multiple inputs and outputs, and allow any combination of input channels to be routed to any combination of output channels. Routing setups can be created using computer software, stored in memory, and selected by MIDI program change commands. This enables the devices to function as standalone MIDI routers in situations where no computer is present.[76] [85] MIDI data processors are used for utility tasks and special effects. These include MIDI filters, which remove unwanted MIDI data from the stream, and MIDI delays, effects that send a repeated copy of the input data at a set time.
A computer MIDI interface's main function is to synchronize communications between the MIDI device and the computer.[83] Some computer sound cards include a standard MIDI connector, whereas others connect by any of various means that include the D-subminiature DA-15 game port, USB, FireWire, Ethernet or a proprietary connection. The increasing use of USB connectors in the 2000s has led to the availability of MIDI-to-USB data interfaces that can transfer MIDI channels to USB-equipped computers. Some MIDI keyboard controllers are equipped with USB jacks, and can be connected directly to computers that run music software.
MIDI's serial transmission leads to timing problems. A three-byte MIDI message requires nearly 1 millisecond for transmission.[86] Because MIDI is serial, it can only send one event at a time. If an event is sent on two channels at once, the event on the second channel cannot transmit until the first one is finished, and so is delayed by 1 ms. If an event is sent on all channels at the same time, the last channel's transmission is delayed by as much as 16 ms. This contributed to the rise of MIDI interfaces with multiple in- and out-ports, because timing improves when events are spread between multiple ports as opposed to multiple channels on the same port. The term MIDI slop refers to audible timing errors that result when MIDI transmission is delayed.[87]
See main article: MIDI controller. There are two types of MIDI controllers: performance controllers that generate notes and are used to perform music,[88] and controllers that may not send notes, but transmit other types of real-time events. Many devices are some combination of the two types.
Keyboards are by far the most common type of MIDI controller. MIDI was designed with keyboards in mind, and any controller that is not a keyboard is considered an "alternative" controller.[89] This was seen as a limitation by composers who were not interested in keyboard-based music, but the standard proved flexible, and MIDI compatibility was introduced to other types of controllers, including guitars, and other stringed instruments and drum controllers and wind controllers, which emulate the playing of drum kit and wind instruments, respectively and specialized and experimental controllers. Nevertheless, some features of the keyboard playing for which MIDI was designed do not fully capture other instruments' capabilities; Jaron Lanier cites the standard as an example of technological "lock-in" that unexpectedly limited what was possible to express.[90] Some of these shortcomings have been addressed in extensions to the protocol.
Software synthesizers offer great power and versatility, but some players feel that division of attention between a MIDI keyboard and a computer keyboard and mouse robs some of the immediacy from the playing experience.[91] Devices dedicated to real-time MIDI control provide an ergonomic benefit and can provide a greater sense of connection with the instrument than an interface that is accessed through a computer. Controllers may be general-purpose devices that are designed to work with a variety of equipment, or they may be designed to work with a specific piece of software. Examples of the latter include Akai's APC40 controller for Ableton Live, and Korg's MS-20ic controller, a reproduction of the control panel on their MS-20 analog synthesizer. The MS-20ic controller includes patch cables that can be used to control signal routing in their virtual reproduction of the MS-20 synthesizer and can also control third-party devices.[92]
A MIDI instrument contains ports to send and receive MIDI signals, a CPU to process those signals, an interface that allows user programming, audio circuitry to generate sound, and controllers. The operating system and factory sounds are often stored in a read-only memory (ROM) unit.
A MIDI instrument can also be a stand-alone module (without a piano-style keyboard) consisting of a General MIDI soundboard (GM, GS and XG), onboard editing, including transposing, MIDI instrument selection and adjusting volume, pan, reverb levels and other MIDI controllers. Typically, the MIDI module includes a screen, so the user can view information for the currently selected function.
Synthesizers may employ any of a variety of sound generation techniques. They may include an integrated keyboard or may exist as sound modules that generate sounds when triggered by an external controller, such as a MIDI keyboard. Sound modules are typically designed to be mounted in a 19-inch rack. Manufacturers commonly produce a synthesizer in both standalone and rack-mounted versions, and often offer the keyboard version in a variety of sizes.
A sampler can record and digitize audio, store it in random-access memory (RAM), and play it back. Samplers typically allow a user to edit a sample and save it to a hard disk, apply effects to it, and shape it with the same tools that subtractive synthesizers use. They also may be available in either keyboard or rack-mounted form. Instruments that generate sounds through sample playback, but have no recording capabilities, are known as "ROMplers".
Samplers did not become established as viable MIDI instruments as quickly as synthesizers did, due to the expense of memory and processing power at the time. The first low-cost MIDI sampler was the Ensoniq Mirage, introduced in 1984. MIDI samplers are typically limited by displays that are too small to use to edit sampled waveforms, although some can be connected to a computer monitor.
Drum machines typically are sample playback devices that specialize in drum and percussion sounds. They commonly contain a sequencer that allows the creation of drum patterns and allows them to be arranged into a song. There often are multiple audio outputs, so that each sound or group of sounds can be routed to a separate output. The individual drum voices may be playable from another MIDI instrument, or from a sequencer.
Sequencer technology predates MIDI. Analog sequencers use CV/Gate signals to control pre-MIDI analog synthesizers. MIDI sequencers typically are operated by transport features modeled after those of tape decks. They are capable of recording MIDI performances and arranging them into individual tracks using a multitrack recording paradigm. Music workstations combine controller keyboards with an internal sound generation and a sequencer. These can be used to build complete arrangements and play them back using their own internal sounds, and function as self-contained music production studios. They commonly include file storage and transfer capabilities.
Some effects units can be remotely controlled via MIDI. For example, the Eventide H3000 Ultra-harmonizer allows such extensive MIDI control that it is playable as a synthesizer. The Drum Buddy, a pedal-format drum machine, has a MIDI connection so that it can have its tempo synchronized with a looper pedal or time-based effects such as delay.
MIDI messages are made up of 8-bit bytes transmitted at 31,250 (±1%) baud using 8-N-1 asynchronous serial communication as described in the figure. The first bit of each byte identifies whether the byte is a status byte or a data byte, and is followed by seven bits of information.
A MIDI link can carry sixteen independent channels, numbered 1–16. A device may listen to specific channels and ignore messages on other channels (omni off mode), or it can listen to all channels, effectively ignoring the channel address (omni on).
A device that is polyphonic can sound multiple notes simultaneously, until the device's polyphony limit is reached, or the notes reach the end of their decay envelope, or explicit note-off MIDI commands are received. A device that is monophonic instead terminates any previous note when new note-on commands arrive.
Some receiving devices may be set to all four combinations of omni off/on and mono/poly modes.
A MIDI message is an instruction that controls some aspect of the receiving device. A MIDI message consists of a status byte, which indicates the type of the message, followed by up to two data bytes that contain the parameters.[93] MIDI messages can be channel messages sent on only one of the 16 channels and monitored only by devices on that channel, or system messages that all devices receive. Each receiving device ignores data not relevant to its function. There are five types of message: Channel Voice, Channel Mode, System Common, System Real-Time, and System Exclusive.[94]
Channel Voice messages transmit real-time performance data over a single channel. Examples include note-on messages which contain a MIDI note number that specifies the note's pitch, a velocity value that indicates how forcefully the note was played, and the channel number; note-off messages that end a note; program change messages that change a device's patch; and control changes that allow adjustment of an instrument's parameters. MIDI notes are numbered from 0 to 127 assigned to C−1 to G9. This extends beyond the 88-note piano range from A0 to C8 and corresponds to a frequency range of 8.175799 to 12543.85 Hz.
System Exclusive (SysEx) messages send information about a synthesizer's functions, rather than performance data such as which notes are being played and how loud. Because they can include functionality beyond what the MIDI standard provides, they are a major reason for the flexibility and longevity of the MIDI standard. Manufacturers use them to create proprietary messages that control their equipment more thoroughly than the limitations of standard MIDI messages.
The MIDI Manufacturers Association issues a unique identification number to MIDI companies.[95] These are included in SysEx messages, to ensure that only the specifically addressed device responds to the message, while all others know to ignore it. Many instruments also include a SysEx ID setting, so a controller can address two devices of the same model independently.[96]
Universal System Exclusive messages are a special class of SysEx messages used for extensions to MIDI that are not intended to be exclusive to one manufacturer.[97]
Devices typically do not respond to every type of message defined by the MIDI specification. The MIDI implementation chart was standardized by the MMA as a way for users to see what specific capabilities an instrument has, and how it responds to messages. A populated MIDI implementation chart is usually published as part of the documentation for MIDI devices.
MIDI 1.0's electrical interface is based around a fully isolated current loop along the red and blue lines in the following schematic:"DIN / TRS" in this schematic indicates that either a DIN connector or a TRS phone connector may be used.[98] [99]
To transmit a logic 0 and a start bit, the sender's UART produces a low voltage. This results in a nominal 5 milliamperes current flow sourced from the sender's high voltage supply, which travels rightwards along the red lines though the shielded twisted-pair cable and into the receiver's opto-isolator. The current exits the opto-isolator and returns back leftwards along the blue lines into the sender's UART, which sinks the current. Resistors R1 and R2 limit the current and are equal to provide a balanced impedance. The diode is for protection.[100] This current turns on the opto-isolator's LED and phototransistor, so the receiver's UART can read the signal with the help of pull-up resistor R3 to the receiver's voltage supply. While the supplies in the original specification are 5 volts, the receiver and sender may use different voltage levels.
To transmit a logic 1, a stop bit, and while idle, the sender's UART produces the same high voltage as its voltage supply provides, which results in no current flow. This avoids wasting power when idle.
MIDI's flexibility and widespread adoption have led to many refinements of the standard, and have enabled its application to purposes beyond those for which it was originally intended.
See main article: General MIDI. MIDI allows the selection of an instrument's sounds through program change messages, but there is no guarantee that any two instruments have the same sound at a given program location.[101] Program #0 may be a piano on one instrument, or a flute on another. The General MIDI (GM) standard was established in 1991, and provides a standardized sound bank that allows a Standard MIDI File created on one device to sound similar when played back on another. GM specifies a bank of 128 sounds arranged into 16 families of eight related instruments, and assigns a specific program number to each instrument.[102] Any given program change selects the same instrument sound on any GM-compatible instrument.[103] Percussion instruments are placed on channel 10, and a specific MIDI note value is mapped to each percussion sound.
The GM standard eliminates variation in note mapping. Some manufacturers had disagreed over what note number should represent middle C, but GM specifies that note number 69 plays A440, which in turn fixes middle C as note number 60.
GM-compliant devices must offer 24-note polyphony.[104] GM-compatible devices are required to respond to velocity, aftertouch, and pitch bend, to be set to specified default values at startup, and to support certain controller numbers such as for sustain pedal, and Registered Parameter Numbers (RPNs).[105]
A simplified version of GM, called GM Lite, is used for devices with limited processing power.[106]
See main article: General MIDI Level 2, Roland GS and Yamaha XG. A general opinion quickly formed that the GM's 128-instrument sound set was not large enough. Roland's General Standard, or Roland GS, included additional sounds, drumkits and effects, provided a bank select command that could be used to access them, and used MIDI Non-Registered Parameter Numbers (NRPNs) to access its new features. Yamaha's Extended General MIDI, or Yamaha XG, followed in 1994. XG similarly offered extra sounds, drumkits and effects, but used standard controllers instead of NRPNs for editing, and increased polyphony to 32 voices. Both standards feature backward compatibility with the GM specification but are not compatible with each other.[107] Neither standard has been adopted beyond its creator, but both are commonly supported by music software titles.
Member companies of Japan's AMEI developed the General MIDI Level 2 specification in 1999. GM2 maintains backward compatibility with GM, but increases polyphony to 32 voices, standardizes several controller numbers such as for sostenuto and soft pedal (una corda), RPNs and Universal System Exclusive Messages, and incorporates the MIDI Tuning Standard.[108] GM2 is the basis of the instrument selection mechanism in Scalable Polyphony MIDI (SP-MIDI), a MIDI variant for low-power devices that allows the device's polyphony to scale according to its processing power.
See main article: MIDI tuning standard. Most MIDI synthesizers use equal temperament tuning. The MIDI tuning standard (MTS), ratified in 1992, allows alternate tunings.[109] MTS allows microtunings that can be loaded from a bank of up to 128 patches, and allows real-time adjustment of note pitches.[110] Manufacturers are not required to support the standard. Those who do are not required to implement all of its features.
See main article: MIDI timecode. A sequencer can drive a MIDI system with its internal clock, but when a system contains multiple sequencers, they must synchronize to a common clock. MIDI timecode (MTC), developed by Digidesign,[111] implements SysEx messages[112] developed specifically for timing purposes, and can translate to and from the SMPTE timecode standard. MIDI interfaces such as Mark of the Unicorn's MIDI Timepiece can convert SMPTE code to MTC.[113] While MIDI clock is based on tempo, timecode is based on frames and is independent of tempo. MTC, like SMPTE code, includes position information and can recover in the event of a dropout.[114]
See main article: MIDI Machine Control. MIDI Machine Control (MMC) consists of a set of SysEx commands[115] that operate the transport controls of hardware recording devices. MMC lets a sequencer send Start, Stop, and Record commands to a connected tape deck or hard disk recording system, and to fast-forward or rewind the device to start playback at the same point as the sequencer. No synchronization data is involved, although the devices may synchronize through MTC.[116]
See main article: MIDI Show Control. MIDI Show Control (MSC) is a set of SysEx commands for sequencing and remotely cueing show control devices such as lighting, music and sound playback, and motion control systems.[117] Applications include stage productions, museum exhibits, recording studio control systems, and amusement park attractions.
One solution to MIDI timing problems is to mark MIDI events with the times they are to be played, transmit them beforehand, and store them in a buffer in the receiving device. Sending data beforehand reduces the likelihood that a busy passage overwhelms the transmission link. Once stored in the receiver, the information is no longer subject to timing issues associated with MIDI or USB interfaces and can be played with a high degree of accuracy.[118] MIDI timestamping only works when both hardware and software support it. MOTU's MTS, eMagic's AMT, and Steinberg's Midex 8 had implementations that were incompatible with each other, and required users to own software and hardware manufactured by the same company to work. Timestamping is built into FireWire MIDI interfaces,[119] Mac OS X Core Audio, and Linux ALSA Sequencer.
An unforeseen capability of SysEx messages was their use for transporting audio samples between instruments. This led to the development of the sample dump standard (SDS), which established a new SysEx format for sample transmission. SDS was later augmented with a pair of commands that allow the transmission of information about sample loop points, without requiring that the entire sample be transmitted.[120]
See main article: DLS format. The Downloadable Sounds (DLS) specification, ratified in 1997, allows mobile devices and computer sound cards to expand their wave tables with downloadable sound sets.[121] The DLS Level 2 specification followed in 2006, and defined a standardized synthesizer architecture. The Mobile DLS standard calls for DLS banks to be combined with SP-MIDI, as self-contained Mobile XMF files.[122]
MIDI Polyphonic Expression (MPE) is a method of using MIDI that enables pitch bend, and other dimensions of expressive control, to be adjusted continuously for individual notes.[123] MPE works by assigning each note to its own MIDI channel so that controller messages can be applied to each note individually.[124] [123] The specifications were released in November 2017 by AMEI and in January 2018 by the MMA. Instruments like the Continuum Fingerboard, LinnStrument, ROLI Seaboard, Sensel Morph, and Eigenharp let users control pitch, timbre, and other nuances for individual notes within chords.[125]
In addition to using a 31.25 kbit/s current-loop over a 5-pin DIN or TRS, the same data can be transmitted over different hardware transports, like USB, IEEE 1394 (a.k.a. FireWire), and Ethernet.
Members of the USB-IF in 1999 developed a standard for MIDI over USB, the "Universal Serial Bus Device Class Definition for MIDI Devices".[126] MIDI over USB has become increasingly common as other interfaces that had been used for MIDI connections (serial, joystick, etc.) disappeared from personal computers. Linux, Microsoft Windows, Macintosh OS X, and Apple iOS operating systems include standard class drivers to support devices that use the "Universal Serial Bus Device Class Definition for MIDI Devices". Some manufacturers choose to implement a MIDI interface over USB that is designed to operate differently from the class specification, using custom drivers.
Apple Computer developed the FireWire interface during the 1990s. It began to appear on digital video cameras toward the end of the decade, and on G3 Macintosh models in 1999.[127] It was created for use with multimedia applications. Unlike USB, FireWire uses intelligent controllers that can manage their own transmission without attention from the main CPU.[128] As with standard MIDI devices, FireWire devices can communicate with each other with no computer present.
The Octave-Plateau Voyetra-8 synthesizer was an early MIDI implementation using XLR3 connectors in place of the 5-pin DIN. It was released in the pre-MIDI years and later retrofitted with a MIDI interface but keeping its XLR connector.[129]
As computer-based studio setups became common, MIDI devices that could connect directly to a computer became available. These typically used the 8-pin mini-DIN connector that was used by Apple for serial ports prior to the introduction of the Blue & White G3 models. MIDI interfaces intended for use as the centerpiece of a studio, such as the Mark of the Unicorn MIDI Time Piece, were made possible by a "fast" transmission mode that could take advantage of these serial ports' ability to operate at 20 times the standard MIDI speed.[76] [130] Mini-DIN ports were built into some late-1990s MIDI instruments, and enabled such devices to be connected directly to a computer.[131] Some devices connected via PCs' DB-25 parallel port, or through the DA-15 joystick port found in many PC sound cards.
See main article: mLAN. Yamaha introduced the mLAN protocol in 1999. It was conceived as a local area network for musical instruments using FireWire as the transport, and was designed to carry multiple MIDI channels together with multichannel digital audio, data file transfers, and time code. mLan was used in a number of Yamaha products, notably digital mixing consoles and the Motif synthesizer, and in third-party products such as the PreSonus FIREstation and the Korg Triton Studio.[132] No new mLan products have been released since 2007.
SCSI MIDI Device Interface (SMDI) was used by some samplers and hard disk recorders in the 1990s (e.g. Kurzweil K2000 and Peavey SP Sample Playback Synthesizer[133]) for fast bidirectional sample transport to hard disk drives and magneto-optical drives.[134] [135]
Computer network implementations of MIDI provide network routing capabilities, and the high-bandwidth channel that earlier alternatives to MIDI, such as ZIPI, were intended to bring. Proprietary implementations have existed since the 1980s, some of which use fiber optic cables for transmission. The Internet Engineering Task Force's RTP-MIDI open specification has gained industry support. Apple has supported this protocol from Mac OS X 10.4 onwards, and a Windows driver based on Apple's implementation exists for Windows XP and newer versions.[136]
Systems for wireless MIDI transmission have been available since the 1980s. Several commercially available transmitters allow wireless transmission of MIDI and OSC signals over Wi-Fi and Bluetooth.[137] iOS devices are able to function as MIDI control surfaces, using Wi-Fi and OSC.[138] An XBee radio can be used to build a wireless MIDI transceiver as a do-it-yourself project.[139] Android devices are able to function as full MIDI control surfaces using several different protocols over Wi-Fi and Bluetooth.[140]
The MIDI 2.0 standard was unveiled on January 17, 2020, at the Winter NAMM Show in Anaheim, California. Representatives Yamaha, Roli, Microsoft, Google, and the MIDI Association introduced the update,[141] which enables bidirectional communication while maintaining backward compatibility.[142]
Research on the new protocol began in 2005.[143] [144] [145] Prototype devices showcasing wired and wireless connections have been shown privately at NAMM. Licensing and product certification policies have been developed,[146] although no projected release date was announced.[147] Proposed physical layer and transport layer included Ethernet-based protocols such as RTP MIDI and Audio Video Bridging/Time-Sensitive Networking, as well as User Datagram Protocol (UDP)-based transport.
AMEI and MMA announced that complete specifications will be published following interoperability testing of prototype implementations from major manufacturers such as Google, Yamaha, Steinberg, Roland, Ableton, Native Instruments, and ROLI, among others.[19] In January 2020, Roland announced the A-88mkII controller keyboard that supports MIDI 2.0.[148]
MIDI 2.0 includes MIDI Capability Inquiry specification for property exchange and profiles, and the new Universal MIDI Packet format for high-speed transports which supports both MIDI 1.0 and MIDI 2.0 voice messages.
Some devices operating MIDI 1.0 can "retrofit" some 2.0 features. Since its release in early January 2020 by the MIDI Manufacturers Association, more details have yet to come out about the new update. Currently there are five components to MIDI such as; M2-100-U v1.0 MIDI 2.0 Specification Overview, M2-101-UM v1.1 MIDI-CI Specification, M2-102-U v1.0 Common Rules for MIDI-CI Profiles, M2-103-UM v1.0 Common Rules for MIDI-CI PE and M2-104-UM v1.0 UMP and MIDI 2.0 Protocol Specification. Other specifications regarding MIDI 2.0 include; allowing the use of 32,000 controllers and wide range note enhancements. These enhancements are made better through the property exchange.[149]
The property exchange in MIDI 2.0 uses JSON or JavaScript Object Notation. This provides human-readable format to for exchanging data sets. In doing so, this opens up a wide range of capabilities for MIDI 2.0. JSON allows any plugged-in device whether it be a keyboard, piano or any other electrical device to describe what it is doing and what it can do rather than having the person operating it, change their settings every time they operate a new device. For example, a MIDI keyboard that is plugged into an iOS device with specific MIDI settings can now be plugged into a Windows device and not have to have their settings manually changed. Any musical component used in one device will be kept and can be altered automatically in another.[149]
MIDI Capability Inquiry (MIDI-CI) specifies Universal SysEx messages to implement device profiles, parameter exchange, and MIDI protocol negotiation.[150] The specifications were released in November 2017 by AMEI and in January 2018 by the MMA.
Parameter exchange defines methods for inquiry of device capabilities, such as supported controllers, patch names, instrument profiles, device configuration and other metadata, and to get or set device configuration settings. Property exchange uses System Exclusive messages that carry JSON format data. Profiles define common sets of MIDI controllers for various instrument types, such as drawbar organs and analog synths, or for particular tasks, improving interoperability between instruments from different manufacturers. Protocol negotiation allows devices to employ the Next Generation protocol or manufacturer-specific protocols.
MIDI 2.0 defines a new Universal MIDI Packet format, which contains messages of varying length (32, 64, 96 or 128 bits) depending on the payload type. This new packet format supports a total of 256 MIDI channels, organized in 16 groups of 16 channels; each group can carry either a MIDI 1.0 Protocol stream or new MIDI 2.0 Protocol stream, and can also include system messages, system exclusive data, and timestamps for precise rendering of several simultaneous notes. To simplify initial adoption, existing products are explicitly allowed to only implement MIDI 1.0 messages. The Universal MIDI Packet is intended for high-speed transport such as USB and Ethernet and is not supported on the existing 5-pin DIN connections.[151] System Real-Time and System Common messages are the same as defined in MIDI 1.0.
As of January 2019, the draft specification of the new protocol supports all core messages that also exist in MIDI 1.0, but extends their precision and resolution; it also defines many new high-precision controller messages.[151] The specification defines default translation rules to convert between MIDI 2.0 Channel Voice and MIDI 1.0 Channel Voice messages that use different data resolution, as well as map 256 MIDI 2.0 streams to 16 MIDI 1.0 streams.[152] [153]
System Exclusive 8 messages use a new 8-bit data format, based on Universal System Exclusive messages. Mixed Data Set messages are intended to transfer large sets of data. System Exclusive 7 messages use the previous 7-bit data format.[151]