Mappings for many controllers are already included, but it is also possible to create your own mappings. djDecks supports Keyboards, MIDI devices, HID devices and OSC (Open Sound Control)
When you go to Options->Midi, you will see all devices found. Beginning with the keyboard, then the MIDI devices attached to your computer, the HID devices, and finally OSC.
To use an existing mapping for a device, simply click on the device, and select the correct xml from the drop-down menu.
The controller will be connected, and if succesful you will see 'Connected' next to the controller.
If it still says 'Not Connected', there was an error trying to connect the mapping to the controller.
-It is possible that you selected a device of a different type than the xml's type. (For example, select a MIDI device, but connect it to an xml created for a HID device). In this case, see if the controller is in the list a second time, and try if the second one works.
-The device might be in use by another program. Try closing the other program, and click 'Reconnect'
If you have more than one controller, you may want to use one to control decks 1 and 2, and another one to control deck 3 for example. If the mapping was created to control the first deck, you can apply an offset to the mapping.
To do this, right-click the device, and select '+2' for example.
When you connect your controller after you've started djDecks, or when you unplug it and reconnect it, this will automatically be detected and the controller's selected map will be loaded.
There are some general settings that affect all selected controllers as well.
-Jog Scratch Sensitivity: The higher this value is set, the more sensitive the jog wheel will be, so slow movements will cause more effect
-Jog Bend Sensitivity: The higher this value is set, the more sensitive the jog wheel will be while using it for pitch-bends
-Pitch Slider Relative: When the pitch slider is set to relative, changes made will be relative. So if the pitch on-screen is matched at +5%, and the pitch slider on the controller is centered (0%), when you move it to +1%, the pitch on-screen will increase to +6%.
This mode allows you to use automatic bpm matching, while still allowing you to make small corrections using the pitch slider.
When the pitch slider is set to absolute, the position on the controller will reflect the actual pitch.
-Match Mode: Selects what the match/sync button does. Single makes it synchronize the tempo to match bpm's, Sync Beats will also align the beat positions, and 'Sync Mode' will toggle sync mode on or off, keeping the track's tempo synchronized even when moving the pitch slider on either deck.
The built-in editor can be used to create or edit Keyboard, MIDI and OSC mappings.
To do this, select the device, and then either click 'Edit mapping' to edit the currently selected mapping, or 'Create new mapping' to create a new map from scratch.
You will now see a list with all the mappings that have already been made. These can be selected and deleted using the 'Delete' button or modified at the bottom of the window.
To add a new control, first press 'Add'.
You will notice three drop-downs, 'Input', 'Input Down' and 'Input Up'. 'Input' is used for sliders, rotating knobs, jog wheels, ...
'Input Down' and 'Input Up' are for buttons. The controller will usually send one message when you press the button, and another one when you release the button.
If you are using MIDI or OSC, whenever you move a control on the controller or press a button, you should see the messages the controller sends in the 'Incoming' box.
By clicking the drop-down, you should be able to select to use the most recent messages either as a Slider or as a Button, depending on which control you used. Selecting either will fill in the corresponding fields.
If you are using a Keyboard, go to the 'Input' text box, and press the key you want to map. You can also combine the key with CTRL, SHIFT or ALT. If you do this you will see that the appropriate tab will be selected in the 'tab' drop-down.
When the messages are selected, it is time to select what the message will do. For many controls, the easiest way will be to first click the 'Learn' button, and then click the control you want to use on the skin.
If this doesn't work, or if you want to use a function that isn't available on the skin you're using, manually select the Type of message, Value, ValueSpecifier and Player.
If you can't find what you're looking for, you could use the Skin Helper Utility which helps you search for the object you're looking for and also shows Descriptions. (Use the Search tab)
Finally, don't forget to press 'Save' to save changes to your mapping. Otherwise they will be lost when restarting or when reconnecting the controller.
Some controllers also provide led feedback to see the state of a certain button, or are able to receive feedback from the software to change the position of sliders for example.
If the controller is capable of receiving the same message as it sends for this, then using this output is easy. Simply mark the checkbox 'Send Output' for the buttons or sliders that support feedback.
If this does not work, it is likely that your controller requires special messages to be sent. In this case you will have to edit the xml manually, based on the controller's documentation.
Not all functionality that is supported can be created using the built-in editor. To create advanced mappings including custom scripts and tabs to give single controllers multiple functions you will need to modify the xml with a text editor directly.
You can find the xml files used by djDecks in Program Files\djDecks\devices.
You can find and create your own xml files in the devices subfolder of your user settings folder (use Menu->Open Settings Folder)
The full documentation on how to create these xml files can be found here.
Currently, incoming OSC messages will be received on UDP port 9876. Output messages will be sent on port 9875 to the address the last incoming message was received.
It has been successfully tested using TouchOSC.
The default keyboard mapping included with djDecks (keyboard_default.xml) contains the following shortcuts.
Left arrow Will play the song on the active deck in reverse.
Right arrow Fast forward the active deck.
F2->F4 Play/Pause, Stop, Loop 4 beats on/off for player 1
F6->F8 Play/Pause, Stop, Loop 4 beats on/off for player 2
F9->F10 Pitch 0.1% down, Pitch 0.1% up for player 1, use CTRL for 0.02%
F11->F12 Pitch 0.1% down, Pitch 0.1% up for player 2, use CTRL for 0.02%
q, w Move Cue point for player 1 back or forward, pitch bend +3% when playing
e, r Move Cue point for player 2 back or forward, pitch bend -3% when playing
u,i Pitch Bend Down, Up for Player 1
o,p Pitch Bend Down, Up for Player 2
Home Set Main Volume to 0%
Page Up Increase Main Volume by 10%
Page Down Decrease Main Volume by 10%
a,z s,x d,c Increase, Decrease equalizer Low Mid High for Player 1
f,v g,b h,n Increase, Decrease equalizer Low Mid High for Player 2
Use in combination with ctrl (0.25) or shift (0.125) for slower increase and decrease of the equalizer.
1,2 As long as you keep the number pressed, that song will do a loop roll.
Use in combination with ctrl, alt or shift to change the length of the loop.
ALT+up/down arrow Scroll through the folder list
ALT+left arrow Switch the active playlist between playlist, folder browser and file browser
ALT+right arrow Opens the selected folder
CTRL+up/down Scroll in the active playlist, even if one of the decks is selected
CTRL+left/right Load the selected song in the left or the right player
F1 Set focus to the search field
ESC Exit focus from search field or playlists
djDecks (c)2003-2023 Adion