Forum: VirtualDJ Technical Support

For reporting any bug, questions or comment related to the latest version of VirtualDJ
(NOTE: VirtualDJ continuously updated, so many older topic on this forum are most probably already fixed in the current build)

If you need extended support, contact our Support Team.
Forum Guidelines  (*) The moderators hold the rights to remove, move or modify posts.
Topic: Is there a way to assign a current Loop to a Hot Cue button without using POI editor?
I recently bought a DDJ-800 controller for mixing videos and have been learning my way around both VDJ2020 and Rekordbox to see what works best for my needs.

I'm leaning towards using VDJ2020 Infinity exclusively, as I feel VDJ's video features and stability are superior to those in Rekordbox...
but there is one Rekordbox behavior using a ddj-800 controller that I like that I have not yet been able to figure out how to achieve in VDJ.

I want to be able to store Hot Loops and Hot Cues together within the same HOT CUE pads on the fly.

In Rekord box,
if you create a loop by pressing the 'IN' and then 'OUT' buttons,
then press the 'MEMORY button,
then press an unassigned HOT CUE pad on a DDJ-800 controller
...the current loop is saved to the HOT CUE pad you pressed.

Doing the same actions in VDJ appears to result with the HOT CUE pad pressed having a HOT CUE (positioned at the beginning of the Active Loop) stored and the desired Active Loop instead being stored to a separate SAVED LOOPS Pads page.

The only way I've found to move that SAVED LOOP to the HOT CUE pads is to go through the POI Editor and manually locate the Saved Loop point and assign the SAVED Loop point to a CUE # position, which is real pain to do when trying to assign a LOOP to a HOT CUE Pad while mixing on the fly.

I don't want to have to jump between SAVED LOOP and HOT CUE screens every time I want to select either a Hot Cue or Hot Loop.
Is there a way to assign an active loop directly to a hot cue pad using a DDJ-800 controller in VDJ?

So far I prefer everything about VDJ2020, except for this one behavior. Thank you for your assistance/suggestions. ~e.t.

Posted Sat 25 Apr 20 @ 4:53 am

I follow this question: i used to work with traktor and I m now re-integrating virtual dj (after years of having the infinity I finally decided to quit using traktor and go to virtual dj)

in traktor, when you add a loop to a track while spinning music or preparing it to mix in, this loop is automatically saved in the song.
when you use the song a week later, traktor remembers your loop and shows it.
If you don't need it, you deactivate the loop

This really saves time and helps you to build up better dj sets because you don't need to prepare the loops each time.

I really miss this feature in Virtual dj

Is this an option to do in your next update?

Posted Sun 26 Apr 20 @ 11:18 am
Isn't that the saved loops option in VDJ?

Posted Sun 26 Apr 20 @ 2:04 pm
djjoe21PRO InfinityMember since 2006
I've been looking to do this as well best I came up with is this

saved_loop "Intro Loop" & loop_color "Intro Loop" "Green" & Edit_poi

This is not exactly what you wanted but all you need to do in POI editor (Will open automatically) is change it to hot cue to whatever cue you want. I always put mine in cue 5 and color it green.

I find its quick enough for me. I asked this before and didn't get any answers so just moved on with the way I do it.

Hope this might help

Posted Sun 26 Apr 20 @ 6:03 pm
VDJ8's default mapping for the DDJ-800 fails to accurately replicate the manufacturer's HOTCUE/KEYBOARD button function...
Shouldn't VDJ Staff want to add the missing keyboard pads and update inaccurate default mapping?

Andries_Rogge, I haven't usedTraktor, but I believe Klausmogensen is correct that what you and I are both describing and seeking can be achieved using VDJ's 'saved loop' feature and altering VDJ's CONTROLLER mapping settings/VDJscript programming. Unfortunately, I haven't done any coding or programming since using BASIC programming language (a long time ago) in high school hopefully people more knowledgeable in VDJ controller mapping and VDJscript will be able to assist us.

In Rekordbox, pressing SHIFT + SAMPLER/KEY SHIFT switches to 'key shift' pads and VDJ8's default mapping switches to 'keycue' pads, which appear to function exactly the same... so the VDJ8 default mapping perfectly carries over for the DDJ-800. Excellent! :-D

However, I realized today that the VDJ8 default mapping for pressing the 'SHIFT' (button) + 'HOTCUE/KEYBOARD' (button) on a DDJ-800 controller completly fails to replicate the manufacture's function because VDJ hasn't actually made 'keyboard' pads a standard pad extension feature within VDJ8.

Originally I'd thought SHIFT + KEYBOARD was mapped in VDJ8 to the 'saved loops', but later realized the default mapping instead maps to 'cueloop' pads to fill the missing keyboard pads place. :-(

As best as I can tell, Rekordbox's KEYBOARD pads are simply 'keyshift' pads that additionally trigger back to the last cue point when it should be very easy for someone familiar in VDJscript to program a set of 'keyboard' pads cloning the existing VDJ8 'keycue' pads with additional VDJscript to recall the last cue point within the 'Action' field.

Since these 'keyboard' pads are a standard feature within Rekordbox and all the new Pioneer controllers have a dedicated button for those pads printed on them...
I'd think that VDJ8 staff would want to add a keyboard pad extension as a standard set of pads within VDJ8 and have them mapped to the PAD_MODE_KEYBOARD button within default mapping for all Pioneer controllers Pioneer controllers would function within VDJ8 as originally designed, as is printed on the controller's button, and as expected by users leaving the Rekordbox software for the VDJ8 platform.

Honestly, I'm not interested enough in the Keyboard pads feature at this time to put forth the effort to try and figure out the VDJscripting to create a set of keyboard pads myself, but if anyone knows the correct VDJscript... I would be interested in learning how that works
-- maybe VDJ's staff might consider adding keyboard pads to future builds / mapping for Pioneer controllers.

Posted Wed 29 Apr 20 @ 8:49 am
Learning to remap SHIFT+HOTCUE/KEYBOARD button to SAVED LOOPS helps, but I was never able to figure out the proper VDJscript to make it function as wanted:

Since I haven't found the 'cueloop' pads default maped to the DDJ-800 'PAD_MODE_KEYBOARD' button (instead of keyboard pads) particullarly useful, I figured out a way to change the VDJ default mapping to something more useful... the 'saved loops' pad by:

SETTINGS | CONTROLLER | pressing SHIFT + HOTCUE/KEYBOARD buttons on the controller to display the button's name 'PAD_MODE_KEYBOARD'

Selecting PAD_MODE_KEYBOARD then editting the button's ACTION script from:
default action: var 'linech' ? nothing : pad_page 'cueloop'
to custom mapping action: var 'linech' ? nothing : pad_page 'saved loops'

Then enter a custom mapping name into the MAPPING field at the top and pressing the little floppy drive disk icon button to save the new custom mapping.

This changes allow you to access the saved loops from the controller without needing to go back to the computer, but still didn't address a way to save current active loop to a pad on the fly.

Creting a loop pressing LOOP_IN, then pressing LOOP_OUT, then pressing the MEMORY button on the controller produces:
SETTINGS | CONTROLLERS | BUTTON = MEMORY Action: loop ? loop_save 1 : loop_load 1 ? loop_load_prepare 1
...which apparently saves the active loop in the 'saved loops' pads 'Slot 1'.

This was similar to djjoe21's excellent recommendation to add a Custom Button with Action: saved_loop "Intro Loop" & loop_color "Intro Loop" "Green" & Edit_poi

I messed around with both of those Action Scriptsfor hours, the CONTROLLER Manual ( and the VDJscript verbs ( for hours, but I was never able to get them to function as I wanted since pressing the custom buttons I made would always overwrite previous saved loop unless I'd moved previous saved loops out of slot 1. :-(

Posted Wed 29 Apr 20 @ 8:50 am
This led me to the best solution I've found so far!



SETTINGS | OPTIONS | nonColoredPoi = No Color


Action: var 'linech' ? nothing : pad_page 'saved loops'
(as described before this remapps SHIFT+HOTCUE/KEYBOARD to access 'saved loops' so hotcue button -> hotecues and shift+hotcue -> Saved Loops

Action: holding ? pad_page 'HotCuesNLoops': var 'linech' ? nothing : pad_page 'hotcues'
(this will remap a long hold on hotcue to open the 'HotCuesNLoops' pads instead of the the completely unnecessary 'DDJ-800 Settings' pads.

MAPPING | 'your custom mapping name' | SAVE (floppy disk icon)

The the above changes makes VDJ8 function (almost) exactly how I want:
...HotCue button switches to 'hotcue' pads
...Shift+HotCue button switches to 'saved loops' pads
...'Long-Hold' Hotcue switches to 'HotCueNLoops' pads
...display both your hot cues and saved loops in one set of pads, and delete hot cues per normal, an active loop as an hot loop (within saved loops) by simply pressing an empty HotCuesNLoops pad
...pressing the hot loop button once, turns one the saved loop, a second press exits the loop, and a long press deletes the saved loop
...and non of this requires opening the POI editor!

This is (almost) perfect...
The remaining problems I have are:
1) You still need to use the POI Editor if you want to assign colors to your HotCueNLoad pads to distinguish between cues and loops and unfortunately
2) the default action for the 'PAGE -' and 'PAGE+' buttons in HotCueNLoad pads to to scrolling through each pads (when I'd prefer that 'PAGE-' would access PADS 1-8 and 'PAGE+' would access PADS 9-16.

Does anyone know how change HotCuesNLoops pads page button functions?
Is that something that can be changed in the Controller mapping settings or is that a change that would need to be made to the HotCuesNLoops settings in the PAD Editor?

Anyone know if there is a way to automatically assign the HotCueNLoads pads a certain color if they're a HotCue vs a different color if they're a SavedLoop?

Posted Wed 29 Apr 20 @ 8:57 am

Posted Wed 29 Apr 20 @ 9:17 am
NicotuxHome userMember since 2014
oups, There was an ealy answer in preparation but I never send it to the other post ^^
here it is:

The fact is saved loops already register as a POI as well as CUES
both "hotcue" and "saved loops" pad bank exists

but they need to switch from one padbank to the other one or have both

maybe take a look to other padbanks : (in extensions)
"cue loop"
Cues n Loops
Cues and Looops

I also created a custom pad with mixed cues and loops on the fly (somehow looking like what you describes):
(change button number for every pad button)
hot_cue 2 ? holding ? saved_loop 2 ? loop_delete 2 : delete_cue 2 : hot_cue 2 : saved_loop 2 ? holding ? loop_delete 2 : loop_load 2 ? loop_load_prepare 2 : loop_out ? loop_save 2 : loop_out : loop_out ? loop_save 2 : loop_in ? loop_out & loop_save 2 : hot_cue 2


if no loop: act as a hot cue
if loop in exists: act as loop out and save loop 2
if loop out exists: save loop
if loop saved exists : act as a cued loop
holding delete the hot cue or the saved loop

in case both exist loop takes preference
once deleted, hot cue appears

Posted Wed 29 Apr 20 @ 11:05 am
Coming from Rekordbox myself that's an extremely useful script Nicotux! It's actually a better implementation than Rekordbox now, since it saves the cue point even if you delete the loop! Thank you.

Posted Mon 18 May 20 @ 8:21 am