Quick Sign In:  

Forum: VirtualDJ Technical Support

Topic: How to - Page: 1

This part of topic is old and might contain outdated or incorrect information

Hi

I've trying to use the scripting language with VDJ8.2 to try and get the beats matched (not bpm, but the 4 bars as shown below)
I have a button which I had assigned to goto_bar 4


I can then wait for the one deck to reach the 4th beat and then press this button to send the other deck to the same 4 beat so they are at the same beat (out of 4).



I have seen that there is the following command

get_beatdiff

My aim is to get the deck thats the buttons assigned to to automatically match, I was thinking I could get the current deck positon and then assign the second to the same.

Im not sure what else to do after I do get_beatdiff?

or something like:
var "BN" get_beat_num
goto_bar BN



Thanks for any suggestions.
 

Posted Mon 09 Jan 17 @ 6:24 pm
Jbryant61 wrote :
Hi

I've trying to use the scripting language with VDJ8.2 to try and get the beats matched (not bpm, but the 4 bars as shown below)
I have a button which I had assigned to goto_bar 4


I can then wait for the one deck to reach the 4th beat and then press this button to send the other deck to the same 4 beat so they are at the same beat (out of 4).



I have seen that there is the following command

get_beatdiff

My aim is to get the deck thats the buttons assigned to to automatically match, I was thinking I could get the current deck positon and then assign the second to the same.

Im not sure what else to do after I do get_beatdiff?

or something like:
var "BN" get_beat_num
goto_bar BN



Thanks for any suggestions.


 

Posted Mon 09 Jan 17 @ 8:37 pm
SerinePRO InfinityMember since 2013
I had a go at this and haven't succeeded but don't forget that to create a variable you need to use `Set "variableName" [value]` and to read it you need `var "variablename" `

I have managed this so far but I can't get it to work by reading that variable, only if I replace the variable with a number.

set '$activeBpm' 3 & deck 2 goto_bar var '$activeBpm' & sync

deck 2 goto get_beatdiff

Also did nothing whatsoever. It's a shame there is no way to find out what the value of a variable is
 

Posted Mon 09 Jan 17 @ 9:45 pm
PachNPRO InfinityMember since 2009
Maybe somthing like this:

goto_bar 'get_beat_num'

or

goto_bar & 'get_beat_num & param_cast "integer"'
 

Posted Tue 10 Jan 17 @ 7:45 am
PachN wrote :
Maybe somthing like this:

goto_bar 'get_beat_num'

or

goto_bar & 'get_beat_num & param_cast "integer"'




How would I include the current playing deck to get the beat number from, and then the non-playing deck to apply it to?
 

Posted Tue 10 Jan 17 @ 9:01 am
PachNPRO InfinityMember since 2009
I don't know it that would make sense.
If you want to apply the beat to the none-playing deck, the moment you apply it the beat has changed and you would have to apply it again. No?
 

Posted Tue 10 Jan 17 @ 10:19 am
Then idea is that as Im bringing in a 2nd song to mix, it has already had the bpm matched to the playing one, but now I want to make sure its in sync with the 4 beat. I wanted to apply a button to sync this and thought if I get the bar of the 4 beat for the playing track, and then apply that to the 2nd track (of course this one must be playing but not yet crossfadered in)..


thanks for any assistance.
 

Posted Tue 10 Jan 17 @ 10:56 am
you could set GlobalQuantize to 4 i guess

but you will need to make sure all your beatgrids are correct or it will not work properly.

there really isn't all that many short cuts to knowing your music and learning to just do it right on your own...
probably not what you wanted to hear but the truth is the truth.
 

Posted Tue 10 Jan 17 @ 11:06 am
Hi, I can manually set the 2nd track (thats playing) to sync to beat 4 via:

goto_bar 4

This allows me to manually watch the 1st track and when it hits beat 4 pressing this button does in fact work.

But I was hoping it would be possible to automate via script.

Is there not a way to:

1: Get the beat number of the playing deck
2: Then apply this number to the second deck.

I do find the instructions for scripting is not very clear.

Thanks
Jason

 

Posted Tue 10 Jan 17 @ 11:12 am
I might be missing something, but is it not just a case of cuing up your incoming track on beat one, waiting for the playing track to hit beat one and pressing play at that point. I guess you just want to be able to press play no matter where the playing track is at, or the incoming track and know they are synced. I mean, it takes seconds to cue up and press play at the right time.
 

Posted Tue 10 Jan 17 @ 11:17 am
Hi, I would still like to automate it, it might be I want to introduce then new track at beat 3 or beat 4.

The main reason is Im using mainly my mixer midi buttons so won't have all the access to the computer buttons.

 

Posted Tue 10 Jan 17 @ 11:26 am
For those instances, would "mix_now" not suffice?
 

Posted Tue 10 Jan 17 @ 11:31 am
Will that match the 4 beats?

My previous comment about matching the 2nd track at beat 3 or beat 4, I also meant that the playing track will also be at beat 3 or beat 4.
 

Posted Tue 10 Jan 17 @ 11:38 am
No it wont necessarily beat match at the same beats per bar. It just instantly mixes from one track to the next. Cross-fades and beat matches if similar. But if you suddenly realise you need to mix and dont have time to cue etc, then it can be handy.
 

Posted Tue 10 Jan 17 @ 11:46 am
So maybe I can persist with trying to get a scrip version to work.

Perhaps I should split up my request.

1: How can I get the current beat bar of the deck thats playing and assign it to a variable.

I think i've read that it needs to be cast to a number rather than left as a string.
 

Posted Tue 10 Jan 17 @ 11:57 am
SerinePRO InfinityMember since 2013
Just to point out that the sync button automatically does this in Traktor and it is a very useful feature for total beginners (bla bla real DJ's don't use sync) when the beatgrids are getting correctly detected or when they have been set manually.

I am having a few problems with this but the main one at the moment is that I can't get
set "activeBpm" 3 & deck 2 goto_bar "activeBpm"
to work. I'm pretty sure the problem is that I can't get
goto_bar
to read the variable. Any tips?


set "activeBpm" 3 & param_cast integer & deck 2 goto_bar "activeBpm"

I've also tried this to make sure that the parameter is a number but it doesn't help
 

Posted Tue 10 Jan 17 @ 12:13 pm
Isn't the bpm and gotobar refering to different things?

I thought the bpm is exactly that, but the gotobar refers to the 4 beat?
 

Posted Tue 10 Jan 17 @ 12:44 pm
PachNPRO InfinityMember since 2009
Okay, wether or not this script does work (I'm not at my machine) querying the deck is easy.
Especially if you only use 2 decks.

For deck 2 it would be:

goto_bar 'deck 1 get_beat_num'

Just use deck X if you want to query a deck.

deck 2 play ? yes_doSomething : no_doSomethingElse
 

Posted Tue 10 Jan 17 @ 12:59 pm
SerinePRO InfinityMember since 2013
Thanks, I think I have that figured out but I had no way to check so I changed it to just use an integer. What I am struggling with is getting that queried value to be used in another setting.

And sorry,
ActiveBPM
is completely misleading. It should be called
ActiveBeat
or something, though it's worth noting that it's an arbitrary word to represent the value.
 

Posted Tue 10 Jan 17 @ 6:08 pm
How did you change the string to a number?
 

Posted Tue 10 Jan 17 @ 6:29 pm
74%