Kyub: Open-Source, Feather-Touch, Maker-Friendly, MIDI Keyboard

Visit our new website Google

The following description is of an early prototype, our Kickstarter Design has a number of improvements

Kyub MIDI keyboard

The Kyub is a maker friendly, open source MIDI (musical instrument device interface) keyboard that provides a new window to musical performance. Capacitive sensing gives the Kyub extremely sensitive action and an internal accelerometer allows the volume of each note to be precisely controlled for versatile musical expression. Multiple Kyubs can be attached to a computer synthesizer or digital audio workstation for solo play, jamming with friends, or composition.

The first prototype (shown in the video above) used a standard Arduino Uno, and accelerometer breakout board from Adafruit, and a handful of widely available standard parts (resistors, connectors etc.). These components are housed in a wooden cube (laser cut from Ponoko) and covered with metal touchpads. Capacitive changes when these touchpads are touched, are linked to touch-induced acceleration of the cube to generate a MIDI signal having pitch and velocity.

An inexpensive MIDI to USB converter allows you to use the Kyub with any computer-based synthesizer. The folks at Propellerhead have a Demo version of Reason Essentials that offers essentially unfettered access to hundreds of high-quality synthesized sounds (If you decide you want to start recording you can get that capability for a very modest fee).

Basic principle of operation

just humming

The Ardunio provides an output switching between zero and five volts at high speed and connected to all pads through separate large resistors (1 megaohms). The touchpad acts a bit like a bucket and the resistor like a constriction in a hose that fills the bucket (five volts) and drains the bucket (zero volts). This voltage is monitored at a different Arduino input for each pad.

on a touch

When no one is touching the pad, the effective "bucket" size is relatively small and there is a only short delay between the time when the square wave rises to five volts and a logical high state (somewhat less than five volts) is detected at the input of the Arduino for that pad. When the pad is touched, the bucket size increases (you become part of the bucket) and the delay increases substantially. By monitoring the delay with an internal clock, a touch is detected.

acceleration timing

When a touch is detected a recording of the acceleration from the accelerometer is reviewed a little bit before the touch and a little bit after the touch (the window) using a rolling buffer (like an endless loop tape recorder). The peak value of acceleration within this window is used to decide on the volume of the note. The pitch of the note is determined by the particular pad being touched. These two pieces of information are bundled together and sent out in the form of a MIDI message to the synthesizer. Only the axis of the accelerometer corresponding to the orientation of the pad is reviewed.

Being able to detect how hard the pad is touched adn change the note volume (velocity) completely changes the experience from a typical capacitive keyboard. Multiple dimensions make it easy to learn songs and easy to play them. Because it is open source, if you don't like where the notes are, you can change them.

Here is a schematic:

Kyub schematic

Video of extended performance

Parts List

Arduino Uno (Adafruit)
Accelerometer breakout boardn adxl335 (Adafruit)
Laser cut case (Ponoko)
PCB (OSH Park)
39 header pins (Adafruit)
Seven pin header socket (Adafruit)
11x1 meg resistor
2x1K resistor
2x220 ohm resistor
100 F capacitor
.01 F capacitor
Midi Jack
Wall Adapter (Adafruit)
Brass sheet
Four conductor cable
MIDI screws
Case screws
Arduino screws
Accelerometer bolt
Accelerometer nut
Arduino spacers
Accelerometer spacers
Two wire ties
USB cable
MIDI/USB converter (ebay--China)
Six conductor 0.1 inch socket socket cable (Adafruit)

printed circuit board

Here is a shot of the printed circuit board sheild with the accelerometer breakout board from Adafruit positioned in the center on a socket and standoff.

inside view

The inside wiring is a bit of a nightmare but fortunately you only have to do it once and then it safely packaged inside. Jumper connectors from Adafruit make this a bit more forgiving. Shield is positioned on the Arduino, the latter bolted to the bottom of the box.

cutting the pads

This version has epoxied brass pads on the outside cut from a strip of hobby brass

solder tabsc

Soldering brass tabs on the back allow later connection of wires to the pads after the epoxy has essentially covered the other surfaces
About MSGP Legal Contact Us