ttyMIDI is an application that recieves MIDI signals through the USB port on your computer and sends them to a MIDI program such as Ardour, Hydrogen or GIMP.  In this project I am using ttymidi to receive MIDI signals sent from the Arduino DrumKit Kit AI and send them to the Hydrogen application.

Installing ttyMIDI

  • Go to the ttyMIDI project page at
  • Click the link Browse the code
  • Download the entire directory
  • Use a terminal to navigate to the directory
  • The directory contains a folder named src and a file named Makefile
  • Type make in the directory you are in to compile the ttyMIDI source code
  • The program depends on libasound2. Type apt-get install libasound2-dev
  • Type sudo make install to copy the compiled file to /usr/bin for easy access
  • To connect to ttyUSB port at default speed (115200bps) and display information
    about incoming MIDI events type ttymidi -s /dev/ttyUSB0 -v
  • Tap a trigger to see MIDI events in the terminal window

When tapping a piezo trigger you should see a light blinking on your DrumKit Kit AI board. You should also see a number of lines output to the terminal window. One of the lines should read

Serial 0×90 Note on 008 036 024

This means you are recieving MIDI notes in ttyMIDI. With the proper JACK mappings you should hear sound coming from your speakers.



Depending which ttymidi version you downloaded you may notice errors compiling when you use the #include ardumidi.h. In this case you need to make some changes to the files. The fixes are supposed to be made in the latest release, but just in case…

In ardumidi.h:
replace #include WProgram.h with #include "Arduino.h"

In ardumidi.cpp:
replace #include WProgram.h with #include "Arduino.h"
replace all occurences of Serial.print(value, BYTE); with Serial.write(value);


Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>