Forum: General Discussion
If you need extended support, contact our Support Team.
Forum Guidelines (*) The moderators hold the rights to move or modify posts in order to keep the discussions clear or to facilitate the search.
Do not really...
Topic: Do not really understand VirtualDJ scripting, Help please (Artnet & QLC+)
actually i try to do a little lightshow using Virtual DJ, Artnet-DLL and QLC+. Everything is configured and also working i think, because i can set POIs as a marker and do an action like "set PAR010 255". Within Artnet then on one channel the configuration looks like
is_audible deck active ? & var PAR010 ? set $VDJartnetsend PAR010 : set $VDJartnetsend 0 : set $VDJartnetsend 0
At QLC+ the button reacts and the lamp switches to on, everything ok. At this point the variable PAR010 in Virtual DJ has still the value 255 and i have to do a "set PAR010 0" to unset.
My personal problem here are the chaining commands, my idea is to set the variable PAR010 back to 0 AFTER the "signal" has been send through Artnet, so there is no need for another POI to set the variable back to Zero before i can set it back on again. Is this possible with Virtual DJ scripting?
I have tried something like this, but didn't work:
is_audible deck active ? & var PAR010 ? set $VDJartnetsend PAR010 & set PAR010 0 : set $VDJartnetsend 0 : set $VDJartnetsend 0
is_audible deck active ? & var PAR010 ? set $VDJartnetsend PAR010 ? set PAR010 0 : set $VDJartnetsend 0 : set $VDJartnetsend 0 : set $VDJartnetsend 0
I have to do this on next sunday on a little sport-event ... :-(
Inviato Tue 19 Feb 19 @ 1:15 pm
set 'PAR10' 1 & repeat_start 'TOffPar10' 100ms 1 & set 'PAR10' 0
The above script is actually 2 parts. First part sets a variable. The second part starts a repeating action (named 'TOffPar10') that repeats every 100ms for 1 time(s)
Effectively this means that the action of the second part will get executed only once 100ms after the action of the first part.
In other words your 'PAR10' variable will get the value '1' for 100ms and then it will go back to 0
There are other ways to achieve that as well, but this is the most clean.
Inviato Tue 19 Feb 19 @ 1:41 pm
sounds good, thank you, i will try it this evening ... but am i right, that will be the script at the POI, not at the Artnet-Plugin, correct?
But .. when i want to set PAR010, PAR011 and PAR012 within one POI, then this script will not work, right?
I thought about a "set PAR010 255 & set PAR011 255 & set PAR012" at the POI and then the Script at the Artnet-Channel should reset the variable, wouldn't this be better?
Inviato Tue 19 Feb 19 @ 3:33 pm
you better use something like this:
is_audible deck active ? & var PAR010 ? set $VDJartnetsend `get_var PAR010` & set PAR010 0 : set $VDJartnetsend 0 : set $VDJartnetsend 0
if wour var PAR010 is not only 0 255
however if PAR010 is only an on/off switch better use something like that :
is_audible deck active ? & var PAR010 ? set $VDJartnetsend 255 & toggle PAR010 : set $VDJartnetsend 0 : set $VDJartnetsend 0
Note: If the vdjartnet.dll is one of those i compiled / have this mod, you can use some set $VDJartnet -1 on a way to keep light as is too
is_audible deck active ? & var PAR010 ? set $VDJartnetsend 255 & toggle PAR010 : set $VDJartnetsend 0 : set $VDJartnetsend -1
Inviato Tue 19 Feb 19 @ 3:59 pm
Therefore my answers are generic.
However, in order to set and reset multiple parameters at once this code should work:
set 'PAR010' 255 & set 'PAR011' 255 & set 'PAR012' & repeat_start 'resetParams' 100ms 1 & set 'PAR010' 0 & set 'PAR011' 0 & set 'PAR012' 0
This action sets 3 variables to desired values and resets them after 100ms (and it's all done within one action)
Inviato Tue 19 Feb 19 @ 7:31 pm
1st : variable names needs quotes - what I forgot in previous post, without quotes it rely to variable name itself - see forward
"set $VDJartnetsend PAR010 " won't work because it is erroneous My "set $VDJartnetsend `get_var PAR010`" is erroneous as well ... lazyness.. copy past and i didn't saw it
in your POI command must be written like this : set "PAR010" 255
2nd : in a way to copy a variable in another one you must read it executing get_var within backquotes
must be :'set "$VDJartnetsend" `get_var "PAR010"`
3rd: "is_audible deck active ? & var PAR010 ? ..." do not work as it seems you guess it does - and have an error
"var PAR010 ? ..." is testing whenever the variable PAR010 does exist
With quotes :
"var 'PART010' ? ..." will test whenever PART010 is not null
"var 'PART010' 0 ? ..." will test whenever PART010 is null and any other value instead of zero can be used
4th : ampersand & stand for " and " and is used to link verbs thus no need of it here
5th: default deck is active deck so far "deck active" is not needed
Your final FULL script would be - if i don't make another error again... would look like:
is_audible ? var "PAR010" ? set "$VDJartnetsend" `get_var "PAR010"` & set "PAR010" 0 : set "$VDJartnetsend" 0 : set "$VDJartnetsend" -1
You can do more:
VDJ will do nothing when no alternate is given to "?"
As VDJArtnet.DLL is needing to internally reset by itself its $VDJartnetsend variable, you may ignore the last parts of both command "?"
giving the following short script :
s_audible ? var "PAR010" ? set "$VDJartnetsend" `get_var "PAR010"` & set "PAR010" 0
MORE WITH IS BETTER:
If you only do an on/off switch and put yourself PAR010 to 255 in your POI or wanna be able to control a slider in QLC+ by setting PAR010 to any value between 0 and 255
then second test is useless
s_audible ? set "$VDJartnetsend" `get_var "PAR010"` & set "PAR010" 0
would be more than enough
Inviato Tue 19 Feb 19 @ 9:22 pm
sorry for the delay, but thank you all very much for your fast and detailed answers.
Not really all worked here and by virtue of the short time i get the following working, at this point it does what i wanted, but i will follow this topic in the near future.
is_audible deck active ? var "PAR001" ? set $VDJartnetsend 255 : set $VDJartnetsend 0
set "PAR001" 1 & repeat_start "TOffPar001" 150ms 1 & set "PAR001" 0
Inviato Mon 25 Feb 19 @ 3:34 pm