From Frack - Hackerspace Friesland
Jump to navigationJump to search
Project: Midi-Controller
Midi-Controller Project.png
Status onderbroken
Gebruiker Lijnenspel.jpg Lijnenspel
Gebruiker Lijnenspel.jpgJelle (Lijnenspel) Rol: niet-deelnemer Deskundig met: Arduino, Programmeren, Sammy Werkt aan: Geen projecten :(
Kennisgebied(en) MIDI
, arduino, Elektronica, Teensy
ProjectoverzichtProject toevoegen

Het maken van een (modulaire) midicontroller met relatieve rotary encoders en veel leds!


At the moment I'm temporarily using a Allen&Heath Xone 1D to control my computer while DJ-ing. Temporarily, because I'm dissatisfied with the functions it offers. So I thought: I know the basics of electronics, why not build my own?.

The things I'm missing at the Xone 1D are sufficient rotary encoders and visual feedback. That's why I'm prototyping a MIDI-controller with 8 rotary encoders per PCB with an octagon of 8 leds per rotary encoder.

At the moment I have:

  • A Teensy
  • 30 ALPS rotary encoders [1]
  • 500 Orange SMD Leds
  • Some led multiplexers
  • Some I2C I/O expanders


The choice of Teensy was easy, because of the support for USB HID, a way to get your Teensy reconized as a MIDI-controller and thus natively used in software programs.


I'm not sure how I can make this thing modular yet. Guess I'll be making a tail of I2C I/O expander slaves and let the teensy decide which midi messages to use.

Something that looks a bit like the goal.

Modular 'hotshoe' plugs by Harwin:

  • M90-7010845
  • M90-6010845

Relative MIDI messages

Because there's no official format for relative midi messages, I decided to pick the solution given on the Allen&Heath 1D. It's supported by programs like Ableton Live and Traktor.

It's really simple: Turning the rotary 1 step clockwise gives you a value of 1, 1 step counterclockwise 127. For multiple steps within a clock-cycle of the controller the value's will be more or less towards inbetween.