****************************************************************************************************************************
I have designed a framework for making affordable and stylish modular controllers. You can use the content of this Instructable to make a wide range of controllers for a wide range of applications relevant to artists, DJs, VJs, gamers, producers, and the like. The DJ controllers I showcase in this document serve only as examples of (more conventional) interfaces you can create within the framework.
I focused on making this project affordable, stylish, and most important, builder friendly. The controllers can be re-programmed to send serial, MIDI, or HID messages. The modular design allows you to plug the controllers into one another, thus requiring only one USB port on your computer. Each module can have approximately 28 digital inputs/outputs, 23 analog inputs, and 4 rotary encoders. Those more savvy could add components such as touchscreens, sensors, pressure pads, etc., to the controllers using this framework. No special tools or equipment are required to build these controllers beyond a basic soldering iron and wire stripper. Also, very little coding is necessary. Editing the code is more like filling in the blanks.
****************************************************************************************************************************
More info here.
Some hype at engadget.
**Remember to read this entire Instructable before beginning any of the constituent steps**
Remove these ads by
Signing UpStep 1: Components
I have spent endless hours searching for the best and most reasonably priced components from around the world. I ordered many different components to test out and compare, most of them were rubbish and were not used in project. Here is the list of the best stuff I found. The ones with * are my favorites.
Microprocessor Pushbuttons
- Arcade @ DJ Tech Tools (USA) *
- Translucent Arcade @ Adafruit (USA)
- Many arcade button options @ Twisted Quarter (USA)
- Square plastic knockoff version @ Futurlec (China) - many colors
- Square plastic @ Mouser (USA) - many colors *
- Stainless steel fancy pushbuttons @ Sunshine (China, shipping is >40$ to USA, I have some extras so message me if interested)
- Mini arcade @ Newark (USA) *
- Many unusual pushbuttons @ All Electronics (USA)
Faders (If these are out of stock, they may also be available at digikey.com or newark.com. If you are a scratch DJ you probably demand a 'frictionless' fader. DJ Deals sells them for cheap, and they are simple enough to use with the DIY controllers.)
Slide knob
- Many options available at Newark.
- Very smooth D shaft @ Digikey (USA) - Also available in knurled from Mouser *
- Smooth knurled shaft @ Sparkfun (USA)
- Machined, aluminum, set-screw, 6.4mm @ Newark (USA) in 3 sizes, black or silver *
- Smooth, aluminum, set-screw, 6.4mm @ Newark (USA) in 3 sizes
- Knurled, rubber, 6mm @ Newark (USA) many colors
- Soft touch rubber, 6mm D shaft @ Mouser (USA) in many colors *
- Knurled, metal @ SparkFun (USA) black or sliver, one size *
Encoders
- D shaft, 18 ppr, switch @ Newark (USA) - Also available at Mouser
PCB
- Super nice PCB @ Sure Electronics (China) *
- Protoboard 777 @ Futurlec (China)
- Mini (for jogwheels) @ Sparkfun (USA)
- Pre crimped 12", Pre crimped 24" @ Pololu (USA)
- Module connectors @ All Electronics (USA)
- Module connectors @ Adafruit (USA) *
- Crimp connector housings @ Pololu (USA)
- Wire @ All Electronics (USA)
- Deluxe flexible wire @ Hansen Hobbies (USA) 28AWG recommended *
- CD4067BE @ Digikey (USA)
- Male @ All Electronics, Sparkfun, Futurlec, Adafruit, SureElectronics
- Female @ Sparkfun, SureElectronics, Futurlec
LEDs
- Many LEDs @ Super Bright LEDs (USA)
Hardware
All hardware (nuts, bolts, standoffs) can be found at McMaster (USA). McMaster is the best!
Other
Soldering iron, wire cutters/strippers.
There are many other components you may want to include in your interface such as LCDs, touchscreens, trackballs, pressure pads, proximity sensors, etc. SparkFun and Adafruit are the best resources for these kinds of components. Although the controllers I showcased in this Instructable are somewhat conventional, I encourage you to get crazy. DIY gives you the power to do anything you can imagine - just wait till you see the next controller I am going to build!
Read the datasheets carefully before buying components.
Discount/surplus stores like Futurlec & All Electronics have excellent prices, but also carry some components which are totally bogus - be extra careful before buying from these stores.
Note that all these components are panel mount (with exception to the LEDs). There is an important distinction between surface mount and panel mount components. Surface mount components fasten directly to the printed circuit board (PCB) while panel mount components fasten to the top panel and connect to the PCB via wire and solder connections. It is usually not possible to use surface mount components unless you fabricate custom PCBs and have expert soldering skills. Using panel mount components makes this project accessible to anyone.
So how much do these controllers cost? I don't kow how much your controller is gonna cost but mine were cheap, really cheap!
If you are from Europe or Asia this list may not be totally relevant or useful. Please send me links to suppliers in your countries so I can add them to this document.





















































Visit Our Store »
Go Pro Today »




https://www.adafruit.com/products/239
do not solder directly to the teensy unless you are pro and enjoy spending hours de-soldering.
So, I have a question regarding the LED Situation. I was wanting color changing LEDs under some clear rim Sanwa buttons. I'm sure that I could get them to light up but I want complete control over every buttons color. for example when I play one song I want this color scheme/template and a different one for a different song. I am basicly just making a midi fighter/mixer. below is what I have been thinking:
8x8 arcade buttons(color changing led on button rims)
8 faders
solo and mute buttons on each fader(leds under each)
2 bus/eq knobs for each fader
8x8 fx knobs
spring loaded mod wheel
what kind of pcb would i need for this? It needs to be mac compatible and plug and play. I guess i'm willing to shell out if i have to considering that this is like 3 controllers in one. Please point me in the right direction master.
First off this is a fantastic instructable. I have built a controller and done the coding, but I have one major problem left: how to use it with Ableton live. I haven't been able to work out how to map/script it, so sadly it has sat in the corner for the last few months. I tried a midi sniffer and the messages seem fine. If anyone could help me or point me to a tutorial that would be very much appreciated!
Ps. It's really nice to see that even so long after you released this instructable you still reply to comments.
1. Go to the following directory on your computer: Mac: [Your home folder]/Library/Preferences/Ableton/[your version]/User Remote Scripts/ Windows: [Windows boot drive]/Users/ [your Username]/AppData/Roaming/Ableton/[your version]/Preferences/User Remote Scripts/
2. You should see a UserConfiguration.txt file in this directory. This is the template that you will use to create custom controller mappings for Ableton.
3. Create a new directory under "User Remote Scripts" and name it what you want your controller named in Ableton.
4. Copy the UserConfiguration.txt file in to the new directory for your controller. (make sure to copy and not move, as you may need a clean template later.)
5. Open the UserConfiguration.txt you just copied in to the new controller directory and follow the template to specify what you want each knob/button/slider to control (You will need the MIDI CC data from each control on your controller to configure this file.) *note* defining Macro 1 - 8 is very powerful as you can place your soft synths in instrument racks and define macros for commonly used controls. (controls like: Cutoff, Resonance, Osc Pitch, modulation, Envelope settings, AMP Volume, etc.)
6. Save UserConfiguration.txt Now open Ableton and go back to the MIDI tab in preferences. If you've done everything correctly, you will now notice your custom controller name in the 6 pull downs for Instant Mappings.
Source : https://forum.ableton.com/viewtopic.php?f=1&t=167341
I'm so glad I've found your instructable, it has been really informative.
I'm currently at University in England, studying a degree in Music Technology. I'm basing my Final Year Project on the creation of a MIDI controller.
So far, I have added a MIDI output to an Arduino Uno (which seems a bad move now, looking at your instructable!) which is then connected to my computer via a MIDI to USB cable. The arduino is programmed to play MIDI notes.
I really like this instructable as I'm no coder. Is it going to be really difficult for me to follow this instructable with an Arduino? I understand your reasonining for not choosing one, but I've overcome the main issue of USB/MIDI now. Do you have any pointers to help me along?
Many thanks again, this instructable and your final products have reinspired me again :)
The first controller I made (http://fuzzywobble.com/project.php?p=18&n=controllers-v1) was with Arduino and a MIDI shield.
I particularly like the fact that you provide a decently analysis as to which micro controller is most suitable and why. This is an area that I find interesting but there's so many choices with so MANY different combinations of input output etc. I tend to find it all rather confusing.
So first let me say this guide is amazing. This is my first attempt at a homemade controller and I'm having some real trouble. To my eye, all wiring and connections are solid and everything is connected to the board. When I upload the code though, there is absolutely zero output in the serial monitor (USB mode -> serial). I've messed around with some different combinations of pins but still nothing..
I tried switching to MIDI mode and uncommented the necessary lines, and was going to see if there was any response when creating a custom mapping in Traktor. There definitely was response, but it was just constantly changing notes when attempting to "learn" a command. For a while I was able to get one button to work as it should (toggling on and off), but after a short time, it went back to constantly spitting out values.
any advice would help, thanks
http://www.bleep.io/blog/convert-an-old-midi-keyboard-in-to-a-cool-controller/
Let me know what you think!
Nick
in the traktor dropdown the midi controller 'Teensy' shows up - maybe all of the mappings go under the ONE Teensy?
with your help I am finally done with building my own controller! But there are some minor coding-bugs left. The poti-levels are slightly jittering between two values when set to the middle. They never jitter when set to 0 or 126 and I even used the pots you recommended. At first I tried to change the analogThreshold value in your code, but that didn´t help. Did anyone have similar troubles? I Found an Arduino-Tutorial describing jittering-troubles with the analog-ins:
"The Atmega datasheet also cautions against switching analog pins in close temporal proximity to making A/D readings (analogRead) on other analog pins. This can cause electrical noise and introduce jitter in the analog system. It may be desirable, after manipulating analog pins (in digital mode), to add a short delay before using analogRead() to read other analog pins. " http://arduino.cc/en/Tutorial/AnalogInputPins
Do you know a solution? I am not good enough in coding to do it by my own.