MIDI for “non techies”.
There is much information on the internet about MIDI, with much of it highly technical and some of it not technical, but incorrect. I would like to try and provide a description for new musicians or those new to synthesizers, that provides enough detail, without getting into the weeds of tech-speak. With that in mind…
What is MIDI?
MIDI is a way for controllers and computers to talk to synthesizers through commands. Anything you can imagine, can be built to talk MIDI. I just need to have some sort of processor, an imagination and a good programmer to write the code. MIDI is not like audio signals, it only contains descriptive data about the notes being played, It does not contain information about how it sounds. You can totally change the sound of your synthesizer, by selecting a different patch/preset. The note data being sent will still be played. It will just sound somewhat different because of the preset settings.
MIDI is a specification or agreement, that says “if I send a specific command, the synthesizer will perform that command”. Back in the day, MIDI was developed to send commands, say from a keyboard to a synthesizer, through a cable with 5-pin DIN connectors on each end. An important note here: 5-pin DIN connector are another standard for the size and layout for the pins, and have nothing to do with MIDI. They were originally chosen for use in early synthesizers and have just kept that standard. Note though that not all synthesizers implement the entire MIDI specification, they should however stay within the spec for those commands they do use. So MIDI is a way for one piece of hardware to speak to another.
MIDI over DIN Connector Cables.
The diagram above gives an explanation of how MIDI communication works over 5-Pin DIN cables. When you press a key on a MIDI keyboard or controller, say C2, the controller sends the midi information out the DIN port. In this case it sends the command ‘Note On’ plus the note C2 and the velocity or ‘loudness’ of the note to be played (127). The synthesizer processor decodes that information and plays the note C2 at the provided velocity. The note will continue to be played until the synthesizer receives a ‘Note Off’ command. This is accomplished when you release the key C2 and the keyboard sends out a ‘Note Off’ command. Every knob you turn, key you press or pad you bang on, your MIDI controller/keyboard will send out these command. There can be a lot of them.
An important concept is the use of MIDI channels, there are 16 of them and the sending controller/keyboard must send the information on the same channel as the synthesizer is set to, for this all to work. The controller can send out on a single channel or it can send out on all 16 channels. The chart below depicts what would happen when the controller and synthesizer are set to specific channels.
Controller Channel |
Synthesizer Channel |
Result |
1 |
5 |
Note not played |
2 |
5 |
Note not played |
5 |
5 |
Note played |
ALL |
5 |
Note Played |
Using MIDI over DIN connector cables is basically “Fire & Forget”, as it is a one way communication message. The midi keyboard/controller has no idea if any synthesizers are connected. Once a MIDI command is sent on a specified channel, receiving synthesizers do not send an acknowledgement, nor can they send information back through the same connector. If they are set to listen to the appropriate channel, they just do what the command tells them (if their own specification incorporates that command), otherwise they sit there, doing nothing. It is therefore hard to know if the intended synthesizer is receiving a message or not. Your synth may have a blinky light or other way of notifying that it is receiving midi signals, or it may not. This can make it much harder to trace signals on complicated setups.
MIDI uses only three pins of a connector. One pin for sending data, one pin provides shielding/grounding and the another can be used to provide power for some devices, etc. Although this power is only 3.5 to 5V with a small current, damaged cables or controllers could wreak havoc if power was shorted somewhere. To protect expensive microprocessors and synthesizer electronics, most synthesizer manufacturers utilize an opto-isolator on the MIDI In port. This clever device isolates the synthesizer from any unwanted voltages or currents, while duplicating only the digital data being received. It will also send a copy out the MIDI Thru port. Warning: Many other things use 5-pin DIN connectors, including older audio and lab equipment. Worst of all, there are many power supplies that still use this type of connector. Always be sure that the DIN cable/connector assembly you are using is appropriate for MIDI.
Some synthesizers also have an output port (MIDI Out). Unlike the MIDI Thru port, the out port is independent of the MIDI in port. The MIDI Out port is controlled by the microprocessor in the synthesizer and is generally used for sending MIDI data from built in sequencers, modulations and clock signals. More expensive synthesizers may have opto-isolation on this port as well, but in my travels I have noticed manufacturers leaving it out and connecting directly through passive circuitry.
MIDI over USB Connectors
USB is another protocol specification for transferring data between any two nodes. USB is bidirectional, that is both the sender and receiver can exchange information. USB was devised as a means to connect peripherals like mice, keyboards, cameras, printers, storage, etc to a computer. With digital electronics becoming the norm in most consumer electronics, USB ports became more common for use in synthesizers. Not only is USB great for updating firmware, it can be used to transmit power and any kind of data, including MIDI data.
For USB to work, a ‘Host’ is required which is a computer or ‘Smart Device’ controlling the routing of data to the ‘Client devices’. The host keeps track of which client does what, and routes data to and from intended clients. Each host and client must have specific firmware that can enable the USB functionality. Most synthesizers and controllers do not have host capability. They can only act as client devices, and can’t communicate directly with other devices. For USB, there must always be a host acting as the message routing agent.
For MIDI to work over USB, the midi data is encapsulated into the USB data message of the protocol. MIDI capable synthesizer devices strip out the MIDI data from the USB message, and then process it the same way they would process conventional MIDI over DIN cables. MIDI capable controller devices (keyboard) also encapsulate the MIDI data into a USB message, and then send it back to the host to either use directly (in a DAW) or route the data to another client device.
I have read many incorrect post online that suggests MIDI is outdated and everyone should be using USB. The fact is that they are different things. Here are the fundamental points:
- USB is a specification for how hosts and client devices (peripherals) communicate with each other.
- Hosts can also act as clients, but most client devices cannot act as a USB host.
- MIDI is a specification for how synthesizers and other devices will respond to control messages musically.
- MIDI over DIN cables is ‘Fire & Forget’. The sending device has no idea if anything is listening to that channel(s).
- USB client devices can also send MIDI information back to the host via the same connection. MIDI over DIN cable require a separate port and cable to be used to send out any MIDI information.
- MIDI DIN uses the concept of a ‘Thru’ port which can forward MIDI data to any other device connected. USB has no such concept nor ability.
- The use of MIDI channels is still required over USB, however the host ‘knows’ which channel a client is supposed to be receiving on, and can route data accordingly.
- MIDI ports can be optically isolated. USB ports can also be isolated, but the electronics to do so, can be much more expensive to incorporate. Most consumer grade electronics do not have isolated USB.
- Both MIDI over DIN and MIDI over USB carry low voltage power for use in connected devices. USB however, carries a much higher current than MIDI DIN.
Which is better, MIDI over USB or MIDI over DIN Cables?
That is a little more complicated, and it is not a “One size, fits all” answer. Remember that Host & Client thing from above? Well suppose you have a PC running Ableton, or Reaper or whatever-DAW-You-Prefer, then the PC can be a host and most newer synthesizers and controllers can connect directly with standard USB cable and act as client devices. No muss, no fuss and this is most likely the best way.
But what if you just have an Arturia Keystep and a synthesizer? The Keystep also has a USB port, but it can’t act as a host. They are only client devices. “Aha”! you shout. You remember that the Keystep also has DIN ports for MIDI. In this case, you simply connect a MIDI DIN cable from the ‘Out’ port on the Keystep to the ‘In’ port on your synthesizer. Again, no muss, no fuss and this is also the best way.
More complicated examples
- What if I want to connect multiple synthesizers to my keyboard or laptop or both?
- What if I need to run my cables across a room, how far can I go?
- What other issues will I face?
Data Speed.
USB can handle large amounts of data, sending it very quickly from the host to the client. However, it comes with an overhead. A large part of the data being sent is used to manage the connection, and ensure data is accurate. There is also additional processing power used to extract, process and route the MIDI data. USB data speeds can be in the mega-bits per second. Literally thousands of MIDI commands per channel, per second.
MIDI over DIN however, does not have any connection overhead. It just needs processing power to encode/decode the MIDI data. MIDI over DIN is not constrained by the processors, but generally constrained via the electronic components used to send & receive the data. It was also intended to be backward compatible with older equipment. Therefore the MIDI designers have kept this data rate to about 31 kilo-bits per second. But that, is still a ton of data and can be well over 500 MIDI commands on each channel per second.
Music has timing, and sending all this data can have unintended effects that mess up the timing. For connecting single synthesizers up, both schemes have no limitations and timing will be unaffected. This can get a bit more complicated and even require additional hardware when we start to connect multiple synthesizers up.
The simplest method is the use of a “Daisy-chain” (See diagram below). If you have an Arturia Keystep, you connect its MIDI ‘Out’ port to the ‘In’ port of the first synthesizer (synth #1), then connect the ‘Thru’ port of synth #1, to the ‘In’ port of synth #2, then connect the ‘Thru’ port of synth #2 to the ‘In’ port of synth #3, and so on. Whatever midi channel the Keystep is sending on, only the synthesizers set to listen on that channel will respond. Regardless of channel it is set to, every synth will forward the original data out the ‘Thru’ ports.
What if you just have a PC and a DAW and you remembered that USB does not have the concept of a ‘Thru’ port? For this you will need USB – MIDI DIN converter or USB-MIDI interface. These can be found online or in any music store and can be under $20 or you can spend $100. You get what you pay for as I will explain later, but I personally love the Roland UM-One. It has never let me down on any PC or with any DAW. It is also powered via the USB port (which lessens the power adapter mess).
The interface works as a USB client (seen by the host), decodes and forwards all MIDI data down one of its DIN cables. From there, everything acts as MIDI over DIN example above. You just set up on each synth to listen to a midi channel, everything is forwarded out the ‘Thru’ ports using DIN cables. Most interfaces have two DIN cables. One for sending, and one for receiving. This allows you to add a separate keyboard to the mix. You connect the interface ‘Input’ cable to the keyboard ‘Out’ port, then configure your DAW to listen to the channel the keyboard is on. Then you can even route MIDI messages in the DAW back out to the synthesizers.
It may be possible to mix and match with a synthesizer. Use a USB cable to connect to the first synthesizer device, and then connect that synth to other synthesizers using 5-pin DIN cables in a daisy-chain (See diagram below). This is purely dependant on what your first synth can do with USB and MIDI ports simultaneously. Not all synths will forward the MIDI data arriving on the USB. Some synths do not even have a ‘Thru’ port.
Alternately, some performance workstations can be setup as both a host and a client device. Generally, the cheaper the synth or controller, the less capability it has, and many new versions only have USB client capability.
The only issue, with any of these daisy-chained methods is what is called “latency”. As electrical signals propagate down the wires, they take a tiny amount of time to relay the data. as connections increase, more time is added. When you start adding 3, 4 or more synthesizers into the mix, there will be a noticeable timing difference between when a note is played the first synthesizer and the last one in the chain. Latency is also introduced when cable distances and processing overhead increases.
Electrical signals, as fast as they are, still take longer to travel through longer cables. Signals will also be degraded over any length of cable, thus effecting the ability for a synthesizer to read the data correctly. For DIN cables, this distance is about 25Ft total before latency or degradation effects are noticed. In the daisy-chain above, using just three 10Ft cables, between the keyboard and each of the three synthesizers, exceeds that distance. Since humans can notice 10 milliseconds of latency in timing, your music will sound off beat or out of step.
USB is no better, and sometimes worse. I have used 25Ft USB cables for updating firmware, and even connected a laptop to a single synthesizer over that distance and did not notice a timing issue. But, it does not work everywhere, every time. The maximum cable distance specified for MIDI over USB is just 16Ft. PCs also have multiple applications and processes running, with the CPU spending time slices on each process and accessing disk space. This can add “jitter” to the signal as a stream of MIDI data can be momentarily interrupted because the computer had to download an email or do something else. Any interruption over 10 milliseconds will be noticed, and it can be annoying as heck.
Solution 1, for MIDI over DIN cables.
My own music studio has a couple dozen synthesizers. I have older synths from the 1970’s, DIY synths, Eurorack and newer commercial synthesizers. Some do not have USB capability, and I also have multitrack audio and recording capability to consider. For that reason, I only use MIDI over DIN cable. I makes my life easier and meets my needs. I can use various lengths of cable as needed and have eliminated multipoint daisy-chaining through the use of low latency MIDI hubs, like the Kenton Thru 25 and the MIDI Solutions Merger or the MIDI Solutions Quadra Merge. Many of the MIDI Solutions devices do not use an external power supply or wall type adapter. Instead they are powered using the 5v power on the MIDI DIN connector. Not all controllers have this ability, so you need to check your controller manual before selecting one.
MIDI hubs provide copies of the originating midi data, and sends it out on every port, near simultaneously (less than 1 Millisecond). It is much like having multiple ‘Thru’ ports. In the image above there is less than 1.5 millisecond delay from the keyboard to any of the synthesizers. The PC does utilize a USB interface, but there is still less than a 2 millisecond delay from the PC to any synthesizer. Any real latency would usually come from the DAW, trying to a dozen or more midi tracks simultaneously.
There are many hubs out there, including DIY versions. which I also use for individual synth racks, that have 4 or 5 synths each. I chose the Kenton 25, only because I can connect every synth or rack in my studio to a single point. My entire studio has less than 4 Milliseconds in latency from source to final destination. You can even find other MIDI splitters and hubs that enable multiple controllers to be incorporated into the design.
Solution 2, for MIDI over USB.
You can also implement complicated setups, minimizing latency, with MIDI over USB by using a high quality USB hub. It should be noted that USB hubs, are not clients nor hosts. They are simpler devices that provide copies of USB data via their USB ports. You can get USB hubs with 25, 30 or more ports. Do not however, get cheap, low quality versions of USB hubs as they will prove to be a headache in latency, durability and consistency in performance. Because many also require an external power supply operating at higher currents, cheap hubs can lead to a disaster in having high current run to each synth if it fails. Just remember the old adage: ‘You get what you pay for’. I have seen several synthesizers destroyed because a cheap hub failed and allowed several amps of current to be fed to each output.
You should now have enough information to start putting some ideas together and come up with a plan. My studio, is setup to play and record audio and MIDI information. It uses both analogue and digital equipment throughout plus, it is located in a large city urban area with overhead street wiring. I say this because if you are also recording, you may face the enemy of all studios. And that is noise. Because PCs, some digital synthesizers, USB hubs and other digital equipment utilize switching type power supplies, they are inherently more noisy. This can certainly be eliminated, but it can be a devil trying to locate the source.
As a review on complex connectivity:
- MIDI over DIN cables can be a royal pain, especially when trying to debug and trace why a synthesizer is not responding to an upstream midi source. USB makes this much easier as the host will list all connected devices.
- Many newer synthesizers or controllers do not have MIDI DIN connectivity.
- USB connectors, especially the smaller ‘mini’ type, are less robust and break easily.
- USB can carry more data at much higher data rates. However, underlying hardware and processor performance can cause unwanted overhead leading to timing issues like higher latency or signal jitter.
- MIDI over USB can be routed easier through the use of host capable ‘smart hubs’.
- Although MIDI DIN can introduce noise from poor cables, USB is much noisier due to both cabling and various device power supplies. Read about ground loops.
For my personal preference in my studio and when performing, I use MIDI DIN cabling throughout. Your millage may differ, and your equipment may be better suited to USB. I only hoped to show the differences and why one is not really better than the other. Like usual there are always multiple tools in the synthesizer toolbox.