How To Make Your Own DIY MIDI Controller

Short on cash, got lots of time, and want/need a new piece of DJ gear custom to your needs? It’s time to go DIY! For about $100 you can build your own MIDI controller. Watch the full how to video from guest contributor Kyle Mohr and read the full construction guide inside.

DIY MIDI Controller Shopping List

First you’ll need to purchase all of your tools and materials. I’ve found the best prices and parts are usually sold on eBay from retailers based in China, but they tend to sellout fast and shipping to the States takes 2-3 weeks (this will, however, give you plenty of time to get your enclosure ready and board programmed). But, to make things easier I’ve provided many links for Amazon and US retailers.

Click the below sections to expand the lists:

Parts Enclosure

Enclosure Finishes
*Note: These are not necessary, but if you have a wood enclosure they help make things look a lot nicer

Tools

Note: It will put you way over the $100 budget if you need any of these tools, but if you plan to do more projects in the future they certainly will come in handy and you can always buy them really cheap on eBay and Amazon.

DESIGN

original-design-diy-midi-fighter

This is my awful drawing on a post-it note, but it suffices as an ideal layout and sketch. I followed it up using Adobe Illustrator to make a to-scale blueprint. Download the PDF and EPS files here. This was designed for 4 potentiometers, 4 faders and 4 arcade buttons, but you can certainly swap them out for other components.

For the buttons, you’ll need a 1 inch or 24mm spade bit and you should aim for using a 5/16 bit for the potentiometers. Make sure to leave plenty of space between your components and do not overcrowd the layout. This will result in broken enclosures and tight areas for soldering. You don’t always have to be this exact, you can always just take a marker and ruler, measure distance between components and make sure to keep the distance the same, and mark up the back or inside of your enclosure with drill/cut spots.

Case Building

Once you’ve finalized your layout its time to “build” or make room for your components. You can use anything for an enclosure: an old VHS tape; plastic lunchbox; retro video game cartridge; a wooden box; or even 3D print your own. The main point of DIY besides saving some money and learning what is really inside your gear, is to customize it to be truly original.

Before you start drilling holes be sure to measure all components and their clearance! 

When drilling holes for components in the enclosure, especially with thin wood and plastic, to keep it from cracking when drilling, make sure to choose about 6-7 drill bits from very small to your final size.

For LEDs I always use this guide (look under “Making holes if needed”). This will help you slowly get to your desired size without putting too much tension on the material causing it to crack, chip or break. The key is to drill at slow speeds, and gradually go up to the size you need. If something starts to crack or chip, quickly stop and put your drill direction in reverse. Try using it in reverse for a bit to clean up the cut.

building-case

Once you’ve drilled, cut and punched your way through the enclosure its time to clean it up. Don’t worry, it always looks like a hack job. The key is to take your time. Try to drill and mark up the inside (spots people won’t see) and even place a spare board under your enclosure that you can drill into. This also helps to reduce tension on the enclosure.

Now if you used plastic, you’re in luck! You’ve just saved yourself days, seriously! For plastic you can simply use the hobby files to file off any jagged edges, or frayed pieces of plastic, which are blocking the holes.

stained

Want to make an awesome wood enclosure?

If you used wood, get ready to go all Ron Swanson on your project. Most cheap wood like we’re using here looks, well, cheap! So how do we class up that piece of junk to look like a custom cut piece of expensive furniture?…Stain!

  • I highly recommend pre-stain. It will help the stain spread evenly, especially on cheap/thin wood and prevents spots.
  • After 5-15 minutes it’s time to add that stain. Just take a rag, dip in stain and apply to your enclosure. I like to use Dark Walnut. Apply and then immediately remove, and repeat this process a few times. This will give it a more rustic/steampunk look, but if you want something more solid, don’t wipe the stain away, just apply a lot and leave it to dry.
  • After a day of drying, apply polyurethane with a brush. Fully coat all sides to protect your enclosure from scratches, and protect, and even strengthen the wood. I suggest brushing it in the direction of the wood grain.
  • Let dry for 24hrs, then repeat to your liking. I recommend 3 coats, 24hrs between each coat.
  • After the final coat, let dry for 72hrs before adding component parts! This avoids putting my components into a sticky polyurethane mess.

COMPONENTS

Now that you’ve finished your DIY MIDI controller layout and enclosure, it’s time to add your components to the faceplate. Buttons usually just pop in, but some will require a fastener or nut to be placed on the back to secure it (if there is a little resistance, don’t force it, just take your hobby files to it a few times then try again).

IMG_1232

Potentiometer knobs will then be placed in with washers and nuts. These should cover any jagged edges you may have from drilling. Tighten with pliers. For linear potentiometers (aka faders) make sure you have the number 1 (power) on the top. This may vary depending on make and model (feel free to test using a breadboard). 2 is usually your signal, and 3 should be ground. Then secure to the faceplate with your M2 screws.

To protect the components, add your Chroma Caps to faders and pots now (or any off-the-shelf caps as well, we just like those the best).

To add the LED, flip over the faceplate or top of enclosure and put your LED into the hole(s) you drilled for it. You may need to use your hobby file again for this to make sure the LED fits just right. Afterwards, push it through just enough to see the tip on the other side. Using a toothpick as an applicator line the circumference of the LED with Gorilla Glue. Once hardened it will ensure your LED doesn’t fall back into the enclosure. Don’t use hot glue, it may melt the LED’s plastic.

Soldering Your Components

Once the glue on the LED is dry, start the soldering process. This make all of the connections from your components to the circuit board, which will then relay the message to your computer or iOS device (oh yeah, this will also work with your iPhone/iPad)!

First you’ll need your Rosin-core solder (way safer than lead-based solder) – I use and recommend .050”-Diameter 63/37 Rosin-Core Solder.

If you haven’t soldered before there is a wealth of tutorials on YouTube. Here are a few of my favorites. Trust me, its not complicated at all, anyone can do it. Just take your time and pay close attention to what you’re doing.

soldering-components

Turn on your soldering iron and let it heat up for a few minutes. Grab your jumper wires. I use these instead of your average spools of wire because they have a single pin at the end instead of braided wire that is quite difficult to push through a hole. They are much more efficient since with normal wire you have to cut, strip, and heat shrink it every time. I also tend to pre-bend them all at 90 degree angles and trim about ¼ off of them to make sure they fit in any enclosure and the Teensy board.

Let’s start from the top and work our way down. First make sure each of your jumper wires will reach from each component to the next, and matching colors is always helpful. I like to use dark colors (black or blue) for the ground line and bright colors (red, orange, yellow) for power while using mild colors (green or white) for the signal line. For D-Shaft potentiometers you want to be certain your pins are on the bottom, this will ensure your knobs fit and that once wired they will be going in the proper direction.

Potentiometer-Guide

For potentiometers you have 3 lines, ground, active (your analog signal which identifies where the position of your potentiometer is) and your power. They also usually go in that order when looking at the pins, a 4th pin is usually just a dummy pin and will not be used for our project.

Since we only have 1 power and 1 ground point to solder on the Teensy board we need to chain all of our grounds together then all of our power together. Once complete, we need to run that power and ground from the last pot to the first fader, which is soldered and treated as if it was a potentiometer. Follow the guide below.

Fader-Guide

Once that is complete, run the ground only from your last fader to your buttons. The other point on buttons is your active/signal line.

Buttons-Guide

Solder the active line from each component, 1 single wire from each button, knob, and fader. The Teensy board has built in pull-up resistors that we will access using the Sketch we upload when programming the board so we do not need resistors soldered to the buttons active line.

Next, solder a 220 ohm resistor to the (+) powered pin of the LED, this is to ensure it doesn’t blow out from too much power. Then connect the other side of the resistor to a positive pin on the closest pot. We will then solder the short LED pin (ground) to the closest pots ground pin.

LED-Guide

For the last bit of soldering, run the active line from every pot and slider to Analog pins A0 – A7. Where as the active line of each button will be soldered to the Digital pins on the other side of the board B0-B3.

grounds

Programming Your DIY MIDI Controller

Setting Up Teensyduino (Arduino + Teensy)

Teensyduino is an add-on for Arduino Uploading Software that enables the Teensy board to be used in the Arduino programming environment. Before we get started you will need to:

  • Download Arduino Software *Certain versions of Teensyduino are only compatible with certain versions of the Arduino Software. On the Teensyduino download page this is specified. As of August 2015, “Teensyduino 1.24 supports only Arduino version 1.0.6 and 1.6.1 and 1.6.3 and 1.6.4 and 1.6.5”.
  • Download Teensyduino + follow the install instructions on this page (be sure to install all the libraries!)

teensyduino-installer

STEP 1: Plug your Teensy board into the USB port on your computer. After plugged in an orange light on the Teensy should be flashing on and off every second. This is called the ‘blink’ sketch – The Teensy board comes pre-loaded with it.

STEP 2: In the menubar, select Tools->Board->Teensy 2.0.

STEP 3: Also in the menubar, Tools->USB Type->MIDI

STEP 4: Open a sketch file (download mine here). This sketch is set to 8 analog pots (the faders are treated as a knob/pot when it comes to the code) and 4 digital buttons. If you have more knobs or faders, simply change the number here:

change-analog-inputs

If you wish to add more buttons, there is a little more work, but it isn’t too complicated to fix.

Screen Shot 2015-08-25 at Aug 25.26.18 PM

STEP 5: Click the upload button (right arrow) to upload the new code to the Teensy. Since this is the first sketch you uploaded, Arduino will ask you to click the reset button on the Teensy. Click it (see image). After clicked, the sketch should immediately upload.

upload-teensy

This code is based off a sketch I was given from fellow DIY MIDI engineer/Musician Otem Rellik. Click the button below to expand the code – it’s long!

The Code

#include

// define how many pots are active up to number of available analog inputs
#define analogInputs 8
// make arrays for input values and lagged input values
int inputAnalog[analogInputs];
int iAlag[analogInputs];
// make array of cc values
int ccValue[analogInputs];
// index variable for loop
int i;

// cc values for buttons
int cc_off = 0;
int cc_on = 65;
int cc_super = 127;

// map buttons to cc for button
int cc0 = 51;
int cc1 = 52;
int cc2 = 53;
int cc3 = 54;

Bounce button0 = Bounce(0, 3);
Bounce button1 = Bounce(1, 3);
Bounce button2 = Bounce(2, 3);
Bounce button3 = Bounce(3, 3);

void setup() {
// MIDI rate
Serial.begin(31250);
pinMode(0, INPUT_PULLUP);
pinMode(1, INPUT_PULLUP);
pinMode(2, INPUT_PULLUP);
pinMode(3, INPUT_PULLUP);
pinMode(4, INPUT_PULLUP);
pinMode(5, INPUT_PULLUP);
pinMode(6, INPUT_PULLUP);
pinMode(7, INPUT_PULLUP);
pinMode(8, INPUT_PULLUP);
pinMode(9, INPUT_PULLUP);
pinMode(10, INPUT_PULLUP);
pinMode(11, INPUT_PULLUP);
}

void loop() {
// loop trough active inputs for knobs
for (i=0;i<analoginputs;i++){ // read current value at i-th input inputAnalog[i] = analogRead(i); // if magnitude of difference is 8 or more… if (abs(inputAnalog[i] – iAlag[i]) > 7){
// calc the CC value based on the raw value
ccValue[i] = inputAnalog[i]/8;
// send the MIDI
usbMIDI.sendControlChange(i, ccValue[i], 3);
// set raw reading to lagged array for next comparison
iAlag[i] = inputAnalog[i];
}
delay(5); // limits MIDI messages to reasonable number
}

// Push Button code
button0.update();
button1.update();
button2.update();
button3.update();

if (button0.fallingEdge())
{
usbMIDI.sendControlChange(cc0, cc_on, 3);
}
if (button1.fallingEdge())
{
usbMIDI.sendControlChange(cc1, cc_on, 3);
}
if (button2.fallingEdge())
{
usbMIDI.sendControlChange(cc2, cc_on, 3);
}
if (button3.fallingEdge())
{
usbMIDI.sendControlChange(cc3, cc_on, 3);
}

if (button0.risingEdge())
{
usbMIDI.sendControlChange(cc0, cc_off, 3);
}
if (button1.risingEdge())
{
usbMIDI.sendControlChange(cc1, cc_off, 3);
}
if (button2.risingEdge())
{
usbMIDI.sendControlChange(cc2, cc_off, 3);
}
if (button3.risingEdge())
{
usbMIDI.sendControlChange(cc3, cc_off, 3);
}

}

FINISHING TOUCHES

Before we test our creation, we first need to clean up flux residue with a paper towel and/or Q-tip (for hard to reach areas) and rubbing alcohol. This will remove any materials which could overtime corrode your board and connections.

After that dries it’s time to cover your connections that could potentially touch another and cause a short. You have a few options here: simply tape up any loose connections of bare wire that could touch another or even a metal component part; cover them with hot glue so nothing moves or touches at all; use heat shrink tubing (which doesn’t always fit perfectly); or try liquid electrical tape which comes in a rubber cement style bottle and brush on (which makes covering tight areas a little easier). *If using liquid tape please do so in a well ventilated area.

When the bare wires are covered, plug in your fully-soldered and connected circuit board. The LED should light up and not burn out! Boot up your DAW of choice and make sure you see the Teensy recognized as a MIDI device. Try mapping each component to your DAW and see if a MIDI signal is sent, once you’ve verified, you know you have achieved success!

rear-of-midi-diy-controller

Lastly, it’s time to close up your MIDI controller so it looks less like Frankenstein’s monster. You can use many things to mount the board in your enclosure but I recommend a generous glob of hot glue on the bottom. After it is mounted, plug in your adapter which is mounted to the enclosure, close the lid and seal it up.

Final Product

Screen Shot 2015-08-25 at Aug 25.29.55 PM

You are now the proud creator of your very first DIY MIDI Controller. Go show it off to the world, and be sure to post pictures of your MIDI controllers in the comments below or tag @DJTechTools on your preferred social network.

This DIY MIDI Controller is loosely a based on the DJ TechTools Midi Fighter 3D and DJTT Midi Fighter Twister.

Guide and design by Kyle Mohr
All video and editing by Alex Medvick

  • Pingback: Build Your Next Traktor MIDI Controller In Google Chrome | NUTesla | The Informant()

  • Pingback: Build Your Next Traktor MIDI Controller In Google Chrome()

  • Wow…this will go a long way in enhancing not only productivity but also creativity

  • Zach Masterson

    how do you code new buttons (digital) with this sketch?

  • Joonas Merisalu

    Hey fellow inventors, musicians and engineers! I have been trying to get started with my own little build and as first thing I wanted to implement is Jog wheel based on rotary (grey) encoder and arduino. Basically reading the sensor works fine but I’m troubleshooting with my MIDI commands. At the moment I am sending serial command: 0xB1 0x23 0x3F (control change; controller 35; value 63) for one direction and 0xB1 0x23 0x41 (same thing with value 65) for the other direction. Hairless MIDI receives the signal correctly but Traktor does weird things: If I press play without any input it plays the track normally until I stop it but if I have the controller connected Play works for a fraction of second and stops automatically. If I try to use my controller I get movement only at one place: a little forward and then I can only move a little backward. In Traktor the device is mapped as Jog turn with relative setting(though with direct setting it enables me to move through the track but only in forward direction in response to turning encoder in any direction). I know that sending only one same value should move the track only a certain amount at the time but I should still be able to scroll through the track both directions. (similar signal is sent by Pioneer DDJ-SB2) So I am confused Any Ideas are welcome!

  • Thomas

    some question:
    how many input is possible use with one midi controller ?
    is possible connect many midi controller for make one bigger?
    there are some problem about the latency time?

    • -Depends on the micro controller/circuit board you are using all have a different amount of max analog and digital inputs.

      -In theory you could connect multiple buttons and knobs from various controllers, but you would have to cut all of their previous connections and wire them all to a new circuit board…I would advise against this.

      -Close to zero latency, at-least with the Teensy and Arduino boards that I’ve used. If you were trying to daisy chain controllers or something of that sort, or use bluetooth, then you may run into some latency issues.

      Hope that helps!

  • Jazzy Gerard

    I just downloaded the sketch from this project. But when i try to upload the sketch to the teensy board i get an error that the functuion “usbMIDI” was not declared… do i need to add extra librairies? or to another action? I did not changed anything to the program just downloaded, opened it and try to upload it…

    Thanks in advance

  • Bert Plays

    How can I add jogwheels? (Encoders)

  • Thanks KYLE MOHR,

    Building a controller from scratch is simple but without a detailed guide like this, the reverse may be the case lol…

  • Andy

    Thanks for the great tutorial! I am trying to build a simple version – just 6 faders – and am having issues. I used your code, after removing anything other than the lines for the faders (pots), and can get it to upload and even be recognized in my DAW (Pro Tools), however, when I set a fader to a control, the resolution is all out of whack, it almost seems like it’s using the range from 9k-10k ohm’s as 0-100 (or 0-127). If that doesn’t make sense, the fader doesn’t do anything until it is 90% up, and then goes to 100% in the 1/64″ travel at the end. Do you happen to have any suggestions to try to fix this? Thanks again for the inspiration for a cool project.

  • Pingback: Mine Modular Controller: Put Faders, Buttons, Knobs Where You Want Them - DJ TechTools()

  • FLRS

    Hi

    I have built a couple of MIDI controllers using Arduino Uno but I am about to start making a Midi controller with Teensy 2.0 what I need to know is how many buttons can I add? I am planning on adding 16 LED arcade buttons. How many digital inputs dose teensy 2.0 have? Please help as I dont want to cut out the enclosure wrong and have to start again. Thank you.

    • Teensy 2.0 has 25 I/O and 12 Analog. If you use any knobs or sliders you won’t have enough for the 16 arcade buttons, but if just buttons you will be perfectly fine!

      • FLRS

        I ended up getting a 16 button controller to work and will post a photo soon. I am now trying to build another controller with 16 petentiometers using a teensy 2.0 with a: 74HC4051 8 Channel Mux Analog Multiplexer Demultiplexer Module for Raspberry Pi, the only problem I have is I dont understand how to implement it in the code? Please help. Thanks

        • Ah, that sounds awesome. Would be glad to help. I would remove all of the code for the buttons, and at the top change the analog number to 16. As for implementing the Pi, I am unsure as I haven’t done much with those except PiCade, which lets you play retro video games off a Pi. I would definitely ask in the DJTT forums and even over at Adafruit as they specialize in this stuff.

          • FLRS

            Cheers that multiplexer I mentioned can be used with teensy 2.0 according to this blog I was reading. Hope I get it going.

  • Pingback: Mapping MIDI #2: Manette de PS3 (vers Ableton Live 9 & Traktor 3) – Romain ASTOURIC()

  • Daniel Wright

    Great article. I posted here yesterday but something must have gone wrong.
    I built a 5 button setup to control my video streaming software, vMix. It works great but I was wondering how I would use this midi program to get the tally light signals to turn the leds on in my buttons? I am a total novice to programing for midi, so if anyone has some code examples it would be a huge help.
    Thanks.

  • Tyler

    What if I wanted more potentiometers? Like, lets say 8? And more buttons for stuff like what a Launchpad does? Just wondering if the tutorial is more gears towards that specific layout, or if there is many differences in adding more.

    • Daniel Wright

      @Tyler
      You could technically have up to 12 buttons and 12 analog inputs such as pots or sliders… You just have to adjust the software to match what you are using.

  • Elusive

    This is something that I’ve been watching about since I found out about the original midi controller video in 2011. Finally have the fund and reason to take on this project. My main concern is how one would go upon having a toggle button/switch to go between different banks, fairly new to ableton as a whole. Thanks.

  • Tom

    Hey there,
    reading this super documentary, I’ve also made mine with aluminium and teck wood.
    I know how to build physical things, but I am completely out with coding…

    I tried to update your code, but with no success. Buttons aren’t responding at all, and faders are not giving correct informations…(in Live, going from =-50 to 0db, but never go upper or downer, plus the moving looks like some logarithmic curve thus the sliders are linear ones…)
    If you’re up for some help, I don’t think this is something crazy, and you’ll save my last days!

    By the way, here are pictures!

    https://uploads.disquscdn.com/images/02253e160e45994544bef6f87bca748180c1cbac974d5bee86c6fa116276e503.jpg

    https://uploads.disquscdn.com/images/2888d44491dfaf7a26580d452954535bf24bdd303aa70821289fcd4e0ff3eea9.jpg

  • Pingback: Well featured Teensy Based MIDI controller project – Aidan Taylor Research()

  • good vibes and high fives!

    Awesome tutorial! I have all the parts I need, but I have a few questions!

    First, is there a way to test and make sure it works before soldering everything? I modded the code for 20 buttons and I would like to make sure I did it properly!

    More so, does any other part of the code beside the button code need to me modified to add more buttons?

    I’m making this out of an old NES, i’ll post pics when I’m done! <3

    • That sounds pretty awesome! No, as long as you put your potentiometer/analog count to 0 at the top and then add buttons to the code as needed you should be fine. Fair warning, there’s not a ton of real estate inside the NES cartridge, so I hope you’re using the system shell instead! Can’t wait to see the final product. Keep us posted.

      • good vibes and high fives!

        Thanks bunches Kyle, the code is done and I’m ready to start building!

        It’s out of the shell, as you can see! I’ll post it here and in the forums when I’m done! <3

        • Nice!!!! This is going to be pretty amazing! I’m excited to see how this turns out.

          • good vibes and high fives!

            I am too! However, could I ask you a quick code question?

            I had to modify the code quite a bit to get 20 buttons on this, including the MIDI CC values in the code! However, I have a huge hunch that I didn’t set it properly!

            Here’s the modified code that I have on my Teensy++: http://pastebin.com/zL2xKwTe

            More so, when I open Ableton it says I have a constant MIDI signal going into it! I don’t have any buttons or pots connected yet, so this may be why, but is this another code issue?

            Thank you bunches Kyle, I can’t tell you how much this article helps!

          • Sorry for the delay. Hopefully you got this thing up and running. Would love to see the final product. From the code it looks like the pinup section only goes to 11. And the only other thing I would think of you be making sure you had your buttons soldered to the right pins.

  • Dane ‘dArKmAn’ Henry

    Here’s my latest incarnation!!!!

    Thanks for the Insipiration….

    • Great job!! This looks amazing. What does the screen do? Show values or mirror the DAW?

      • Dane ‘dArKmAn’ Henry

        Thanks!!!, Still work-in-progress… It’s a touch screen so endless possibilities… Right now its just wired to the pitch bend (Khaos pad like), but I’m working on the code to remap the faders, buttons ETC & maybe DAW info!!!!

        • Nice! I like it as a Kaoss pad feature. Send me a link for that, I’ve been meaning to mess with touch screens. Let me know how this turns out in the end. A demo video would be awesome.

  • Anomura

    Hey Kyle, Great article and video.

    Thought I’d give this a try, but found myself stuck after the Teensy Programming. So it shows up as a midi device in Ableton and what not, except the midi indicator (In Ableton) stays on. None of the pots or buttons work. Any idea on what this could be?

    Thanks

  • Gamered 1337

    Can you provide a schematic if you had 8 arcade buttons, 4 potentiometers, and 4 sliders? I’m a little confused and I need a little more information using a schematic to show which cable goes where, and what cable is in use for what.

    • Gamered 1337

      Also, I know I’m really, really late to post here, but I really need some help. This post is really amazing but I’m currently in the process of soldering and I’m stuck at a certain point. Please get back to me if you can, Kyle.

  • Pingback: ??DIY?????????????DJ?????????????????????? | soundrope()

  • Is it possible to program the buttons send a MIDI note on message when pressed and a MIDI note off message when released?

    • Yes, you can just remove the button code and replace with what pin should trigger what midi note.

  • Long Haired Gaming

    Thank you! This was really useful, i always wanted to make a MIDI controller, and after reading this I know how to.

  • tai ger

    Hello
    I would like to make my own midi, but unfortunately i am living outside of america
    So I only have Arduino. Is it okay to replace teensy as aeduino?

    • Yes, Arduino is just as good, just a lot larger and a little bit harder to program midi on.

  • NuSkuper Dolan

    how can i go to user 1 mode with drum racks?

    • Program the buttons for midi notes (instead of CCs) to match up with the midi notes of the drum rack.

  • hi guys! thank you for the very good project, I make one similar but i have problem whit my potentiometer, they make me noise and its not precise, they are not stable , they move constantly : / you can help me understand why ? I have already tried to filter the signal with a condenser from 0’01nf but not working.

  • Thomas Leutz

    Hi, does this code works with Genuino UNO as well?

    • Not sure, worth a try, but it is lined up for the Teensy 2.0 pins, so you may have to alter the code a little.

  • Bert Plays

    is the Micro usb to usb b female necessary? , can I also use an micro usb to usb a?

    • no adapter necessary, you can pug straight into the board if needed.

  • Spike Keith

    What would be a good material for wood?

    • Oak, pine, something on the softer side so easy to drill but hard enough to make a strong, durable controller. Any wood should work just fine. Plywood might be too rugged.

  • Alejandro Cardone

    Excellent article!!!
    Just one simple question… Is it possible to use led-illuminated arcade buttons instead? Should I consider anything else? I’m using Teensy 3.2 to add up to 21 inputs. Thanks a ton!

    • Shouldn’t be a problem. Just would have to research what resistors would work best with those and be careful wiring them up.

  • Pingback: Build Your Own Usb Game Controller | Clarksville Chess Club()

  • Pingback: Converting Old CDJ-800s Into Traktor MIDI Controllers - DJ TechTools()

  • Pingback: Converting Old CDJ-800s Into Traktor MIDI Controllers | NUTesla | The Informant()

  • Pingback: What Do DJs Love? – dPico AUDIOS()

  • Louis Trillo

    Could I make one of these similar to a mini untz or midi fighter (layout wise), but with Teensy instead of a Trellis and Arduino?

    • Absolutely! Just swap out the MIDI CCs for Midi notes in the code.

  • MOOMAN ST

    I know this sounds a bit nooby but can someone breakdown how to code the controller if I was using 19 buttons and 3 faders and 5 potentiometers. Thanks

    • In short, you would change the analog number at the top to 8 to cover faders and pots, then adjust the button code to 0,18 and so on.

  • Adam

    @disqus_SkWrr9Ijq6:disqus great video / article! But I have just 1 question for ya… I’m about to start building my own, and I want 16 buttons and 1 fader, can I achieve this with a Teensy 3.0? Or do I need something that accepts more inputs? If so , think you could help a brother out and point him in the right direction? Thanks in advanced!

    • I would say a Teensy ++ would give you more than enough, but the 3.0 should be fine as you only have 1 fader,

  • Adam

    @disqus_SkWrr9Ijq6:disqus , great video / article! But I have just 1 question for ya… I’m about to start building my own, and I want 16 buttons and 1 fader, can I achieve this with a Teensy 3.0? Or do I need something that accepts more inputs? If so , think you could help a brother out and point him in the right direction? Thanks in advanced!

  • Pingback: Holiday Gift Guide for DJs + Producers: 2015 Edition | dPico AUDIOS()

  • Pingback: Holiday Gift Guide for DJs + Producers: 2015 Edition - DJ TechTools()

  • Pingback: Best of Black Friday Software Deals For DJs + Producers | dPico AUDIOS()

  • Pingback: Best of Black Friday Software Deals For DJs + Producers - Mixshow Prime()

  • Pingback: Best of Black Friday Software Deals For DJs + Producers - Danceamp()

  • Pingback: Best of Black Friday Software Deals For DJs + Producers | NUTesla | The Informant()

  • Pingback: Best of Black Friday Software Deals For DJs + Producers - DJ TechTools()

  • Oprs Ion

    great tutorial though the code is bugged, when connecting my teensy to ableton, ableton crashes and will not re-open until my pc is restarted. im assuming this has something to do with a missing analog write function so if you choose output for the teensy in ableton it builds up data going to the pots until the program cant handle it and crashes.

  • javi

    I have a question. What if you want to put some kind of display in your controller? How would it be progtamed? Becouse teensyduino doesn’t have a midi+display option.
    thanks

  • Bert Plays

    how do I calibrate the faders?

  • Bert Plays

    I have a problem with my midi controller, the buttons and potmeters are not working, when I link something in fl studio than the knob in fl studio goes crasy, when I remove al the code for the potmeters the buttons does work.

    I have two potmeters and two buttons ,my potmeters are on pin 23 and 22,

    here’s a list of what I tried:

    – Use only 1 potmeter

    – Use only 2 potmeters

    – swap the ground and power wire

    – tried multiple potmeters

    – Use other pins on the teensy

    – tried changing the code in multiple ways

    The code for 1 potmeter:

    #include

    // define how many pots are active up to number of available analog inputs

    #define analogInputs 1

    // make arrays for input values and lagged input values

    int inputAnalog[analogInputs];

    int iAlag[analogInputs];

    // make array of cc values

    int ccValue[analogInputs];

    // index variable for loop

    int i;

    void setup() {

    // MIDI rate

    Serial.begin(31250);

    }

    void loop() {

    // loop trough active inputs for knobs

    for (i=0;i 7){

    // calc the CC value based on the raw value

    ccValue[i] = inputAnalog[i]/8;

    // send the MIDI

    usbMIDI.sendControlChange(i, ccValue[i], 3);

    // set raw reading to lagged array for next comparison

    iAlag[i] = inputAnalog[i];

    }

    delay(5); // limits MIDI messages to reasonable number

    }

    }

    I would appreciate your help, thanks

  • Bert Plays

    I have a problem in the code, it gives me the th error: ‘ccValue’ has a previous declaration as ‘int ccValue [59]’ I have googled it but I can’t find the solution, I have 2 potmeters and two buttons connected here is the code:

    #include

    // define how many pots are active up to number of available analog inputs

    #define analogInputs 2

    // make arrays for input values and lagged input values

    int inputAnalog[22];

    int inputAnalog[23];

    int iAlag[22];

    int iAlag[23];

    // make array of cc values

    int ccValue[59];

    int ccValue[50];

    // index variable for loop

    int i;

    // cc values for buttons

    int cc_off = 0;

    int cc_on = 65;

    int cc_super = 127;

    // map buttons to cc for button

    int cc0 = 51;

    int cc1 = 52;

    Bounce button0 = Bounce(0, 1);

    Bounce button1 = Bounce(1, 1);

    void setup() {

    // MIDI rate

    Serial.begin(31250);

    pinMode(0, INPUT_PULLUP);

    pinMode(1, INPUT_PULLUP);

    }

    void loop() {

    // loop trough active inputs for knobs

    for (i=0;i 7){

    // calc the CC value based on the raw value

    ccValue[i] = inputAnalog[i]/8;

    // send the MIDI

    usbMIDI.sendControlChange(i, ccValue[i], 3);

    // set raw reading to lagged array for next comparison

    iAlag[i] = inputAnalog[i];

    }

    delay(5); // limits MIDI messages to reasonable number

    }

    // Push Button code

    button0.update();

    button1.update();

    if (button0.fallingEdge())

    {

    usbMIDI.sendControlChange(cc0, cc_on, 3);

    }

    if (button1.fallingEdge())

    {

    usbMIDI.sendControlChange(cc1, cc_on, 3);

    }

    if (button0.risingEdge())

    {

    usbMIDI.sendControlChange(cc0, cc_off, 3);

    }

    if (button1.risingEdge())

    {

    usbMIDI.sendControlChange(cc1, cc_off, 3);

    }

    }

  • Bert Plays

    what do I have to put in the code in the top with the analog things

  • Bert Plays

    where do you have to put the analog input numbers in the code?

  • Bert Plays

    can I use a teensy 3.2, how do I connect the power on the teensy 3.2?

    • @bertplays:disqus yes, you can!
      Any Teensy board should work.
      The power should still be in the same spot on any of the boards (1st pin on the right or left side by the USB port), just make sure to use the pin labeled “VCC”.

      • Bert Plays

        I have a teensy 3.2 and there is no pin labeled VCC, there are two pins labeled: 3.3V and there is the first pin on the right of the usb that is labeled as vin(3.6 to 6.0 volts), you can google the board if you want

  • Bert Plays

    Is +5 v for the power necessary, can I also use 3.6 V?

  • morestyles

    hi could anyone help me with the code please ?

    i have added 2 more arcade buttons and a arcade joystick so basically 6 more buttons

    and have tried to alter the code but dont realy have a clue what im doing

    so when i come to program the teensy 2.0 i get error In function ‘void loop()’

    DJTT_DIY_MIDI:106: error: ‘cc4’ was not declared in this scope

    and so on for the other entries i have added .

  • Carlson

    Hey, I’ve got a question: Does the whole project also work well with the teensy 3.1 (and is Teensy 3.1 the latest version at all) ?

    • It definitely should. The 3.1 is the newest board, I just used the 2.0 because its cheaper and sufficed for my project. You may just have to alter the code a little to line up with the pins you are using on the board, otherwise it should essentially be the same.

  • Jordon Glover

    If I used a full arduino board and wanted to add a touchscreen for x/y purposes but would like to keep the knobs, faders, buttons, how would you work it into the circuitry?

  • Jordon Glover

    if i wanted to add an x/y screen to my controller, how would i go about programming that and adding it to the teensy?

  • A quick tip for those of you planning to use arcade buttons with your project: https://youtu.be/uH7P_FbQUlw

  • Nik Howard

    Thanks Kyle, awesome article, very inspirational. Also of all the recent guest contributors this is the best. Well done. Just need to decide on a design…..

    • Thanks Nik! Much appreciated. Be sure to post your project here! We’d love to see what cool MIDI device you create.

  • Loory

    Thanks for sharing! But I have an Arduino UNO board, How to make it as a MIDI device?

  • QCube

    I just mad a controller about a month or two ago. Its still not completely finished because of sold out parts but this is what i made. I think its pretty obvious its oriented on the Traktor F1 but with the 30mm Arcade Buttons its much bigger and also is capable of better finger drumming. Its fun to use and works with an arduino. Still have some Problems with the Lighting of the buttons. Something with the currency of the in/outputs. But as you see it looks pretty neat and can be Powered by USB only or by an aditional powerchord. I made this due to an educational project. This article comes a little bit later, i oriented on the earlier article and used an instruction on instructables. The aluminiumplate at the top is CNC cut and the case is made by hand and glued together. I think about getting some chroma caps for this controller, it would look awesome with them on 🙂

    • By the way its an Arduinomega because it has more I/Os than many other hardware or the uno.

    • Alejandro Cardone

      Did you solve the led issue? I’m planning to use led arcade buttons with a Teensy 3.2 but nit sure if it would be a problem. Thanks!

    • Great work! This is so Pro!

  • nice write up, quick Q.. the resistors isnt needed if were not using the LED correct? i wanna do one with 12 rotary encoders like these.. http://au.mouser.com/ProductDetail/Bourns/PEL12S-2024S-N3024/?qs=sGAEpiMZZMsWp46O%252bq11WTU2mLe3dQ9doksdYy18gMQ%3d
    anything else i should know?

    • Correct. No resistor needed if you aren’t using LEDs. If you plan to use a potentiometer with built-in LEDs like the one in link, I would just double check to see if it has a built-in resistor or requires one. Should have a data sheet on the page for reference, but Mouser customer service is usually pretty helpful too.

  • Ghertz

    Hello, who can draw a diagram of the video controller and articles ???

  • Pete Spaker

    Thanks guys for a great guide. I’ve had a Teensy 2++ for a minute now, waiting for me to finish some other projects. I want to make a midi controller that (I hope to be) uber-simple. I want to make a five button (actually guitar pedal stomp switch) midi controller for a very specific action during my Ableton sets- to activate and deactivate effects. I can handle making the sturdy enclosure and wiring the stomp switches, but I want to make sure that I can use the method you’ve got here to make it a bonefide MIDI controller that should work while I use my traditional desktop controller (the Livid CNTRL:R.) Seems like it should be no big deal… I’d just have to make it, and map it manually, with the effect on/off, one per switch…. right? I’m not being presumptive or ultra stupid here, am I?

    • Thanks Pete! Not a stupid question at all. You’re correct. Just make sure when you setup the board in the arduino app to select MIDI and then it should come up in ableton just like any other MIDI controller would, but will probably say teensy MIDI. When mapping just click what you want to map and click the button you wish to use. If you’re using the same code from this project all you should have to do is add code for 1 button, mark it 4 of 4, and change the analog inputs section at the top to 0.

  • Nice walkthrough! For the people scared of programming and electronics, I’m building MIDI platform, kinda like Livid Brain, but open-sourced. Still looking for suggestions etc. I really want it to be community driven. It’s going to be finished in few months – basically the only thing missing is GUI configuration utility, but if you know your way around MIDI System Exclusive you can use it right now. You can check it out in the forums:

    http://forum.djtechtools.com/showthread.php?t=83148

    • That’s awesome! Thanks for sharing.

  • Pingback: How To Make Your Own DIY MIDI Controller | connectikART()

  • qy

    Im thinking of buing teensy 3.1 with pins. Specification says it has 21 analog inputs. So 21 potentiometers then ? But this drawing shows that 7 analogs are in same pins. Ho do you connect 2 jumper wires to 1 pin?

    https://forum.pjrc.com/attachment.php?attachmentid=1793&d=1396800490

    • yeah, a mix of 21 pots or faders! The additional analog pins are actually the metal pads on the bottom, and the little pins/holes in the center of the board that are labeled.

  • yourboyvic

    we know it’s easier to get a brain or brain jr. kit from livid right, or am I missing something?

    • Oh it is definitely easier to go that route, just starting at $45 and up for the brain sets you back a bit. The teensy runs for $20, so I’ve definitely made a smaller controller for only say $30-$50 total. If you have the extra dough and want to save a ton of time the brain and brain jr. are indeed great alternatives! Good suggestion.

  • noxxi

    Also, I love the collection of random stuff in the top photo that has been turned into midi controllers! so much creativity!

    • Thanks! Those were the first batch of controllers I made.

  • noxxi

    Man, I wanted to do this article a while back, but this is far better than anything I would have done. Excellent article, this is exactly what got me into DJTT back in the day, this is like a return to roots!

    Anyway for those Interested, this is the code I wrote for my custom controller, its for the Arduino Mega 2560, connected to the Mayhew Labs Mux Sheild (original) (uses cd74hc406 multiplexers, any 16 channel 4067 will work)

    The code is very basic and unrefined, but easy to understand with instructions posted throughout it, its for my controller, so trim it back and adjust it to suit yours. This is on you though, I will not write the code for you, you should have a basic knowledge and an ability to deduce how to set up the code for your application. Its not that difficult really, just READ the pointers throughout the code.

    Download Here:

    Basic Arduino Midi Code, Debounced buttons, Leds and Pots/Faders
    http://jmp.sh/v/7lnoASiJdmQlPStm8pmX

    • Thanks Noxxi!
      Awesome of you to share the code you wrote. This is exactly what its about, sharing our knowledge to make a better resource center and DJ community.

      • noxxi

        Thanks dude, love the variety of controllers you’ve made, I’m just about to google you for more awesomeness!

        Your right, though. I spent a good few years trawling the internet looking at pictures and sifting through code examples before I understood enough to give it a bash myself. It can be very off putting, especially for someone with limited time or someone who doesn’t think they are smart enough to learn it (even though they probably are). I for one would love to see more home made creations, especially awesome looking ones.

        So here’s mine, I couldn’t resist showing it off! 😀 theres TONS more build pics as well, I was totally intending to make a build log for either here or instructables or something.

        I’d also just like to say, for anyone else reading this, the Arduino forum is a GREAT place to get help with your midi controller projects, they answer quickly as well, but you MUST treat them with respect, and recognize that they won’t help anyone who isn’t willing to at least try to figure it out themselves, in other words, use them as a last resort, but they are amazing, A huge shout out to Grumpy Mike on the forum too for all his help. ( i doubt he’ll read this though, but you know… 🙂

      • noxxi

        Thanks dude, love the variety of controllers you’ve made, I’m just about to google you for more awesomeness!

        Your
        right, though. I spent a good few years trawling the internet looking
        at pictures and sifting through code examples before I understood enough
        to give it a bash myself. It can be very off putting, especially for
        someone with limited time or someone who doesn’t think they are smart
        enough to learn it (even though they probably are). I for one would love
        to see more home made creations, especially awesome looking ones.

        So
        here’s mine, I couldn’t resist showing it off! 😀 theres TONS more
        build pics as well, I was totally intending to make a build log for
        either here or instructables or something.

        I’d also just like to
        say, for anyone else reading this, the Arduino forum is a GREAT place to
        get help with your midi controller projects, they answer quickly as
        well, but you MUST treat them with respect, and recognize that they
        won’t help anyone who isn’t willing to at least try to figure it out
        themselves, in other words, use them as a last resort, but they are
        amazing, A huge shout out to Grumpy Mike on the forum too for all his
        help. ( i doubt he’ll read this though, but you know… 🙂 😀

        • Great tip on the arduino forum! And Dude… That controller is AMAZING! Must have taken forever to put together but it looks so pro! Great work. Here’s my most recent before this project.

          • noxxi

            Thats so awesome, I love the fader cap, it looks like a little pacman ghost! Plus the added bonus of being able to quickly open it for upgrades is pretty cool as well. I think my smaller buttons are the exact same as the black ones on yours, kind of like arcade buttons but a fair bit stiffer?

            Aw dude, yeah it took me months, several all nighters, trying to figure out the code, how to wire it as neatly as possible and reliably as possible too, the most stressful part was trying to solder the wires to the pin headers, i ended up using a bit of veroboard, but still its not ideal. I really should have got some sort of wire crimps or something. Also the acrylic was annoying, if the hole cutter snags even a tiny bit it shatters, which always happened when it was nearly finished.
            And the wood came off an old pallet that was lying around, sanded it like mad and used some brown boot polish on it, which gives a surprisingly nice feeling and looking finish, as well as being super easy to apply.

          • Thanks. It is a 3D Printed pacman ghost fader cap! And yes, mini arcade buttons are the same, they do require a little more push though. Haven’t worked with acrylic yet, and after hearing that, not sure if I want to! ha. The pallet wood looks awesome! Definitely trying that and boot polish beats stain + poly that takes days to dry. Great inspiration man.

          • noxxi

            Aah, well a successful design then! I seen some of your more colourful designs, they look pretty sweet, but if it were my money, I’d go with the ones that are designed like that white one, they look the most pro. hell you could probably sell them!
            Aw yeah dude, the acrylic was a nightmare, I still cracked my final top plate, but it was just between 2 arcade buttons, so it wasn’t the end of the world, I decided to just live with it, next time id probably use aluminium and cover it with fablon. Fablon is awesome btw, I’ve done my Push with yellow carbon fibre fablon, the cool thing is the fablon is easy to swap out for any colour or design you want. I regularly do my lapop in different colours with it. love it!

          • Thanks! Aluminium would be sweet. Definitely post a few pics of that once you finish. And awesome about the Fablon! I think I may have to pick up some this weekend! Tons of great advice. Thanks Noxxi.

          • SterLynx

            What board did you use to get all those buttons? You can only have 12 on the Teensy.

          • noxxi

            I used an arduino mega and a mayhew labs mux sheild (arduino mega wont show up as a midi device unless you flash the hiduino firmware, requires a isp programmer)

            the mux sheild is a simple board with three 16 channel multiplexers on it, the way it works, is you use 4 pins to select the multiplexer channel (in binary, so the pins are 1,2,4,8. adding together combinations of those binary pins gives you 0-15 ie 16. so the 1 pin and the 8 pin would give you channel 9 and so on)
            using this method, you can have 16 ins OR outs of any type (no mix and match on 1 multiplexer) using just 1 pin, plus the 4 control pins. the beauty of them is that say you use 3 multiplexers, you still only need 4 control pins as they can share them, and you can get 3 different 16 channel inputs or outputs, so for 48 ins and outs your using only 7 pins.

            hope that was nice and clear, its a lot to take in if your just starting. 🙂

  • Stewe

    Good job Kyle on walking trough the entire process and Alex for putting everything together in the video! Really enjoyed the tame watching it – cool stuff!

    Here is my first and only DIY controller for Traktor 😉

    [img]http://i.imgur.com/mEIxEs2.jpg[/img]

    Still works!

    • Thanks Stewe! Appreciate it.
      That’s a pretty sweet MF clone!
      What board did you use?

      • Stewe

        Oh, it’s nothing fancy really. I used a cheap USB gamepad and then converted signals from HID to MIDI with the freeware software called Rejoice. It was meant to control the Instant Gratification effects with the buttons and the free space was dedicated for four rotary pots but I never actually made the to work properly out of the joystick analogs… I planned to instal one of Livid Brain Jr’s to make pots functional.

        • AH. Nice! I’ve seen that done before with the gamepad, I think the knobs would be a great addition to this!

    • Matteo

      Sorry but i’m not an expert but can you give me the code for 16 arcade buttons ? Thanks

  • RogueDJ

    OMG YES!!! Been waiting for an article like this!!

  • mczanetti

    I usually play a lot of fighting games on Steam and GGPO. Because of that, I own a Madcatz USB Fighting Stick. Anyone knows how use it as a midi controller?

    What kind of hacks can I do with it?

    • If you’re using a PC you could use “Joy to Key” or for mac there is “GamePad Companion”. You just push a button or move a control then assign what keyboard key you want it to trigger. You would just have to make sure the keyboard as MIDI function is turned on in your DAW.

      • mczanetti

        wooow, many thanks bro 😀

        will try this when arrive at home

  • Pingback: How To Make Your Own DIY MIDI Controller | BPM Supreme()

  • Juan

    Nice Work really… I always said that Arduino is a powerful tool.

    this controller will be used to TRAKTOR?

    • Thanks! It can be used with anything that accepts MIDI over usb. Ableton, Traktor, Serato, iOS apps, etc. But yes, it would ideally work as a 4 deck “mini-mixer” for Traktor.

  • Doza

    All I can say is…respect. Great article. Thanks. Let’s try.

  • Pingback: How To Make Your Own DIY MIDI Controller | Studio@Center()

  • rwoody81

    Thank you DJTT. This is exactly what I requested a few months back when you asked for article ideas. Great job!

  • Unreallystic

    My issue is always cost. Every design that I would want, always ends up costing so much more that buying a manufactured version. Want a 8×8 arcade layout? Might as well just buy a launchpad or almost buy 4 midi fighters, between the cost of say a Livid Brain and the buttons, you’re buying an Ableton Push. For more specific functionality though (like the illustrated) it does make some sense.

    • Agreed, DIY doesn’t always mean cheap. Sometimes factoring time it takes to build and all of the materials you’ll need it doesn’t add up and you could buy pre-made for the same price. The teensy boards tend to be the cheapest and smallest boards I’ve found vs a brain.

      • Unreallystic

        Yeah, there are definitely places for DIY though, While manufactured, I actually look at the MF devices as DIY ‘conceptually’, yeah I have other 4×4 devices (or had), but each one excels at a certain thing and that is where I think the money and time are worth it. Something like the faders above will work in both Traktor and Serato and Rekordbox. I personally want to make one just because I’m an elec engineer who doesn’t get to do engineering at work (so is life sometimes) so it would almost be ‘fun’, its just the cost of that fun hehe.

        Especially since the three projects I want to try are going to be pricey – either a 16×4 grid (remix deck or Ableton drum interface) with arcade buttons, a large jog wheel that moves like vinyl (Sorry, S8 was a no go for me strictly for that reason), or something for making Thor (Reason) a tangible synth. In Ableton, the Push does a good job with device controls, but Reason has nothing like that, Panaroma Nektar or whatever is the closest thing…but real knobs are the way synths should be.

        • Yeah, half of it is the fun of building something truly unique and custom + being able to tell people you made it yourself! All 3 projects sound pretty awesome, would love to see the final result!

  • Pingback: How To Make Your Own DIY MIDI Controller | dPico AUDIOS()

  • Fayek Helmi

    THIS ARTICLE! RES-PECT.

    DJtechtools i salute you on an exellent article and video. and for Kyle Mohr, really sweet controller dude. i like to built small analog lo fi synths and effects and ive been really interested in getting into controller building but i haven’t yet. i already have an old arduino and a teensy2++, just can never decide on the design of it…. haha.
    Realy clean work, and thanks for showing me the potential of cheap softwood boxes… enclosures have always been my weak point!

    • David De Garie-Lamanque

      it’s just what we were talking about a few weeks ago!!! props to DJTT for this amazing article!

    • Thanks!! Enclosures are the fun part for me. I got into this because I wanted to turn an NES cartridge into a controller. As for arduino vs teensy both are great but I found teensy easier to program as MIDI.

      • Fayek Helmi

        yeah teensy can handle midi over usb waaay better than arduino!

      • Nik Howard

        Hi Kyle, can you enhance on why teensy is easier to program as MIDI please? Is it just down to faster processor power? Thought that the only main difference was size? Many thanks, Nik

        • Hey Nik,

          Yes, with arduino you have to do a little song and dance to trick your arduino into thinking its a native USB MIDI device, see here: https://learn.adafruit.com/untztrument-trellis-midi-instrument/code. The teensy on the other hand is only the click of a drop down menu to make a MIDI device, no 10 second rush to fool it.

          • Nik Howard

            Thanks mate

          • Nik Howard

            Thanks, realised I never replied months ago sorry, cheers, Nik

  • Jago Aartsen

    Hey DJTT, do you have to stick to that design/configuration of faders, buttons and knobs? Or can you for example just have faders, or just buttons? And also can you build the case a different shape to the one in the video?

  • Graham Thorne

    This is amaze-balls.

  • Before you drill the holes in the wood, place what will be the topside of the board against another piece of wood. Think of it like a two piece wood sandwich with the topside of your controller board in the middle. Drill from the backside of your good wood. That way the drill bit won’t break off the edges of the holes leaving that chipped ghetto look.

    • Dan White

      Great pro tip!

      • I make a lot of my own studio furniture and cases. 🙂

        • Fayek Helmi

          Tarekith you always amaze…

        • Oddie O’Phyle

          ITK blades also give a more finished edge than regular rip blades. Did millwork for a few years then ran a dual stage rip and crosscut Holzma.

      • Agreed, great tip! I’ve only done that with plastic. Will be sure to use on wood as well from now on.

        • Didn’t mean to imply your case looked ghetto either, that’s just what my old shop teacher called it. 🙂

          • haha, none taken. I think I even say in the video “this will always look crappy.” Its a great tip! I always banked on the washers and button rings to cover up the ugliness.

    • mczanetti

      WOW, PRO TIP HERE haha

      • Dr Beatz

        Also worth looking into: Adobe Photoshop CC has an option to export 3D files to Shapeways (a service which will 3D print objects and mail them right to you.) Its really not that hard or expensive. If you own/know Photoshop (or someone who does) this is a really attractive option for many reasons. https://helpx.adobe.com/photoshop/how-to/photoshop-print-3d.html

  • DJblackJack

    It was a great video, but i feel like you left out a lot of options, there are many cool things that can be used for midi controllers such as the omni boards and the brains from livid instruments, the breakout boards and rubber pads from sparkfun electronics and the akai rubber pads which are available all over the place. I think the video would of been better if it showed and explained more options, rather then just showing you how to build one specific midi controller.

    • Jason George

      Well why don’t you make a video and show us all how to do it.

      • States takes 2-3 weeks (this will, however, give you plenty of time to get your enclosure ready and board programmed). But, to make things easier I’ve provided many links for Amazon and US retailers.

    • Dennis Parrott

      I don’t disagree that having access to hot-to info on other options would be good but the author gave us a bit of _GOLD_. He gave us one full and relatively complete example. He showed us every step in the process. Never underestimate the worth of a complete example to the n00by controller builders out here.

      OTOH, I agree with Jason (who also replied) — show us some examples of what you’re talking about. The entire n00b controller builder community would benefit from what you can show us…

      If we’d all follow the old hippie philosophy of “each one teach one” the DJ world would be a much better place. (for instance: http://djtechtools.com/2010/12/12/usb-power-problems-we-can-fix-them/ — my money where my mouth is…)

      • Johnny

        I haven’t encountered the USB problem in your article yet but it was a great read and something I wouldn’t have thought about until it happened so thanks Dennis

      • DJblackJack

        Unfortunately im a student with no time to write a full article on creating MIDI controllers however to any newbie reading this, the best way to learn is through forums. You can find some helpful threads in the audrino, Livid instruments and djtt forums, which are active and have many people of expertise there that are willing to help. Also, google is your best friend, make sure you search before you ask. for components i recommend sparkfun electronics and adafruit (and ofcourse the awesome djtt chroma caps). For the brains check out audrino and livid instruments.

    • Agreed, there are a ton of other great boards and components to build endless amounts of custom controllers. Great suggestion! Maybe I will do a follow up video to discuss all of the other options out there. We just wanted to scratch the surface with this one first and go from start to finish with a basic idea to get people started on the cheap.

      • DJblackJack

        Completely understandable 🙂 and im sure that when i was starting to look into making midi controllers this video would of been a ton of help!