''Musical Instrument Digital Interface (MIDI)''
The original MIDI (Musical Instrument Digital Interface) protocol was developed in 1983 by Dave Smith and Ikutaro Kakehashi to enable communication between electronic instruments.
== Software Protocol ==
Unlike audio protocols MIDI is a set of commands that transmit sound wavesa synthesizer, MIDI carries event messages—instructions about what to playsampler, how or software interprets to play it, and whengenerate sound. These messages includeThe commands are:
*{| class="wikitable"|-! Status Byte (Hex) !! Message Type !! Data Bytes !! Description|-| 0x8 || Note On/Off: Triggers || 2 || Stops a note ; data bytes set the note number (e.g., "play middle C"0–127) and stops itrelease velocity (0–127, often unused).*Velocity: Indicates how hard |-| 0x9 || Note On || 2 || Starts a note is struck ; data bytes are note number (volume or intensity0–127) and velocity (0–127, typically loudness; 0-127acts as Note Off).*Pitch Bend: Adjusts a note’s pitch in real|-time| 0xA || Polyphonic Key Pressure || 2 || Adjusts pressure on one note; data bytes are note number (0–127) and pressure value (0–127).*|-| 0xB || Control Change (CC): Modifies parameters like volume, pan, or modulation || 2 || Changes a controller (e.g., CC#7 for volume, pan, modulation); data bytes are controller number (0–127) and value (0–127).*|-| 0xC || Program Change: || 1 || Switches instrument sounds ; data byte is program number (0–127, e.g., from piano to violin, guitar).|-MIDI doesn’t contain audio | 0xD || Channel Pressure || 1 || Applies pressure to all notes on a channel; databyte is pressure value (0–127).|-| 0xE || Pitch Bend || 2 || Bends pitch; it’s two data bytes form a set of 14-bit value (0–16383, 8192 = no bend).|-| 0xF || System Messages || Varies || System-wide commands that a synthesizer(e.g., samplersync, or software interprets to generate sound. This makes MIDI files tiny compared to audio files—think kilobytes versus megabytesstart/stop); data bytes vary by message type.|}
A MIDI message is typically 1-3 bytes long:
*Status Byte: Defines the message type (e.g., Note On) and channel (0-15, displayed as 1-16). Each status byte has a '1' as its most significant bit.*Data Bytes: Provide specifics (e.g., note number, velocity). Each data byte has a '0' as its most significant bit.
The 16-channel system lets one controller command multiple devices or voices independently. For example, Channel 1 could trigger a drum kit while Channel 2 plays a bassline.
MIDI doesn’t contain audio data. This makes MIDI files tiny compared to audio files—think kilobytes versus megabytes.
== Hardware Protocol ==
* [[DIY MIDI Interface from CPCAI magazine]]
* [[DIY MIDI Interface from CPCinfos magazine]] by Thierry MANGION, port &FAF0 [http://cpcrulez.fr/hardware_montage_8x-interface_MIDI-part_2__CNFO.htm]
* [[Willy|Willy MIDI]] General MIDI Wavetable Synth
* [[RSF3]] Multi-purpose expansion card including MIDI synth. It is EMR MIDI compatible [https://youtu.be/YOjV9AaIVKM Source]
== MIDI software for the CPC ==
* [[EMR Miditrack Performer]] (ElectroMusic Research)
== Presentation in ACU magazine magazines ==
<gallery>
image:MIDI test ACU Feb1989 p2.jpg|[[Amstrad Computer User]] reviews MIDI on CPC (page 2/3)
image:MIDI test ACU Feb1989 p3.jpg|[[Amstrad Computer User]] reviews MIDI on CPC (page 3/3)
</gallery>
== Presentation in CPCAI magazine ==
<gallery>
image:MIDI CPCAI.jpg|[[CPC Amstrad International]] 2/1987 reviews MIDI on CPC (pages 16-22)
</gallery>
== DIY MIDI Interface from CPCAI ==
<gallery>
image:MIDI Interface CPCAI.jpg|[[CPC Amstrad International]] 2/1987 published a DIY MIDI interface & software for CPC (pages 24-31)
</gallery>
General MIDI (GM) is a standardized specification for electronic musical instruments and synthesizers, introduced in 1991 by the MIDI Manufacturers Association and the Japan MIDI Standards Committee.
General MIDI aimed to ensure consistency across devices by defining a uniform set of 128 instrument sounds (called "patches") , organized in a specific program change order:
{| class="wikitable"
|}
This Note: In the actual MIDI data bytes, the instrument numbers are 0-127 (zero-indexed). But in user interfaces and documentation, these are typically displayed as 1-128 (one-indexed) to be more intuitive for musicians. General MIDI allowed musicians and composers to create music that would sound reasonably similar on any GM-compliant device, solving the patchwork compatibility issues of early MIDI systems.
General MIDI largely superseded the previous Roland MT-32 de-facto standard and quickly became foundational in music production, video game soundtracks, and consumer electronics.
* http://en.wikipedia.org/wiki/MIDI_1.0 - wikipedia on MIDI 1.0
* http://en.wikipedia.org/wiki/Musical_Instrument_Digital_Interface - wikipedia on MIDI in general
* [http://tgv777.free.fr/index.php/fichiers-midi/ MIDI Files] [https://musical-artifacts.com/artifacts?order=most_downloaded&q=midi+soundfont MIDI SoundFonts]
* [https://youtu.be/LFWBqUK4G_Q E1M1 Using 40 Different Soundfonts! Comparison w/ Doom MIDI] by [[Doomkid]]
[[Category:Peripherals]]
[[Category:Music and sound]]
[[Category:DIY]] [[Category:Hardware]]