Software

Getting an Arduino talking MIDI over USB has traditionally been a bag of hurt, but thanks to a few smart folks it can now be accomplished with the right bits of software.

You’ll start with a plain vanilla Arduino software installation, version 1.6.9 or later. This can be downloaded from the Arduino web site. Do not use the 1.5.x beta software for this, nor older releases!

Installing Arduino Libraries

Open up your Arduino IDE and open the Manage Libraries... dialog under the SketchInclude Library menu:

If you don't see the Manage Libraries option, make sure you downloaded the Arduino IDE from arduino.cc! Older versions and derivatives of the IDE may not have it.

You will need to install the following libraries using the Library Manager:

Uploading Code

There’s still a little song and dance to be done, but it’s easier than MIDI The Old Way™.

First, select Arduino Leonardo from the Tools→Board menu.

Now, from the Tools→Serial Port menu, select the port corresponding to the Arduino Leonardo board.

Open one of the UNTZtrument example sketches in the File→Examples menu. If using a HELLA UNTZtrument (16x8), add this line near the top of the code:

Download: file
#define HELLA

You don’t need this change for a regular 8x8 UNTZtrument.

Before uploading the code to the board, unplug and re-plug the USB cable to restart the bootloader again. There’s a 10 second window to then click Upload. If you miss it on the first try, just try again with the cable-replugging and uploading.

There’s just one more piece we’ll need to finish the setup…

Host-Side Software

UNTZtrument issues MIDI data over USB. Now you’ll need software on the computer at the other end of that cable.

This requires either a software synthesizer — a program that generates sounds using your computer’s audio hardware — or a MIDI patchbay utility, which forwards the MIDI data to a hardware synthesizer.

If you’ve done music on your computer before, you probably already have one or both of these tools. Otherwise, there are a ton of options out there, many of them free. For example, on Windows there’s the freeware Firebird2. Mac has the very basic SimpleSynth or the soup-to-nuts GarageBand. Even Linux has options. Google around for “software synthesizer”, “free” and “Windows”, “Mac” or “Linux” and see what you find.

There are so many options, we can’t walk you through this for every app or operating system. It’s usually pretty straightforward though, we’re confident you can find something and get it installed and running.

Using the UNTZtrument_Hello_World Example


If you haven’t already uploaded this example, run the Arduino IDE, open this sketch and select “Arduino Leonardo” from the Tools→Board menu and “MIDI” from the Tools→USB Type menu. Unplug and replug the USB cable from the device and then quickly press the Upload button (if this fails the first time, try again, there’s about a 10 second window for uploading the code).

(Remember, you’ll need to add one line as previously described if using a HELLA UNTZtrument.)

This is a minimal Trellis-and-MIDI example that simply maps each button to a different MIDI note…lowest at the top-left, highest at the bottom right. It’s not trying to mimic a specific instrument, nor is there any relationship between rows and octaves or such. It’s basically to test communication between the device and synthesizer.

Using the UNTZtrument_Step_Seq Example


This is a simple example of a step sequencer, sometimes used for creating rhythms. Each of the eight horizontal rows of the matrix corresponds to a different sound, while the eight vertical columns are scanned in sequence…anywhere there’s an intersection (a pixel that’s previously been lit by pressing its button) you’ll get a sound.

Popular among electronic dance music. Hence the name, UNTZtrument.

This guide was first published on Jun 20, 2014. It was last updated on Jun 20, 2014. This page (Software) was last updated on Sep 15, 2019.