Quick Sign In:  

Forum: VirtualDJ Technical Support

Topic: need help on scripting language

Dieses Thema ist veraltet und kann veraltete oder falsche Informationen enthalten.

First question: Is there a way to select master video transitions (additive, color swap, etc) with script? In going with my theme of automating these things I'd like to be able to rotate those on a schedule like the below:
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Edit: Okay, I'm gonna leave this up in case it ever happens again and I need to find it but it turns out I needed to restart vdj before it wanted to work.

The goal is to move the video crossfader from one side to the other and repeat until I turn it off. I had it working just fine and then I went to create a new pad and somehow erased it. It took me forever to get it figured out and now I'm pretty sure I've rebuilt it but it's not working. If the video crossfader is above 50% the pad lights up but it doesn't move it back and forth like it's supposed to.

repeat_start_instant 'test' 15000ms & not param_bigger video_transition 50% ? video_transition 10000ms 25% : video_transition 10000ms 75%
 

geposted Tue 08 Dec 20 @ 6:14 pm
Two mistakes:
1) You need to use param_smaller video_crossfader 50% (or invert the actions after your query)
2) video_crossfader (as an action) does not accept time. video_transition does.

So, this should work for you:
repeat_start_instant 'VideoPingPong' 6000ms & param_smaller video_crossfader 50% ? video_transition 10000ms 25% : video_transition 10000ms 75%

(feel free to adjust times and crossfader stops)
One thing about times: the "video_transition 10000ms 25%" action means that it will take 10sec for video crossfader to travel from 0% to 100%, not that it will take 10 secs to reach 25% from current position.
On the example above we use only 50% range of the crossfader (from 25% to 75%) So, the crossfader will need about 5 seconds to cover that distance.
Therefore we repeat the action every 6 secs (a value slightly bigger than the time needed to travel) in order to have an almost seamless ping pong effect. (Crossfader will stop about 500ms on each side before starting movement again)
Using 5000ms for the repeat won't work for a true seamless ping-pong effect. That's because when the repeat occurs the crossfader is exactly on time (still travels) and ignores the second travel command. You can use something like 5100ms to achieve almost seamless if you like.

Finally: Yes you can change video transitions via script:
video_transition_select 'boom'

or
video_transition_select +1

Also if you like, you can turn on randomvideotransition setting to let VirtualDJ change the video transition used automatically and random
 

geposted Tue 08 Dec 20 @ 6:44 pm
NicotuxHome userMember since 2014
you repeat forever and every press will ... go on repeating forever:

repeat_start test ? on & repeat_stop test : repeat_start_instant test 15000ms -1 & param_smaller video_transition 50% ? video_transition 10000ms 25% : video_transition 10000ms 75%

first part toggles on/off the loop and the button,
loop needs a repeat count now (- 1 = forever) otherwhise it will loop only once

PhantomDeejay pointed out the other points about crossfader ... and video_transitions

repeat_start test ? on & repeat_stop test : repeat_start_instant test 1500ms -1 & param_smaller video_transition 50% ? video_transition 1000ms 10% : video_transition 1000ms 90%
 

geposted Tue 08 Dec 20 @ 6:58 pm
I wouldn't mind the +1 or random but is there a way to exclude some transitions from the cycle? Some of the default ones have a cheesy corporate powerpoint vibe that I'd like to skip over.
 

geposted Tue 08 Dec 20 @ 7:01 pm
locoDogPRO InfinityModeratorMember since 2013
uninstal from extensions
 

geposted Tue 08 Dec 20 @ 7:10 pm
Nicotux wrote :
loop needs a repeat count now (- 1 = forever) otherwhise it will loop only once

Actually, omitting the loop count will repeat forever. Defining a loop count, will repeat for as many times you tell it.
Using -1 works because -1 is not valid, and therefore omitted.

reapeat_start 'this' 100ms & action <-loops forever
reapeat_start 'this' 100ms -1 & action <-loops forever (because -1 is not valid)
reapeat_start 'this' 100ms 5 & action <-loops 5 times
reapeat_start_instant 'this' 100ms & action <-loops forever
reapeat_start_instant 'this' 100ms -1 & action <-loops forever (because -1 is not valid)
reapeat_start_instant 'this' 100ms 5 & action <-loops 5 times

And another thing:
It's nice to be able to stop the repeat script with the same button you've started it, but it's not always necessary.
So:
repeat_start 'this' ? on & repeat_stop 'this' : repeat_start 'this' 100ms & action is nice, but not always necessary. (Just saying)
Depending on what you're after you may never want to turn off repeat script, or you may want to turn it off from another button, action or even repeat script:
repeat_start 'that' 5000ms & repeat_start 'this' ? repeat_stop 'this' : another action
 

geposted Tue 08 Dec 20 @ 7:10 pm
NicotuxHome userMember since 2014
In case you have "no parameter" -1 can be ommited but in this cases only
As far as you previously did an action and there was a positive or null result -1 is needed or the result of the action will be take as a parameter
(i.e. calling a custom button from a script, the button script gets a parameter... calling a pads button from a script, the button script gets no parameter, so first position does not assure you get no value)
in present situation it is as long as button is only pressed (never called)

i explain:

create a button & name it `get_var v`
map the script:
repeat_start test 100ms & cycle v 10 & var v 0 ? repeat_stop test
press it:
name cycles 10 times

change script to
get_var v & param_cast int & debug & repeat_start test 100ms & cycle v 10 & var v 0 ? repeat_stop test
name stay 0, loops no time

(i use getvar and debug here as an example of any actions giving a result)

change script to
get_var v & param_cast int & debug & repeat_start test 100ms -1 & cycle v 10 & var v 0 ? repeat_stop test
name cycles 10 times

now you can... deal with the set of related "bugs" (param_add and param_invert)
param_add 1 & param_cast int & debug ==> -1
param_add 3 & param_cast int & debug ==> -3
param_add -1 & param_cast int & debug ==> 1
param_invert & param_cast int & debug ==> 1

and the value of the initial param value was ??? (VDJ really created a new mathematics ?)

what is interesting using this is:
change the script to:
param_invert & param_cast int & debug & repeat_start test 100ms & cycle v 10 & var v 0 ? repeat_stop test
name now cycle once only, because result was 1

combine all in one:
get_var v & param_add 3 & param_cast int & set v & debug & repeat_start test 100ms & cycle v 10 & var v 0 ? repeat_stop test
4 8 2 6 0
or
5 9 3 7 1
... depending on initial value of v

IMHO better always specify -1 to cycle forever here
 

geposted Tue 08 Dec 20 @ 8:56 pm
Quote :
get_var v & param_cast int & repeat_start test 100ms & cycle v 10 & var v 0 ? repeat_stop test

What you're doing here is that you're using the var v as an implicit parameter (so you pass it to repeat_start)
If you set v to 2 before you execute the above action, then you'll see it repeats two times. (increases the var from 2 to 4)

Anyway, that's not the best thread to further analyze this (better start a new one if you want to discuss how it works since we will confuse the OP more)
Also for 99,9% of the users, such syntax and actions are unlikely to be used.

For the rest 0.1%, I get your point. But better start a new thread.
 

geposted Tue 08 Dec 20 @ 9:55 pm
Controller Manager.
 

geposted Wed 09 Dec 20 @ 12:19 am


(Alte Themen und Foren werden automatisch geschlossen)