MIDI DJ controllers generally come with “JOG” wheels, designed to allow the user to move through the track in a similar fashion to vinyl. These wheels are unfortunately nowhere near sensitive enough for scratching. In addition, the crossfaders included in such controllers are usually of low quality and/or too stiff to allow quick cutting.
The aim of this project is to build a MIDI controller that can be used by scratch DJs. This can be broken down into two main requirements :
The crossfader is the simplest part of the project.
For example : Audio Innovate Innofader
The jog wheel is slightly more complicated. After considering a number of options, I settled on an optical quadrature wheel design. This consists of two photodiodes spaced slightly apart, and a wheel with a pattern of slits round the circumference. By watching the slits go past the photodiodes, you can determine the speed and direction of the turning wheel. Wikipedia has a good page on this.
Old (ball) mice use this exact technique. Which is handy, because if you have any old mice lying around, you can harvest them for optical sensors and LEDs. This is what I did. You can rig up something out of individual photodiodes and an infrared LED if you prefer.
An optical encoder wheel can be made using a transparent acetate sheet and a laser printer.
I put the two photodiodes into two voltage dividers and wired them into pins 4 and 5 of the PIC. The comparators of a PIC18F4620 (or 4685) can be used to avoid extra circuitry.
The MIOS code tracks the encoder wheel, and counts the number of forward and backward steps. Then every couple of milliseconds it sends the relative position as a CC event. The value of the CC is equal to 64 (0x40)plus/minus the number of steps, for example for 10 steps back the value would be 54 (0x36).
There are quite a few DJ applications that support MIDI scratching in this format, the two I've tried are Mixvibes DJ and Native Instruments Traktor. M-Audio Torq doesn't work as of the current version (1.0.6) as it has a bug in the MIDI code.
This is how to build the device the way *I* did it. It's not pretty (see photos) but works acceptably. It could be improved upon immensely if you have any actual construction skills, metalwork experience, access to a CNC mill, etc.
Code can be found in
this forum post.dead link
Here are the RS stock numbers for some of the necessary components.