Introduction - how are controllers implemented in FutureDecks/FutureDJ: Difference between revisions

From Xylio
Jump to navigation Jump to search
(Created page with "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 ...")
 
No edit summary
Line 1: Line 1:
== 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.
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. This is done differently for MIDI and HID controllers.
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
*# '''VID/PID''' - this is the preferred way to detect an HID controller. See below what VID/PID are and how to find them
*# 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

Revision as of 09:36, 6 August 2013

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