Introduction to MIDI and Computer Music: The MIDI Standard
MIDI is an acronym that stands for Musical Instrument Digital Interface.It’s a way to connect devices that make and control sound — such assynthesizers, samplers, and computers — so that they can communicate witheach other, using MIDI messages. This lets one keyboard trigger sounds onanother synthesizer, and it makes it possible to record music in a form thatallows for easy note editing, flexible orchestration, and song arrangement.Virtual instruments — computer programs that simulate hardwaresynthesizers and samplers — also communicate with computer sequencingsoftware running on the same computer using MIDI messages.
This web page introduces you to the basics of MIDI. The interactiveapplication you can download from the syllabus helpsyou to understand some specifics of MIDI messages.
History
MIDI evolved as a standard to enable communication between the more compact andaffordable synthesizers that were available in the early 1980s, after the eraof large, expensive modular analog synthesizers. MIDI was meant to allowsomeone to control multiple synthesizers from a single keyboard, so as togenerate, for example, the massive layered sounds popular in some ’80spop music. Formerly, such connections between instruments were notstandardized, so incompatibilities were common. The MIDI standard was completedin 1983 by a consortium of musical equipment manufacturers (including Korg,Oberheim, Roland, Sequential Circuits, and Yamaha). Products featuring thestandard, such as the popular Yamaha DX7, were on the market soon after.
Before long, sequencing software for personal computers could take advantageof the MIDI communications protocol to let users record, store, and editmusic, as well as manage large collections of synthesizer sounds.
Communication by Message
The most important thing to understand about MIDI is that it is based on theidea of message-passing between devices (pieces of equipment or software).Imagine a common situation: you have a keyboard synthesizer and would liketo record a sequence using the sounds that are in that synthesizer. Youconnect the computer and synthesizer so that they can communicate usingthe MIDI protocol, and start recording. Save username to google. What happens?
When you play notes on the synthesizer, all your physical actions (except thedance moves) are transmitted as MIDI messages to the computer sequencingsoftware, which records the messages. MIDI messages are brief numericdescriptions of an action. Keys you press, knobs you turn, the joystickyou wiggle — all these actions are encoded as MIDI messages. You hearthe sound you’re making, but that sound comes out of the synthesizer,directly to your speakers. The computer does not record the sound itself.
When you play your recorded sequence, the computer sends MIDI messages back tothe synthesizer, which interprets them and creates audio in response. Becausethe music handled by the computer is in the form of encoded messages, ratherthan acoustic waveforms, it’s possible to change the sound of a trackfrom a piano to a guitar after having recorded the track. That would not bepossible if you were recording the sound that the synthesizer makes.
MIDI Channels
The concept of channels is central to how most MIDI messages work. Achannel is an independent path over which messages travel to their destination.There are 16 channels per MIDI device. A track in your sequencer program playsone instrument over a single channel. The MIDI messages in the track findtheir way to the instrument over that channel.
MIDI channels are a bit like channels on your TV set: each channel isindependent of the others, and, on some models of TV, can even be watchedsimultaneously in separate boxes that appear on the screen. Just imagine thatinstead of a TV show, each channel features a single instrumental part —with notes, pitch bend, and other nuances acting independently of the parts onother channels that are playing at the same time.
Each channel (marked “Ch”) carries its own instrumental part,and has independent volume, panning, and other settings.
Basic MIDI Hardware Setup
Present day software is capable of performing the sound-making functionformerly available only in external hardware-based synthesizers. It’sjust as likely now to see, connected to a computer, a keyboard that can’tmake any sound at all. Its function is to trigger and control, via MIDImessages, sounds made by the computer. But the sound-making part of thecomputer software still communicates with the sequencing part using the MIDIprotocol.
There are still plenty of MIDI setups that work in the traditional way, withthe computer just recording and playing MIDI messages, and the sound created byan external synthesizer. These are especially useful in live setups, where thereliability and faster response of hardware synthesizers are distinctadvantages. In such a system, you use MIDI cables to connect thesynthesizer to a MIDI interface, which then connects to the computerwith the same sort of USB cable you use to connect a printer. MIDI cables areunidirectional — they transport messages in only one direction. So youneed two MIDI cables. USB is bidirectional. The sound made by the synthesizergoes to a mixer, which then feeds an amplifier and speakers (not shown below).
MIDI ports on the interface and synthesizer are labeled IN andOUT. You connect the MIDI OUT jack of the synthesizer to the MIDI INjack of the interface, and vice versa.
Connecting Multiple MIDI Devices
What if you have more than one external synthesizer? Your MIDI interfacemight have more than one set of IN and OUT ports. Then you can connectyour two synthesizers separately. But if you have a single-port interface, you must make use of the THRU port found on many synthesizers tocreate a “daisy-chain” (series) connection of devices.
When the computer plays a sequence, the MIDI messages go first to the keyboardsynthesizer, which makes sound in response. The keyboard sends a copy of theincoming messages out its THRU port, and these enter the drum machine on its INport. The same thing happens again between the drum machine and the rack-mount(i.e., no keyboard) synthesizer, which is the end of the chain. Emergency call 112 download.
This is a handy way to connect devices, but it has one big problem: all thedevices must share the same 16 MIDI channels. That might not be enough channelsto construct a full arrangement of a song with many different sounds. Themain problem, though, is that you would have to make the various devicesignore the channels you don’t want them to respond to, which requiresa lot of configuration that you probably don’t want to bother with inthe heat of creation.
The solution to this problem is to get a multi-port MIDI interface, suchas the one below. It has 8 independent sets of IN/OUT ports, each of which cancarry 16 channels, for a total of 128 channels.
Best of all, when you hook devices up to this interface, any device can controlany other. For example, the keyboard controller could play sounds on the drummachine or the rack-mount synthesizer. The MIDI guitar controller could makesounds on all the other devices. The routing would usually be configured inyour sequencer software.
Current Trends
For simpler setups, it’s more common today to find keyboards with a USBport that allows for direct connection to a computer, bypassing the MIDIinterface. The keyboard in the picture below has both USB (circled) andtraditional MIDI ports (to the right).
As mentioned above, a lot of the action formerly taking place in external boxesis now happening in the computer, obviating the need for complex hardwaresetups. For many situations, all you need is an inexpensive MIDI controllerkeyboard (without internal sounds), with a USB connection to the computer.
General MIDI
Synthesizers and samplers have large numbers of sounds (which we callpatches or programs). The patches appear in banks of 128 orfewer, and your computer software selects the patches by number, even if youchoose the patches from a list of names and never notice the patch numbers.Types of sounds — pianos, guitars, violins — are assigned tonumbers in a way that is not compatible between different synthesizers. Thatmeans that a sequence recorded using one type of synthesizer will not soundremotely the same when played using a different type of synthesizer.
To address this problem, the MIDI standard includes the General MIDI (orGM) specification. The most important part of this is a standardassignment of instrument types to patch numbers. For example, in a General MIDIcompatible sequence, a violin sound will always be patch number 41. The violinson two different keyboards will not sound exactly the same, but at least theywill sound like violins.
A similar problem affects drum kit patches: the assignment of individual drumsounds to keys on the keyboard is not guaranteed to be compatible betweendifferent synthesizers. General MIDI specifies a map of typical drum sounds tokeys. It also declares that channel 10 is the drum channel, so that a sequencecan depend on finding drum sounds there.
For the names of patches and drum sounds, and their assignments to patchnumbers and keys, see the General MIDI Instrument PatchMap and Percussion Key Map.
Standard MIDI Files
To enhance compatibility between different MIDI sequencing and music notationprograms, even those running on different operating systems, the MIDI standard defines a specification for the Standard MIDI File. Thistype of file (usually having the file extension “.mid”) representsmulti-track sequences, complete with patch selections, notes, pitch bend, andother controls. A wide variety of programs can read and write SMF files. Theformat is especially useful in conjunction with the GM patch set, to enhanceportability between different systems.
Using Yamaha Keyboard As Midi Controller 2
Copyright ©2013 John Gibson
Posted by3 years ago
Archived
Hi all,
I'm currently using a small MIDI controller keyboard with Ableton, and now I'm planning to buy a digital piano, most likely the Yamaha p45.
The Yamaha piano only has a USB port and no MIDI Out. My question now is: Can I use the p45 (or any other digital piano with no MIDI out) also as MIDI controller for Ableton, or can I only play and record the sounds that are included in the piano (i.e. I can't switch to, say, strings in Ableton and play and record these with the p45)?
Thanks!
10 comments
Posted by2 years ago
Archived
I've been interested in using my Yamaha P-45 as a MIDI controller, and I was wondering if the P-45 is compatible with all of the advanced features that some of the more expensive virtual instruments offer, such as expressive attack sounds that are beyond the onboard sound capabilities of the P-45, higher polyphony numbers, half pedaling, etc. Can I use these pieces of software and the USB connection to enhance my playing experience?
Do you have any insight into programs that seem to be what I'm looking for? If I can make it sound like I'm playing more realistically on a good piano or other instrument I would be very happy.
11 comments
I've been experiencing the exact same issue with my Alesis Q88 midi keyboard (http://alesis.com/products/view/q88)
To be clear: The MIDI controller, like many others, is class compliant and doesn't have or require third-party drivers.
Windows 10 detects the controller perfectly (it shows up under the Sound- and USB-category in device manager). The software that I use with the controller to play my music also has no problem detecting the keyboard.
It just doesn't accept any input. Once I plug the device in and start Addictive Keys for example, the keyboard works for 3 seconds then just stops. I never had this issue on Windows 8.1 and it only started happening in Windows 10 in since the last 2 weeks of december 2015.
I'm not sure what changed in Windows around that time, but from what I've been reading over the internet, a lot more music producers are experiencing their hardware no longer working under Windows 10, while these devices are typically plug-and-play compliant just like any other regular keyboard or mouse.
#edit:
Just to answer some troubleshooting that I already did by myself:
- I've tried different USB cables. No joy.
- I've tried different motherboards (switched from an MSI Z97 Gaming 7 to an ASUS z97 DELUXE). No joy.
- I've tried reinstalling windows entirely - multiple times. No joy.
- I've bought Windows 10 Pro (standalone). No joy.
- I've tried different MIDI devices (over USB). Same problem, no joy.
There's clearly an issue in Windows that prevents MIDI controllers from sending input to the computer. How and why this is happening is still a very vague..
Lastly, I've attempted to apply the Windows registry 'hotfix' as described in this Windows 8.1 thread that describes the EXACT same issue as what I've been experiencing under Windows 10, but it didn't help at all.
http://answers.microsoft.com/en-us/windows/forum/windows8_1-hardware/usb-midi-controllers-not-working-on-windows-81/8c168bf9-725b-494e-b407-72372cc2eb9e
#edit2: I've hooked it to my front USB controller (which is also a USB3.x port) and it suddenly started working. Windows somehow started installing different/new drivers as well. Not sure how long this will actually keep working though..
Perhaps it has something to do with xHCI handshakes or something..