The chord MIDI keyboard is one of the devices in the LEET Synthesizer project. If you haven’t – It is a good idea to read the main post first before continuing with the details below:
This post describes how the chord keyboard works and what you need to build your own.
Description of the Chord keyboard
Product guide. Click here to download high-resolution PDF.
Component cost is around $6 on eBay October 2020 (will depend on shipping and supplier).
- 1x 3D printed core 3DPCB. Uses 34g PLA filament ($0.7).
- 1x 3D printed knob for the trimpot.
- 1x Arduino pro micro, or compatible clone (5v version. ATmega32U4) – (~$4)
- 14x 6x6mm 4pin through hole tact switches – preferably with low activation force (50g / 0.5N) – ($0.2)
- WS2812 LED-strip with 12 LEDs (60 LEDs/m. I used IP60, white FPC) – ($1.1)
- 1x trimpotentiometer 100k (10k-500k will work)
- 1x 25cm RK wire (containing 24 strands of 0.3mm copper wires) – ($0.1)
- 3D printer (FFF/FDM with PLA filament)
- Solder station with a narrow tip.
- Basic tools: needle- and cutting pliers, knife, hot-glue
- Computer to run Arduino IDE and upload firmware (using a Micro USB cable)
I have not made a step by step building instruction, but the build process is very similar to the keyboard.
Note the addition of a potentiometer that controls the chord length. It is an ordinary low cost trimpot with a 3D printed knob glued to the top. I used a sharpie to highlight the arrow on the knob and then wiped off the top surface with an alcohol wet tissue.
I wanted to see if I could create a keyboard without disharmonic sounds (no wrong keys ;). I sketched on a keyboard that played chords in different scales, tonics, root and chord length. It was a good learning experience of musical theory and after a few iterations I think I found a user interface that is easy to understand and use (despite the lack of 12 keys to select tonic note).
Embedded code for the Arduino pro-micro.
The code originates from the LEET keyboard, but with the addition of user interface for chord configuration (the upper row of keys and LEDs), and the chord generation. The ‘minor’ array is defining distance between different notes in naural minor scale. Offset the array to get different tonics. By adding an offset of two you get the major scale instead.
Download project files
All files required for this project are available at this GitHub repository:
This project is open source under MIT License
(Attribution is optional, but appreciated /Johan von Konow ;)