MIDI (Musical Instrument Digital Interface) is an industry standard. It includes both software and hardware specifications. It is used to transfer data between musical instruments and other compatible devices. The MIDI standard includes, among other things, hardware specifications (current loop circuit, connector), communication protocol (serial) and data protocol. Today, the data protocol specification is the most important, because the transport layer is commonly used today as a non-standard (MIDI specification) transport layer. For example, USB or Bluetooth interface.
Arduino can communicate with musical instruments via MIDI. In a series of articles, we'll show you how to do this. In the series, we will focus on the following topics:
In this article, we'll show how we can use musical instruments using Arduino. We will use the MIDI protocol, a serial protocol that sends messages to musical instruments. The instruments by the sent message know what note they are about to play. I will use the Korg Volca FM synthesizer in the preview. But you can use any musical instrument that has MIDI input.
We continue our experiments with MIDI. In the previous article, we've shown how MIDI out is connected and we've played a few scales. Now is the time to create some music. That is why we focus on the basis of modern, popular music, which are chords. I will use the Korg Volca FM synthesizer in the preview. But you can use any musical instrument that has MIDI input.
Sometimes things that the author created for his own enjoyment appear on the Internet. Let's take a look at two videos about the Teensy microcontroller. There are two Teensy 2.0 and Teensy++ 2.0 microcontrollers in the video. However, the video does not cover technical details. The author plays his own musical instruments, which resemble real instruments. Musical instruments look like you would expect in a post-apocalyptic film. So, Mad Max, if he finds a spare time and doesn't use a flamethrower, machine gun or monstercar, he sits under skyscraper, damaged with a nuclear explosion and makes a musical instrument of what he finds and plugs the microcontroller inside. The microcontroller must have a USB MIDI, and you must have a Kontakt 6 program on your computer for a sound.
Connecting Arduino to a computer as a USB MIDI is not difficult. All you need is the Arduino Pro Micro, which includes the ATmega32U4 microcontroller. This microcontroller can be directly connected to USB. It can be set to behave like a MIDI device. This allows Arduino to send or receive notes using MIDI.
When you find the MIDI electrical specification on the Internet, you will find only ugly scanned images thirty years old or so. But it does not harm us when we learn from experts. In one Korg service manual, I found a nice circuit diagram of the electrical circuit that they use in their synthesizers. It is highly likely that the same electrical circuit is used in all musical instruments that can be controlled via MIDI.
In a simple way, General MIDI defines a list of sounds. It does not define how those sounds should sound. It only defines a list of sound names. This means that interpreting the same song data on a different General MIDI compatible musical instrument is different. Standard requires only that sounds match the defined name.
The video explains the typical connection of each MIDI connector. Nowadays you can find only USB connectors on many synthesizers, but if you need to connect individual devices, the classic connector has been doing this for many years. The video focuses mainly on Behringer synthesizers.