Quick Sign In:  

Forum: General Discussion

Topic: Script School - Page: 7.45

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

HermeiControlleristMember since 2013
Hi,

Absolute newbie to vdj and perhaps coding in general. But I hope it's not wasteful to ask how one would nest a few operations to reset a variable. was trying to write a macro in poi editor to change the video effect depending on how many times a cue was relooped (I've wrote it so that once it reaches the next cue it loops back to the previous cue 4 times). I can't seem to find the variable "looptest" in var_list. I'm guessing something is wrong in the use of param_cast 'frac'. I was using it with two parameters as used in param_add which worked for me. Any help is appreciated. thanks!

first cue (sequence-wise ; actually cue 16 toward the end of the song which I activate first):

set 'counter' 0 & var_list & goto_cue 1

second cue (I've made it cue 1):

set 'counter' `param_add "get_var 'counter'" 1`
& set 'looptest' `param_cast 'frac' `param_multiply `param_add "get_var 'counter'" 3` .25`` & var_equal 'looptest' 0 ? video_fx_select "shader" :
set 'looptest' `param_cast 'frac' `param_multiply `param_add "get_var 'counter'" 2` .25`` & var_equal 'looptest' 0 ? video_fx_select "cover" :
set 'looptest' `param_cast 'frac' `param_multiply `param_add "get_var 'counter'" 1` .25`` & var_equal 'looptest' 0 ? video_fx_select "camera" :
set 'looptest' `param_cast 'frac' `param_multiply `param_add "get_var 'counter'" 0` .25`` & var_equal 'looptest' 0 ? video_fx_select "slideshow"


third cue (actually cue 2):

var_equal 'counter' 4 ? set 'counter' `param_add "get_var 'counter'" 1` : goto_cue 1 & set 'counter' `param_add "get_var 'counter'" 1`
& set 'looptest' `param_cast 'frac' `param_multiply `param_add "get_var 'counter'" 3` .25`` & var_equal 'looptest' 0 ? video_fx_select "shader" :
set 'looptest' `param_cast 'frac' `param_multiply `param_add "get_var 'counter'" 2` .25`` & var_equal 'looptest' 0 ? video_fx_select "cover" :
set 'looptest' `param_cast 'frac' `param_multiply `param_add "get_var 'counter'" 1` .25`` & var_equal 'looptest' 0 ? video_fx_select "camera" :
set 'looptest' 'param_cast 'frac' `param_multiply `param_add "get_var 'counter'" 0` .25`` & var_equal 'looptest' 0 ? video_fx_select "slideshow" :
video_fx_select "slideshow"

 

Posted Mon 15 Jun 20 @ 10:06 pm
NicotuxHome userMember since 2014
1) in one word: you can't
- you can't nest backquote operations
- you can't nest quoted strings
- you can't nest apostrophe strings
- quotes and apos are optional with ascii variable names
- float needs leading digit
- param_* operations don't need backquotting operations parameters

set 'looptest' `param_cast 'frac' `param_multiply `param_add "get_var 'counter'" 3` .25``
is wrong in multiple ways

in the opposite you can sequence operations:
param_add "get_var 'counter'" 3 & param_multiply 0.25 & param_cast 'frac' & set 'looptest'

or if you want to use operations in operations with no need of backquotes
param_multiply "param_add 'get_var counter' 3" 0.25 & param_cast 'frac' & set looptest

or if you really want to use backquotes
set looptest `param_multiply "param_add 'get_var counter' 3" 0.25 & param_cast 'frac'`

2) about test
var_equal 'looptest' 0 ? video_fx_select "slideshow" : video_fx_select "slideshow"
does nothing but video_fx_select "slideshow" in any case so that it can remove

var_equal 'looptest' 0 ? ...
shorten in
var looptest 0 ? ...

3) try to be more accurate
var_equal 'counter' 4 ? set 'counter' `param_add "get_var 'counter'" 1` : ...
if counter is equal to 4 add 1 to counter .... don't you know what the wil be ?
instead of interpreting backquote string to calculate a well known result
set counter 5
is faster

4) remember no intermediate variable can be more usable
instead of
set looptest `param_multiply "param_add 'get_var counter' 3" 0.25 & param_cast 'frac'` & var_equal 'looptest' 0 ?
use of
param_equal `param_multiply "param_add 'get_var counter' 3" 0.25 & param_cast 'frac'` 0 ? ....
is working as well without the need of a variable

https://www.virtualdj.com/wiki/VDJscript.html
 

Posted Tue 16 Jun 20 @ 1:46 am
twagaPRO InfinityMember since 2009
I'm using numark mixtrack pro II.
I want to assign different VDJscripts to both sides of FX buttons.
Can I do it?
 

Posted Fri 17 Jul 20 @ 3:15 pm
twagaPRO InfinityMember since 2009
 

Posted Fri 17 Jul 20 @ 3:16 pm
twaga wrote :
I'm using numark mixtrack pro II.
I want to assign different VDJscripts to both sides of FX buttons.
Can I do it?


Yes! Just use
action_deck num
as a query. For example:
action_deck 1 ? play : pause

This will be a play button on deck one, and a pause button on all other decks.
 

Posted Fri 17 Jul 20 @ 7:12 pm
twagaPRO InfinityMember since 2009
For example, I want to assign VDJscripts indicated in this attached file.
 

Posted Sat 18 Jul 20 @ 2:52 pm
twagaPRO InfinityMember since 2009
 

Posted Sat 18 Jul 20 @ 2:53 pm
twagaPRO InfinityMember since 2009
Whichever I push left or right FX1 button of mixtrack pro II(indicated in the above picture), FX1 is detected as Key.
How does VirtualDJ distinguish right from left of FX1 buttons?
 

Posted Mon 20 Jul 20 @ 3:21 pm
locoDogPRO InfinityModeratorMember since 2013
action deck X ? FOR DECK X : NOT FOR DECK X
 

Posted Mon 20 Jul 20 @ 3:47 pm
twagaPRO InfinityMember since 2009
 

Posted Mon 20 Jul 20 @ 4:19 pm
Why not?

action deck 1 ? os2l_button 'blackout' : nothing

action deck 2 ? os2l_button 'strobe' : nothing
 

Posted Mon 20 Jul 20 @ 4:21 pm
twagaPRO InfinityMember since 2009
Can we write multiline VDJscript as Action like this?
 

Posted Tue 21 Jul 20 @ 1:34 pm
twaga wrote :
Can we write multiline VDJscript as Action like this?


Hello, I think this might be a solution:

action deck 1 ? os2l_button 'RED' : action deck 2 ? os2l_button 'GREEN' : nothing
 

Posted Tue 21 Jul 20 @ 1:49 pm
twagaPRO InfinityMember since 2009
I've just confirmed that this VDJscript below works well.

action_deck 1 ? os2l_button "Red" : os2l_button "Green"
 

Posted Tue 21 Jul 20 @ 1:52 pm
skyzo76PRO InfinityMember since 2016
hello
I am building custom pad (already done with help of locodog)they are reacting like "ableton" with quantise before next Cue..But my question is about the name of my pad...I want to give the name of the hot_cue (pad1--hotcue 1'name..Pad 2 __hotcue 2 'name') but in the empty text field of Name, no script seems to work...I know that i already talk about this here but I don't find the old threat...
 

Posted Thu 10 Dec 20 @ 4:19 pm
locoDogPRO InfinityModeratorMember since 2013
if I understand, you want
Pad 1 name: `cue_name 1`
 

Posted Thu 10 Dec 20 @ 4:32 pm
NicotuxHome userMember since 2014
or if you wanna have different alternative (name, number, position) depending on cueDisplay setting :
Pad 1 map Name to : `cue_display 1`
 

Posted Thu 10 Dec 20 @ 5:13 pm
skyzo76PRO InfinityMember since 2016
locodog wrote :
if I understand, you want
Pad 1 name: `cue_name 1`

exactly
 

Posted Thu 10 Dec 20 @ 6:36 pm
skyzo76PRO InfinityMember since 2016
skyzo76 wrote :
locodog wrote :
if I understand, you want
Pad 1 name: `cue_name 1`

exactly

ok so..i understand that I don't know what is this character not a " not a '..and when i copy paste your code it works...(but i already tried it with ") OK so it was so simply thanks again locodog
 

Posted Thu 10 Dec 20 @ 6:52 pm
locoDogPRO InfinityModeratorMember since 2013
It's a backtick [has a few names, you should see it above your tab key]
https://www.computerhope.com/jargon/b/backquot.htm

in vdj script backticks [`] are used in a few places, mostly when dealing with text, it tells vdj to use what is inside two back ticks as a script, and then parse it as text
for example, you set a variable to 6.
set 'myVar' 6
you could give a pad name something like this
myVar is `get_var 'myVar'`

what would be displayed is
myVar is 6

backticks have uses in more advanced script than just text, but the purpose is the same. parsing script,
set 'myVarSquare' `param_multiply "get_var 'myVar'" "get_var 'myVar'"`
it can be a little confusing when you need to use backticks as some param_ modifiers are expecting a script so they don't need backticks, other param_ modifiers might expect a script or a string so backticks are need to indicated we have passed it a script.

It's just one of those that you learn with practice.
 

Posted Thu 10 Dec 20 @ 8:08 pm
16%