DIY MIDI CC Controller w/100mm sliders for under $100

jsbenson

New member
I posted this in the MIDI Mania forum, but thought this might be a better place.

I built a 3-channel, programmable MIDI controller, for between $100 and $120. It works awesome! The detail from the 100mm slider pots is great! I could've added some pan pots, buttons, and other stuff, but what I really wanted was the one I built. I'm using it to control cc11, cc1, and cc21 (expression, dynamics, and vibrato) with some of the SpitFire strings and winds.

I was inspired by this post, but had my own ideas on building it. Mainly the wood case. I wanted something that looked professional, and be low-profile so I'm not having to hold my whole arm up to ride the faders. I used a dash mat, for a car, to keep the unit from sliding around. It really keeps it in place.

I looked everywhere for something like this, but the closest I found was the Korg NonoKontrol2. The short faders, as well as the resistance on the faders, really wasn't working for me and returned it. The other option would've been to get a Palette, but they are ridiculously priced for my needs.

I'm using this in the most current version of Cakewalk by Bandlab (formerly Cakewalk Sonar). It works flawlessly, and will work the same on any DAW.

If anyone's interested in how I made it, let me know and I'll post a write-up on it with pics.

IMG_20181123_124220.jpgIMG_20181123_124251.jpgIMG_20181123_124340.jpg
 
Last edited:
INTERESTED?

Oh.. duuuude.... yes. Please.
I think long and deviant thoughts about stripping down an old mixer and making some sort of controller from parts of it.
 
Alright man, I'll start posting stuff soon.

In the meantime, read the original post on the DIY controller (link above, labeled "this post") to get an idea. I'll post the changes I made, and the parts list w/links. The controller board can do way more than what I put together, which is cool because I can always expand later. I might make a new one with touch-sensitive slider pots.
 
Parts List:

Total = around $85

* If you countersink your fader mounting screw holes, don't use anything too long . If the screws are too long, they'll crack the slider board.

** If you go to mouser, you can find tons of different knobs, as well as ebay, which is where I got mine.

*** This is for a single case, which is $4.71. Unless you have a machine shop that can laser-cut the plastic, get at least 2. They're cheap, and extra cases can always come in handy for other controllers. It's easy to make mistakes when routing the 100mm slider slots. After a couple cases, I built a rig to route straight slots. If you're really good with a Dremel, you can probably come up with you're own way.


Tools List:
 
Last edited:
There are tons of different sized cases on the PolyCase site. So, if you wanted to make something much larger, you can probably find a case for it. Browse around and see what they have.

Also, you can send them a template, and they'll jet-cut everything there. It starts at $100. I wanted to keep this cheap, so I didn't bother.


I made the template in Photoshop. When you print it out, it will print to the actual size, and is very accurate. You can edit the PS diagram for your own box. Link is below. If you don't have Photoshop, the jpg is the same. I'll explain the outer lines and everything later.

PhotoShop Diagram
JPG Diagram
 
Last edited:
I've been looking to build a midi foot controller for DMX lighting for the band. The behringer FCB1010 is a good product to use but I really don't want to spend $150. Did you have to do any programming on the Teensy brd?
 
Yeah, but the code is incredibly simple, and I'll post it. I'm a programmer, and I'll put in helpful comments. As I mentioned, the board can do a lot more than what I'm doing, and the Arduino site has a pretty good wiki. The Arduino framework is free, and I'll be around to try and help.

Here's my code...

Code:
#include <Bounce.h>

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

// define arrays for input values and lagged input values
int inputAnalog[analogInputs];
int iAlag[analogInputs];
// define array of cc values
int ccValue[analogInputs];
// include the ResponsiveAnalogRead library
#include <ResponsiveAnalogRead.h>

// define pins and cc codes
const int A_PINS = 3;
const int ANALOG_PINS[A_PINS] = {A0,A1,A2};
const int CCID[A_PINS] = {11,1,21};

// a data array and a lagged copy to tell when MIDI changes are required
byte data[A_PINS];
byte dataLag[A_PINS];

// ititialize the ReponsiveAnalogRead objects
ResponsiveAnalogRead analog[]{
  {ANALOG_PINS[0],true},
  {ANALOG_PINS[1],true},
  {ANALOG_PINS[2],true},
}; 

// the setup routine runs once when you press reset:
void setup() {
// initialize serial communication at 9600 bits per second:
Serial.begin(9600);
}

void loop(){
  // update the ResponsiveAnalogRead object every loop
  for (int i=0;i<A_PINS;i++){
    analog[i].update(); 
    // if the repsonsive value has change, print out 'changed'
    if(analog[i].hasChanged()) {
      data[i] = analog[i].getValue()>>3;
      if (data[i] != dataLag[i]){
        dataLag[i] = data[i];
        usbMIDI.sendControlChange(CCID[i], data[i], 1);
      }
    }
  }
}

---------- Update ----------

You bet :)
 
BTW, This thread assumes that you have some skills with tools, soldering, and computers. Basically, an established DIY'er.


Here's the box being built. It's 29mm from the outside edge of the router attachment, to the router bit.

I used some scrap melamine (white laminate board) to make my guide and stops. I used these scraps because they have straight edges that square up.
IMG_20181114_132221.jpgIMG_20181115_202540.jpgIMG_20181115_202642.jpg


In the diagram below, there are lines outside the perimeter of the lid. These lines are where you trim with scissors. The edges are 29mm to the lane to be routed, when lined up with the frame/rig. After trimming the sketch, I butt the edges up to the squared melamine boards and mark where the nail holes to secure the lid will go. I then drill the holes so that the nails will slide snuggly in when securing the lid. This will hold the lid squared up with the frame.

MIDI-Box-Diagram.jpg

IMG_20181119_140512.jpg





What I did was set my Dremel in the middle of the lane, with the router bit above the lid. I ran the dremel at about 10k, and lowered the bit to drill through the lid. After that, I guided the dremel to one side, and then the other, until the edge of the router attachment butted up to the left and right stops. Do this a few times to get a clean groove, then use some sandpaper to remove the fine stuff. After the first lane, spin the lid around and route the other outer lane. I then secured one more piece of scrap melamine to get the center routed (sorry, no pic). Even with all of this, I slipped and grooved a little bit outside one of the lanes. It's hard to tell because I blacked-out the aluminum surface of the sliders with electric tape. I may pick up a couple more boxes someday, and do it again...if I'm bored enough LOL. Actually, I might build a four-channel, touch sensitive version.

IMG_20181119_144309.jpgIMG_20181119_161616.jpg

Then I wired everything up. Note the row of resistors on the ground wire, on the right side. The led is really bright at full power, and I just used some of the extra .25 watt resistors that came with the LEDs. This removes a couple watts and dims the LED nicely. I used a little Gorilla Glue to secure the row of resistors to the side of the case.

I'll post the wiring diagram below.

IMG_20181119_172228.jpg

The box I got is fairly short, and I ended up having to shave down the USB jack to make it fit under the center slider and the mounted LED.
IMG_20181119_200020.jpg

Instead of using rubber feet, which would raise the box substantially, I bought a car dash mat. It's really sticky, and once it's in place, it'll take all the pushing and pulling you can dish out. It's not going anywhere! I cut it down to size. Here's the dash mat I used.
IMG_20181119_215325.jpg
 
Last edited:
Here's the Teensy board diagram, and the pins. It comes with the board as well. I'll post my diagram, along with some explanations.

teensy front.jpgteensy back.jpg
 
Here's my wiring diagram.

Be sure not to use the VIN (3.6 to 6.0 volts) (not shown here). This will cause the faders to max out at half the distance, because of doubling the voltage.

I'll post about how to program the board next. Probably tomorrow.


Teensy-Wiring.jpg
 
This is the detail I get with the faders. I was waiting for a replacement fader (the 3rd one), so I only have two CC's showing here.

SCREENSHOT - Automation.jpg
 
Last edited:
Here's my wiring diagram.

Be sure not to use the VIN (3.6 to 6.0 volts) (not shown here). This will cause the faders to max out at half the distance, because of doubling the voltage.

Who's doubling what voltage?
Not seeing it in the schematic, there.

How does a fader "max out at half the distance"? There will always be voltage present, albeit small.
I'm not keeping up so well.
 
Who's doubling what voltage?
Not seeing it in the schematic, there.

How does a fader "max out at half the distance"? There will always be voltage present, albeit small.
I'm not keeping up so well.

He's just saying be sure to use the pins marked in diagram in post #12, because there is another, higher voltage, pin someone could easily use by mistake. ;)
It's shown in post #10.

Enjoying this @jsbenson ^^. :)
 
He's just saying be sure to use the pins marked in diagram in post #12, because there is another, higher voltage, pin someone could easily use by mistake. ;)
It's shown in post #10.

Enjoying this @jsbenson ^^. :)

Exactly. If you look at the original diagram, the higher voltage pinout is the top hole. Someone might see that and think, if 3 volts is good, more power must be better. Might be better for some applications, but not this one.
 
If anyone has any questions, start asking.

I'll be posting the info about how to connect the chip to your PC/Mac and program it.
 
Are you familiar with how to use the 5-pin MIDI connector for MIDI Out? I've been browsing around the internet and maybe there are specific pins to use. Would I have to write code to change the parameters of the serial ports to match RS485?
 
I'm trying to find non-motorized, touch-sensitive slider pots, but I'm not having much luck.
 
Last edited:
Back
Top