The No.1 Website for Pro Audio
DIY MIDI CC Controller w/100mm sliders for under $100 - 2018 Edition
Old 28th November 2018
  #1
Here for the gear
 

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

I built a 3-channel, programmable MIDI cc controller, for about $85! Well, it would have been $85 if I hadn't made some expected mistakes. But, it can be done for that amount. 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).

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 also used a no-slip, car dash mat, 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 I 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.







This is the detail I get with the faders...




I'm currently building a second controller with the faders a little closer together.


More posts with all the details to come...
Old 28th November 2018
  #2
Here for the gear
 

Parts

Parts List:
Total - Around $85
The price might go up if you need any of the tools, or supplies. Of course, you can always do it your own way


* If you countersink your fader mounting screw holes, Check the length of the screws. If the screws are too long, they'll screw too far into the faders and crack the board.

** If you go to mouser, you can find tons of different knobs, as well as ebay, which is where I got mine. Make sure you match the post size to the knob.

*** This is for a single case, which is $4.71. Unless you have a machine shop that can laser-cut/jet-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 Needed:

More to come...
Old 28th November 2018
  #3
Here for the gear
 

Cases and Templates

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 for this case in Photoshop. When you print it out, it will print to the actual size, and is very accurate. You can edit the Photoshop diagram if you get a different box.

PhotoShop Diagram



If you don't have Photoshop, this jpg diagram is the same.
JPG Diagram
Old 28th November 2018
  #4
Here for the gear
 

Here's the rig I built to route the lanes. 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.




Just a mock-up to see how things should look





In the diagram, there are lines outside the perimeter of the lid. These lines are where I trimmed with scissors. The edges are 29mm from the edge of the router bit attatchment, to the lane to be routed, when lined up with the rig I built. After trimming the sketch, I butt the edges up to the squared melamine boards I framed up 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.







I could've just measured the 29mm from the edges, but I just thought it was easier this way.

What I did was set my Dremel in the middle of the lane to be routed, 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 locked the bit, and 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. I did this a few times to get a clean groove, then used some sandpaper in between to remove the fine stuff. After routing the first lane, I spun the lid around and routed the other outer lane. I then secured one more piece of scrap melamine to get the center routed (sorry, no pic).







With the LED in place, and the mounting holes drilled. I don't know how my holes got off-center, but amazingly, all three faders line up perfectly in the case. It still bugs me a little, so I'm going to try again on a new case.



This pic is from my original box. I was waiting on a replacement slider, so I've only go two shown here. When I build my new one I'll take more pics. 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, in series. This removes a couple volts and dims the LED nicely. Later, I used a little Gorilla Glue to secure the row of resistors to the side of the case.

The faders weren't actually that crooked. They just weren't screwed in here. That'd suck if I was that far off LOL!




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



I didn't bother trying to cut out a small square for the jack, since it wouldn't be seen, especially with the USB cable attached.



My nicely dimmed LED, and the plug



Here's a pic of the car dash-mat I trimmed down, to keep the unit from sliding around. It stays in place incredibly well, and is lower profile than feet would be. It doesn't cut or slice very well at all, but no one's going to see it anyways. Smooth side of mat goes on the case.








Next, I'll be getting into the wiring schematic, and all the stuff you have to do to hook up the board to your PC/Mac, and program it.
Old 28th November 2018
  #5
Here for the gear
 

Wiring 'er up

There's a lot you can do with the Teensy Board. Much more than what I'm currently doing with it. It allows for future upgrades or expansion boxes. But for this tutorial, I'm going to only show what's relevant.

Here's the Teensy board diagram, and the pins. The diagram comes with the board as well.

Front and back of the board






Here's all we'll be working with


The "A" in the "A0-A9" is for "analog", as these are the analog connections, and the sliders are analog. The board also has digital connections, which can be used for several different things, including buttons. Pan pots are exactly the same as the slider pots, so hook them up just the same if you want to add some.


Here's my wiring diagram.

There are two voltages on the board, but I only listed the one we are going to use. DO NOT use the higher voltage pinout. This causes the faders to max out at half the distance. This is because the slider position is determined by voltage, and by doubling the board's voltage, the travel to the sliders' max voltage is cut in half. For this starter project, just wire it up the way I have mine.

Also, the slider is actually known as the "wiper"

Old 28th November 2018
  #6
Here for the gear
 

Programming the Teensy board

Refer to the original article to get a little more detailed information on the arduino IDE framework, and the teensy loader app. But, use the links below for the current versions, which is what I'm using.



Download arduino IDE 1.8.7 for your OS
(I downloaded the Arduino Windows Zip file and just unzipped it to my desktop.)




Download the TeensyDuino Add-on for the arduino IDE framework.
Special note on Windows 10 installs - Windows 10 already has the drivers installed. Just click Next when you will see the following page...




On this page, browse to where the arduino app is located. I unzipped my arduino folder to the desktop, so my path is "C:/Users/jsben/Desktop/arduino-1.8.7-windows/arduino-1.8.7/".




On this page, you're installing all the libraries, so just click "Next"



Then, Install. On the last page, just click "Done"


-------------------------------------


Next, download the Teensy Loader App for your OS, and follow the directions on the page.



Next, Using the Arduino app to program the board
Old 29th November 2018
  #7
Here for the gear
 

Using the Arduino Application

With your Teensy board connected via USB, open the arduino app.

  1. From the Tools\Board menu, select "Teensy 3.2/3.1"


  2. From the Tools\USB Type menu, select "MIDI"



  3. From the Tools\Port menu, select your connected device (it'll resemble mine)


--------------------------------------


Copy the code below into the blank window
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);
      }
    }
  }
}


There are only a few areas you'll have to change for your own use, if your setup is different than mine. But I've made it fairly easy


Change this to the number of sliders and/or pan pots you have connected to the board

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

A_PINS - Like above, set the number of sliders and/or pan pots you have connected to the board

ANALOG_PINS - Set the pins your devices are soldered to on the board. Note, doing something like "const int ANALOG_PINS[A_PINS] = {A1, A4, A7};" is perfectly acceptable, if that's how you have your devices connected to the board

CCID - This is where you define the MIDI cc code for each slider and/or pan pots. The codes are in the same order as the ANALOG_PINS above, so A0=11, A1=1, and A2=21

Code:
///////////////////////////////////////////////////////////////////////////
// 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};
///////////////////////////////////////////////////////////////////////////

This is pretty straight forward. Just use this format for the number of devices you have connected to the board
Code:
///////////////////////////////////////////////////////////////////////////
{ANALOG_PINS[0],true},
{ANALOG_PINS[1],true},
{ANALOG_PINS[2],true},
///////////////////////////////////////////////////////////////////////////


After updating your code, click the arrow button at the top, to write the code to the Teensy board




The little Teensy app will pop up on the screen, and it'll say "REBOOT OK" and then "Press button on Teensy..." Just ignore that. After the code is done, you can close the window. You'll know the code is done from the status window at the bottom of the arduino app. It takes about 10 to 15 seconds to run, and should look something like mine when done...




When you're done, and want to save your code, you'll get prompted about needing to save it in it's own folder. Do the obvious thing, and create the folder, and save the file in that folder.



Next, DAW setup and Troubleshooting
Old 29th November 2018
  #8
Here for the gear
 

DAW Setup

In your DAW preferences, you should see the Teensy MIDI board. Make sure it's selected. This is in Sonar...




Select a MIDI track, and make sure either "MIDI Omni" is selected, or the "Teensy MIDI - Omni" at a minimum.




Start moving the faders. You should see your MIDI input levels rising and falling with the faders...




If you're not getting a signal, go into the preferences, deselect the Teensy board, and hit Apply. Then, enable the board and Apply. It should be working. If not, we need to make sure the computer is getting any kind of signal.

Download and install the free app
MIDI-OX. This is a great tool for analyzing MIDI devices.


Note: You have to close your DAW software to run MIDI-OX


In MIDI-OX, display the "MIDI Status" window, and start moving your faders. You should see some activity on the cc channels you've assigned to your unit. My three are 11-expression, 1-modulation, and 21-vibrato. On the top row you'll see values for my three faders. You can use many of the other tools/windows to determine if the controller is transmitting a signal, and what port, if any, it's connected to.



If you're not getting anything here, then go back to the start of the setup, and go through the steps again. If you're able to see, and flash code, to the board in arduino, then you should be seeing something in MIDI-OX.



Quick note: In Sonar/DAWs, you need to arm the track(s) to record, as apposed to arming "Write" for recording automation. The track uses the MIDI controller as if it were the same as a keyboard. "Automation writing" is to record value changes in the software itself, like riding a fader with the mouse, for instance.




I think that about covers it

Old 10th February 2019
  #9
Gear Maniac
 
amundsen's Avatar
 

Very interesting. I am currently considering building a faderbox too. One question: have you chosen the slider resistance value because of the teensy pullups, because of the current consumption, another reason?
Old 26th December 2019
  #10
Here for the gear
 

Oh wow.. I've been looking for something exactly like this with only a few faders and minimal footprint. Perfect. Just ordered parts, can't wait to build it. Thanks for this!
Old 30th December 2019
  #11
Here for the gear
 

Thanks for this jsbenson!
I have a question. I want to build a control surface (faders only) with the "HUI" format for Pro Tools. Apparently to control the faders within Pro Tools each fader should send pitch bend messages, with fader 1 on midi channel 1, fader 2 on midi channel 2 etc... HOW WOULD I MAKE THE FADERS SEND PITCH BEND?
Getting my info from here:
https://www.mslinn.com/sites/mike/st...olMIDIMap.html

If you could help me figure this out before I buy all the parts I would be greatly indebted to you! Maybe try it out on yours? It would have to be defined as a DAW "controller" correct?
Old 31st December 2019
  #12
Lives for gear
 
greggybud's Avatar
Considering the price of a JL Cooper fader master, maybe someone should build a few of these to order. All the prosumer stuff I have seen either doesnt have good mm sliders or they cram junk in that's not needed.

The J L Cooper fadermaster costs around $850 iirc.


The Kenton Control freak costs?

The only change I would want is 4 instead of 3.

For the OP, how much time was invested?

Edit 1-1-2020
I honestly think there is some demand for this, mostly for film, game, orchestral producers. I have read several threads at VI Control asking why a dedicated midi controller costs so much. The answer is 100mm faders aren't easy to find?

Here is a new one for 2020 but it's another short fader.
https://store.monogramcc.com/
Another short fader
https://www.nakedboards.org/mc8.html

Last edited by greggybud; 1st January 2020 at 08:09 PM..
Old 1st February 2020
  #13
Here for the gear
 
mnordbye's Avatar
 

Hi!

Great thread. It inspired me to build my own, which I just finished.

Did you have to do anything to get the faders to work in a linear fashion? Mine start at 0, but QUICKLY goes to full midi 127 just a few millimeters up the fader.

I used almost the exact same faders as you btw, though the 60mm version instead of 100mm. (https://www.digikey.no/product-detai...ur=NOK&lang=en)

Do you have any idea what I can check? Or can I change something in the code?


Regards,
Magnus
Old 26th June 2020
  #14
Here for the gear
 

Finished my own version of this easy, fun box!

I had no trouble building a version of this box. Thanks so much for doing so much of the legwork @ jsbenson ! I made mine from an old intercom I found and used a teensy I found at work that was going to the trash. A friend who manages a college workshop laser cut the panels for me and i rattlecanned it to give it that fadermaster look (call it the fakermaster??). All took less than a week. It sits at a great angle and so far my favorite thing to pair it with is Zebra2 rezoband filter, which was always hard to control with short faders/ junky pots.
Attached Thumbnails
DIY MIDI CC Controller w/100mm sliders for under 0 - 2018 Edition-encloser_faderbox.jpg   DIY MIDI CC Controller w/100mm sliders for under 0 - 2018 Edition-finished.jpg   DIY MIDI CC Controller w/100mm sliders for under 0 - 2018 Edition-parts.jpg  
Old 19th August 2020
  #15
Here for the gear
Just about to embark on my build as well. Locating a case with similar dimensions was the biggest challenge in the UK, but I eventually found a nice looking one on Farnell.
Old 20th August 2020
  #16
Gear Maniac
 
amundsen's Avatar
 

I had mine cut in plywood with CNC cutting.
Old 22nd August 2020
  #17
Here for the gear
Quote:
Originally Posted by mnordbye View Post
Hi!

Great thread. It inspired me to build my own, which I just finished.

Did you have to do anything to get the faders to work in a linear fashion? Mine start at 0, but QUICKLY goes to full midi 127 just a few millimeters up the fader.

I used almost the exact same faders as you btw, though the 60mm version instead of 100mm. (https://www.digikey.no/product-detai...ur=NOK&lang=en)

Do you have any idea what I can check? Or can I change something in the code?


Regards,
Magnus
Hi Magnus,

I had the exact same problem at first, so I doubled checked the build instructions and determined the wiper and pos (+) connections were wrong. In the diagram, it shows the wiper as the more central of the two terminals, but in the photos, the wiper is the outside terminal. I switched mine around, and voila, it works perfectly now.

Hope that works for you!

Jason
๐Ÿ“ Reply

Similar Threads

Thread / Thread Starter Replies / Views Last Post
replies: 200 views: 13370
Avatar for Swing
Swing 9th February 2016
replies: 6757 views: 789838
Avatar for login
login 10th December 2017
replies: 61 views: 2384
Avatar for Bruduss
Bruduss 6th April 2017
replies: 518 views: 32103
Avatar for TobyB
TobyB 11th April 2020
Topic:
Post Reply

Welcome to the Gearslutz Pro Audio Community!

Registration benefits include:
  • The ability to reply to and create new discussions
  • Access to members-only giveaways & competitions
  • Interact with VIP industry experts in our guest Q&As
  • Access to members-only sub forum discussions
  • Access to members-only Chat Room
  • Get INSTANT ACCESS to the world's best private pro audio Classifieds for only USD $20/year
  • Promote your eBay auctions and Reverb.com listings for free
  • Remove this message!
You need an account to post a reply. Create a username and password below and an account will be created and your post entered.


 
 
Slide to join now Processing…
๐Ÿ–จ๏ธ Show Printable Version
โœ‰๏ธ Email this Page
๐Ÿ” Search thread
๐ŸŽ™๏ธ View mentioned gear
Forum Jump
Forum Jump