Quick Sign In:  

Forum: VirtualDJ Technical Support

Topic: Any way to copy hotcues from one song to another?
For example, I go in and set the hotcues for the Clean version of the song and want to copy them to the Dirty version. Is there a way to just copy and paste the hotcues without having to create them from scratch?
 

Posted Thu 08 Sep 22 @ 6:59 pm
No, it wouldn't work anyway as every song has a different structure. Even different versions of the same one.
 

Posted Thu 08 Sep 22 @ 7:01 pm
kradcliffe wrote :
No, it wouldn't work anyway as every song has a different structure. Even different versions of the same one.


I'm certain it's possible because I've personally written software that does it within the PRIV ID3V2 tags of mp3 files. MP3s have an issue where the very start of the file can be variable length so you just have to take that into account.

I was hoping for something that works within VDJ but it seems such functionality is not included. No worries.
 

Posted Fri 09 Sep 22 @ 2:32 am
The hot cues are not stored in tags. They are stored in the VDJ database.xml file
Since that is by definition a text based files, then yes you can do it using any text editor
But I don't recommend it
 

Posted Fri 09 Sep 22 @ 5:42 am
You could make a COMPLEX script that would cycle through the hotcues of deck 1, query their location, save it as a variable, then seek on the same spot on deck 2 using that variable and set a hotcue on the same location.
So, in theory it is possible.
I have not created such a script though..
I'll see if I can find some time to play around and come up with a sample script.
 

Posted Fri 09 Sep 22 @ 10:02 am
Actually it was faster than I thought it would be:

(deck 1 has_cue 1 ? deck 1 goto_cue 1 & set '$cuepos' '`deck 1 song_pos' & deck 2 get_var '$cuepos' & param_cast percentage & deck 2 song_pos & deck 2 set_cue 1 : nothing) &
(deck 1 has_cue 2 ? deck 1 goto_cue 2 & set '$cuepos' '`deck 1 song_pos' & deck 2 get_var '$cuepos' & param_cast percentage & deck 2 song_pos & deck 2 set_cue 2 : nothing) &
(deck 1 has_cue 3 ? deck 1 goto_cue 3 & set '$cuepos' '`deck 1 song_pos' & deck 2 get_var '$cuepos' & param_cast percentage & deck 2 song_pos & deck 2 set_cue 3 : nothing) &
(deck 1 has_cue 4 ? deck 1 goto_cue 4 & set '$cuepos' '`deck 1 song_pos' & deck 2 get_var '$cuepos' & param_cast percentage & deck 2 song_pos & deck 2 set_cue 4 : nothing) &
(deck 1 has_cue 5 ? deck 1 goto_cue 5 & set '$cuepos' '`deck 1 song_pos' & deck 2 get_var '$cuepos' & param_cast percentage & deck 2 song_pos & deck 2 set_cue 5 : nothing) &
(deck 1 has_cue 6 ? deck 1 goto_cue 6 & set '$cuepos' '`deck 1 song_pos' & deck 2 get_var '$cuepos' & param_cast percentage & deck 2 song_pos & deck 2 set_cue 6 : nothing) &
(deck 1 has_cue 7 ? deck 1 goto_cue 7 & set '$cuepos' '`deck 1 song_pos' & deck 2 get_var '$cuepos' & param_cast percentage & deck 2 song_pos & deck 2 set_cue 7 : nothing) &
(deck 1 has_cue 8 ? deck 1 goto_cue 8 & set '$cuepos' '`deck 1 song_pos' & deck 2 get_var '$cuepos' & param_cast percentage & deck 2 song_pos & deck 2 set_cue 8 : nothing)


This will copy the 8 first hotcues from deck 1 to deck 2.
Mind you that as others said, you may need to tweak the location of the cues on deck 2 afterwards as usually two versions of the same track may not be exactly the same.
 

Posted Fri 09 Sep 22 @ 10:20 am
George once again proving he is in fact a genius!
 

Posted Fri 09 Sep 22 @ 10:26 am
LOL.. Thank you (I guess) :P

That's a sample code.
I guess it can also be expanded to copy attributes like color and cue name (if set) from one deck to another.

That being said, the "critical" operation in that case would be to use "set_cue" action when tweaking the hotcues location, since "set_cue" preservers all the hotcue attributes if that cue exists (it only updates it's location if the cue exists already)
Otherwise, deleting and recreating a hotcue on the second deck would make it loose all it's attributes.
Also the code above doesn't check if the given cue is an action point, or a saved loop e.t.c.
Surely a complete script could be created to copy almost anything, but I think it would be too complex for too little gain.

Anyway, if OP needs something let me know and I'll see if/how the sample code can be improved.
 

Posted Fri 09 Sep 22 @ 10:39 am
This is what's so amazing about VirtualDJ - almost anything you want it to do is possible with a few lines of script. Other DJ software just doesn't come close.

People call it a toy. Well it's the most versatile toy in the world!
 

Posted Fri 09 Sep 22 @ 11:00 am