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.

Available Now on tindie.com

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)


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

Specifications (v2.0 + v2.1 PCB):

What's new in the v2.1 PCB?


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:


*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:

Available Now on tindie.com

Questions?

Contact billsmaldon@gmail.com to pre-order  or to get more information on this project.