Introduction - how are controllers implemented in FutureDecks/FutureDJ

From Xylio
Revision as of 08:36, 6 August 2013 by Admin (talk | contribs)
Jump to navigation Jump to search

General info

Every fully-supported controller is implemented using a .js (JavaScript) script file that resides in the controllers folder on Windows or in the app bundle on Mac (inside the app itself). You can also place controller scripts in the Documents/FutureDecks/controllers folder. This folder is user-accessible and all the controllers here take priority over the ones the software comes with. So, you can basically override a default controller script if you want to.

When FutureDecks starts, all the scripts are detected and compiled (you can use DebugView on Windows / Console on Mac to see any error/debug messages from the scripts). Also at startup, all MIDI and HID controllers are scanned and connected to the software. The software then tries to match every connected hardware controller to a script (it basically detects which of the scripts are meant to implement that specific controller). To do this the software must somehow identify the hardware controller.

How controllers are identified

This is done differently for MIDI and HID controllers. It is important to note that there is an order which the software observes when identifying a specific controller. The order is also the preferred one to use when you implement new controllers.

  • HID controllers
    1. VID/PID - this is the preferred way to detect an HID controller. See below what VID/PID are and how to find them
    2. device HID name - the actual name of the device - this is something which not very reliable but it can be used if for some reason the VID/PID method can not work