Kontakt Controller




I wanted a MIDI controller that was small and not part of a keyboard. Often I'll want to control effects and certain instruments where keyboards are NOT needed and get in the way. It's named Kontakt Controller as its main focus was controlling my gamut of Kontakt Instruments. It's made up of one joystick, eight rotary encoders and eight momentary buttons.

The core of the unit is a Arduino Pro Micro or Leonardo. I chose this Arduino because of its Atmega24u8 which allows the use of the USB connector as a MIDI port at the same time as a Serial monitor. This avoids my standard approach of having to add a MIDI interface board. Due to this connectivity to a PC, the small amount of power I need can come from the USB host it is connected to, thus avoiding a power source in the form of an external plug pack or internal battery that would need a reasonable amount of added hardware.

The eight buttons are polled using a CD4021 chip. This is a 8 stage shift register which essentially means I can check the state of eight buttons with only 5 connections, two of which are power.

Front View - shows the Joystick in the middle, two sets of four rotary encoders either side of the joystick and eight momentary buttons along the bottom.

The rotary encoders use a new (to me) micro board I have found. It's called a DuPPa I2C Encode Mini. It is a small board where you can attach a rotary encoder to an I2C bus. They are chainable. The boards contain a small MCU, ATtiny402, that manage all the reading of the rotary encoder and send this data down the I2C buss. You can have up to 127 of them in the chain but I limited myself to eight. I am only using the rotary data of the encoder and not the button for this project. These little boards mount onto the rear of the encoder and make life easy and are reasonably priced. Check out the page as this board does so much more than I use.


The case was one of my challenges as I wanted to have a slanting face. This made use of the 3D router and a circular saw. Not the ideal setup but it was all I had at my disposal. The wooden part is made from plantation Tasmanian Oak and the top and base are black acrylic.

Rear view of the Kontakt Controller showing the USB-B connector

At this stage the controls are assigned to the User MIDI CCs from 32 upwards except the joystick which is specially assigned to CC 1 which is the Modulation Wheel and CC 11. This is for a specific plugin that can't have a couple of parameters assigned to anything else.

I can see some software changes in the future whereby I have changeable sets of CCs. I have already put in the basics for this where I would have a power cycle and the pressing of different yellow buttons to invoke a different set of CCs. 

The LED has no function at this time so for the time being I have it flashing to indicate that the MCU is working.

The front panel was designed in Freehand and setup in Cut2D for routing. The rear panel I just cut by eye given it didn't have any specific holes at the time.