Quick Sign In:  

Forum: General Discussion

Topic: VDJ scripting first impressions

This topic is old and might contain outdated or incorrect information.

ScooxHome userMember since 2018
I'm a VDJ newbie. I've previously created mappings for Traktor and Deckadance. Here's my thoughts on how these three compare:

Traktor: Mappings editor is very newbie-friendly and works well for very simple mappings, but for complex mappings it's a nightmare come true. If you are a programmer or a script-nut, the mouse-driven interface will no doubt drive you nuts. Furthermore, you can only edit one item at a time. Only 8 "modifiers" (basically variables meaninglessly numbered 1 to 8) that are local to each controller, not global, so each controller lives in it's own little world, in complete isolation from other controllers. Only two "if" conditions (not if-else) per mapping. The editor is so clunky a user went out of his way and reverse-engineered the Traktor mappings file and created an editor that makes life a lot easier (CMDR Traktor Controller Manager). Still, trying to make sense of a complex mapping created by someone else is almost impossible.

Deckadance: It's a very bare-bones DJ application BUT its a joy writing scripts for. Why? Because it uses a C-like scripting language, which means scripts are very easy to write, maintain and read. Nesting, indentation, comments, loops, conditional if-else statements, variable scope, functions that can be reused so you only need to change things in one place, include files. With a tiny bit of C knowledge you can quickly get going if you start off by hacking one of the included scripts. Unfortunately at the moment there is no way for controllers to "talk" to each other so that, for instance, you could use a button on one controller to act as a Shift for another controller. Deckadance scripts can also run code upon program start and exit (for example to initialise a controller e.g. to put a Launchpad S in double-buffered mode), and can also transmit custom sysex messages.

VirtualDJ: Very deep functionality and loads of options. Great mapping possibilities compared with Traktor, but the scripting itself is nowhere near as good as DeckaScript. It appears to revolve around "scriptlets" or "one-liners" that must be written for each hardware control (button, knob, encoder, fader, etc). Because of the one-liner approach, deeply nested conditional statements, which rely on the ternary operator ?:, can be extremely hard to read, unlike in Deckadance where code is almost self-documenting (and in cases where it's not, users can add comments). In VDJ scripts there are no functions (no encapsulation) which means code cannot be reused and must be duplicated each time AFAIK. VDJ scripts support user-defined global parameters which can be read and written by any controller (I could be wrong here), which is a bonus.

I'd say VirtualDJ is the best all-rounder in terms of features and mapping possibilities, but I'm a bit worried scripts might be too much work to maintain. Would like to hear your experience especially if you have experience with other DJ applications. Cheers!
 

Posted Fri 16 Nov 18 @ 3:46 pm


(Old topics and forums are automatically closed)