DIY Virtual DJ Midi Usb Controller




Hello guys, I am Gulshan Seetohul from Mauritius Island and in this instructable will show you how to make a diy midi controller for virtual dj.
I decided to make this as midi (via usb and converter software) controllers for virtual dj are too expensive.

It is very important for you to know that this instructable will be built from a cheap $10 gamepad that has at least 2 axes(x,y) and multiple buttons.

Step 1: You Will Need the Following...

You will need

1) A cheap gamepad
2) An electric solder
3) A glue gun
4) Push buttons
5) Potentiometers (depends how many axes your gamepad has). The value i used is 10Kohm as my gamepad originally had 10Kohm ones,it was written on the circuit board.
6) A project box (i used an ice cream box as prototype)
7) Good Soldering skills

Step 2: Opening the Gamepad

Its very easy to open the gamepad, just unscrew the screws and expose the printed circuit board.

Step 3: Find the Right Point of Connections.

Ok, heres the tricky part of the project...
It all depends on your gamepad, once you have the circuit board in hand, you must refer to the layout of the buttons of the gamepad and try to identify where the buttons make contact.

Simply take a piece of wire(about 4 cm in length) and splice the ends, now try different contacts on the pcb and try to determine where are the grounds and where are the positives.

To easily know what buttons are being activated, got to control panel,then to game controllers,it will show you what buttons of the gamepad are being pressed(or activated through the short circuit you are making using the small wire).

Step 4: Solder the Push Buttons

Now that you know where are the contacts that you need, use your skill and solder each contacts to wires,

note that colour coding makes it very easy!!

Step 5: Solder the Potentiometers

Now you have to solder the potentiometers.

To know what are the connections of the potentiometer,simple
refer to the pictures below!

i colour coded mine as below:

Step 6: Put It in a BOx.

Finally,when you complete soldering all the needed wires, find a box and put all in :)

Mine was only a prototype (I didnt even rename the buttons) and i will improve it by putting leds and linear potentiometer (crossfader type).
I will also use a nice and large project box.

To be able to use it as as virtual dj controller, download a software called ''rejoice'' , it is free.
Then you just need to assign the buttons as you want in virtual dj.
For e.g play/pause or sync or effects or whatever function you need.
Do the same for the potentiometers (use as crossfader or equalizer or even volume).



    • Tape Contest

      Tape Contest
    • Arduino Contest 2019

      Arduino Contest 2019
    • Trash to Treasure

      Trash to Treasure

    75 Discussions


    3 years ago

    Hello friend I'd like to know how I connect a linear potentiometer

    GREAT IDEA SOS a genius, I'm from Spain

    1 reply

    Reply 3 years ago

    Hello, you just need to connect the 3 pins on the joystick onto the 3 pins of the linear potentiometer :)
    It will work the same,as long as the linear pot is of the same resistance value as that of the joystick pot.

    Finis VincentB

    3 years ago

    hi there good day .this is vinz.where can i download 64bit rejoice.


    5 years ago on Introduction


    Is there any chances that it will work with TWO GAMPADS BOTH with same FUNCTIONS (Player 1 and Player 2)

    please respond to my comment


    1 reply

    Reply 4 years ago on Introduction

    please read through the comments, i have already replied to this question.
    You need to use "fergo midi joystick" software to combine the 2 gamepads , then you can proceed to mapping out the buttons.

    thanks ;)


    4 years ago on Introduction

    Hello I have a question. I'm building my midi controller and I want to put a light sensor ldr and use it as potentiometer. How do I do it? simply connect the LDR as a button more, or should i add something else? I'm a musician, not electrically. Nor speak English :) Greetings!

    1 reply

    Reply 4 years ago on Introduction

    the LDR should have a range of 0-10K in order for you to use it :)
    check with your local dealer for the LDR values ;)

    check on your board, the value of the potentiometer should be written somewhere there :)
    Else use 10K pots.


    Hi! Very cool instructable! The only thing I don't understand is how you can map the potentiometers in vdj. I've searched and searched, but found no solution :/


    7 years ago on Step 6

    Hi, i make that projecy. I have fergojoystickmidi. It works perfectly on ableton 8.2.2 but not working on Traktor and virtual dj! I dont like ableton I wanna Traktor or virtual dJ! Please HELP!!


    7 years ago on Step 6

    hey gulshan20 nice instructable btw!!! i am about to tare down a ps2 joystick to use it as a midi controller with multicontrol on mac.

    correct me if im wrong.. each analog stick has two axis therefore 2 potenciometers per analog

    am i right? so there are 4 potenciometers per joystick..

    how do i cable a FADER (from an old mixer) to an axis of an analog to use it as a potenciometer instead of using the analog..??

    hope you understood my question
    thanks in advance

    1 reply

    Reply 7 years ago on Step 6

    Yes each stick has 2,on a rotatry potentiometer,there are three connections,namely power,signal and ground.on the slider potentiometer from the mixer also there are three connections,just google to find out which connections do what(signal ground or power) and connect them to the gamepad.


    8 years ago on Step 6

    is it possible to connect a second pad to the first one for more functions
    or seperate?

    1 reply

    Reply 8 years ago on Step 6

    i once tried to figure this out but then later just dropped the idea as i am not using the device often.
    U should basically be able to do it. use rejoice,there is a function of combining 2 or more gamepads and output them to a single midi.
    try it and post your results.thanks for helping and trying further things about the project:)