nothing Do nothing. up execute different actions depending if the key if pressed or released: 'up ? action1 : action2' down execute different actions depending if the key if pressed or released: 'down ? action1 : action2' isrepeat execute 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') 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% dim equivalent of "constant 0.1" color_mix Mix two colors based on an action in the third parameter
color_mix white red `get_limiter` color color "red"
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_equal Check 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_contains check if the value of the calling action contains the string in the parameter param_smaller check if the value of the calling slider/encoder/button is smaller than something: 'param_smaller 0 ? sampler loop 200% : sampler loop 50%' param_add add 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_multiply multiply 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_x invert the value of the calling slider/encoder/button (calculate 1/x) 'param_1_x & effect slider' param_pow param_pow y : computes the power of the caller to the power of y. Can be 0.5 for calculating square root. param_invert invert the value of the calling slider/encoder/button (1-x): 'param_invert & pitch_slider' param_mod wrap the value of the calling slider/encoder if more than the given value param_pingpong transform the value of the calling slider/encoder from a linear scale to a forth-and-back scale param_cast cast 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_delta transform an absolute value into relative (example: 0.5, 0.7, 0.8 will become +0.0, +0.2, +0.1) param_uppercase change the text result of the previous element in the script into uppercase param_lowercase change the text result of the previous element in the script into lowercase param_ucfirst change the first letter into upper case and the rest in lower case blink turn 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`' pulse return true when the previous action turns to true only for the duration specified: 'is_using 'equalizer' & pulse 2000ms' repeat repeat 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_start Repeat 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. repeat_start_instant Repeat 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_stop stop a previous repeat_start or repeat_start_instant action: 'repeat_stop 'myrepeatname'' wait wait for the specified amount of time between two script actions: 'wait 1bt & pause', 'wait 500ms & play' holding execute 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. doubleclick execute 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_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_available set 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_splitpanel Show/hide the specified split panel
Examples: "show_splitpanel 'sidelist'", "show_splitpanel 'sideview' on", "show_splitpanel 'sidelist' 50%" rack Open/close a unit in specified rack. Example: "rack 'rack1' 'unit1'" rack_solo Open/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_prioritize Prioritizes 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_button a custom button is a button with initially no action, but the action can be written in VDJScript by the user custom_button_name return (or set) the name for this custom button has_custom_button returns true if this custom button has an action assigned to it custom_button_edit open the custom button editor to set or change the action multibutton Click on the named multibutton: 'multibutton "my_button"' multibutton_select Open 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_vertical zoom vertical scratch wave switch_skin_variation load_skin load a new skin. Use syntax " load_skin ':newvariation' " to load a different variation inside the same skin file. skin_empty_buttons is_using check 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 get_cpu get the cpu activity get_peak_audio get_clock get the current time (use 'get_clock 12' to display AM/PM) get_date get 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_notch return true when the display has a notch at the top center and the skin is maximized, false otherwise system debug display the value of the parameter (you can use this to see what values controllers are sending, for example) open_help open the user guide get_battery returns how much battery is left on your laptop is_battery returns true if your computer is running on batteries has_battery returns true if your computer has batteries getfood because no DJ should work on an empty stomach show_keyboard display an onscreen keyboard system_volume Change the system volume of the active sound card when available (use has_system_volume to check) has_system_volume Returns true when the system volume can be modified handshake Perform 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. 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_equal syntax: '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_equal syntax: '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_smaller syntax: 'var_smaller "my_var" 42 ? my_action1 : my_action2'. execute my_action1 if my_var is smaller than 42, execute my_action2 otherwise. var_greater syntax: '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_dialog set_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 set set '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 toggle syntax: 'toggle "my_var"'. toggle my_var between true and false. cycle syntax: '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_var get the value of the specified variable set_var set the value of the specified variable var_list show a window with a list of your current variables and their values controllervar variable that is unique to each controller. You can add # in front of the variable name to make it both deck and controller-dependent close close the application. minimize minimize the application in the taskbar. maximize maximize 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_window on skin with multiple windows, show or hide the specified window open_stem_creator song_pos position in the song. (the difference between song_pos and goto is that song_pos can be used as a slider). goto change 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_bar put the song on its nth beat after the downbeat without loosing sync: 'goto_bar 4' songpos_remain get 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_warning returns true if the song is in its last 30s (actual time can be adjusted in options) seek move 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. reverse play the song backward dump reverse 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. goto_first_beat automatically goes to the first beat in the song. goto_start go to the start of the song. mixermode Return true if internal mixer used (master output available), false if external mixer used. Parameter can also be explicit: mixermode "internal" or mixermode "external" beat_juggle Alternatively jumps one beat forward and backward
'beat_juggle 0.5' will jump 1/2 beat forward or backward swap_decks swap deck 1 and deck 2 clone_deck clone the deck (load the same song on the other deck, and play it from the same position, ready for beat-juggling). clone_from_deck clone from the other deck (load the song from the other deck, and play it from the same position, ready for beat-juggling). 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_unlink dualdeckmode toggle dual deck mode. when enabled dualdeckmode_decks will apply to both decks 1/3 or 2/4 dualdeckmode_decks beatjump Jump a certain number of beats as set by beatjump_select
'beatjump +1' to jump forward, or 'beatjump -1' to jump backwards beatjump_select Select 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_page change the offset of the jumps in beatjump_pad actions beatjump_pad execute 'goto +x' where x depends on the pad number and the beatjump_page play start the deck. play_stutter if paused, start the deck. if playing, restart from last stutter point. play_pause if paused, start the deck. if playing, pause the deck. pause_stop if playing, pause the deck. if stopped, rewind to beginning of the song, then cycle through all cue points each time pressed. stop stop to the last cue point, then on second press to the beginning of the song, then cycle through the cue points. pause pause 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_options show a context menu to select the behavior of the play and cue buttons, and the various smart modes auto_sync_options show a context menu to control the various auto-sync options deck_options show a context menu to select the behavior of the play and cue buttons, the various smart modes, and pitch options blink_play blinking 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_play play something mic (or microphone) activate or deactivate the microphone input mic_talkover Lower 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 linein Activate 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_rec record the linein input on this deck. mic_rec record the microphone input on this deck 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. motorwheel used 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. speedwheel used 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_mode Set the jogwheel to Vinyl mode (with scratch), or to CD mode (with pitchbend) wheel_mode change 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_mode While 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_time Get 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" slip activate 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_dna execute a scratch defined by its DNA signature (see scratch_dna_editor for information about DNA signatures) scratch_dna_option set some options about the Scratch DNA behavior. options are "drymix" and "quantized" scratch_dna_editor open a visual editor to compose scratch DNA signatures 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 mute Mute a specific deck mic_volume Set the volume of the microphone mic2_volume Set the volume of the second microphone gain (or gain_slider or power_gain) set the gain of a deck gain_label get the text to display under the gain knob gain_relative change the gain, relative to the software gain position set_gain set 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_mix Mix left and right channels together for all outputs fake_mixer tell VirtualDJ not to apply the volumes to the sound output fake_eq tell VirtualDJ not to apply the equalizer to the sound output fake_gain tell VirtualDJ not to apply gain to the sound output fake_hp tell VirtualDJ not to apply headphone volume to headphone sound output fake_hpmix tell VirtualDJ not to apply headphone mix to headphone sound output fake_pfl tell VirtualDJ to disable pfl switch from skin, when pfl can only be controlled from controller or mixer fake_master tell VirtualDJ not to apply master volume to master sound output colorfx_prefader color fx are prefader (required for some controllers) fake_filter tell VirtualDJ not to apply filter to sound output master_volume set master volume headphone_volume set cue volume booth_volume set booth volume headphone_mix change the mix of the PFL (0% is only the cued deck, 100% is the master output). headphone_crossfader change the PFL fader (0% is only the left deck, 100% is only the right deck). headphone_gain change the gain of the PFL output (from -30dB to +30dB) master_balance change 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_hamster invert the crossfader. crossfader_curve select 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_disable disable the crossfader get_limiter return 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_level Get 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 get_level_log Similar to get_level, but returns level on logarithmic scale where -127dB=0.0 and 0dB=1.0 get_level_peak Get peak level of signal before master volume. If no deck is specified will get master peak level. get_level_left Get level of left channel before master volume. If no deck is specified will get master level. get_level_left_peak Get peak level of left channel before master volume. If no deck is specified will get master peak level. get_level_right Get level of right channel before master volume. If no deck is specified will get master level. get_level_right_peak Get peak level of left channel before master volume. If no deck is specified will get master peak level. get_vu_meter Get 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 get_vu_meter_peak Get peak level of signal after master volume. If no deck is specified will get master peak level. get_vu_meter_left Get level of left channel after master volume. If no deck is specified will get master level. get_vu_meter_left_peak Get peak level of left channel after master volume. If no deck is specified will get master peak level. get_vu_meter_right Get level of right channel after master volume. If no deck is specified will get master level. get_vu_meter_right_peak Get peak level of right channel after master volume. If no deck is specified will get master peak level. is_audible active if the deck is playing and volume is up (on-air) get_crossfader_result get 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 Start or stop automatic playlist mixing automix_dualdeck Enable or disable automix using both decks automix_skip When automix is active, skip the current song and mix to the next one mix_now Smoothly 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_nosync Smoothly 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_selected When automix is active, mix to the song currently selected mix_next If 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_sidelist If 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_next automatically 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_song get 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_options display a drop-down with the list of options for the playlist. sidelist_options display a drop-down with the list of options for the sidelist. automix_add_next Add 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_position Return position of currently playing song in automix list playlist_add Add the songs selected in the browser to the automix list playlist_load_and_remove Load the first song in the automix list on the deck, and remove it from list playlist_load_and_keep Load the first song in the automix list on the deck, without removing it from the list switch_sidelist_playlist Exchange the content of the automix list and the sidelist create_virtualfolder_from_playlist Save the automix list in a virtual folder playlist_randomize shuffle the order of the songs in the playlist. playlist_randomize_once shuffle the order of the songs in the playlist once. playlist_repeat repeat (or stop to repeat) the playlist while automixing. playlist_clear empty the playlist. playlist_save save the playlist in a file. playlist_remove_played remove from the playlist all the songs that have already been played since the software was launched. playlist_remove_duplicates remove duplicate songs from the playlist. automix_editor Open the automix editor, and fine-tune the automix transitions for every songs in your playlist automix_editor_movetrack When the automix editor is opened, move the selected track's position
automix_editor_movetrack 'current' +10
Also accepts 'next' to move the next track. When the number is not given it can be mapped to rotary knobs or jog wheels relay_play Enable or disable the decks to automatically start playing when the opposite deck reached its end get_playlist_time Gets how much time is left before the end of the automix playlist add_favoritefolder make the selected folder a favorite folder (monitored folders). add_filterfolder create a new filter folder. add_virtualfolder create a new virtual folder (unmonitored folder). goto_last_folder Go back to the last browsed folder browser_scroll scroll 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_move browser_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_folder if focus is on songs, change focus to folders. if focus is on folders, open or close the subfolders of the selected folder. browser_enter if focus is on songs, load the selected song. if focus is on folders, change focus to songs. browser_open_folder Expand 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_remove Remove the selected song from playlist browser_window Change 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'" search put the keyboard focus on the search zone, or, if a text parameter is specified, search for this text. search_add add the specified text to the search query search_delete remove the last character from the search query clear_search clear the search string edit_search put the keyboard focus in the search zone but keep the actual search string. log_search log the current search in the SearchLog.txt file, so you can easily search for your failed requests once the gig is over. search_playlists open a dialog to search which playlist or virtual folder 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_folder open a dialog to search for folders or playlists by name grid_view put the browser in grid-view mode, optimized for touch screens view_options popup the list of view options. to set one directly, you can use 'view_options "showkaraoke" on' etc... sideview_options show the context menu to add or remove folders shortcuts to the sideView sideview_triggerpad set the sideview sampler in triggerpad mode or in list mode file_info Open the Tag Editor for the specified or loaded song. browsed_file_info open the Tag Editor for the browsed song. browsed_file_color set 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_reveal open the OS file manager to the browsed song browsed_file_analyze reanalyze the current file selected in the browser
use 'browsed_file_analyze multi' to do a scan for multiple bpms browsed_file_prepare_stems prepare stems for the file(s) currently selected in the browser browsed_file_rename rename the current file selected in the browser set_browsed_file_bpm set the bpm of the selected songs to the set value: 'set_bpm 129.3', or relative to the actual value: 'set_bpm 50%' load load the selected song on the deck. you can also specify a fullpath to load 'load "path_to_my_song"'. load_pulse return a brief false then true again when a new song is loaded load_pulse_active return 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 loaded return true if a song is loaded on the deck undo_load Unload 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. unload unload the song from the deck. browser_isactive return true when the browser was used by a controller in the past 6 seconds not_played don'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_folder display the content of both the selected folder and all its subfolders in the browser list. browser_sort Sort 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_sort Sort the sideview on the specified column: 'sideview_sort "artist"', 'sideview_sort "lastplay"',... playlist_load Load 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_load Load 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_load Load 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_comment open a window to edit the comment on the selected track. search_options popup the list of search options. to set one directly, you can use 'search_options "composer"' to toggle search of the field on or off virtualfolder_add Add the currently selected songs in the browser to the specified Virtual Folder or Playlist. 'virtualfolder_add "my_vfolder"' font_size Change browser font size. Example: font_size +1 sidelist_clear clear the sidelist. sidelist_add Add the songs selected in the browser to the sidelist sidelist_load_and_remove load the first song from the sidelist, and remove it from the sidelist. sidelist_load_and_keep load the first song from the sidelist. karaoke_add Add the songs selected in the browser to the karaoke list edit_singer Pops up the dialog to change the singer of the currently selected song in the karaoke list file_count Get number of files currently shown in browser
You can also use "file_count automix" and "file_count sideview" to get the number of files in automix or sideview sideview Show 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_title Show 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_set Save the current configuration (which song is loaded on which deck) in a file load_deck_set Reload a previously saved deck_set file browser_options show the context menu about the browser filters, root folders, database, etc browser_export Export the current list of files to a CSV or HTML file rating Get or set the rating for the current song browser_zoom (or browser) browser_geniusdj Lookup 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_padding Change the padding around lines in folder and list views. Example: browser_padding 50% load_next Load next track. You can use 'load_next keepplay' to start playing the loaded song if the currently loaded song was playing load_previous Load previous track sidereco_options Show a menu to select what should be displayed in the sideview recommendation panel has_quick_filter Return true if quick filter with given index exists quick_filter Apply or remove a quick filter on the list of song shown in the browser settings (or config) open the configuration window. smart_loop when 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_cue when smart_cue is on, songs are automatically re-synchronized when jumped to a new position or cue auto_match_bpm when Auto Match BPM is on, songs are automatically set to the same BPM when loaded auto_match_key when Auto Match KEY is on, songs are automatically set to a compatible KEY when loaded, if possible auto_pitch_lock when 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_loop when quantize_loop is on, loops automatically align according to the globalQuantize setting quantize_setcue when quantize_setcue is on, setting cues automatically align according to the globalQuantize setting smart_scratch when smart_scratch is on, backward scratching is automatically muted, only forward scratching will be heard play_mode set 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_cue set the auto_cue mode: "off", "on", "always". setting read or write a specific setting (see config window for the list of all settings names)
Example: setting "jogSensitivityScratch" 80%
Example: setting "videoRandomTransition" on setting_setsession force a specific value for a setting during this session setting_setsession_deck force a specific value for a setting during this session for a specific deck setting_setdefault change the default value for a setting during this session setting_reset reset a setting to its default value setting_ismodified fader_start enable or disable fader start get_lemode return true if we are running a LimitedEdition apply_audio_config eventscheduler_start Start the Event Scheduler (can specify one specific saved schedule: eventscheduler_start 'summer_wedding') eventscheduler Open the Event Scheduler connect get_controller_name return the name(s) of the controller(s) assigned to this deck get_ns7_platter get_denon_platter get_pioneer_loop_display get_controller_image Use in controller mappings to get the cover art from deck for use on controllers with screens get_pioneer_display pioneer_play On when playing, off when no track loaded, blinking when paused or playing with cue stutter pioneer_cue On when playing or paused on cue, blinking when paused and not on cue, off when no track loaded numark_waveform_zoom Set numark waveform zoom (value from 0 to 3, or +1, -1 to step through zoom levels) get_numark_waveform get_rotation_cue get the angle of the cue point on the disc get_rotation_slip get the angle of the slip point on the disc when slip is active, or regular get_rotation otherwise get_numark_beatgrid get_numark_songpos get_gemini_display get_gemini_waveform gemini_waveform_zoomlevel get_denon_cuepoints 'get_denon_cuepoints 100' for a led bar with 100 leds. Number must match the number of leds in the led bar in the definition. menu_button defines a button whose behaviour can be changed by a menu. Syntax: 'menu_button 1 "hotcue,sampler,effect,loop"'. menu display a menu on the controller's screen, that allows to change the behaviour of the menu_buttons. you can navigate through the menu using the browser_scroll action'. menu_cycledisplay on single-line controllers, cycle display when no menu is shown between artist - title, artist or title get_display get some text to display. depending on the latest action, it can be the name of an effect, the folder being browsed, the title of the current song, etc... for multiline displays, you can add the line number: "get display 1", "get display 2". shift set or query the built-in shift variable, used for controllers display_time set the mode to display time: "total", "remain", "elapsed", +1 or -1. show_text Show text on controller display. (If your controller uses get_display for the displays)
"show_text 'Line 1|Line 2' 3000ms" will show 2 lines of text for 3 seconds (time optional, | separates lines)
"show_text '$myvar$'" shows the contents of the variable $myvar action_deck return true if the button calling this action is on the specified deck: 'action_deck 1 ? actionA : actionB' set_deck use script or implicit variable to affect which deck the action is applied to
example: 'set_deck `get_var varname` & play' device_side Assign a different action for a button or slider of a device depending on which side of the device it is on: "device_side 'left' ? action_for_left : action_for_right"
For more than 2-deck controllers, you can use "device_side 1 ? action1 : device_side 2 ? action2 ? device_side 3 ? action3 : etc..." invert_controllers Invert the deck of the controllers rescan_controllers rescan for newly connected controllers. reinit_controller Reinit the specified controller (or all if none specified), going through the exit and init sequences (you can specify a delay between exit and init: "reinit_controllers 'mycontroller' 200ms". midiclock_active Toggle sending midiclock to the specified controller miditovst_active Toggle sending midi from a specific controller to the specified deck's VST instruments or effects refresh_controller refresh the display of the specified controller (or all if none specified). assign_controller Assign a specific controller to this deck.
'deck 1 assign_controller "CDJ400" 2' assigns the second CDJ400 to deck 1
Or in a controller mapping 'deck 1 assign_controller' will assign the controller the action was executed from to deck 1. ns7_platter v7_status motor_switch assign this deck to be controlled by the motorized wheel denon_platter motorwheel_instant_play when set to on, the song will start instantly, bypassing the ramp up time the motor takes to reach its full rotation speed (the drawback is that then you cannot hold the disc still when your start the motor) djc_shift djc_button djc_button_popup djc_button_slider djc_button_select djc_panel mixer_order For controllers with 4 decks, specify the order of the decks, from left to right. Default: "mixer_order 3124" effect_fxsendreturndeck effect_fxsendreturndeck_multi Select which source to apply fx to for a specific send/return channel in case there are more than one
'deck 1 effect_fxsendreturndeck_multi master' : Apply master fx on the first fx send/return pair
'deck 2 effect_fxsendreturndeck_multi mic' : Apply mic fx on the second fx send/return pair
'deck 2 effect_fxsendreturndeck_multi 4' : Apply deck 4 fx on the second fx send/return pair effect_fxsendreturnenable os2l_button Send a command to a DMX software over OS2L: 'os2l_button "blackout"', 'os2l_button "fog machine" while_pressed', etc.
If you want to specify a page, you can use 'os2l_button "mypage" "mybutton"'.
If the DMX software doesn't send feedback commands, os2l_button acts as a flash button (it sends 'on' when pressed, 'off' when released) - use 'os2l_button "mybutton" on' to not send commands on release.
If the DMX software sends feedback commands, os2l_button acts as a toggle button (it sends the opposite of the last feedback when pressed, nothing on release) - use 'os2l_button "mybutton" while_pressed' to send a command on release. os2l_scene similar to os2l_button, but sends 'on' to the DMX software only if the button was not active yet, and only if the deck is audible. (requires feedback from the DMX software)
when the deck is not audible, the scene will be queued and started when the deck becomes audible
os2l_scene "mypage" "myscene" os2l_cmd Send a numeric command to a DMX software over OS2L: 'os2l_cmd 42 on' or 'os2l_cmd 43 50%' os2l_info rzx_touch rzx_touch_x rzx_touch_y controller_mapping Assign a mapping to a controller
'controller_mapping "My Mapping"' assigns the mapping 'My Mapping' to the controller the command was executed on
'controller_mapping "CDJ400" "My Mapping"' assigns the mapping 'My Mapping' to all CDJ400s
'controller_mapping "CDJ400" "My Mapping" 2' assigns the mapping 'My Mapping' to the second CDJ400 controllerscreen_deck keyboard_shortcuts Map to CTRL or ALT. While pressed will show keyboard overlay in browser. Double-press to activate sticky keys.
Accepts time to delay showing overlay (keyboard_shortcuts 500ms). In scripts can also be used to turn on or off the overlay manually (keyboard_shortcuts on) cue_stop if playing, pause and go to the last cue point. if paused, set the current position as cue point, and preview the cue as long as pressed. you can specify a number ('cue_stop 1', 'cue_stop 57') to work with several cues. cue_play if playing, pause and go to the last cue point. if paused, set the current position as cue point, and preview the cue as long as pressed. if you kept pressed more than 2s (or the time specified), it will continue playing once you release. syntax: 'cue_play 1 1000ms' cue if playing, go to the last cue point and continue playing. if paused, set the current position as cue point, and preview the cue as long as pressed. if in loop, change loop_in to the cue point but keep the loop's length. you can specify a number ('cue 1', 'cue 57') to work with several cues. hot_cue (or hotcue) if no cue point is set, or if 'cue', 'cue_stop' or 'cue_play' is pressed, set one at the current position. otherwise go to the cue point and start or continue playing. if in loop, set the cue point as new loop_in but keep loop_length. you can specify a number ('hot_cue 1', 'hot_cue 57') to work with several cues. silent_cue Mute track when enabled until a hot cue is activated cue_select Select the nth cue point as default cue point for cue, hotcue, etc.. actions. Does not change position to the selected cue point. cue_cup if playing, rewind to the last cue point, and start again on release. if paused, set the current position as cue point. cue_button (or cue_3button) act like cue_stop, cue_play or cue_cup depending on the cueMode setting set_cue store the current position in the cue. if one parameter is given, it's the number of the cue to use. if two parameters are given, the second is the position to store, in ms, in beats, or in percentage of the song length. goto_cue Go to the specified cue. Example "goto_cue 1", "goto_cue +1", "goto_cue -1"
"goto_cue" will jump to the currently selected/last used cue. delete_cue Deletes a stored cue point. If no cue number is specified, it will delete the currently active cue point cue_pos "cue_pos 1" returns the position of cue point #1 as a percentage
"cue_pos 1 msec", "cue_pos 1 sec", "cue_pos 1 min" returns the position of cue point #1, msec, sec and min parts
"cue_pos 1 mseconly" returns the position of cue point #1 in milliseconds
"cue_pos 1 beats" returns the position of the cue point in number of beats from first beat cue_name "cue_name 1" returns the name of cue point #1, or changes the cue point when pressed cue_action get_cue returns the currently active cue, or 0 if no cue point is active has_cue returns true if the specified cue number is set cue_countdown count down to the next cue (or end) in beats cue_countup count up from the last cue point (or start) in beats cue_counter count up or down to the nearest cue point in beats lock_cues lock/unlock the cues for this particular song, so that cue actions cannot inadvertently modify them while you're playing shift_all_cues shift all the cues of the song from the given amount (can be used to fix the cues from v7 imported files in case the automatic fix didn't work properly): 'shift_all_cues -10ms' cue_color query or set the color of a cue point
Query example: cue_color 1
Set example: cue_color 1 'yellow' cue_loop Jump to a cue and stay in a loop. Use cue_loop_hold to select if loop is temporary, or stays until pressed again. When the cueLoopAutoSync option is enabled, jumping to the cue is beat synchronized cue_loop_hold Toggle cue_loop between looping while pressed and turn loop on/off cue_loop_autosync cue_display Show information about a cue point based on the cueDisplay config option.
Example: 'cue_display 1'
Can also be used to modify the cueDisplay option by using +1 or -1 as parameter: 'cue_display +1'
The cueDisplay option can also be set by name: 'cue_display name' sort_cues sort cue points chronologically cues_options Show some options about cues select select this deck as 'working deck'. the beat of the working deck will be shown in front in the display, and shortcuts and actions with no specified deck will affect this deck.\nUnless PFL has been set manually, the PFL will also follow the working deck. masterdeck_auto remove the masterdeck selection and put back automatic masterdeck behavior masterdeck select/unselect this deck as 'master deck'. When a master deck is set, all synchronization operations will take the master deck as reference. (for skins with more than 2 decks) leftdeck select this deck to be the left deck: "deck 3 leftdeck" or "leftdeck +1" rightdeck select this deck to be the right deck: "deck 3 rightdeck" or "rightdeck +1" invert_deck switch leftdeck between deck 1 and deck 3 or rightdeck between deck 2 and deck 4
"invert_deck" to swap the calling deck, or "invert_deck 'left'", "invert_deck 'right'" to specifically switch left or right deck leftcross assign this deck to the left of the crossfader: "deck 3 leftcross"
"deck 3 leftcross 'only'" to assign only deck 3 to left of the crossfader
"leftcross 'none'" to disable the left crossfader rightcross assign this deck to the right of the crossfader: "deck 3 rightcross" cross_assign assign this deck to a side of the crossfader: "deck 3 cross_assign 'left'" or "deck 3 cross_assign 'thru'" pfl select if this deck is sent to the headphones. (can be used with a slider or a % to specify the volume: 'pfl 75%') get_deck_color return blue or red if the deck is the left deck or right deck (and gray otherwise). Can be used with a darkness modifier: 'get_deck_color 50%'
Use 'get_deck_color "absolute"' or 'get_deck_color "absolute" 50%' to get a color based on actual deck rather than left/right (red for deck 1, blue for deck 2, orange for deck 3, green for deck 4) eq_mode Select the behavior of the EQs knobs (frequency, modernEQ or EZRemix)
Can be used to switch between Frequency and your preferred stems mode using 'eq_mode +1'
To select a specific behavior, you can use "setting eqMode frequency" or "setting eqMode modernEQ" for example mute_stem mute one stem. Stem names are: "HiHat", "Vocal", "Instru", "Bass", "Kick", or you can use aggregate stems: "Melody" (Instru+Bass), "Rhythm" (HiHat+Kick), "MeloRhythm" (Instru+Bass+HiHat+Kick) only_stem keep only one stem. Stem names are: "HiHat", "Vocal", "Instru", "Bass", "Kick", or you can use aggregate stems: "Melody" (Instru+Bass), "Rhythm" (HiHat+Kick), "MeloRhythm" (Instru+Bass+HiHat+Kick) stem_pad mute a stem (or isolate if pressed with Shift). Stem names are: "HiHat", "Vocal", "Instru", "Bass", "Kick", "Rhythm", "MeloRhythm", "Acapella", "Instrumental" has_stems Return true if the track has stems available. Can also be called with 'has_stems "2.0"' to check for new engine, or 'has_stems "ready"' to check if stems are ready at the current playing position stems_bleed Control how much the fast stems separation algorithm will allow bleeding. The action affects one of the four bleeding values (MuteVocal, MuteInstru, OnlyVocal, OnlyInstru) depending on what is currently muted or isolated on the deck. (NOTE: this does nothing on the regular HiQuality algorithm) high_label mid_label low_label eq_high (or eq_high_slider) change the amount of HiHat, Vocal or High (depending on EQ control mode). eq_mid (or eq_med or eq_mid_slider) change the amount of Melody, Vocals or Medium (depending on EQ control mode). eq_low (or eq_low_slider) change the amount of Kick or Low in the mix (depending on EQ control mode). stem Change the amount of a stem in the mix. Stem names are: "HiHat", "Vocal", "Instru", "Bass", "Kick", or you can use aggregate stems: "Melody" (Instru+Bass), "Rhythm" (HiHat+Kick), "MeloVocal" (Melody/Vocal).
To get kill on left side and isolate on right side of the slider, you can use "FullVocal", "FullMelo" and "FullRhythm" eq_high_freq set the treble equalizer eq_mid_freq set the medium equalizer eq_low_freq set the bass equalizer eq_kill_high mute the treble eq_kill_mid (or eq_kill_med) mute the medium. eq_kill_low mute the bass. eq_crossfader_high crossfade the treble between both decks eq_crossfader_mid (or eq_crossfader_med) crossfade the center frequencies between both decks. eq_crossfader_low crossfade the bass between both decks eq_reset reset the equalizer. filter_activate enable or disable the deck filter filter (or filter_slider) apply the selected colorfx to the sound (nothing applied at 50%, and more applied the farther from the center) filter_label get the text to display under the filter knob
(use filter_label "clean" to always get the value, and filter_label "name" to always get the name) filter_resonance change the resonance of the filter filter_selectcolorfx Select the color effect controlled by the filter knob get_beat get the intensity of the beat at the current position (0% to 100%). get_beat2 get the intensity of the beats from both decks at the same time. get_beatgrid get the intensity of the beat based on the beatgrid (100% if on the beat, 0% if halfway between to beats). get_beatpos get the current position in beatgrid coordinate (27.5 would mean halfway between the 27th and 28th beats in the song). get_beatdiff Get the distance between the beat from this deck and the beat from the active deck
50% means the deck are aligned, 0% means this deck is late half a beat, 100% means it is ahead half a beat
'get_beatdiff 4' will return the distance percentage between bars instead of beats get_bpm Get the bpm of the song
Use 'get_bpm absolute' to get the original bpm of the song (not changing when changing the pitch) get_firstbeat get the position of the first beat (in milliseconds) get_firstbeat_local get the position of the first beat in the current phrase 16 beats (in milliseconds) get_time get the elapsed time (or remaining or total depending on "display_time"), in milliseconds.
Use 'get time 1000' to get another unit than ms (1000=ms, 25=1/25th of seconds, 44100=frames, etc).
Use "elapsed", "remain" or "total" to bypass the setting of display_time. Use "absolute" not to take the pitch into account.
On texts, use "short" to hide the decimals. Example: get_time "remain" "short" get_time_sign Get the sign (-1 or +1) of the elapsed time (or remaining or total, depending on "display_time")
You can write 'get_time_sign "elapsed"' or "remain" or "total" to bypass the setting of display_time get_time_hour Get the hours of the elapsed time (or remaining or total, depending on "display_time")
Use 'get_time_hour "absolute"' if you don't want to take the pitch variations into account
You can write 'get_time_hour "elapsed"' or "remain" or "total" to bypass the setting of display_time get_time_min get the minutes of the elapsed time (or remaining or total, depending on "display_time"). use 'get time_min "absolute"' if you don't want to take the pitch variations in account. you can write 'get time_min "elapsed"' or "remain" or "total" to bypass the setting of display_time get_time_sec get the seconds of the elapsed time (or remaining or total, depending on "display_time"). get_time_ms get the 1/100th seconds of the elapsed time (or remaining or total, depending on "display_time")
use 'get_time_ms 1000' to get the actual milliseconds get_time_msf get the MSF frame of the elapsed time (or remaining or total, depending on "display_time"). get_totaltime_min get the minutes of the length of the song get_totaltime_sec get the seconds of the length of the song get_totaltime_ms get the 1/100th seconds of the length of the song get_totaltime_msf get the frames of the length of the song get_rotation get the angle of the disc get_arm get the position of the turntable arm get_position get the position in the song get_automix get the position of the automix crossfader get_volume get the volume applied by both the volume sliders and the crossfader get_deck get the number of the deck get_deck_letter get the letter of the deck get_spectrum_band get the level of a single spectrum band. 'get_spectrum_band 1'
Use 'deck master' in front to get spectrum of the master deck 'deck master get_spectrum_band 1'
By default there are 32 bands get_plugindeck For use in plugins. Returns 1,2,etc... when plugin is active on a deck, 0 for master, -1 for sampler, -2 for mic get_defaultdeck get the number of the default deck get_leftdeck get the number of the left deck get_rightdeck get the number of the right deck get_activedeck get the number of the sync master deck get_decks get the total number of decks of the current skin (can also be used with argument to compare: 'get_decks 4' returns true if 'get_decks' would return 4, false otherwise) get_custom_text get_beat_counter get the position of the beat counter get_beat_num "get_beat_num" returns a value between 1 and 4 indicating the beat in the measure
"get_beat_num 1 4" returns true when the first beat of the measure is currently playing
"get_beat_num 1" returns true when the first beat of a 4-beat measure is currently playing (works from 1 to 4)
"get_beat_num 16" returns a percentage indicating the beat position in a 16-beat phrase (works with any phrase number larger than 4) get_phrase_num "get_phrase_num" returns a value between 1 and 4 indicating the measure number
"get_phrase_num 1" returns true when the first measure of the phrase is currently playing get_bar returns the current bar number (1 bar = 4 beats) get_beat_bar get the position in % in the 4:4 bar (or in 4:16 if called with 'get beat_bar 16') get_filepath get the filepath of the song on the deck get_filename get_filesize get_artist get_title get_title_remix Return combination of title and remix: "Title (Remix)". get_title_before_remix Return title of the track. If remix is empty, the part in brackets in the title is removed (and shown by get_remix_after_title) get_remix_after_title Return remix of the track loaded on the deck like "(remix)" Remix will automatically be extracted from title if remix field is empty get_artist_before_feat Return artist of the track, with 'featuring' stripped get_featuring_after_artist Return featuring artist, stripped from artist or title field get_artist_title_separator Return a dash ( - ) if there is both an artist and a title get_artist_title get_title_artist get_album get_year get_genre get_composer get_songlength get the length in seconds of the song on the deck get_comment get_version Returns version as text such as "2023" get_build Returns build number get_membership get_license get_hwnd return the Windows handle to VirtualDJ's window get_vdj_folder return the home folder of VirtualDJ. get_browsed_selection_index 'get_browsed_selection 1 3' returns true if the first line is the selected line in a browser 3 lines high
'get_browsed_selection 3' returns the line number of the selected line in a browser 3 lines high (between 1 and 3) get_browsed_folder_selection_index 'get_browsed_folder_selection 1 3' returns true if the first line is the selected line in a browser 3 lines high
'get_browsed_folder_selection 3' returns the line number of the selected line in a browser 3 lines high (between 1 and 3) get_browsed_song get a property from the currently browsed file: "get_browsed_song 'title'", "get browsed_song 'playcount'", etc... browsed_song set a property of the currently browsed file: "browsed_song 'rating' 5", ... get_loaded_song get a property from the song loaded on the deck: "deck 2 get_loaded_song 'album'" loaded_song set a property of the currently loaded file: "loaded_song 'rating' 5", ... prelisten_info get_browsed_artist get_browsed_title get_browsed_title_artist get_browsed_artist_title get_browsed_album get_browsed_composer get_browsed_genre get_browsed_comment get_browsed_filepath get the filepath of the song currently selected in the browser get_browsed_bpm get_browsed_color 'get_browsed_color 0 red 255' (item, component, default)
'get_browsed_color 0 white' (item, default) returns color for selected item. This includes color filters. (For manually selected color only, use 'get_browsed_song color' instead) get_browsed_header get_browsed_scrollpos get_browsed_scrollsize get_browsed_folder_scrollpos get_browsed_folder_scrollsize get_browsed_folder_icon get_browsed_folder get the name of the folder selected in the browser get_browsed_folder_path get the full path of the folder selected in the browser get_browsed_folder_tab get_browsed_key get_record_time get the time already spent recording get_record_size get the current size of the recording file get_record_message get the message displayed on the record page get_record_min get the minutes of the recording time get_record_sec get the seconds of the recording time get_record_ms get the milliseconds of the recording time get_record_msf get the frames of the recording time get_haslinein returns true if the current soundconfig includes some linein inputs get_hasmic returns true if the current soundconfig includes a mic input has_aux returns true if the current soundconfig includes a aux input get_hasinput returns true if the current soundconfig includes any input (mic, linein or timecode) get_hasheadphones (or get_hasheadphone) True when a headphones output is configured in sound setup, or when the controller has a headphone volume control get_hasmaster True when a master output is configured in sound setup, false for external mixer configurations get_askthedj_unread Returns the number of unread Ask The DJ requests (requires askTheDJMonitoring setting to be on always) get_askthedj Returns the latest request from ask the dj (requires askTheDJMonitoring setting to be on always)
Use 'get_askthedj 2' to get the second latest request, etc. get_deck_analysis get_song_event Provide analysis about current and coming events in the song. Can be used when writing visualisation plugins.
The first parameter is "current" or "next" to get the current or the coming event.
The second parameter can be "hasbeats", "volume", "volume_end", "remaining" get_username karaoke Start or stop automatic karaoke loading and background music karaoke_options show the contextmenu with the karaoke options karaoke_show show the singer list on the video output get_next_karaoke_song Get info about the upcoming karaoke tracks
Example 'get_next_karaoke_song "singer" +1' get_karaoke_background_song Get info about the background song playing in karaoke mode is_karaoke_idle On when karaoke mode is active but not playing. (Background music may be playing) has_karaoke_next On when karaoke mode is active and there is still another singer queued is_karaoke_playing On when karaoke track is playing and karaoke mode is active. Off when background music is playing karaoke_venue_name key change the key of the song, from -12 (one octave down) to +12 (one octave up), only in multiple of semitones. get_key_modifier get the number of semitone up or down currently applied to the song get_key_modifier_text get the number of semitone up or down currently applied to the song get_harmonic get_key get the key of the current song, based on keyDisplay option
Use get_key "musical" or get_key "harmonic" to get a specific display independent of keyDisplay option key_smooth change the key of the song, from -6 (half octave down) to +6 (half octave up), allowing not only multiple of semitones.
use key_smooth full for full octave up or down key_move move the key up or down from the given amount of semitones. set_key change the key of the song to match the given key. you can use standard notation ('set_key "A#m"') or numeric ('set key "03A"'). if no given key, it will use the other deck. the change will match the exact key. match_key change the key of the song to match the given key. you can use standard notation ('match_key "A#m"') or numeric ('match_key "03A"'). if no given key, it will use the other deck. the change will be the smallest change to make it compatible with the given key. key_match_button Match key to the other deck's key on first press, or reset key to normal on second press key_match_menu Open a menu to select a different key for the current song get_key_color Return color of the current key of the track in the specified deck key_lock (or keylock) activate/deactivate the key lock (to make the pitch slider change the speed of the song, but keep the key of the song like it is now). keycue_pad_jump when on, keycue_pad will jump to the cue point on each press, when off, keycue_pad will only modify the key without jumping to the cue point keycue_pad change the key depending on the pad and play the current cue point keycue_pad_color green for the selected key, magenta for lower keys, orange for higher keys and white for no key change keycue_pad_page change the offset of the key change by keycue_pad actions loop set or remove a loop. 'loop 4', 'loop 0.5' set a loop in beats. 'loop 10ms' set a loop in ms. 'loop 200%' multiply by 2 the size of the loop. 'loop 50%' divides by 2. 'loop' alone set a loop at the actual position with the same beat size as the last set loop. get_loop_in_time Get time (in ms) of the start of the loop
Use "get_loop_in_time 1.0" to return the time in seconds instead of milliseconds
Use "get_loop_in_time on" to return the loop in time even when no loop is active get_loop_out_time Get time (in ms) of the end of the loop
Use "get_loop_out_time 1.0" to return the time in seconds instead of milliseconds
Use "get_loop_out_time on" to return the loop out time even when no loop is active loop_button one-button smart loop: Set the loop in on the first press, set the loop out on second press, remove the loop on third press. loop_in if not in loop, set the beginning of a loop. if in loop, jump back to the beginning of the loop. loop_out if not in loop, set the deck in loop, starting from the last set loop_in point or stutter point. if in loop, exit the loop. pioneer_loop_in pioneer_loop_out pioneer_loop loop_length change the length of the loop. 'loop_length 15ms' set the length in ms, 'loop_length 0.5' set the length in beats, 'loop_length +100%' set the length in percentage of the actual length. loop_move move the loop without changing its length. 'loop_move +10ms' set the distance in ms, 'loop_move +2' set the distance in beats, 'loop_move +50%' set the distance in percentage of the actual length. loop_double doubles the length of the loop. loop_half halves the length of the loop. loop_exit remove the loop. loop_select set the loop size (or default loop size if no loop is active). If no parameter is provided, a popup list of loop values to choose from will be displayed. reloop jump to the loop_in point. reloop_exit if in loop, remove the loop. otherwise, reactivate the last used loop. Highlights when a loop had been used loop_position Get relative position in loop (from 0% to 100%) get_active_loop get the number of beats in the current loop get_loop get the number of beats in the current loop or the default loop size if no loop is active loop_save 'loop_save 1' Save current loop in saved loop slot 1
'loop_save "myloop"' Save current loop and name it "myloop" loop_load 'loop_load 1' Load the saved loop from slot 1
'loop_load "myloop"' Load saved loop named "myloop" loop_load_prepare 'loop_load_prepare 1' Activate/Deactivate the saved loop in slot 1 without jumping to the start point
'loop_load_prepare "myloop"' Activate/Deactivate stored loop named "myloop" without jumping to the start point loop_delete 'loop_delete 1' Delete the saved loop in slot 1 saved_loop 'saved_loop 1' Load the saved loop in slot 1 or set if it doesn't exist
'saved_loop "myloop"' Load saved loop named "myloop" or set if it doesn't exist saved_loop_prepare 'saved_loop_prepare 1' Activate/Deactivate the saved loop in slot 1 without jumping to the start point or set if it doesn't exist
'saved_loop_prepare "myloop"' Activate/Deactivate stored loop named "myloop" without jumping to the start point or set if it doesn't exist get_saved_loop get information about a saved loop: get_saved_loop 'pos', get_saved_loop 'len', get_saved_loop 'name' saved_loop_display Show information about a saved loop based on the savedLoopDisplay config option.
Example: 'saved_loop_display 1'
Can also be used to modify the savedLoopDisplay option by using +1 or -1 as parameter: 'saved_loop_display +1' saved_loop_autotrigger 'saved_loop_autotrigger 1' Activate/Deactivate auto-trigger of loop when the play position arrives at the saved loop loop_color query or set the color of a saved loop
Query example: loop_color 1
Set example: loop_color 1 'yellow' loop_back When loop back mode is enabled, starting a loop sets the end point of the loop, looping what you just heard. When disabled, starting a loop sets the start point of the loop. loop_roll_mode If loop roll mode is active, when the loop exits, the song continues from the position it should have been if no looping had been done loop_roll "loop_roll 0.25" for 1/4th beat loop roll
"loop_roll video" to toggle video loop roll on or off slicer "slicer 1" to "slicer 8" for 8 slicer buttons
"slicer 1 'hold'" to hold the current position on first activate
"slicer 'length' +1" to increase length
"slicer 'step' +1" to increase step size
"slicer video" to toggle video slicer on or off repeat_song When active, song will restart from beginning when finished loop_adjust use the jogwheel to adjust the loop.
loop_adjust 'move', loop_adjust 'out', loop_adjust 'in' activate a specific loop adjust mode
loop_adjust -1, loop_adjust +1 emulate moving the jog when loop adjust is active loop_pad Use 'loop_pad 1' to 'loop_pad 8' to trigger a loop of predefined length, depending on loop_pad_page and loop_pad_mode loop_pad_page Cycle through the different lengths of loops for use with loop_pad loop_pad_mode Cycle through the different loop modes for use with loop_pad. 1=On/Off 2=Hold 3=Roll loop_options Show some options about loops macro_record Start or stop recording a macro macro_play playback a previously recorded macro pad activate the ith pad from the current pad page pad_page (or pad_pages) Syntax: 'pad_page 1' to activate a the first page, 'pad_page 1 hotcues' to override the default for a page, 'pad_page btn1' for first button (that could be page 1 or page 5 depending on shift), 'pad_page' to show the dropdown menu pad_page_select (or pad_page_favorite_select) Select the pad page for this slot pad_edit edit the current pads page pad_param change the param 1 of the pads pad_param2 change the param 2 of the pads pad_pressure change the pressure applied on the ith pad pad_color return the color of the ith pad (without auto-dim) pad_button_color returns the color of the ith pad as should be used on a controller button (changing the color for standby/active/pressed according to the controller's RGB capability).
if the pad is active and has no color, white is returned.
if the pad is inactive and has a color, and the controller support full RGB pads, a dimmed color is returned.
if the pad is active and has a color, and the controller doesn't support full RGB pads, the color is blinking. padshift the 'pad' action automatically change action on shift, but if you want to manually force the use of the shift action, you can use padshift instead padshift_pressure the 'pad_pressure' action automatically change action on shift, but if you want to manually force the use of the shift action, you can use padshift_pressure instead padshift_button_color the 'pad_button_color' action automatically change action on shift, but if you want to manually force the use of the shift action, you can use padshift_button_color instead pad_pushed returns true if the pad is pushed (useful for custom color actions not using auto-dim) pad_menu open the menu for this pad page pad_has_param pad_param_visible pad_has_action pad_has_pressure pad_has_color pad_has_menu pad_has_16pads Returns true when a controller is connected with a 4x4 pad layout pad_bank2 Switch between showing pads 1-8 or 9-16 on skins that support it padfx Activate/deactivate named effect with a single key. Effect parameters can be specified as well.
'padfx "echo" 40% 90%' to start/stop the echo effect with first parameter at 40% and second parameter at 90%. When the effect is stopped, the parameters return to their original values.
'padfx "echo" 40% 90% smart_pressed' smart_pressed works as a toggle when pressing the button shortly, or as a temporary while holding the button pressed
'padfx "echo" 40% 90% "TRAIL:on"' after the sliders, it is possible to add strings to disable or enable switch parameters by defining their name, a colon and "on" to enable or "off" to disable
'padfx "echo out" 80% "solostem:vocal"' as the last parameter, you can add solostem:stemname to only let that stem be audible while applying the effect. stem names can be Vocal,HiHat,Bass,Instru,Kick,Melody,Rhythm,MeloVocal,MeloRhythm
'padfx "echo out" "mutestem:rhythm"' as the last parameter, you can add mutestem:stemname to mute that stem while applying the effect
'padfx "reverb" "stemfx:vocal"' as the last parameter, you can add stemfx:stemname to apply the effect only to that stem (other stems will continue playing normally). stem names can be vocals, hihat, bass, instru, kick, rhythm and instrumental padfx_single Same as padfx, but turns off the previous padfx before activating the current effect pitch (or pitch2 or pitch2_slider or pitch_slider) Set the pitch of the deck. Without parameters it can be assigned to sliders
Used with a number, it gives the position on the slider (and therefore account for pitch_range). ('pitch 0.25' set pitch at -10% if pitch range is 20%)
Used with a percent it gives an absolute position. 'pitch 112%' set pitch at +12%
Relative values are possible too. 'pitch +0.1%', 'pitch +0.1 bpm' pitch_motorized pitch_relative set the pitch of the deck, to be used by hardware controllers if you prefer the change to be relative to the software pitch position pitch_zero Set pitch to 0% (normal playing speed)
Use 'pitch_zero "center"' on controllers that send a message when the pitch slider is at the center. This prevents unwanted behavior in gradual or relative mode. pitch_reset slowly brings the pitch back to 0%. you can specify the speed in % per second (default 1% per second): 'pitch_reset 5%' pitch_range set the range for the pitch slider. 'pitch_range 12%' set the range from -12% to +12%.
'pitch_range +1' scrolls through the default pitch ranges. 'pitch_range "12,16,25" +1' scrolls through the provided list of pitch ranges. pitch_bend slow down or speed up the song: 'pitch_bend +3%'. you can make the bend to increase slowly by specifying a second time parameter: 'pitch_bend +1% 500ms' will start at +1% and will double every 500ms. master_tempo activate/deactivate the master tempo (to make the pitch slider change the speed of the song, but keep the original key of the song). pitch_lock (or pitchlock) when Pitch Lock is on, moving the pitch slider on one deck will move the slider on the other deck to keep the sync startupspeed vinyl startup speed, the larger, the longer it takes for the record to get from stopped to playing backspin Do a backspin. It is possible to specify the length: 'backspin 5000ms' or 'backspin 4bt' brakespeed vinyl brake speed, the larger, the longer it takes for the record to get from playing to stopped get_pitch Get the pitch from -100% to +100%, centered on 0% get_pitch_value Get the pitch from 0% to 200%, centered on 100% get_pitch_zero Is true if the pitch is zero, with an optional precision parameter: 'get pitch_zero 5%' (the % is relative to the pitch range. Use "get pitch_zero 'absolute' 0.1%" to use absolute precision) effect_select_multi effect_select_multi 2 "echo" -> select effect echo in slot 2
effect_select_multi 1 -1 -> select previous effect in slot 1
effect_select_multi +1 -> select next effect in slot 1
effect_select_multi -> show popup window for slot 1
effect_select_multi 1 -> show popup window for slot 1
effect_select_multi 1 0.2 -> select the 2/10th effect from the list in slot 1
effect_select_multi "video" -> select effect in the video effect slot
effect_select_multi does not deactivate the previous plugin in the specified slot effect_select effect_select 2 "echo" -> select effect echo in slot 2
effect_select 1 -1 -> select previous effect in slot 1
effect_select +1 -> select next effect in slot 1
effect_select -> show popup window for slot 1
effect_select 1 -> show popup window for slot 1
effect_select 1 0.2 -> select the 2/10th effect from the list in slot 1
effect_select "audioonlyvisualisation" -> select visualisation used when song has no video
effect_select deactivates the previous plugin in the specified slot effect_select_toggle Same as effect_select, but will turn on the new effect if the previous effect was on effect_active (or effect_activate) activate/deactivate the effect on a specific slot. example: effect_active 1 'flanger' on or effect_active 1 effect_disable_all 'deck 1 effect_disable_all' Disables all effects on deck 1
'deck master effect_disable_all' Disables all master effects effect_slider (or effect_slider_slider) Move the n-th slider on the given effect
"effect_slider 1 2 50%" : Set slider id 2 on slot 1 to 50%
"effect_slider 1 0%" : set slider id 1 on slot 1 to 0% effect_slider_active (or effect_slider_activate) move a slider and activate the effect as long as the mouse is down effect_has_slider effect_has_slider 1 2 on -> returns true if there is a second slider on slot 1
effect_has_slider 1 -> returns true if there is a first slider on slot 0 effect_slider_reset return this plugin slider to its default value effect_colorfx 'effect_colorfx 1 "echo"' to use echo on custom color fx slot 1 (up to 4 custom slots available) effect_colorslider Control the effect from center position off, to full on either left or right effect_releaseslider Control the effect release specific slider effect_releaseslider_active Control the effect release specific slider and auto activate the effect effect_button 'effect_button 1 2' button 2 on slot 1
'effect_button 2' button 2 on slot 1 effect_has_button 'effect_has_slider 1 2 on' -> returns true if there is a second button on slot 1 video_source activate video if not active yet, and open the shader selection dialog if shader is the source video_source_select select the plugin used for video source. you can specify by name ('video_source_select "webcam"'), relative ('video_source_select +1') or without parameters to open a popup window listing the available plugins video_transition_select select the plugin used for video transitions. you can specify by name ('video_transition_select "my_plugin"'), relative ('video_transition_select +1') or without parameters to open a popup window listing the available plugins video_transition_slider (or video_transition_slider_slider) move the n-th slider of the video transition plugin video_transition_button push the n-th button of the video transition plugin video_fx_select select a video effect plugin. you can specify by name ('video_fx_select "my_plugin"'), relative ('video_fx_select +1') or without parameters to open a popup window listing the available plugins video_fx_clear deactivate all the active video effects video_fx activate/deactivate the selected video effect get_video_fx_slider_label get the text to display under this slider control video_fx_slider (or video_fx_slider_slider) move the n-th slider of the video effect plugin video_fx_button push the n-th button of the video effect plugin effects_used Active when there are any effects activated. Use "effects_used 'deck'" to get the effects on the selected deck, or "effects_used 'master'" to get effects activated on master. get_effects_used Returns the number of effects currently active get_effect_name get the name of the currently selected effect get_effect_title get the title of the currently selected effect get_effect_string (or effect_string) get the text displayed by this effect. Some effects allow setting text as well get_effect_string_name get the label to display for this effect get_effect_button_name get the name of the xth button of the currently selected effect get_effect_button_shortname get the short name of the xth button of the currently selected effect get_effect_button_count get the number of buttons on this effect get_effect_slider_count get the number of slider on this effect get_effect_slider_name get the name of the xth slider of the currently selected effect get_effect_slider_shortname get the shortname to display under this slider control get_effect_slider_label get the label to display under this slider control get_effect_slider_label_full get the label to display under this slider control get_effect_slider_text get the full text associated with this slider control get_effect_slider_default returns the default value for this slider get_videofx_name get the name of the currently selected video effect get_videotrans_name get the name of the currently selected video transition effect_show_gui show the control window for this effect effect_dock_gui dock/undock this effect's control window pluginsongpos show_pluginpage show or hide the plugin control windows in the browser area effect_command send a command to this effect effect_beats set the beat parameter for certain effects effect_beats_all set the beat parameter for 1, 3 or 6 slots depending on skin6FxLayout and skin3FxLayout settings effect_has_beats is_releasefx query if this effect is in the release effect slot effect_3slots_layout Change between the 1-slot and 3-slots layout for effects effect_clone Load into this deck all 3 slots from the current left or right deck effect_mixfx Associate an effect with the crossfader effect_mixfx_activate Toggle mix fx on or off. Use effect_mixfx_select to select effect_mixfx_select Select the mix fx when moving the crossfader effect_bank_save save the effects in deck fx slots 1,2,3 to the bank specified by the parameter effect_bank_load load the effects in deck fx slots 1,2,3 from the bank specified by the parameter get_nb_multicam effect_stems_color Get the color for the effect_stems button effect_stems Apply effects only to the selected stems. 'effect_stems vocal on'
Stems are Vocal,HiHat,Bass,Instru,Kick,Melody,Rhythm,MeloVocal or MeloRhythm beat_tap tap on a few beats to set a new bpm for the song if the application didn't got it right on the first time. edit_poi open the POI Editor to edit the cue points, and other points of interest edit_bpm open the BPM Editor to edit the bpm and beat grid adjust_cbg adjust the beat grid. 'adjust_cbg +2' moves the start bar from 4:4. 'adjust_cbg +10%' moves the actual bars. set_bpm set the bpm of the song to the set value: 'set_bpm 129.3', or relative to the actual value: 'set_bpm 50%'. goto_mixpoint Jump to the specified mix point ("StartTempo", "EndTempo", "StartCut", "EndCut", "StartFade", "EndFade", "StartSound", "EndSound")
Example: goto_mixpoint "StartCut" set_mixpoint Move the specified mix point to the current position ("StartTempo", "EndTempo", "StartCut", "EndCut", "StartFade", "EndFade", "StartSound", "EndSound")
Example: set_mixpoint "StartTempo" set_firstbeat moves the first beat to the current position, adjusting the beat-grid reanalyze reanalyze bpm etc... for the file loaded on the deck
'reanalyze multi' can be used to scan for multiple bpm's prelisten (or preview) Pre-listen the selected track prelisten_output Set this deck to be used for the prelisten player
Example: "deck 1 prelisten_output", or to put it back to default: "prelisten_output 'auto'" prelisten_options Show a context menu with the prelisten player options prelisten_pos move the position of the prelisten player prelisten_stop Stop the prelisten player record start recording the session. record_cut cut the current recording to a new file (or new track if recording to CD) record_config open the record configuration panel record_vu show the volume of what's being recorded broadcast start or stop to broadcast
Optionally add parameter to specify "video", "direct", "server" or "podcast". Without parameters it will use the last used mode. broadcast_message set or get the broadcast message. sampler_play play the selected sample. syntax 'sampler_play' plays the default sample.
'sampler_play 4' plays the fourth sample. sampler_play_stutter play the selected sample. if already playing, restart from begining. sampler_play_stop play the selected sample if it's not already playing, or stop it if it's already playing. sampler_stop stop the selected sample. syntax 'sampler_stop' stops the default sample. 'sampler_stop 4' stops the fourth sampler slot. 'sampler_stop all' stops all samples. sampler_pad 'sampler_pad 1' triggers the sample in slot 1, based on the play mode for that sample slot sampler_loaded 'sampler_loaded 1' returns true when there is a sample loaded in slot 1, otherwise returns false sampler_color get the color of the sample on this slot if it has one sampler_select (or sampler_default) select which sample is the default sampler slot for that deck. syntax 'sampler select 5' selects the fifth sampler slot. 'sampler select +1' scrolls through the sampler slots. 'sampler select' open a popup menu to select the new default sampler slot. sampler_position get the current position of the sample sampler_bank Select a new sampler bank. Can be called either by name (sampler_bank "birthday"), by number (sampler_bank 2) or can be assigned to a rotary knob (sampler_bank) or buttons (sampler_bank +1) sampler_mute mute/unmute this sample sampler_edit edit the given sample in the SampleEditor sampler_mode (or sampler_rapidfire) set the global trigger mode for the sampler: "sampler_mode 'on/off'", 'hold', 'stutter' or 'unmute'
set trigger mode for a specific sample: "sampler_mode 1 'on/off'" to set sample 1 mode or "sampler_mode 1 +1" to cycle sampler_output Select sampler output channel. 'deck master sampler_output', 'sampler_output "headphones"', 'deck 1 sampler_output', 'sampler_output "popup"' sampler_options popup the sample menu. sampler_volume_master 'sampler_volume_master' sets the master volume of the sampler sampler_pfl Select if the sampler is sent to the headphones. (can be used with a slider or a % to specify the volume: 'sampler_pfl 75%') sampler_volume 'sampler_volume' sets the volume of the sample that has the focus, on the selected deck.
'sampler_volume 1' sets the volume of the sample in slot 1 in the current bank.
'sampler_volume "siren"' sets the volume of the sample 'siren.vdjsample'. sampler_velocity sampler_volume_nogroup sets the volume of the sample without changing the volume of other samples in the same group sampler_group_volume change the volume of all the samples in the give group. You can specify the group by name, or by group index sampler_group_color get the color of a sampler group sampler_group_name get the name of a sampler group sampler_group_mute mute/unmute a sample group. You can specify the group by name, or by group index sampler_has_group returns true if the specified group (specified by name or by index) exists in the current samplebank scratchbank_edit scratchbank_load scratchbank_assign scratchbank_load_to_deck scratchbank_unload (or sampler_unload_from_deck) Unload the song previously loaded using scratchbank_load_to_deck from deck and load back the last song sampler_load_to_deck Load the sample from the selected slot to the deck sampler_rec On first press, start to record a new sample. On second press, stop to record
Use 'sampler_rec "mic"' to record a sample from microphone, or 'sampler_rec "master"' to record from master output
If the deck is on loop, a loop sample will immediately be created. If the deck is playing, it will record what's playing until the stop. If the deck is paused, it sets the 'entry point', and the second push will set the 'exit point' and use the deck's file between those two points.
'sampler_rec 1' or 'sampler_rec 1 "mic"' will store the sample in the first slot of the "Record" sample bank, so that it can be used immediately after recording sampler_start_rec start to record (from the deck, or from mic or master if specified) in order to create a new sample file sampler_stop_rec stop the recording and save the result in a sample file sampler_abort_rec cancel the recording and delete the sample file sampler_loop use 'sampler_loop -1' or 'sampler_loop +1' to change the length of a playing sample
use 'sampler_loop "current" 1' to set the sample to loop for 1 beat or 'sampler_loop 1 1' to set sample 1 to 1 beat loop
use 'sampler_loop "current" 0.5 "play" while_pressed' to loop the sample as long as long as the button is pressed for 0.5 beats sampler_used (or get_sampler_used) check if a sample is playing (or if used with 'sampler_used 4' check if exactly 4 samples are playing) get_sampler_slot get the number of the sampler slot that currently has the focus get_sampler_count get the number of slots in the current sampler bank get_sample_name (or get_sample_slot_name) get the name of the specified sample get_sampler_bank get the name of the currently loaded sampler bank get_sampler_bank_id get the number of the currently loaded sampler bank get_sampler_bank_count get the number of sample banks get_sample_color get the color for the specified sample (with auto-dim) sandbox activate/deactivate sandbox mode.
in sandbox mode, the master output continues to play what it was playing without being affected by your actions, and you can move both decks to whatever position you want, in order to prelisten your upcomming mix. can_sandbox returns true if virtualdj can be sandboxed.
sandbox cannot be activated while you have effects or samples active, or video, or if you're scratching, or if you have more than one deck playing with the volume up. sync smoothly synchronize the song with the other deck. is_sync on when tracks are synchronized (bpm and phase while playing, bpm when not playing) match_bpm set the pitch to match the BPM of the other deck. match_gain set the gain to match the other deck. play_sync play the song instantly synchronized with the other deck. play_onbeat instantly synchronize the song with the other deck, using local beat information instead of the global beatgrid, but don't change the pitch. play_sync_onbeat (or sync_nocbg) instantly synchronize the song with the other deck, using local beat information instead of the global beatgrid. beatlock When beatlock is activated, the songs are kept synchronized, even when moving the pitch, scratching, etc... smart_fader When smart fader is activated, songs are synchronized while using the crossfader, and the tempo moves toward the tempo of the song that is being faded into auto_bpm_transition When pressed, the bpm of the song is gradually moved to the bpm of the other deck while keeping both songs at the same bpm
When smartPlay or autoBPMMatch are on, it will move to the bpm of the other deck at normal speed
When using parameter 'source_original', 'target_original' or 'target_current' you can force which bpm it will transition to auto_bpm_transition_options Enable/Disable certain features of the auto_bpm_transition.
First parameter can be 'length', 'loop', 'stems', 'master_tempo', 'autostart'
When selecting stems to disable, use 'auto_bpm_transition_options stems vocal' for example get_bpm_match Returns 0.5 when bpm's are synchronized auto_sync_settings Set some pre-defined values for the main automatic sync settings (auto match bpm, auto match key, auto sync, auto pitch lock) depending on the skin category sync_hint sync_hint 'pitch' returns true if the pitch should be matched. Then sync_hint 'phase' returns true if the phase should be synced phrase_sync shift by a number of beat to match the phrase of the other deck (default 4:4, but can specify 'phrase_sync 16' for example) quantize_all Set all quantize options get_text get some text. You can use the inverted apostrophe to query VDJScript results within the text: "get text 'You are listening to `get loaded_song "title"` at `volume` volume.".\nVDJScript returning booleans (buttons) will be displayed as "on" or "off".\nVDJScript returning values (sliders) will be displayed as a percentage.\n(you can also (but it's being deprecated in VDJ7) use % shortcuts for some common queries: "get text 'you are listening to %title by %author'") get_status get information about background tasks stopwatch stopwatch_reset countdown Count down to a specific date or time. Example: countdown '2023/01/01 00:00'
Second parameter can be used to optionally format the return value. Use %full, %HH, %MM, %SS, %DD timecode_active Select if the deck is controlled by a timecode signal.
(note: You can use 'timecode_active x' where x is the turntable number, to assign the same turntable to control several decks at once: 'deck 1 timecode_active 1 on & deck 2 timecode_active 1 on') invert_timecode Invert timecode control (for 1 timecode source, switch it through available decks, for 2 timecode sources, from 1 to 3, 2 to 4) timecode_mode Set the timecode mode: 'smart', 'absolute', 'relative'. timecode_config Open the timecode config window timecode_bypass Use the timecode turntable as linein input timecode_reset_pitch Reset the "software" pitch to 100%, so that the deck pitch matches the turntable pitch exactly, and needle-drop is truly absolute get_hastimecode returns true if the current soundconfig includes some timecode inputs get_timecode_quality timecode_options Show some timecode options leftvideo assign this deck to the left of the video crossfader: "deck 3 leftvideo" or "leftvideo +1" or "leftvideo 'auto'". rightvideo assign this deck to the right of the video crossfader: "deck 3 rightvideo" or "rightvideo +1" or "rightvideo 'auto'". leftvideo_button simple button to control the left video source: "deck 3 leftvideo_button". rightvideo_button simple button to control the right video source: "deck 3 rightvideo_button". is_video return true if this deck has some video is_audioonlyvisualisation return true if this deck has the audio only visualisation running on it has_video_mix return true if video output is using transition and video-crossfader with one or more video sources, false if it's playing audio-only and using a source plugin over_video (or overvideo) force this deck's video output on the video master video_crossfader_link link or unlink the video crossfader to the audio crossfader video_crossfader_auto move the video crossfader automatically according to which side is playing, cueing, scratching, etc... video open or close the video window video_output Show menu to select on which monitor to open the video output.
You can also specify a specific output: "video_output 1" to open video output on the first monitor
To just show or hide the output use "video_output on" or "video_output off". To toggle output, use "video_output ? video_output off : video_output on" video_crossfader set the video crossfader video_fadetoblack activate/deactivate fade-to-black on volume sliders video_transition Launch a transition from one video deck to the other.
You can specify the duration of the transition: 'video_transition 1000ms'
You can specify the direction of the transition: 'video_transition "left"' or 'video_transition "left" 1000ms'
You can specify the location to transition to using a percentage (or assign it to a slider): 'video_transition 50%' or 'video_transition 1000ms 50%' video_delay set a delay between video or audio to synchronize output (in milliseconds)
Use "video_delay +100ms" or "video_delay -100ms" to increase or decrease the delay, or "video_delay 0ms" to reset it
Use "video_delay +100" or "video_delay -100" to set it to exactly the specified amount video_level fade-to-black independent slider for the left or right video deck