VDJPedia

Quick Sign In:  


 controlleridentification

Q. How do I find the SysEx ID, VID/PID and/or drivername of my MIDI controller?


VirtualDJ differs from other software in the fact that it automatically detects and uses any supported MIDI/HID controllers that are connected to your system. In other software, controllers usually must be manually chosen and enabled by the user in the program's options.

If you are creating your own definition and mapper for a MIDI/HID controller then you will need find and specify the USB VID/PID, MIDI System Exclusive Identity Request (SysEx ID) and/or device driver name in the definition so that VirtualDJ will be able to uniquely detect and identify the controller.

Sometimes you may also be asked by support staff to find and provide this information if you have a native supported controller that is not working on your system. In some cases, changes/updates by the manufacturer to the firmware can cause a controller to fail to be recognised and the we will need to update its definition.


Finding the USB VID/PID and device driver name:

Every USB device that you plug into your computer has a VID (Vendor ID) and PID (Product ID). In most cases, this will be unique for each different MIDI/HID controller. The exception is where several different controllers are based around the same generic chipset.

To find the USB VID/PID:

On PC:

  • Open the Device Manager (Start -> Devices and Printers -> File menu -> Device Manager)

  • For a MIDI controller, double-click on Sound, video and game controllers or for a HID controller, double-click on Human Interface Devices.

  • You should see your controller listed. Make a note of its driver name, e.g: drivername="MyController"

  • Right-click on it and choose Properties.

  • Click on the Details tab.

  • From the Property drop-down list, choose Device Instance Path.

  • In the value, you will see the 4 digit VID and PID, e.g:

    USB\VID_1234&PID_ABCD&MI_00\9&1C7749FE&0&0000

    The VID/PID in this example is: vid="0x1234" pid="0xABCD"

On Mac:

  • From Finder, click on Go menu -> Utilities.

  • Double-click on System Profiler.

  • Browse to Hardware -> USB.

  • Click on USB and you will see all USB devices connected to your computer listed in the top panel.

  • You should see your controller listed. Make a note of its driver name, e.g: drivername="MyController"

  • Click on the controller and you will see its details in the bottom panel, including its Product ID: (PID) and Vender ID: (VID)



Finding the MIDI SysEx ID (System Exclusive Identity Request):

Most MIDI controllers support and will respond to MIDI System Exclusive IDentity Request. This allows the controller to be uniquely identified via standard MIDI protocol and is important to allow the controller to work on Operating Systems where other methods cannot be used, such as Windows XP. This old Operating System doesn't support VID/PID detection and when querying the driver name, it returns the generic name USB Audio Device, which unfortunately is useless for identification.

SysEx ID simply involves sending the MIDI SysEx message F0 7E 7F 06 01 F7 to the controller. If the controller supports SysEx ID, it will respond with a string of digits that can be used to uniquely identify it. This should be in the following format: F0 7E 7F 06 02 00 00 11 11 22 22 33 33 01 00 00 00 F7

In this example:

7F is the SysEx channel, which can vary, so is normally replaced with wildcards ?? in the definition.
00 11 11 is the manufacturer's ID. If the first byte is 00 then the following two bytes (11 11 in this example) are the manufacturer's 4-byte unique ID. Otherwise, it is a single byte in the range 01 to 7F.
22 22 is the manufacturer's family code, which should normally be the same as the USB VID.
33 33 is the model number, which should normally be the same as the USB PID.
01 00 00 00 is the version number. This will normally change with each revision to the firmware, so this should normally be replaced with wildcards ???????? in the definition.

So the definition's SysEx ID in this example would be: sysexid="F07E??060200111122223333????????F7"

NOTE: HID controllers do not support SysEx ID. It is applicable to MIDI controllers only. For HID, VID/PID is used instead (Unlike MIDI, this is supported on Windows XP.)


To find the SysEx ID:

On PC:

  • Download the MIDItrace tool.

  • With VirtualDJ closed, run MIDItrace.

  • Select your MIDI controller in both sections to the right of the MIDItrace window.

  • Click on the SEND button to send the SysEx ID request F0 7E 7F 06 01 F7 to your MIDI controller.

  • If SysEx ID is supported, you should see a response, e.g: F0 7E 7F 06 02 00 11 11 22 22 33 33 01 00 00 00 F7

    (This may also be followed by a series of other MIDI messages for the knobs, sliders, etc. of the controller. Some MIDI controllers will send the position of these knobs/sliders on receipt of the SysEx ID request to ensure that the software knobs/sliders match the hardware positions.)

On Mac:

  • Use a MIDI monitoring utility to send the SysEx ID request F0 7E 7F 06 01 F7 to the controller.





FAQ Wiki HOME