Monday, March 5, 2012

HID VS Timecode: Comparing Digital DJ Control Systems

HID is one of those shady terms that we’ve all heard, but perhaps aren’t 100% clear on what it is and why we should care. It stands for Human Interface Device, which is a fairly sensible description of what it’s designed for: providing a way for things we interact with to talk to our computers. Today we investigate what HID is really all about and how it differs from timecode DVS systems.
Everything from Xbox pads to Apple keyboards uses HID to communicate with the computer, and there’s been a slow, quiet tide of HID DJ controllers coming in for a few years now too. What is HID good at, what’s it bad at, why do we blindly call any DJ controller a ‘MIDI’ controller, and what’s the point in hooking HID up when timecode works just fine? Let’s take a look.



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.
For CD deck users the deck is already a digital device that itself provides an emulation of a spinning vinyl; the user never touches the disk but instead manipulates a jog wheel that translates its movement to an approximation of how vinyl would behave under the same circumstances. With this level of abstraction, is timecode really the best way to create the link between a DVS and a CD deck?

                            YE OLDE CD

For many of us, CD is becoming an anachronism. The advances in technology over the past few years have allowed us to use computer systems and controllers to be not only our interfaces and libraries, but provide all of the horsepower for our setup too, with looping, effects, EQ, filtering and all of the other sound controls that we take for granted in a constantly updated and refined box. If all you use is CDs, more power to you – but considering that you’re a DJTT reader, you’re probably taking a laptop and a controller to your gig anyway, right? So what are the advantages and disadvantages of hooking up your computer to the CD decks and using them?
A big issue with using timecode CD is that any ‘smart’ functions of the CD deck when it comes to looking at the audio file, such as BPM detection, auto looping, and so on, won’t work – and functions that mess with the audio too much, like micro looping, will make the DVS think the signal is lost and either stop the audio or transfer playback to internal mode and start playing as normal. All the deck can see is the timecode audio, and it’s the DVS system that gets all the song information. Of course, you could use another controller to store loops and cues, but you’d have to be seriously enamored with the feel of a CD deck to use it at 50% power – which is why many of us have moved to controllers anyway.

When it comes to HID support, Serato are really 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). Because latency in HID is almost non-existent, HID can provide even tighter control than timecode – an audio signal that needs to be read and digitized before it’s useful.

                      WHY NOT USE MIDI?

HID runs over a USB connection (of course, it can also run over other connections, such as Bluetooth, if needed). There are some marked advantages over using MIDI, and these stem from the design of the protocol itself. MIDI pushes data to a host device, and so if you want to provide sensitive and accurate control you will often encounter problems with the signal getting overloaded. For instance, instead of just communicating information changes on a jog wheel platter, MIDI will continually relay the jog wheel’s positional information.
An HID device, on the other hand, has a pre-ordained information ‘pool’ for all of the controls that it is configured for, and the communication receives changes into these pools as and when they occur. Building the protocol in this way means that the data received is always within the acceptable limits of the controller’s design, and opens the door to high resolution jog wheel control, display synchronisation, and more.

                         HID DOWNERS

There are disadvantages to using HID, though – this should be obvious or MIDI would long since have gone to visit Fido at the farm. The first issue is that whilst HID is a recognized control protocol, it’s vastly more complex than MIDI. It can do more, but the niche functionality that MIDI has means that manufacturers and software developers can simply drop MIDI functionality into a controller and be reasonably certain that it’ll work fine. Doing the same thing for HID isn’t possible, and compatibility requires developers to work either with each other or reactively to make sure two devices work exactly right together – with no guarantee that all that work will be compatible with anything else.
The case of Pioneer’s CDJ2000/900 is a good example of the issues with HID. Pioneer has built HID control into their flagship CDJs, and in order to maximise compatibility they’ve included both a simple and an advanced mode. It’s up to software developers to decide whether they’d like to develop compatibility for what Pioneer has done, and to what degree. Serato have gone all in and created a more or less perfect connection, whereas Native Instruments’ version is a little more ropey (especially when it comes to high resolution controls like vinyl mode jog wheel manipulation).


All that said, what exactly are the benefits of using timecode? What are the benefits of using HID?
Timecode Benefits:
  • Want to scratch? Timecoded vinyl is the most realistic emulation
  • Works in almost all DJ CD players
Timecode Limitations:
  • Audio cables everywhere!
  • No information on the CD deck
  • CD deck functions like loop and reverse can cause problems for the DVS
HID Benefits:
  • Even less latency possible than timecode
  • Full use of all functions on the deck possible
  • High resolution control and advanced displays
HID Limitations:
  • Requires a USB slot for every deck (and at some point you’ll forget a hub)
  • Non-standard control requires compatibility to be arranged on a per controller/software basis
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!