The Hercules DJControl MP3 LE Controller is not compatible with modern versions of Windows or Mac anymore. This is due to an error in the USB endpoint descriptor sent by the device. To fix this I created some kind of USB "proxy" device using a Teensy 4.1 that communicates with the controller via its USB Host port and reinterprets its custom binary protocol into class-compliant MIDI. Conveniently, this also removes the need for installing any Hercules drivers on the host machine.
- (Solder T4.1 USB Host pins and connect a USB Host Cable to them)
- Follow the official instructions for installing Teensyduino
- Clone this repro and open it in the Arduino IDE
- Make sure to select "USB Type: MIDI" (or optionally "USB Type: MIDI + Serial" for serial debug) in the Tools menu
- Compile and upload the sketch to your Teensy 4.1
Since the MIDI notes/controls sent by the proxy device do not follow any standard it will be required to create a custom mapping for it in your DJ software. There should be plenty of tutorials out there on how to do that with (for instance) rekordbox, VirtualDJ or Traktor PRO. I created some basic mappings for demonstration:
- djcontrol project for reverse-engineering the proprietary(?) usb communication protocol used by the controller. This project would've been much harder without this.
- PJRC/Teensy and particuarly its fantastic USB Host Library library