nothingDo nothing. upexecute different actions depending if the key if pressed or released: 'up ? action1 : action2' downexecute different actions depending if the key if pressed or released: 'down ? action1 : action2' isrepeatexecute different actions depending if the key is being repeated or if it's the first message (on Windows, keyboard shortcuts are usually auto-repeated while held down): 'isrepeat ? nothing : goto_cue')
Param
true (or on or yes)returns true false (or no or off)returns false constant (or get_constant)Return the specified value
Example: 'get constant 75%' always returns 75% dimequivalent of "constant 0.1" color_mixMix two colors based on an action in the third parameter
color_mix white red `get_limiter` colorcolor "red"
color "#C08040"
color 0.8 0.5 0.25
color 75% "red" (returns a dimmed red)
color 0.66 (returns a gray) param_bigger (or param_greater)check if the value of the calling slider/encoder/button is bigger than something: 'param_bigger 0 ? sampler loop 200% : sampler loop 50%'
compare value of the first parameter with the value of the second parameter. Both parameters can be actions instead of values: 'param_bigger pitch pitch_slider' param_equalCheck if the value of the calling slider/encoder/button is equal to something
To compare a string with the result of an action, use param_equal `action param` "string". For example: param_equal `get_browsed_song 'type'` "audio" param_containscheck if the value of the calling action contains the string in the parameter param_smallercheck if the value of the calling slider/encoder/button is smaller than something: 'param_smaller 0 ? sampler loop 200% : sampler loop 50%' param_addadd the given value to the value of the calling slider/encoder/button
add the value of the first parameter with the value of the second parameter. Both parameters can be actions instead of values: 'param_add `get_var a` `get_var b`' param_multiplymultiply the value of the calling slider/encoder/button by the given value: 'param_multiply 300% & effect slider'
The parameter can also be an action 'cue_pos 0 & param_multiply "get_time total 1000"' param_1_xinvert the value of the calling slider/encoder/button (calculate 1/x) 'param_1_x & effect slider' param_powparam_pow y : computes the power of the caller to the power of y. Can be 0.5 for calculating square root. param_invertinvert the value of the calling slider/encoder/button (1-x): 'param_invert & pitch_slider' param_modwrap the value of the calling slider/encoder if more than the given value param_pingpongtransform the value of the calling slider/encoder from a linear scale to a forth-and-back scale param_castcast the value of the previous query action into a new type: 'pitch_range & param_cast "percentage"'. Valid types are 'integer', 'float', 'percentage', 'ms', 'boolean', 'beats', 'text'.
casting to text can also optionally limit the number of characters: 'get_browsed_song "artist" & param_cast "text" 5'
to format a number as text with a specific number of digits: 'get_bpm & param_cast "000"'
param_cast 'int_trunc' : provides the integer part of a number without rounding to the nearest integer
param_cast 'frac' : provides the decimal part of a number.
param_cast 'relative' and param_cast 'absolute' : change the parameter to be a relative or absolute value param_deltatransform an absolute value into relative (example: 0.5, 0.7, 0.8 will become +0.0, +0.2, +0.1) param_uppercasechange the text result of the previous element in the script into uppercase param_lowercasechange the text result of the previous element in the script into lowercase param_ucfirstchange the first letter into upper case and the rest in lower case blinkturn on and off the LED, once per second. You can specify the speed: 'blink 1000ms'
Speed can also be specified in number of beats: 'blink 1bt'. The time blinking can also be specified: 'blink 1bt 25%' fadeout'loop & fadeout 10000ms 3000ms' will return 100% when loop is on, and fade out to 0% after 10 seconds in 3 seconds when loop turns off
Alternatively, the action can be entered as the third parameter in backticks: 'fadeout 10000ms 3000ms `loop`' pulsereturn true when the previous action turns to true only for the duration specified: 'is_using 'equalizer' & pulse 2000ms' param_make_discreteuseful for smooth endless encoders, to make them discrete
Example: 'param_make_discrete 0.1 & param_bigger 0 ? loop_move +100% : param_smaller 0 ? loop_move - 100%'
Repeat
repeatrepeat the actions every x ms as long as the key is pressed: 'repeat 1000ms & browser_scroll +1' (default is 500ms if no speed is specified. Second parameter can specify a delay before repeating the first time) repeat_startRepeat an action at a specified interval: 'repeat_start 'myrepeatname' 1000ms 5 & browser_scroll +1' (first parameter is an identifier name, second parameter is the interval and the third optional parameter can specify a number of times to repeat). The first action will be performed after an interval has passed.
The interval can be specified in milliseconds, beats, or can be an action of itself. 'repeat_start 'myrepeatname' 1bt' or 'repeat_start 'myrepeatname `get_var a`' repeat_start_instantRepeat an action at a specified interval: 'repeat_start_instant 'myrepeatname' 1000ms 5 & browser_scroll +1' (first parameter is an identifier name, second parameter is the interval and the third optional parameter can specify a number of times to repeat). The first action will be performed immediately. repeat_stopstop a previous repeat_start or repeat_start_instant action: 'repeat_stop 'myrepeatname'' waitwait for the specified amount of time between two script actions: 'wait 1bt & pause', 'wait 500ms & play' holdingexecute different actions depending if the key is pressed for a long time or not: 'holding ? automix : mix_now'. you can specify the time ('holding 1000ms'), by default it's 500ms. doubleclickexecute different actions depending if the key is pressed twice in a short period of time or not: 'doubleclick ? automix : mix_now'. you can specify the time between two presses ('doubleclick 1000ms'), by default it's 300ms.
Skin
skin_panel (or skin_pannel)show or hide a panel on the skin. "skin_panel 'my_panel' on" skin_panelgroup (or skin_pannelgroup)change which panel from a skin panel group is shown. syntax "skin_panelgroup 'groupname' 'panelname'" or "skin_panelgroup 'groupname' +1" or "skin_panelgroup 'groupname' 0.75" skin_panelgroup_availableset a panel to be available or not. panels that are not available will not show up in group cycles lock_panel (or lock_pannel)NOTE: despite the name, this action acts on <split> elements, not <panel> show_splitpanelShow/hide the specified split panel
Examples: "show_splitpanel 'sidelist'", "show_splitpanel 'sideview' on", "show_splitpanel 'sidelist' 50%" rackOpen/close a unit in specified rack. Example: "rack 'rack1' 'unit1'" rack_soloOpen/close a unit in full size on the specified rack. Closing the unit will re-open the previous configuration. Example: "rack_solo 'rack1' 'unit1'" rack_prioritizePrioritizes a unit of the specified rack. When more configurations with same size are available, the prioritized unit will get most space. Example: "rack_prioritize 'rack1' 'unit1'" custom_buttona custom button is a button with initially no action, but the action can be written in VDJScript by the user custom_button_namereturn (or set) the name for this custom button has_custom_buttonreturns true if this custom button has an action assigned to it custom_button_editopen the custom button editor to set or change the action multibuttonClick on the named multibutton: 'multibutton "my_button"' multibutton_selectOpen the selection menu for the named multibutton.
If a second text parameter is provided after the name, use it as the new action to load in the multibutton: 'multibutton_select "my_button" "goto_cue 2 & play"' zoom (or zoom_scratch)zoom horizontal rhythm and scratch visual zoom_verticalzoom vertical scratch wave switch_skin_variation load_skinload a new skin. Use syntax " load_skin ':newvariation' " to load a different variation inside the same skin file. skin_empty_buttons is_usingcheck if a particular feature is being used ('filter', 'equalizer', 'loop', 'cue', 'sample', 'pads', 'effect', 'load') has_logo get_skin_color has_cover skin_width skin_height skin_starter_tip
System
get_cpuget the cpu activity get_peak_audio get_clockget the current time (use 'get_clock 12' to display AM/PM) get_dateget the current date (use 'get_date "format"' to get the date in a specific format. format can include %Y, %m, %d for year, month and day, %A for weekday) is_pc (or is_windows)return true if the computer is a PC, false if it's a MAC (example: <panel visible="is_pc" />) is_mac (or is_macos)return true if the computer is a MAC, false if it's a PC has_notchreturn true when the display has a notch at the top center and the skin is maximized, false otherwise system debugdisplay the value of the parameter (you can use this to see what values controllers are sending, for example) open_helpopen the user guide get_batteryreturns how much battery is left on your laptop is_batteryreturns true if your computer is running on batteries has_batteryreturns true if your computer has batteries getfoodbecause no DJ should work on an empty stomach show_keyboarddisplay an onscreen keyboard system_volumeChange the system volume of the active sound card when available (use has_system_volume to check) has_system_volumeReturns true when the system volume can be modified handshakePerform an encrypted handshake to ensure that this plugin is currently being called by a real VirtualDJ environment.
Call this passing any string, decrypt the result using VirtualDJ's handshake public key, and check that it matches what you passed.
See the developer documentation on our website for example code.
Variables
var'var "my_var" ? my_action1 : my_action2'. execute my_action1 if my_var is true (non zero), execute my_action2 otherwise.
You can also compare var with a specific value: 'var "my_var" 1 ? my_action1 : my_action2' execute my_action1 is my_var is 1, or my_action2 otherwise var_equalsyntax: 'var_equal "my_var" 42 ? my_action1 : my_action2'. execute my_action1 if my_var equals 42, execute my_action2 otherwise.
syntax: 'var_equal "this_var" "that_var" ? action1 : action2' execute action1 if this_var equals that_var, execute action2 otherwise var_not_equalsyntax: 'var_not_equal "my_var" 42 ? my_action1 : my_action2'. execute my_action1 if my_var doesn't equal 42, execute my_action2 otherwise. var_smallersyntax: 'var_smaller "my_var" 42 ? my_action1 : my_action2'. execute my_action1 if my_var is smaller than 42, execute my_action2 otherwise. var_greatersyntax: 'var_greater "my_var" 42 ? my_action1 : my_action2'. execute my_action1 if my_var is greater than 42, execute my_action2 otherwise. set_var_dialogset_var_dialog 'varname' opens a dialog to enter the value of varname
set_var_dialog 'varname' 'information text' opens a dialog to enter the value of varname, and shows the second parameter as informational text setset 'varname' 5 sets variable varname to the value 5
set 'varname' 'var2' sets variable varname to the value of variable var2
set 'varname' `play` sets variable varname to the value of the action play togglesyntax: 'toggle "my_var"'. toggle my_var between true and false. cyclesyntax: 'cycle "my_var" 42'. increment my_var, and goes back to 0 when it reaches 42. 'cycle "my_var" -42' decrements my_var, and goes to 41 after it reached 0. get_varget the value of the specified variable set_varset the value of the specified variable var_listshow a window with a list of your current variables and their values controllervarvariable that is unique to each controller. You can add # in front of the variable name to make it both deck and controller-dependent
Window
closeclose the application. minimizeminimize the application in the taskbar. maximizemaximize the application to maximized, full screen, or back to windowed.
A specific mode can be selected using "maximize 'windowed'", "maximize 'maximized'" or "maximize 'fullscreen'" show_windowon skin with multiple windows, show or hide the specified window open_stem_creator
Audio
song_posposition in the song. (the difference between song_pos and goto is that song_pos can be used as a slider). gotochange the position in the song. 'goto +10ms' jumps 10ms forward. 'goto -4' jumps 4 beats backward. 'goto 20%' jumps to 20% of the song's length. goto_barput the song on its nth beat after the downbeat without loosing sync: 'goto_bar 4' songpos_remainget the remaining time in %. if used with a parameter (in % or ms), returns true if the time left is less or equal than the value: 'songpos_remain 500ms ? blink'. songpos_warningreturns true if the song is in its last 30s (actual time can be adjusted in options) seekmove into the song while the button is pressed. 'seek +2' moves beat by beat, skipping 2 beats every 10ms. 'seek +420ms' moves from 420ms every 10ms. using skip with a beat number keep the song playing correctly while moving inside. reverseplay the song backward dumpreverse the playback direction while dump is active, then when deactivated, start again forward from where the song should have been if it had been playing forward during the dump.
when quantize_all is active, dump will be quantized to match the beats. This can also be forced by using 'dump quantized' or 'dump notquantized'
to dump only while the key is pressed, use 'dump while_pressed' goto_first_beatautomatically goes to the first beat in the song. goto_startgo to the start of the song. mixermodeReturn true if internal mixer used (master output available), false if external mixer used. Parameter can also be explicit: mixermode "internal" or mixermode "external" beat_juggleAlternatively jumps one beat forward and backward
'beat_juggle 0.5' will jump 1/2 beat forward or backward swap_decksswap deck 1 and deck 2 clone_deckclone the deck (load the same song on the other deck, and play it from the same position, ready for beat-juggling). clone_from_deckclone from the other deck (load the song from the other deck, and play it from the same position, ready for beat-juggling). move_deckload the song from the called deck into the deck specified by the parameter and unloads the song from the calling deck stems_split'stems_split' will duplicate deck 1 to deck 3 or deck 2 to 4, with the vocals playing on the first deck and the instruments on the other deck
'stems_split vocal target' will duplicate the opposite deck to the deck stems_split was called from stems_split_unlinkAfter using stems_split, you can use stems_split_unlink to have the decks behave independently, allowing to scratch the vocals without affecting the instrumental for example dualdeckmodetoggle dual deck mode. when enabled dualdeckmode_decks will apply to both decks 1/3 or 2/4 dualdeckmode_decks beatjumpJump a certain number of beats as set by beatjump_select
'beatjump +1' to jump forward, or 'beatjump -1' to jump backwards beatjump_selectSelect the number of beats the beatjump action will jump
'beatjump_select 4' to set beatjump to 4 beats
'beatjump_select +1' to set the next higher beat size
'beatjump_select 50%' to halve the current beat size
'beatjump_select 200%' to double the current beat size beatjump_pagechange the offset of the jumps in beatjump_pad actions beatjump_padexecute 'goto +x' where x depends on the pad number and the beatjump_page
Audio_controls
playstart the deck. play_stutterif paused, start the deck. if playing, restart from last stutter point. play_pauseif paused, start the deck. if playing, pause the deck. pause_stopif playing, pause the deck. if stopped, rewind to beginning of the song, then cycle through all cue points each time pressed. stopstop to the last cue point, then on second press to the beginning of the song, then cycle through the cue points. pausepause the deck. play_button (or play_3button)depending on the play_mode, act like play_stutter (Numark way) or play_pause (Pioneer way). stop_button (or stop_3button)depending on the play_mode, act like pause_stop (Numark way) or stop (Pioneer way). play_optionsshow a context menu to select the behavior of the play and cue buttons, and the various smart modes auto_sync_optionsshow a context menu to control the various auto-sync options deck_optionsshow a context menu to select the behavior of the play and cue buttons, the various smart modes, and pitch options blink_playblinking fast when less than 10 seconds remaining, blinking slow when less than 30 seconds remaining, off otherwise
'blink_play on' is similar, but is on when the song is paused, and only off if no song is loaded or the loaded song has an error emergency_playplay something
Audio_inputs
mic (or microphone)activate or deactivate the microphone input mic_talkoverLower the volume of all decks while active and activates microphone
Use 'mic_talkover while_pressed' to only activate mic as long as button is held
Use 'mic_talkover 20% 1000ms' to lower deck volumes to 20% and fade to the volume in 1 second. (Defaults are 30% and 400ms) mic_eq_low mic_eq_mid mic_eq_high djc_mic aux_volume lineinActivate or deactivate the linein on this deck.
You can also specify a linein number to assign another linein: "deck 1 linein 2 on"
Or you can assign the microphone or aux input: "deck 3 linein 'mic' on" or "deck 3 linein 'aux' on"
If you don't want the line in to become the master deck automatically, you can use "deck 3 linein 'trs'" linein_recrecord the linein input on this deck. mic_recrecord the microphone input on this deck
Audio_scratch
touchwheel (or scratch_wheel or scratchwheel)used for a jogwheel with touch sensitivity. 'touchwheel +1.0' means a full rotation of the wheel. get_scratch_direction touchwheel_touch (or scratch_wheel_touch or scratchwheel_touch or speedwheel_touch)use when the touchwheel is touched, to hold the song and start to scratch. jogwheel (or jog or jog_wheel)used for a jogwheel without touch sensitivity. 'jogwheel +1.0' means a full rotation of the wheel. motorwheelused for a motorized jogwheel. Each time the jogwheel moves, send 'motorwheel "move" +1.0' followed by 'motorwheel "timestamp" 1000.0'. 'move +1.0' means a full platter rotation. 'timestamp 1.0' means 1ms since last message. You should query 'motorwheel' and turn the motor on when it returns true and off when false. speedwheelused for a precision touchwheel that reports both position and speed. 'speedwheel +1.0 1.5' means a full rotation of the wheel, at 150% speed. vinyl_modeSet the jogwheel to Vinyl mode (with scratch), or to CD mode (with pitchbend) wheel_modechange the mode of the jogwheel between: "jog", "search", "loop_move", "loop_out", "loop_in", "browser", or use +1 and -1 to cycle through all modes. You can select from a subset using a syntax like 'wheel_mode "loop_move,loop_in,loop_out" +1'. hold (or scratch_hold)'hold on' or 'hold off' (or 'hold toggle') to stop the disc for scratching, or release it. scratch'scratch +120ms' to scratch 120ms forward. nudge'nudge +120ms' to nudge the song 120ms forward (using mastertempo if it's activated). slip_modeWhile in slip mode, during loops hotcues or scratch, the play cursor will keep moving unaffected, and will resume from there after release get_slip_active get_slip_timeGet the time where the song will be when slip mode is de-activated in milliseconds
Alternatively, use get_slip_time "min", get_slip_time "sec" and get_slip_time "msec" slipactivate or deactivate a global slip mode, that will save the position on "slip on" and resume where it should have been if untouched on "slip off", letting you do any scratch/loop/effect/etc in between scratch_dnaexecute a scratch defined by its DNA signature (see scratch_dna_editor for information about DNA signatures) scratch_dna_optionset some options about the Scratch DNA behavior. options are "drymix" and "quantized" scratch_dna_editoropen a visual editor to compose scratch DNA signatures
Audio_volumes
crossfader (or crossfader_slider)move the crossfader. crossfader 0% will only let the left deck out, crossfader 100% will only let the right deck out. auto_crossfade (or auto_crossfader)Automatically crossfade to the other deck. You can specify the duration of the crossfade in ms: 'auto_crossfade 2000ms'
Assigned to a slider, or specifying a specific position, it will move the crossfader slowly to that position: 'auto_crossfade 50%' or 'auto_crossfade 1000ms 50%' level (or level_slider or volume or volume_slider)set the volume of the deck muteMute a specific deck mic_volumeSet the volume of the microphone mic2_volumeSet the volume of the second microphone gain (or gain_slider or power_gain)set the gain of a deck gain_labelget the text to display under the gain knob gain_relativechange the gain, relative to the software gain position set_gainset the gain in order to bring the song to the specified dBA (with 0dBA being the maximum level outputable by the soundcard without compression): 'set_gain 0' mono_mixMix left and right channels together for all outputs fake_mixertell VirtualDJ not to apply the volumes to the sound output fake_eqtell VirtualDJ not to apply the equalizer to the sound output fake_gaintell VirtualDJ not to apply gain to the sound output fake_hptell VirtualDJ not to apply headphone volume to headphone sound output fake_hpmixtell VirtualDJ not to apply headphone mix to headphone sound output fake_pfltell VirtualDJ to disable pfl switch from skin, when pfl can only be controlled from controller or mixer fake_mastertell VirtualDJ not to apply master volume to master sound output colorfx_prefadercolor fx are prefader (required for some controllers) fake_filtertell VirtualDJ not to apply filter to sound output master_volumeset master volume headphone_volumeset cue volume booth_volumeset booth volume headphone_mixchange the mix of the PFL (0% is only the cued deck, 100% is the master output). headphone_crossfaderchange the PFL fader (0% is only the left deck, 100% is only the right deck). headphone_gainchange the gain of the PFL output (from -30dB to +30dB) master_balancechange the left/right balance on the master output. levelfader_curve (or fader_curve)select the curve of the level faders. 0% is a linear curve, 50% (default) is a quadratic curve, 100% is a cubic curve crossfader_hamsterinvert the crossfader. crossfader_curveselect the curve of the crossfader. enter a value to adjust the slope from a X curve (0%) to a inverted-U curve (100%). you can also specify common curves by name ("smooth", "full", "scratch", "cut"). or you can draw your own curve, using a syntax like 'crossfader_curve "0=[1,0]/0.5=[1,1]/1=[0,1]"'. crossfader_disabledisable the crossfader get_limiterreturn true if the limiter is compressing because the signal was saturated. Use 'deck 1 get limiter' to get the limiter on a deck in external mixer mode, or 'get_limiter' (or 'get_limiter "master") to get the limiter on the master for internal mixing mode (also can use 'get_limiter "headphones"' and 'get_limiter "booth"') get_levelGet level of signal before master volume. If no deck is specified will get master level
Use "get_level 'mic'" for microphone level, or "get_level 'sampler'" for sampler level
Use "get_level 'vocal'" for vocal vu meter, other stem names also supported get_level_logSimilar to get_level, but returns level on logarithmic scale where -127dB=0.0 and 0dB=1.0 get_level_peakGet peak level of signal before master volume. If no deck is specified will get master peak level. get_level_leftGet level of left channel before master volume. If no deck is specified will get master level. get_level_left_peakGet peak level of left channel before master volume. If no deck is specified will get master peak level. get_level_rightGet level of right channel before master volume. If no deck is specified will get master level. get_level_right_peakGet peak level of left channel before master volume. If no deck is specified will get master peak level. get_vu_meterGet level of signal after master volume. If no deck is specified will get master level.
Use "get_vu_meter 'mic'" for microphone level or "get_vu_meter 'sampler'" for sampler level
Use "get_level 'vocal'" for vocal vu meter, other stem names also supported get_vu_meter_peakGet peak level of signal after master volume. If no deck is specified will get master peak level. get_vu_meter_leftGet level of left channel after master volume. If no deck is specified will get master level. get_vu_meter_left_peakGet peak level of left channel after master volume. If no deck is specified will get master peak level. get_vu_meter_rightGet level of right channel after master volume. If no deck is specified will get master level. get_vu_meter_right_peakGet peak level of right channel after master volume. If no deck is specified will get master peak level. is_audibleactive if the deck is playing and volume is up (on-air) get_crossfader_resultget the actual volume balance between deck 1 and 2, based on crossfader, levels, and play
(use get_crossfader_result "full" to show levels even for paused decks)
Automix
automixStart or stop automatic playlist mixing automix_dualdeckEnable or disable automix using both decks automix_skipWhen automix is active, skip the current song and mix to the next one mix_nowSmoothly crossfade from one side to the other, matching beats when the tempo of both songs is close together
When automix is off, fade speed can be adjusted: "mix_now 4000ms" or "mix_now 4bt" mix_now_nosyncSmoothly crossfade from one side to the other
When automix is off, fade speed can be adjusted: "mix_now_nosync 4000ms" or "mix_now_nosync 4bt" mix_selectedWhen automix is active, mix to the song currently selected mix_nextIf the non-playing deck has a song loaded that has already been played, load a new one from the playlist. Then smoothly crossfade from the playing deck to the other, using beatsync if appropriate mix_next_sidelistIf the non-playing deck has a song loaded that has already been played, load a new one from the sidelist. Then smoothly crossfade from the playing deck to the other, using beatsync if appropriate mix_and_load_nextautomatically mix to the next deck, then stop the current track and load a new song if something is available in the playlist or sidelist
by default this will to a tempo mix and sync bpm if the bpm is in range. You can add 'nosync' to mix without tempo synchronization. 'mix_and_load_next nosync' get_automix_songget a property from the next song in automix: "get_automix_song 'title'"
you can also get properties from songs further down: "get_automix_song 'title' 2" playlist_optionsdisplay a drop-down with the list of options for the playlist. sidelist_optionsdisplay a drop-down with the list of options for the sidelist. automix_add_nextAdd the songs selected in the browser to the automix playlist right after the song currently playing
If a song in the automix list is selected and automix is active, move it after the currently playing song get_automix_positionReturn position of currently playing song in automix list playlist_addAdd the songs selected in the browser to the automix list playlist_load_and_removeLoad the first song in the automix list on the deck, and remove it from list playlist_load_and_keepLoad the first song in the automix list on the deck, without removing it from the list switch_sidelist_playlistExchange the content of the automix list and the sidelist create_list_from_playlist (or create_virtualfolder_from_playlist)Save the automix list in MyLists playlist_randomizeshuffle the order of the songs in the playlist. playlist_randomize_onceshuffle the order of the songs in the playlist once. playlist_repeatrepeat (or stop to repeat) the playlist while automixing. playlist_clearempty the playlist. playlist_savesave the playlist in a file. playlist_remove_playedremove from the playlist all the songs that have already been played since the software was launched. playlist_remove_duplicatesremove duplicate songs from the playlist. automix_editorOpen the automix editor, and fine-tune the automix transitions for every songs in your playlist automix_editor_movetrackWhen the automix editor is opened, move the selected track's position
automix_editor_movetrack 'current' +10
Also accepts 'next' or 'previous' to move the next or previous track. When the number is not given it can be mapped to rotary knobs or jog wheels relay_playEnable or disable the decks to automatically start playing when the opposite deck reached its end get_playlist_timeGets how much time is left before the end of the automix playlist
Browser
add_favoritefoldermake the selected folder a favorite folder (monitored folders). add_filterfoldercreate a new filter folder. add_list (or add_virtualfolder)create a new list (virtual folder). goto_last_folderGo back to the last browsed folder browser_scrollscroll through the songs or folders.
'browser_scroll +1' or 'browser_scroll -1' to scroll one line, or "browser_scroll 'top'", "browser_scroll 'bottom'" to scroll to the beginning or end browser_movebrowser_move +1 : Moves the currently selected song in a playlist down
browser_move 'top' or browser_move 'bottom' : Moves the selected song to the top or the bottom of the list browser_folderif focus is on songs, change focus to folders. if focus is on folders, open or close the subfolders of the selected folder. browser_enterif focus is on songs, load the selected song. if focus is on folders, change focus to songs. browser_open_folderExpand selected folder in browser when closed, or close folder when opened.
You can also use 'browser_open_folder off' to always close the folder, or 'browser_open_folder on' to open a folder browser_removeRemove the selected song from playlist browser_windowChange the active browser zone. "browser_window 'folders'", "browser_window 'songs'", "browser_window 'sideview'", or "browser_window 'automix'", "browser_window 'sidelist'", "browser_window 'sampler'"
Cycle through available browser zones. "browser_window +1", "browser_window -1"
Cycle through specified zones. Example "browser_window 'folders,songs'" searchput the keyboard focus on the search zone, or, if a text parameter is specified, search for this text. search_addadd the specified text to the search query search_deleteremove the last character from the search query clear_searchclear the search string edit_searchput the keyboard focus in the search zone but keep the actual search string. log_searchlog the current search in the SearchLog.txt file, so you can easily search for your failed requests once the gig is over. search_playlistsopen a dialog to search which list contains a specific song
by default it searches for the song selected in the browser. Use "search_playlists deck" to search for the song loaded on the deck. search_folderopen a dialog to search for folders or playlists by name grid_viewput the browser in grid-view mode, optimized for touch screens view_optionspopup the list of view options. to set one directly, you can use 'view_options "showkaraoke" on' etc... sideview_optionsshow the context menu to add or remove folders shortcuts to the sideView sideview_triggerpadset the sideview sampler in triggerpad mode or in list mode file_infoOpen the Tag Editor for the specified or loaded song. browsed_file_infoopen the Tag Editor for the browsed song. browsed_file_colorset the color of the file currently selected in the browser.
Example: browsed_file_color "red"
Use browsed_file_color "reset" to clear the color and set the color back to default browsed_file_revealopen the OS file manager to the browsed song browsed_file_analyzereanalyze the current file selected in the browser
use 'browsed_file_analyze multi' to do a scan for multiple bpms browsed_file_prepare_stemsprepare stems for the file(s) currently selected in the browser browsed_file_reload_tagReload tag of file currently selected in browser. This will overwrite changes made in the VirtualDJ database by what is saved in the file's tag. browsed_file_renamerename the current file selected in the browser set_browsed_file_bpmset the bpm of the selected songs to the set value: 'set_bpm 129.3', or relative to the actual value: 'set_bpm 50%' loadload the selected song on the deck. you can also specify a fullpath to load 'load "path_to_my_song"'. load_pulsereturn a brief false then true again when a new song is loaded load_pulse_activereturn true when a new song becomes audible for the specified duration. Can be delayed using the second parameter.
'load_pulse_active 1000ms 5000ms' will return true for 1 second, 5 seconds after a new song becomes audible loadedreturn true if a song is loaded on the deck undo_loadUnload the song and reload the previous song. Use 'undo_load any' to unload from the last deck a song was loaded on. Otherwise the deck the action is called from is used. unloadunload the song from the deck. browser_isactivereturn true when the browser was used by a controller in the past 6 seconds not_playeddon't mark the song on this deck as 'played'. browser_gotofolder'browser_gotofolder' goes to the folder containing the current file.
'browser_gotofolder "/my_path/my_folder"' goes to the specified folder.
'browser_gotofolder 4' goes to the fourth virtual/favorite folder. recurse_folderdisplay the content of both the selected folder and all its subfolders in the browser list. browser_sortSort the browser files on the specified column: 'browser_sort "artist"', 'browser_sort "lastplay"',...
To sort in descending order, add a - in front of the column name: 'browser_sort "-bpm"'
To explicitly sort in ascending order, add a + in front of the column name: 'browser_sort "+bpm"'
To reset the sort order of a playlist to it's original order, use 'browser_sort "Original Sort Order"' sideview_sortSort the sideview on the specified column: 'sideview_sort "artist"', 'sideview_sort "lastplay"',... playlist_loadLoad the folder or playlist selected in the browser in the playlist.
Use "playlist_load 'append'" to add the selected folder to the playlist instead of replacing the existing playlist sidelist_loadLoad the folder or playlist selected in the browser in the sidelist
Use "sidelist_load 'append'" to add the selected folder to the sidelist instead of replacing the existing sidelist karaoke_loadLoad the folder or playlist selected in the browser in the karaoke list
Use "karaoke_load 'append'" to add the selected folder to the karaoke list instead of replacing the existing karaoke edit_commentopen a window to edit the comment on the selected track. search_optionspopup the list of search options. to set one directly, you can use 'search_options "composer"' to toggle search of the field on or off add_to_list (or virtualfolder_add)Add the currently selected songs in the browser to the specified List. 'add_to_list "my_list"' font_sizeChange browser font size. Example: font_size +1 sidelist_clearclear the sidelist. sidelist_addAdd the songs selected in the browser to the sidelist sidelist_load_and_removeload the first song from the sidelist, and remove it from the sidelist. sidelist_load_and_keepload the first song from the sidelist. karaoke_addAdd the songs selected in the browser to the karaoke list edit_singerPops up the dialog to change the singer of the currently selected song in the karaoke list file_countGet number of files currently shown in browser
You can also use 'automix', 'sideview', 'karaoke' or 'sidelist' as parameter to get the count in other lists. "file_count automix" sideviewShow a specific folder in the sideview. Available sideviews are automix,sidelist,karaoke,sampler,clone
Use 'sideview +1' or 'sideview -1' to scroll between available sideviews sideview_titleShow the title of the folder selected in sideview info_options (or infos_options)show the context menu about the info panel fields and prelisten behavior page save_deck_setSave the current configuration (which song is loaded on which deck) in a file load_deck_setReload a previously saved deck_set file browser_optionsshow the context menu about the browser filters, root folders, database, etc browser_exportExport the current list of files to a CSV or HTML file ratingGet or set the rating for the current song browser_zoom (or browser) browser_geniusdjLookup recommendations based on the items currently selected in the browser
Use 'browser_geniusdj playing' to use the currently playing track instead of the track selected in the browser browser_paddingChange the padding around lines in folder and list views. Example: browser_padding 50% load_nextLoad next track. You can use 'load_next keepplay' to start playing the loaded song if the currently loaded song was playing load_previousLoad previous track sidereco_optionsShow a menu to select what should be displayed in the sideview recommendation panel sidereco_song sidereco_source mark_linked_tracks (or mark_related_tracks)Mark the tracks in deck 1 and 2 as linked. (Linked tracks can be shown in the remixes tab of the sideview) has_linked_tracksReturns true when track has links to other tracks. On a button can be used to show the linked tracks in the sideview
You can also use 'has_linked_tracks browsed' to get the result for the currently browsed track
Passing a script that returns a full file path is also possible using 'has_linked_tracks `script`' has_quick_filterReturn true if quick filter with given index exists quick_filterApply or remove a quick filter on the list of song shown in the browser browser_shortcut'browser_shortcut': assign the current folder as a new shortcut\n'browser_shortcut X': go to the folder assigned to the Xth shortcut
Config
[boxwrap]settings (or config)open the configuration window. smart_loopwhen smart_loop is on, loop are automatically adjusted to sound perfect smart_play (or auto_sync)when smart_play is on, songs are automatically synchronized when started smart_cuewhen smart_cue is on, songs are automatically re-synchronized when jumped to a new position or cue auto_match_bpmwhen Auto Match BPM is on, songs are automatically set to the same BPM when loaded auto_match_keywhen Auto Match KEY is on, songs are automatically set to a compatible KEY when loaded, if possible auto_pitch_lockwhen Auto Pitch Lock is on, pitch_lock engages whenever BPMs are matched, so that moving manually one pitch slider will move the other in order to keep the match quantize_loopwhen quantize_loop is on, loops automatically align according to the globalQuantize setting quantize_setcuewhen quantize_setcue is on, setting cues automatically align according to the globalQuantize setting smart_scratchwhen smart_scratch is on, backward scratching is automatically muted, only forward scratching will be heard play_modeset the mode for play/stop/cue buttons: 'play_mode "numark"', or 'play_mode "pioneer"'. save_config (or saveregistryconfig)save your config changes now (usually changes are saved automatically when you close virtualdj) auto_cueset the auto_cue mode: "off", "on", "always". settingread or write a specific setting (see config window for the list of all settings names)
Example: setting "jogSensitivityScratch" 80%
Example: setting "videoRandomTransition" on setting_setsessionforce a specific value for a setting during this session [box=1-3 cl