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

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

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
  but2.read();
  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
  led.setOn(channel,control,value);
}

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

Aftertouch MIDI Glove

It’s been a while since I posted a new project here, but after the Moving Silence festival I got so fascinated, inspired and charged with this creative energy that shortly after I just knew exactly what I was going to do. At first it occurred to me that so far I’ve been working on mostly … Read moreAftertouch MIDI Glove

Arcade Warrior (Midi Fighter Pro clone)

Exams are finally over and I can spend much more time experimenting with controllers without any traces of guilt. The major highlight for this post will be my new Arcade Warrior controller, a shameless rip-off of the Midi Fighter Pro (thank you DJTT for being such a great source of inspiration), and the Teensy++ micro-controller … Read moreArcade Warrior (Midi Fighter Pro clone)

[b]uttonPad meets Traktor

After Native Instruments announced its new controller, Traktor Kontrol F1 (a very colorful grid controller (with some faders and knobs), designed for the new Remix sample decks in Traktor 2.5) and also heavily inspired by a local DJ friend of mine, I decided to make a mapping for my button pad. The idea was to … Read more[b]uttonPad meets Traktor

[k]ontrolPad

Greetings once again, the last few days I gave more emphasis on working on the [k]ontrolPad and realized that my previous video did not demonstrate much the original concept I had in mind. So here is one more little demonstration video and some pictures of the development process. As I noted in my previous post, … Read more[k]ontrolPad

[b]uttonPad updates (Growing Family)

I have a lot of updates on the project since last time, tons of changes made mostly on driver application. I discovered that one of the main sources of latency was the serial port class of Processing, so I decided to re-implement the driver in C#, since Max/MSP and Ableton Live are not running under … Read more[b]uttonPad updates (Growing Family)

SP Button Pad Controller ACT II (adventures in the AVRland)

Since things didn’t work out as smoothly as I expected, no proper information on the net, nor anyone wrote a library for it; spent few sleepless nights trying to figure it out, things seemed doomed.. I decided to contact Spark Fun for more technical info. Within an hour they answered me, was really helpful but tried to … Read moreSP Button Pad Controller ACT II (adventures in the AVRland)