ideas growing Posted on January 14, 2013
First I read through many articles about DIY MIDI controller. One big impact was the Arcade Button MIDI Controller. I continued in reading stuff about the Arduino board and as Open Source fan and supporter, it became clear that I want to use this platform. For a DJ controller, I ran into the problem of less I/O ports on an Arduino Uno. So I started to search for solutions on the web, because I am not much into computer engineering and can't think about solutions by my own.
To solve this problem, I want to combine analog multiplexer to get more analog inputs as described here and I²C port expander for more digital inputs for push buttons (as described in this blog entry).
The (finished) controller should contain about:
- 40 push buttons
- 14 rotary potentiometer
- 6 slide potentiometer
- 2 incremental rotary encoder (for creating jogwheels)
- 1 incremental rotary encoder with push button
For the 40 buttons, I would use 3 16-bit I/O-port expander (getting 48 digital inputs, routed through the I²C interface). For the 23 needed analog inputs, I would combine 4 8-channel analog multiplexer (getting 24 analog inputs controlled by 6 digital outputs).
So in theory, it should look somehow like this:
It actually contains 48 push buttons (copy paste ;)). The resistors are not all set correctly caused by copy paste laziness. I also inserted a MIDI Jack for output. Later I want to change the firmware like the HIDUINO project did, so the Arduino becomes a real USB MIDI device.
So long the theory!
Practically, I even do not own an Arduino. But my birthday is coming soon ;). Then I will start in practicing little circuits and getting familiar with the board and the ICs, I would like to use. If that is working like expected, I want to start with MIDI output through MIDI Jack. I own a USB audio interface with MIDI-In, so this is great for testing functionality. If that is working, I can start to think about an actual design of the controller and about creating a case and so on.
So a long way to go! I will report as soon as I get my first Arduino Uno.