DIY modular MIDI controller

Home :: Reviews of DJ equipment :: DIY modular MIDI controllerReply
DIY modular MIDI controller
Posted on: 06.10.2012 by Liz Hancey
Hi all!

Ive been believeing about building a modular midi controller based on a central mixer for some time now...

As I'm not a resident DJ I work at different places and mixing different music and I want to create a more versatile midi controller.

My initial idea is creating a central mixer with the possibility to connect others midi controllers (deck and FX ) with a total of 5 controllers.

In my research found about the Teensy++ and it looks like a good alternative for the brain.

I'll keep you updated with the news and development. (I've little knowledge of programing, but I'm a fast learner and have close friend who can program for me also.)

Thanks!
Liz Hancey
03.10.2013
It's been a while since my last post about this topic, and I'm motivated again to build this thing.

There's been a little change of plans, as I'll start only by building the mixer. this is a mockup of what it should look like.

Screen Shot 2013-10-03 at 9.59.45 AM.jpg
Liz Hancey
03.10.2013
It's been a while since my last post about this topic, and I'm motivated again to build this thing.

There's been a little change of plans, as I'll start only by building the mixer. this is a mockup of what it should look like.

Screen Shot 2013-10-03 at 9.59.45 AM.jpg
Liz Hancey
30.11.2012
I've seen your videos on Youtube..cool stuff!

I've been searching for good prices and stuff, to start building the mixer unit...
Does anyone know a site where to buy these stuff at a decent price?

- Potentiometer, with center detent and push button, metal D-shaft
- 100mm slide potentiometer

Thanks!
Louisa Oberc
15.11.2012
That's the benefit with a modular approach.. you can keep adding on whatever your brain can come up with! I did a bunch of work with getting stuff out of traktor, i have a few videos of my attempts, you can find them on my youtube channel, here's an example of having tractor send track information to an external lcd display:

Sooo much can be done, it's awesome
Liz Hancey
15.11.2012
I get what you are talking about, is a more elaborated version of my first idea (each module with a brain on its own, and they all connect to a master brain..) but i wasn't working with MIDI notes...now that you pointed that out, sounds very interesting.

My idea was a main unit, mixer like, with xfader, line faders, eq, gain, filter, cue, and file browsing inside other stuff... and external modules for transport, effect, and cuepoints (midi fighter like..), and later design others modules (like a module full of knobs, a led matrix for show, I don't know...anything that comes to mind really..) maybe some LCD modules, showing track info, etc.. (I'm focusing everything on traktor, as it's the software that I most use..)

I'll start with the main controller and 1 module, so I can work the MIDI I/O out, and later keep working on others modules to add them up.

Thanks for all this induction of chain-believeing you started inside my head now.. its true, brains just goes nuts..
Louisa Oberc
15.11.2012
If you structure your code correctly, it shouldn't be too much more than doing it any other way. The main brain would be the simplest, as it's sole job is to pass messages around.

You could structure the code in such a way that each module would run the same code, just with different configurations.

How many inputs do I need to check?
What type of input is it (button, rotary, fader, etc)
What are the pin(s) for each input?

The main loop would just go through the list of inputs, and depending on the type of input, it would call the appropriate input checking method.

You would need to come up with some sort of standard midi note scheme so you don't end up having to alter pre-existing modules. If you know any one module wont have any more than X inputs, then it should be fairly simple to arrange the notes in banks leaving gaps between them for future expansion.

You should take a look at the midifighter code for a great example of how they deal with multiple banks on a single set of buttons. The idea should translate to multiple banks on multiple sets of buttons quite well.

One side effect of this approach would be that each module should be able to be used as a standalone controller. Assuming everything comes together like it is in my head.

The system could be as such: a main brain controller that contains the xfader, channel faders and channel related functions. Then you can have an effects module, a control/transport module, loops module, midifighter module, etc. Each module though, could be connected to the pc on it's own and work just fine ---OR--- be hooked into the main brain and become a small piece of the overall larger controller.

Or the main controller could be kept simple with a few buttons and a cross fader. Then each channel could itself be a module, allowing you to have a 2/3/4+ channel controller if you should so choose.

heh, sorry for the rambling, but once I get into an idea, my brain just goes nuts
Liz Hancey
15.11.2012
Interesting. So basically the idea would be to create each module as separate unit, that sends MIDI messages, and all of that gets connected to a master highway of MIDI messages, routing the I/O to each channel.

that involves a lot more programing than I was believeing of, but not imposible. I like the idea, will buy some parts and start prototyping!
Louisa Oberc
15.11.2012
That's the idea I had yeah, it would spread processing around to each module, leaving the main module to pretty much play a traffic cop in regards to midi messages.

The raw mega328+crystal+caps would run you about $5, it does have midi "built in" in the same way that the teensy does (midi is purely serial data running at 31,250 baud).

Midi-OUT is done with a simple resistor and serial comms, dead easy to pull off. Midi-IN on the other hand is a little more tricky. It requires a suitable opto-isolator with the correct pull down (for the transistor) and power resistor (for the led). Once the Midi-IN circuit works, receiving is just as easy as sending.

Each module can communicate to the brain using midi (it can be received without the standard midi-in circuit), the main brain will then send them to the end point and receive messages from the endpoint through the midi-in circuit (therefore only requiring one "real" midi-in circuit).

I can dig up some of my schematics for some of my working prototypes if you believe it will help. The most important part is to keep your scanning frequency as high as you can. When I added a salvaged trackpad from an old notebook to a controller, it added a very very small 7 millisecond overhead to the input scanning functions. Due to that extra delay the mcu would miss some steps of the two rotary encoders. It was hard to believe that a seemingly insignificant delay of 7ms would cause issues.

Without the trackpad, the scanning returned to being measured in uS (microseconds). What I could have done is separate the controller out into a trackpad module with a dedicated mcu. It would handle the lengthy scans of the trackpad, then simply pass midi messages back to the main brain which simply gets processed as midi-thru messages.
Liz Hancey
15.11.2012
So, the idea would be each module with a brain, sending/receiving MIDI messages, and a main brain, collecting all this messages and sending them to the software? That sound interesting..

But the mega328 isn't cheaper that the teensy, as I have to add midi to it, and teensy has it built-in.

Maybe a mega1280 with multiplexing and a midi module could work better than the teensy with multiplexing, have to research on that.
Louisa Oberc
14.11.2012
Arduino Mega, though there are knock off's and variants out there.

If you run each module off a teensy (or more accurately an atmega328, as it's cheaper than a teensy in the long run), you should be able to use a teensy for the main brain. each module would handle its own input/outputs, and would simply communicate to the main board via midi messages. The brain would simply act as a midi-through control board, passing incoming messages to the connected modules, and relaying any messages FROM the modules to whatever it's connected to.

I usually build my stuff as well, feel free to take a look at my published builds for tips and/or inspiration.

No dedicated thread, but you can find them starting here: http://community .djranking s.com/showthr...l=1#post225853
Liz Hancey
14.11.2012
Do you have a link of the mega? I don't know it.

I've made the maths and the teensy can handle everything, but it looks like the coding would be a pain in the **s... anyway, I'm working on the layout and the mains PCBs, so I can acces all the pins more easily.

For the platters, I was believeing about getting a mold out a NS6 or maybe a CDJ, I don't really know it yet.

I know that at the end, it would be cheaper to buy a pre-built controller, but it isn't my style of doing things. I've built many things in my life, and the idea of DIY is always my favorite.

Will post more info durring the week. Thanks!
Louisa Oberc
14.11.2012
It's been a while since I've been around these parts (real life has got in the way), but I had to stop by and drop some encouragement (as well as some suggestions).

The suggestions to abandon the project aren't entirely wrong. In that making your own modular controller project is a serious undertaking (I know from experience), and will never ever be cheaper than buying a pre-built alternative.

However, what they aren't taking into account is the incredible learning opportunity, the feeling of accomplishment you can get, not to mention the fact that if you build "a better mouse trap", there could be financial benefits as well. I will never ever suggest someone abandon a project unless it will ruin them financially, so press on, but keep us updated!

My suggestions would be to consider an alternate to the teensy, as it may not have enough inputs to get everything hooked up in an efficient way. Perhaps a mega would be the proper final controller for the project. That said, the teensy will absolutely be up to snuff to get the basics up and running.

The big reason(s) for the mega would be: more interrupts, more communication options, more i/o, more more more

Good luck to you sir, I only ask you to keep us updated, and to come back with questions should you have any!
Joan Kollmorgen
12.11.2012
Go for it that's what i say.
Liz Hancey
11.11.2012
Teensy 2.0 ++ can be multiplexed and with less than 7 pins have 48 I/Os

Why should my build be filmsy? With the correct tool, hardware and design it can be solid as a rock, just look at the Midifighter.
It's not my first time building something, and as a FB page says.. "Trust me, I'm an engineering.."

I'm pretty optimistic for this build, and I believe it could work just fine (I'm just building a prototype, if it works I can get some PCB made in China, buy tons of hardware and start building many more of this things...)

Right now I'm on a R&D status, so I can build it later.
Era Roka
11.11.2012
Thats subjective, i believe a teensy is better, you can believe a u-hid is better. It depends on your personal taste.
Edwina Fagel
11.11.2012
Best brain option really is Midibox if you can code or Livid Brain 2.0 if you can't.
Thats about 50+ inputs and well over hundred outputs and there ain't much brains being able to handle that.
Quality components are expensive, your own build will be probably much more flimsy than the Behringer CMD line.
For example you really can't get your hands on the components that the big companies can.
Little Taiwan fingers can build stuff much better and 4-5 times cheaper.
Looks like a too big bite to chew for first build to me.
Liz Hancey
11.11.2012
So, some updates.

Yesterday had some spare time and finished the design of the controllers and started the PCB design.

Module 1,

22 LEDs (one color)
14 Buttons
2 potentiometers
1 endless encoder

Module 2,

22 LEDs (one color)
22 Buttons
4 potentiometers

Module 3,
72 LEDs (mainly for VU meters)
16 Buttons
25 potentiometers
5 endless encoders

My idea is using module 3 as the main piece, holding the teensy brain and let the others modules connect with a RJ-45 cable to the mixer. For this I'll be multiplexing the signal. Not sure about the maximum hardware capabilities of the teensy board yet, but I'll keep my research.

For now, I'm designing the PCB layout of the modules, so I can do as little wiring as posible.

For the casing, I'll be probably using metal and acrylic, to get that industrial look.

DJDoubleYou, have you done any research about the teensy and multiplexing? Would be possible to handle all this I/O with one teensy++ board?
Era Roka
10.10.2012
Verry intrested, same ideas here!
Kellie Myrum
07.10.2012
No worries. Have fun!
Liz Hancey
07.10.2012
Thanks! Sorry if I sounded angry or something, didn't mean it. I hope that also.

I'll keep posting the development and later the build of the controllers.
Kellie Myrum
07.10.2012
Alright, was asking by the way.. As for quality on those units I hope that we'll see some improvements since those units will come with three year warranty.

Wish you luck with your project and keep us in loop with development
Liz Hancey
07.10.2012
Yup, but the quality of behringer controllers ain't that good and the design isn't much of my taste. Besides, the features and response of the controller (buttons mainly) probably wont be they way I want it.


Also, I believe they connect each to a USB port (as the mixer has a built-in USB hub) and I'm believeing about multiplexing the signal and connecting them to the same USB port.

Anyways, I just want to build it my self, have control of the firmware and development.

I was believeing about adding a analog mixer
Kellie Myrum
07.10.2012
Have you looked in to CMD line of controllers?

<< Back to Reviews of DJ equipment Reply

Copyright 2012-2023
DJRANKINGS.ORG n.g.o.
Chuo-ku, Osaka, Japan

Created by Ajaxel CMS

Terms & Privacy