快速登录:  

Forum: General Discussion

Topic: Script School - Page: 7.35

由于该帖子的部分内容已年深日久,可能包含陈旧过时或描述错误的信息。

locodog wrote :
this works here, so long as you keep masterdeck setting to the default auto
masterdeck ? set $fsvalue 1 & set $fscommand 275 : nothing


Hi locodog, I'm not sure what you mean by "keep masterdeck setting to the default auto". I've filtered for "master" on the settings page as well and cannot find "masterdeck" or anything similar.

I've just tried the script now again (not sure if my masterdeck setting is set to auto), but the FreeStyler command is fired regardless if the POI action of the "active" deck (crossfader moved to active deck) or "inactive" deck (crossfader moved away from deck) is triggered.

 

Nicotux wrote :
to workaround the same issue (not freestyler plugin but unreleased artnet one) we used to use "is_audible ?"


Hi Nicotux. That was what I was looking for! Thank you.
 

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"

 

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
 

I'm using numark mixtrack pro II.
I want to assign different VDJscripts to both sides of FX buttons.
Can I do it?
 

 

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.
 

For example, I want to assign VDJscripts indicated in this attached file.
 

 

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?
 

action deck X ? FOR DECK X : NOT FOR DECK X
 

 

Why not?

action deck 1 ? os2l_button 'blackout' : nothing

action deck 2 ? os2l_button 'strobe' : nothing
 

Can we write multiline VDJscript as Action like this?
 

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
 

I've just confirmed that this VDJscript below works well.

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

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...
 

if I understand, you want
Pad 1 name: `cue_name 1`
 

or if you wanna have different alternative (name, number, position) depending on cueDisplay setting :
Pad 1 map Name to : `cue_display 1`
 

locodog wrote :
if I understand, you want
Pad 1 name: `cue_name 1`

exactly
 

15%