Fasma Festival 2017 – DIY Drum Machine (Teensy)

As part of my by now usual, participation in the Fasma Festival in Athens, I designed a Teensy 3.2 based drum machine for the DIY workshop. As I’ve been playing around with the design for the past years, trying to modify the Teensy Audio library for ease of hacking, I managed to come up with a couple of ideas … Read moreFasma Festival 2017 – DIY Drum Machine (Teensy)

Digital Warrior – The final battle

After the release of the Sequencer Edition last November I’ve worked more on improving a little bit the enclosure. My main goal was using a little bit better materials and closing up the sides, for a more solid, finished feel. After a lot of thinking and design iterations I ended up “borrowing” an idea from … Read moreDigital Warrior – The final battle

Alzheimer’s 1 Delay – Teensy Stomp Box

As soon as I discovered the new update for the Teensy Audio Library I decided to put it to some use. I had a couple of guitar pedal parts around and a nice little OLED display from ebay. I stacked the Teensy Audio Adaptor below my own Teensy Synth control board. and squeezed them into the … Read moreAlzheimer’s 1 Delay – Teensy Stomp Box

Teensy Synth control board

I really love using the Teensy micro controller. It goes almost into every project I do, from art installations to MIDI controllers and instruments. That’s why I developed a small break out board with some of the most common features I use. It break outs the digital and analog pins in groups also a 3.3V, … Read moreTeensy Synth control board

x0x heart build – TB 303 clone

This is a TB-303 clone build based on the x0x-heart board from Open Music labs and my own Teensy Synth control board. Built into a hand crafted wooden enclosure with a lid (thanks to my super Demi babe) and an engraved aluminium face plate. It has MIDI DIN in, through, audio out, controls over waveform, … Read morex0x heart build – TB 303 clone

Plug controller

I’ts been a super fantastic week here in Cyprus during the Plug electronic music conference. Full of workshops, parties and amazing new people to meet. During one of the last day I had the opportunity to do a workshop on diy midi controllers. I designed and produced a basic midi controller kit based on Teensy … Read morePlug controller

MIDI Elements Teensy Library V2

After quite some time, I finally found a chance to update the MIDI Elements library, improve some features and make a proper documentation for it. After a lot of requests I added a class for endless encoders and RGB LED’s. Also added mapping features for the Potentiometer class that makes it easier to use with … Read moreMIDI Elements Teensy Library V2

AST 2.0

photo by bad-pixel Ast (meaning branch), is an expressive multi-sensor musical instrument Marco Brosolo conceptualized and created for his performances. It is a collaboration going for quite a few years now between Marco, Massimo Scamarcio, Sebastian and recently myself. The latest developments we worked on was adding a second pair of pressure and position sensors, … Read moreAST 2.0

MIDI Elements Teensy Library

I have created a wrapper library to make programming MIDI controllers on the Teensy board dead easy and super fast. Simply instantiate object for each component like Buttons, Potentiometer, LED, rotary encoders, etc. and let the library handle all the dirty work of reading the raw values and deciding when to send MIDI signals. Enabling you to experiment and concentrate on your creative ideas and not waste too much time with the repetitive technical details and debugging code.

Just in a couple lines of code you can program a fully functioning MIDI controller.
Here’s an example of how simple things are:

boolean debug=false; // print to serial instead of midi
boolean secondary=true; // enable secondary midi messages
int midiChannel=1; // midi channel number

// declare all your components here
Button but(17,midiChannel,1,secondary,debug); // button 1 on pin 17
Button but2(16,midiChannel,2,secondary,debug); // button 2 on pin 16
Potentiometer pot(45,midiChannel,3,secondary,debug); // knob on pin 45 (A7)
Led led(15,midiChannel,3,true); // led on pin 15 with PWM enabled, triggered on the same number as pot

void setup(){
  usbMIDI.setHandleControlChange(OnControlChange); // set event handler for CC

void loop(){
  // add here all the input component reads
  pot.read(); // read knob and send midi messages
  but.read(); // read buttons and send midi messages
  usbMIDI.read(); // read all the incoming midi messages
// event handlers
void OnControlChange(byte channel, byte control, byte value){
  // add all your output component sets that will trigger with cc

Currently only Buttons, Potentiometers and LEDs are supported. But I’m planning on adding RGB LED, rotary encoder, LED bars and ring and button pad classes.
Each component sends two sets of MIDI signals if enabled. For example Buttons send NoteOn, NoteOff, as well as ControlChange values so that they could be easily mapped in Toggle or Instant mode in software like Ableton Live. Also the Potentiometers send secondary NoteOns when values reach 0 or 127, à la MIDI Fighter Pro.

Download: github
To install extract the MIDIElements folder in your arduino/libraries directory

Read moreMIDI Elements Teensy Library