*BUILD LOG* 'CDJ 2000'-style DIY Traktor controller

Home :: Reviews of DJ equipment :: *BUILD LOG* 'CDJ 2000'-style DIY Traktor controllerReply
*BUILD LOG* 'CDJ 2000'-style DIY Traktor controller
Posted on: 14.10.2010 by Arcelia Siebeneck
Just in the design stages at the moment but I'm pretty excited by this controller concept... believe it's pretty unique and is a good compromise between a performance 'midi-fighter-esque' controller and a more traditional CDJ/mixer combo. See what you believe:



The screen is a 7" USB screen by Samsung (model U70) and is the most expensive part (about
Rosita Bourdeaux
13.11.2011
Originally Posted by MiL0
nope - the controller has completely changed from the original design
What a shame, well to me at least. I know this is YOUR build but personally I thought that first design was bitchin. I've also been conjuring up a controller this past year and I gotta admit it's a much different device but still has the same concept. It'll probably take me another 6 months or so since i'm challenging myself to make this beast entirely from scratch. Etching circuits and learning firmware/python scripting.

Anyways keep up the awesome work
Kayce Mesia
12.11.2011
Originally Posted by MiL0
nope - the controller has completely changed from the original design (besides, I believe the Eject button was originally intended as a means of loading/unloading the deck in Traktor).
Pictures!
Arcelia Siebeneck
11.11.2011
Originally Posted by MiL0
keeping things underwraps for now... would rather just finish everything off before I post anymore updates.
Temple Guffin
18.08.2011
Originally Posted by chrisw
Also couldnt u have used endless rotary encoders or endless pots?
It depends on what he wants. In his video he mentioned EQs for 4 tracks.
I definitely wouldn't want endless posts on EQs.

I believe endless pots are good for switching between controls with a single knob.
Carlee Pickard
05.11.2012
Any update's on the controller?
Rosita Bourdeaux
13.11.2011
Originally Posted by MiL0
nope - the controller has completely changed from the original design
What a shame, well to me at least. I know this is YOUR build but personally I thought that first design was bitchin. I've also been conjuring up a controller this past year and I gotta admit it's a much different device but still has the same concept. It'll probably take me another 6 months or so since i'm challenging myself to make this beast entirely from scratch. Etching circuits and learning firmware/python scripting.

Anyways keep up the awesome work
Anabel Fogleman
12.11.2011
Amazing project Milo, look forward to the new updates / progress reports!

Cheers
Lee
Arcelia Siebeneck
12.11.2011
haha there's nothing to show... just trying to get everything in place (working on a hopeful commerical or non-profit limited hardware release... more details soon).

i'll create a new thread once I've got something tangible to show to everyone... it literally is a completely new project (albeit one that's been heavily influenced by this thread and everyone who contributed)

for now, probably best to just let this thread die...
Kayce Mesia
12.11.2011
Originally Posted by MiL0
nope - the controller has completely changed from the original design (besides, I believe the Eject button was originally intended as a means of loading/unloading the deck in Traktor).
Pictures!
Arcelia Siebeneck
12.11.2011
nope - the controller has completely changed from the original design (besides, I believe the Eject button was originally intended as a means of loading/unloading the deck in Traktor).
Patrica Giancaterino
11.11.2011
I know you're not showing anything but I saw an ejection button.. are you planning to play CD's with it?
Arcelia Siebeneck
11.11.2011
Originally Posted by MiL0
keeping things underwraps for now... would rather just finish everything off before I post anymore updates.
Golden Faubert
11.11.2011
how's this going... do you have any updated pics of progress?? (also had to get that 200th topic post in!! )
Osvaldo Newhall
11.11.2011
I don't know if anyone suggested this yet as I didn't go through all the pages, but it would look and feel better to work with this if the pitch controls were placed on the right side of the unit instead of left. This way, "traditional" DJs would love to "spin" with it. Other than that, very impressive work there!
Arcelia Siebeneck
11.11.2011
keeping things underwraps for now... would rather just finish everything off before I post anymore updates.

the design and concept has changed drastically by the way.
Cristobal Madhavan
11.11.2011
I love it that this scene of ours attracts people of all talents. More and more EDM is becoming about your rig, how you work it, how it's routed (like custom m4l and reaktor ensembles) than just about the latest track released.
People like Tim Exile, Moldover, BT, Ritchie Hawtin and more pushing the envelope of what a performer in this genre can present.
If you could make that controller with said functionality I'd buy two just to help your biz for competition.
Hoa Koogle
11.11.2011
Good to hear your dusting this one off Milo. This build was one of the reasons I started to go down the DIY route.
How's things traveling with it?
Roselee Jasnoch
10.11.2011
Been following this thread for a long time, really makes me want to take apart my nanokontrol and have a play!
Dannielle Glassey
08.11.2011
Back on, nice to hear that. How far are you now with it and what is the next step you're going to take ?
Arcelia Siebeneck
02.10.2011
well its kinda back on again lol...

thanks for the kind words btw
Dj aziz mastouri
02.10.2011
LMAO!! .........and done. you need to be contacting Novation, Ean Golden and his crew or DJ Tech and putting together a portfolio for them to look at. This design for the controller trapped inside your head could make a massive amount of people happy and possibly you, a future in design.
Arcelia Siebeneck
18.08.2011
this project is on semi-permanent hold for now, I'm sorry to say.

The Novation Twitch pretty much covers what I want, for the right price.
Temple Guffin
18.08.2011
Originally Posted by chrisw
Also couldnt u have used endless rotary encoders or endless pots?
It depends on what he wants. In his video he mentioned EQs for 4 tracks.
I definitely wouldn't want endless posts on EQs.

I believe endless pots are good for switching between controls with a single knob.
Arcelia Siebeneck
29.06.2011
chrisw - you've lost me! what are you referring to?
Cammy Clegg
30.06.2011
Originally Posted by MiL0
yes, a little... but I want to make some solid progress first before I update this thread.

should have something substantial to show in the next month or so
Milo the program change button on the side, and the first pads in the first and second row become a pitch change up and pitch change down if used in ableton.


Also couldnt u have used endless rotary encoders or endless pots?
Arcelia Siebeneck
29.06.2011
yes, a little... but I want to make some solid progress first before I update this thread.

should have something substantial to show in the next month or so
Carlena Dechand
29.06.2011
Any updates?
Arcelia Siebeneck
27.04.2011
http://www.youtube.com/watch?v=8a7NU98fSMI

Small update - slow and steady...
Louisa Oberc
24.04.2011
Originally Posted by Siytek
Yeh your totally right about the usage to run a digital write command, I found this page where this guy had tested the difference between digitalwrite and port manipulation and found port manipulation to be 10 times faster, he also explains how to do it...

http://www.instructables.com/id/Ardu...how-to-fix-it/

Here is the bit of code I use for MUXing, I replaced the code in my last post with this to get things up to speed for multiplexing my LED VU meter, the code is also shorter and 'nice to look at' ...

PHP Code:
void multiplex(byte mp_number_man){
  
 
byte port_b_out[8] = { 0x00x80x40xC0x20xA0x60xE };
 
PORTB port_b_out[mp_number_man]; 
  

This code is quite specific to the pin numbers the MUX control lines are connected to on the Arduino. Both the hex values and 'PORTB' need to be set correctly (the link above explains pretty well). This particular code however, should work if the A,B,C control inputs on the MUX are connected to Arduino pins 11, 10, 9

Or when A/B/C are connected to 8/9/10 you can do:

Code:
void multiplex(byte mp_number_man) {
  PORTB = mp_number_man;   
}
If you look at the datasheet, you'll notice that the addresses for the 4051's inputs are their binary value on the a/b/c pins... so you can set the port value to equal the input that you want.
Lillia Mestdagh
24.04.2011
Originally Posted by DjNecro
Mmmmmm port manipulation... *drool* You can call me Mr. Bit Twiddler

On a serious note though... Direct port access would be pretty much required for any serious project. There's just so much overhead involved when using digitalwrite/read that there's really not much that can be done to speed things up past a certain point.

It can be tricky to wrap your mind around
Yeh your totally right about the usage to run a digital write command, I found this page where this guy had tested the difference between digitalwrite and port manipulation and found port manipulation to be 10 times faster, he also explains how to do it...

http://www.instructables.com/id/Ardu...how-to-fix-it/

Here is the bit of code I use for MUXing, I replaced the code in my last post with this to get things up to speed for multiplexing my LED VU meter, the code is also shorter and 'nice to look at' ...

PHP Code:
void multiplex(byte mp_number_man){
  
 
byte port_b_out[8] = { 0x00x80x40xC0x20xA0x60xE };
 
PORTB port_b_out[mp_number_man]; 
  

This code is quite specific to the pin numbers the MUX control lines are connected to on the Arduino. Both the hex values and 'PORTB' need to be set correctly (the link above explains pretty well). This particular code however, should work if the A,B,C control inputs on the MUX are connected to Arduino pins 11, 10, 9
Louisa Oberc
23.04.2011
Originally Posted by Siytek
This code will work fine for scanning switches or pots but to multiplex LEDs I find its not quite quick enough and they flicker a bit. I use a more advanced technique for switching the control inputs called port manipulation...

http://www.arduino.cc/en/Reference/PortManipulation
Mmmmmm port manipulation... *drool* You can call me Mr. Bit Twiddler

On a serious note though... Direct port access would be pretty much required for any serious project. There's just so much overhead involved when using digitalwrite/read that there's really not much that can be done to speed things up past a certain point.

It can be tricky to wrap your mind around
Seymour Kopec
23.04.2011
Thanks.
I love this community .
Mikki Brasuell
23.04.2011
LMK if you ever want to sell me one of these!
Lillia Mestdagh
22.04.2011
I'm also using the teensy++ but i'm still working on the programming, trying to get the multiplexer running.
Here is a bit of Arduino MUX code you may be interested in First add these two variables to the top of your code...

PHP Code:
int mplex_pins[3] = {91011};
byte mplex_mask 1
The numbers 9, 10, 11 represent the control inputs A, B, C on the MUX. Change these to whatever pin numbers you want to connect your MUX too.

Then add this subroutine to your code...

PHP Code:
void multiplex(byte mp_number) {
  
  
int x 0;
 
  for (
mplex_mask 00000001mplex_mask 0mplex_mask <<= 1){
    
    if (
3){
    if (
mp_number mplex_mask){
      
digitalWrite((mplex_pins[x]), HIGH);

    } else {
      
digitalWrite((mplex_pins[x]), LOW);

    }
   
  }

  
x++;
  
  }

  
0;
  

Now you can use the following line of code to switch your MUX to any desired pin anywhere in your code, where x is the pin number 0 - 7...

multiplex(x);

This code will work fine for scanning switches or pots but to multiplex LEDs I find its not quite quick enough and they flicker a bit. I use a more advanced technique for switching the control inputs called port manipulation...

http://www.arduino.cc/en/Reference/PortManipulation
Blair Turick
22.04.2011
the teensy++ just has more inputs lol i believe all together it has 28 digital and 8 analog. So you can get the 28 digital and 8 analog without any additional hardware. plus it is soooo much smaller then a mega.

as far as the mux goes it should be reasonably straight forward to add the code to make them work, but you really only need them for the analog. if you hook it up as a matrix you could get 196 buttons hooked up on the 28 pins.

On the arduino community there is a pretty good guide to using that mux.

http://www.arduino.cc/cgi-bin/yabb2/...num=1257035971

It seems pretty straight forward. You would then take the new analog inputs names and input them in the code where the analog inputs go. and change the number of inputs

Code:
// Number of digital inputs. Can be anywhere from 0 to 18.
#define NUM_DI 12
// Number of analogue inputs. Can be anywhere from 0 to 6.
#define NUM_AI 14

#ifdef MIDI_FIGHTER
  #define MIDI_CHANNEL 3
  // First note, starting from lower left button
  #define NOTE NOTE_C2
  // When mapping to a MIDI Fighter we need to skip a row of buttons. Set this from 0-3 to define which row to skip.
  // Rows are ordered from bottom to top (same as the MIDI Fighter's button layout).
  #define SKIP_ROW 2
  // This pin order corresponds to the bottom left button being zero, increasing by one as we move from left to right, bottom to top
  // 8  9 10 11
  // 4  5  6  7
  // 0  1  2  3
  // This array size must match NUM_DI above.
  #define DIGITAL_PIN_ORDER 10, 11, 12, 13, 6, 7, 8, 9, 2, 3, 4, 5
#else
  #define MIDI_CHANNEL 1
  // First note, starting from upper left button
  #define NOTE NOTE_C0
  // This pin order corresponds to the top left button being zero, increasing by one as we move from left to right, top to bottom
  // 0  1  2  3
  // 4  5  6  7
  // 8  9  10 11
  // This array size must match NUM_DI above.
  #define DIGITAL_PIN_ORDER PIN_D0, PIN_D1, PIN_D4, PIN_D5, PIN_D7, PIN_E0, PIN_E1, PIN_C0, PIN_C1, PIN_B3, PIN_B2, PIN_B1
//  #define DIGITAL_PIN_ORDER 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53
#endif

#define ANALOGUE_PIN_ORDER A0, A1, A2, A3, A4, A5, A6, aval1, aval2, aval3, aval4, aval5, aval6, aval7, aval8
I underlined and bolded the changes, also if you use any of the digital inputs listed in the code for the mux make sure to take them out of the code. So theoretically if you use those changes and add the code from the arduino community it should work just fine.

I've never used a mux before so i could be wrong, but I just ordered some of those boards so in a few days ill try it out so i can help further if you need it.
Seymour Kopec
22.04.2011
Hi guys,
the arduino board helps a lot.
digital/analog mux: (they are really cheap)
http://www.arduino.cc/playground/Learning/4051
Or analog mux:
http://www.sparkfun.com/products/9056
Or even Encoders:
http://www.arduino.cc/playground/Main/RotaryEncoders

I'm also using the teensy++ but i'm still working on the programming, trying to get the multiplexer running.
My plan is to use some 9056 boards for the analog inputs and some 4051 for the digital and some MAX7219 chips for the LEDs.
http://www.pjrc.com/teensy/td_libs_Matrix.html

Bye
Arcelia Siebeneck
22.04.2011
how do you get more inputs than an Arduino Mega? Are you using a multiplexer?

I've got a couple of these:

http://www.sparkfun.com/products/8970

would it be reasonably straightforward to use your code with a mux? (thanks for posting the code in the other thread btw )
Blair Turick
21.04.2011
Not to jump into this thread super late but as far as the programing goes have you ever looked into the teensy? You can program it using the same IDE as the arduino however it has way more inputs and can do stright midi-usb. I have a midi fighter clone i made with the teensy that does stright midi-usb. If you want a look at the code lemmie know and i'll post it. I modded it for the teensy off a code from instructables. It does a great job with buttons and knobs/faders and all works on a plug and play on any computer with no added drivers.
Torie Hollobaugh
16.04.2011
Originally Posted by michaeldunne109
Nice find way better than hacking apart an old laptop keyboard!
Ever looked at RS?

I've been buying from them for years, they always have what I want. Ok, I build mostly amps and pre-amps, but they have a vast array of components other than semiconductors, incl displays and switches. But I must admit, they're not the cheapest, but defo high quality.

Edit: Forgot the link: http://uk.rs-online.com/web/home.html
Maryanne Weatherill
16.04.2011
Originally Posted by MiL0
This place is amazing sometimes - there can't be anywhere else on the internet that is taking what you can do with Traktor to such an extreme and advanced level. Infact, often when I'm researching for info on various DIY midi controller sites via google, djranking s is nearly always at the top of the google results.

With that in mind, and trying to keep things as organised as possible; would you mind starting a new thread for all this information? I don't mind it being posted in here but it might get lost if anyone tries to search for info about arduino's and lcd displays.
I 2nd that some very extremely smart and intelligent on this community i love coming into this section and reading new posts

<< 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