Conectar :       Password :       Recuerdame


HIDvsMIDI


HID vs MIDI

Most of the DJ controllers on the market today can be sorted in two categories: MIDI controllers and HID controllers.
Some controllers even provide both interfaces.
But what exactly is the difference between MIDI and HID, and when to use which?

MIDI
The MIDI interface is the old legacy interface, that was developed many years ago to let digital musical instruments communicate together.
It's based on short "messages" that usually represent a button pressed or released, or the movement of a slider.
MIDI is still chosen by some manufacturer because many applications can be compatible with MIDI controllers with little configuration, whereas except for VirtualDJ, software usually need to be specifically developed for one controller to be able to talk to it in HID. (in VirtualDJ, since version 6, HID controllers can now easily be implemented with little configuration too).
But, the main problem with MIDI, is that it cannot track fast movements, and therefore is very ill-adapted for controllers with jog-wheels.
Windows MIDI stack has a built-in speed limit, and will likely crash if it receives MIDI messages too fast.
On Windows VISTA, it will crash much faster than on Windows XP, which requires manufacturers who still want to implement MIDI for their jog-wheel controllers, to implement different settings for latency depending on the operating system.

HID
HID (Human Interface Device), is a sub-protocol of the USB protocol, that is used by devices whose function is to let the human interact with the computer. Mouses, keyboards, joysticks, are examples of HID devices.
The HID protocol lets a DJ controller defines a "page" of an arbitrary length, where each bit or group of bits will represent a button, a slider or a jogwheel.
The conceptual difference between HID and MIDI is that HID is a "pull" model, where the software application will require data whenever it is ready to process them, whereas MIDI is a "push" model, where the controller will force-feed the application with data whether it's ready to process it or not.
This results in a better latency in HID, and allow the controller to have fast-moving elements like jog-wheel, without risking to crash the operating system.
It also let the controllers implement more extensive LCD displays with lines of text etc, and let the application use it, without the usual MIDI bandwidth problems.


So, to summarize, the MIDI interface is an old protocol, that can still be safely used for simple controllers that have only buttons, sliders and LEDs, but is ill-advised for controllers with jog-wheels or LCD displays.
And the HID interface is a newer protocol, better adapted for more complicated controllers, but that might not be compatible with all DJ software (but will always be compatible with VirtualDJ though).


See also:
Implementing new controllers in VirtualDJ 6



Go Back

Wiki HOME

Site map
(C)opyright Atomix Productions 2010

Programas
Hardware
Artículos Diversos
VirtualDJ Pro
VirtualDJ Basic
VirtualDJ Home
VirtualDJ LE
Comparitivo
VirtualVinyl
Numark CUE
AtomixMP3
eJay DJMixStation
DJ-Box
What's new
Características
Pantallas
Versión de prueba
User Manuals
Plugins
Actualizaciones de Software
Material para la prensa
SDK para Desarrolladores
CD de Código de Tiempo
Skins (Pieles)
Efectos de Sonido
Efectos de Video
Samples
Idiomas
Grafx
Herramientas y Controladores
Foros
Usuarios en red
Grupos de Música
Wiki & Manuals
Radio
Web Social
Crear un usuario
Atomix Productions
DJs VIP
Condiciones de Uso
Haga una Pregunta
Vea sus tickets
Wiki & Manuals