A musician may have several devices for composing music, such as a computer, a drum machine and various keyboard instruments. If they all use MIDI, she can connect them all with a few cables. When she plays music on the keyboard, software on the computer records her notes in a file. Later, she can print it as sheet music, edit the score and send the data back to the keyboard, which plays the piece without her having to touch the keys. MIDI converts notes into data, allowing her to conveniently save, transmit and edit it.
Computer software applications for MIDI include sequencers that record notes and play them back, music editors, sound mixers and full sound-generating synthesizers. MIDI applications transmit and receive data from other devices and instruments, though it passes through the driver software first.
To connect your computer to a MIDI instrument, it must have a MIDI hardware interface of some kind. MIDI interfaces come in the form of PCI cards and USB dongles. The interface has MIDI-style sockets to accept cables from instruments and other devices. Its electronics convert computer data into the signals that operate MIDI instruments. The MIDI driver is a piece of software you install into your Windows, Mac OSX or Linux operating system. It performs low-level management of the MIDI interface; without the driver, the interface will not work.
You connect all MIDI devices together using special MIDI cables. Some devices, such as sequencers, do not make sounds but simply generate MIDI signals that control musical instruments. A computer is not required for a MIDI setup, though many musicians use one. If you do have a computer, it can act as a control hub or an instrument, depending on your application software. The applications send data to the operating system, which forwards it to the driver. The driver sends commands to the interface hardware and the hardware generates electrical signals on the MIDI cables. The instruments on the other end of the cable play music from the data you created in your PC program.