If you walk into a club there are usually two “control” devices available: CDJs and turntables. If you are using Serato Scratch or Traktor Scratch, then you have the choice of controlling the software with these two hardware controllers adapted into the digital age. You also have two ways of connecting the hardware with your computer via HID (digital over USB) or through timecode (audio signal over RCA). Which is better and why? That is the deep read for today.
WHAT IS TIMECODE?
Timecode systems (or indeed Serato’s comparable NoiseMap system) are great for reading location and position information on a deck. If the common use for DVS is a user who wants to get the advantages of a computer based digital library but retain the control that they have from their existing decks, timecode/noisemap are the kings of digital vinyl. The user still has the ability to use a record, meaning that their analogue sound source now transmits audio that can be interpreted by a software system into digital information extremely transparently from the user’s perspective. We’ve covered timecode in the past – check out this article for more.
YE OLDE TIMECODE CD
When it comes to HID support, Serato is leading the way with Scratch Live. Connect a Pioneer CDJ2000 to a computer running SL, and you’ll be able to control everything in exactly the same way as the native operation of the CDJ, including extremely precise platter control.
Compare the basic HID support for the CDJ2000 in Traktor to that of timecode and you’ll be disappointed by HID. However, in Scratch Live the control is perfect, and really shows what’s possible (Virtual DJ has a pretty great stab at it too).
WHY NOT USE MIDI?
Platter control is one of the biggest advantages of HID – it allows the designer flexibility in communicating more complicated control types such as platter movement with the host software. The key parameter for platter control is not the platter’s current relative position but its angular velocity. Because of the relatively unpredictable timing of USB MIDI packet transfer this angular velocity (speed of rotation) must be calculated by the device itself.
MIDI: The VCI-100 sends a single relative CC which communicates both the direction and angular velocity of the jog wheel movement. This only allows 63 discrete velocity states for each direction for rotation.
HID: The Native Instruments S2 takes jog wheel does not communicate its velocity, but rather its 10 bit relative angular position at fixed time intervals of 1 ms. This allows the Traktor to calculate the velocity with far greater accuracy than is permitted by MIDI’s inconsistant timing and its low resolution messages.
One other advantage is data efficiency. In general, the state of each interface element on a controller will be communicated to the host with either a note or control change message. A MIDI message is generally three byes long, this means every time any interface element changes state a 3 byte message is sent to the host, if 16 buttons are pressed at once, a MIDI controller will take 48 bytes of data to tell the host. Each of these 16 messages must be parsed and interpreted separately by the host and each will arrive at a slightly unpredictable interval, making- time dependent control types such as platter movement more difficult to implement.
An HID device on the other hand can define the amount of data it uses to describe the state of each control type. For example, a button only requires a single bit to describe its current state, as it can only be off or on at any given time. If an HID device has 16 buttons, it would only need to use 2 bytes of data to communicate the state of all of its buttons.
Another example is the Native Instruments X1, another HID controller. It uses only 24 bytes to communicate the state of its 34 buttons, 8 potentiometers, and 4 encoders. Every time any element changes state, it communicates the state of every element with a single 24 byte packet, as well as which control group was the cause of the state change. This means the software can ignore anything that has not changed state and only needs to parse the relevant data.
These days the disadvantages are generally only relevant to hardware manufacturers who make devices for multiple software platforms. For now, only MIDI presents the advantage of being able to guarantee interoperability with virtually any audio software, whereas currently only Virtual DJ provides an interface which allows users or manufacturers alike to map functionality for any HID device.
Most (if not all) devices which are primarily designed for HID control of a partnered software also have a MIDI mode to allow use with different software platforms, so the user does not really miss out on much more than superior platter performance.
JUST THE 411
All that said, what exactly are the benefits of using timecode? What are the benefits of using HID?
- Want to scratch? Timecoded vinyl is the most realistic sensory emulation
- Works in almost all DJ CD players
- Audio cables everywhere!
- No information on the CD deck
- CD deck functions like loop and reverse can cause problems for the DVS
- Lower latency possible than timecode
- Full use of all functions on the deck possible
- Advanced displays
- Requires a USB slot for every deck (and at some point you’ll forget a hub)
- Inconsistant support across different host softwares
So, do you use timecode with CDJs? Do you use HID, or have an HID based controller that makes you look at MIDI with a pompous air of superiority? Maybe you’re still a pure CD/vinyl DJ. Let us know your thoughts in the comments!
Note From The Editorial Desk: We’ve made a number of edits to this article to reflect feedback on the correctness of some of the information in the original publication. This article should only be treated as a basic introductory comparison of HID and Timecode, and in the future we’ll be taking a closer look at HID and it’s uses. Thanks for your feedback!