Two Octave MIDI Controller
A DIY MIDI Controller with open source firmware.
Mission
I need to know if there is enough interest in this project to scale up the manufacturing of the boards and purchase components at quantities that make it competitive with commercially available MIDI controllers.
Contact billsmaldon@gmail.com for pre-orders or any questions.
While learning music theory and researching a few different DAWs, I decided I needed to get a MIDI controller.
I took a look at some basic 2-4 octave controllers on the local music store's website. Seemed useful enough, until the challenge of making my own MIDI controller overwhelmed the convenience of buying and unboxing a store-bought one.
I made a one octave controller on a breadboard and started developing a firmware. I realized I could program into the firmware a lot of the chord/scale/key signature stuff I was learning.
With the 'Advanced keyboard modes' programmed into the firmware, I don't want a midi controller from the music store now! It is an incredible time saver to automatically play in key or generate chords without memorizing all the theory!
Switching over to EasyEDA, now I was able to design a larger card than was possible on the free version of Eagle. The CAD and firmware are complete! Boards and components are in, soldered and tested.
What's new?
v1.1a/v2.1a (2024)
1) Turn cc while arpeggio ON
While an arpeggio is playing, turning a continuous controller caused stuck Note On messages. This has been fixed.
2) Un-block the code
When in the menu, pressing a key or turning a continuous controller was "blocked", meaning that the keyboard or potentiometers do nothing until the menu item currently being selected was set by clicking the encoder. Now, anywhere in the menu selection key presses and potentiometer turns will work.
3) Change keyboard mode while a key is held
If a key is held and the KEYBOARD MODE is changed, it waits for the key release and then changes the KEYBOARD MODE.
4) Digit brightness
Now the 7 segment digital display has a consistent brightness and is updated at 100 Hz. The only exception is when ARPEGGIO is ON. There is some display flicker while an arpeggio is playing due to the increased CPU load on the microcontroller. Releasing the arpeggio eliminates any flicker in the display.
5) Noisy potentiometers
Potentiometers sometimes sent random control changes when no continuous controller was being turned. This has been fixed.
v1.0a/v2.0a (2023)
Firmware can be compiled for any PCB version
7 segment display flicker fixed
Potentiometer latency can be adjusted
Rotary encoder polarity can be changed and saved to EEPROM
Pentatonic Major and Pentatonic Minor scales
Quick transpose
MIDI Arpeggiator (this is the main focus of the updated firmware)
Here I will briefly describe the features of the new MIDI arpeggiator firmware update.
The MIDI arpeggiator is a 48 PPQN arpeggiator with an internal clock.
It has a tempo range of 25-250 BPM and a maximum octave range of 4.
Available arpeggio types are UP, DOWN, UP/DOWN, DOWN/UP, SHUFFLE (random non-repeating), RANDOM and AS PRESSED.
It has a note length varying from 1/4 note to 1/32 note, with dotted and triplet note types for every note length.
There is a LATCH setting to hold notes after they are released.
Full and detailed instructions are in the manual.
Additional Information
Specifications (v1.0, v2.0 + v2.1 PCB):
MIDI Controller
2 octave polyphonic keyboard
8 drum buttons (programmable to transmit a MIDI CC or Note Number)
7 high quality Bourns conductive plastic potentiometers
7 slide potentiometers (Bourns PTA series)
on-board thumbstick for pitch bend, modulation or assignable to any midi control change number
two external ports for a full sized joystick or any other type of resistive (voltage divider) input
octave up/down buttons
modifier button to transpose by semitone when pressing octave up/down
LCD with rotary encoder to navigate the user interface
4 digit seven segment display for the continuous controller values, octave +/- or transpose by semitone
An actual 5 pin DIN connector to plug into synths or VSTs on PC with a USB to MIDI adapter
powered by an inexpensive switch mode adapter
"Advanced keyboard modes" which are basically a lot of music theory programmed into the microcontroller's firmware that make playing in a key, automatically generating chords, scales and modes easy. Now including pentatonic scales.
Specifications (v2.0 + v2.1 PCB):
MIDI over USB (works in Windows, MacOS, Linux)
USB power (no 5V adapter needed)
What's new in the v2.1 PCB?
Fixed routing of some signals on the level shifter (IC9)
In the v2.0 PCB, there was an adapter board plugged into the socket of IC9 to fix this
Schematic
PCB
Parts list
Firmware
Assembly Instructions
Test Manual
User Manual
Music Theory Cheat Sheet:
Musical Pitches Table:
List of Recommended Software:
Project DVD (on Google drives)
Items for sale:
PCB fully assembled and tested - see my store on tindie.com
I really recommend ordering a soldered and tested board. Right now, only an assembled and tested board is available.
*All v1.0 boards have been sold! The schematic, silkscreen and parts list are online for reference to those who ordered them.
*All boards for sale from now on are v2.0 boards, with USB MIDI and powered by USB.
*When all of the 2.0 boards are sold, I am making 10 more of the v2.1 PCB. Components are already ordered and on the way.
*Update: the v2.1 boards are now available on tindie.com
What it costs:
v2.1 boards and parts are in!
PCB assembled + tested $194.99 plus $19.99 for shipping to Canada, USA. $37.99 international.