Quick Sign In:  

Forum: General Discussion

Topic: Native mapping in VDJ8

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

I enjoy scripting, that's for sure.
When doing a custom mapping for a natively supported controller in VDJ8, there are a lot of mapping going on "under the hood" which is not visible in the mapping window.
Is there some way to see all this?
 

Posted Wed 29 Jul 15 @ 7:02 am
djdadPRO InfinityDevelopment ManagerMember since 2005
like what ? An example would help to understand what you mean.
 

Posted Wed 29 Jul 15 @ 8:27 am
For example, how the leds on the play and cue buttons behave.
And how the mapping differentiates between Deck 1 and deck 2 for instance.
You make one mapping for a PLAY button. This will by automatic affect both decks. Somewhere this must be mapped to behave, right?
 

Posted Wed 29 Jul 15 @ 8:54 am
PachNPRO InfinityMember since 2009
2 things for a controller mapping:

1. The definition file. That file contains all midi messages, buttons/ LED and the names for the buttons/ LEDs
2. The mapping file itself. It contains the actions that are executed once a button is pressed.

That for example is the midi table for the VMS 4 controller:
http://adjmedia.s3-website-eu-west-1.amazonaws.com/binaries/vms4-midi-table.pdf

Here is an example for a definition file for a MIDI Controller in Version 8
http://www.virtualdj.com/wiki/ControllerDefinitionMIDIv8.html


Overview:
http://www.virtualdj.com/wiki/ControllerDefinition.html
 

Posted Wed 29 Jul 15 @ 9:35 am
djdadPRO InfinityDevelopment ManagerMember since 2005
MrJackson2014 wrote :
For example, how the leds on the play and cue buttons behave.

In most cases, the LEDs_ (separate keys in mapping) follow the action of their associated key, unless those are assigned with specific actions.
E.g. if the PLAY button is assigned as .. play_pause and the LED is not assigned to any action, it will be On if the action returns true (meaning when the track is playing) and Off if the track is paused.
But if you want a different behavior, e.g. you want the LED to blink when paused, you need to specifically provide an action for the LED_PLAY e.g. as .. play ? on : blink

MrJackson2014 wrote :
And how the mapping differentiates between Deck 1 and deck 2 for instance.
You make one mapping for a PLAY button. This will by automatic affect both decks. Somewhere this must be mapped to behave, right?

If a button/slider/LED is present in both sides of the controller, then we define those by adding the deck number in the definition.
E.g.
<button name="PLAY" note="0x01" deck="1"/> (PLAY button for Deck 1/Left Deck in most cases)
<button name="PLAY" note="0x01" deck="2"/>(PLAY button for Deck 2/Right Deck in most cases)
The above are part of a definition file, which for natively supported controllers are hidden (cant edit)
This way, user just needs to provide the action without adding .. deck x in front of the action and VirtualDJ auto-fills the actions with the necessary deck x part.
If you want to provide a different action for the left key and a different action for the right one (which in most cases,makes no sense), then you need to have something like..
device_side 'left' ? actionForLeftDeck : actionForRightDeck

 

Posted Wed 29 Jul 15 @ 9:48 am
So greatful PachN and DjDad, thank you for detailed info!
 

Posted Wed 29 Jul 15 @ 1:15 pm


(Old topics and forums are automatically closed)