digital warrior open sourced

Written by Tomash on December 5th, 2013. Posted in Controllers, Music, Technology, Teensy



After some consideration, I decided to follow my tradition and open source the project! Also there is a very extremely limited amount of devices available for sale
happy hacking ;)
https://github.com/ghztomash/digitalwarrior

Analog Warrior

Written by Tomash on September 15th, 2013. Posted in Controllers, Music, Technology, Teensy

A second complimentary controller to the Digital Warrior.
Just one Teensy 3, 16 knobs, an CD4067BE Analog Multiplexer and a bunch of wires.

Digital Warrior

Written by Tomash on June 29th, 2013. Posted in Arduino, Controllers, Technology, Teensy

Yet another MIDI controller project based on the Teensy development board, inspired by Ableton Push and NI Maschine. The concept behind this device is that it’s going to be used as a 3rd deck instrument ( sample launcher, drum pad, step sequencer ) in Ableton Live synced with my Traktor setup for some live, Reachie Hawtin style percussions on top of a DJ set.

Technology wise, there is an 4×4 white LED button pad connected through I2C, multiplexed on a MCP23008, which feels great for finger drumming. Two push rotary encoders with LED’s and four analog potentiometers and a shift button, when pressed down you can switched between 8 banks and 4 channels, plus some more settings. This gives us 128 unique mappable elements just on the button pad itself. The rotary encoders can also banked and when engaged, their value is displayed as a graph on the button pad. Every element can send a secondary CC or Note message for more mapping possibilities. The over all build is very light and small, I was also lucky to find silver cast acrylic which looks great.

If you are interested in this device please send me an email, if I get more than 10 people I will produce a number of units on a proper PCB, add RGB LED’s and more features.

The track from the video above can be found here, I recorded some samples with my old broken guitar, bassline, strings, sliced everything into clips and launch them while finger drumming.

NOW taking orders, just fill in this form and I will get back to you shortly: Form

MIDI Elements Teensy Library

Written by Tomash on March 8th, 2013. Posted in Controllers, Technology

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