Ingreso rápido:  

Forum: General Discussion

Tema: Do not really understand VirtualDJ scripting, Help please (Artnet & QLC+)

Este tópico es antiguo y puede contener información incorrecta para la nueva versión.

AlhifiPRO InfinityMember since 2015
Hi Forum-Members,

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

or

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

bye
Roger

 

Mensajes Tue 19 Feb 19 @ 1:15 pm
You can try something like this:

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.
 

Mensajes Tue 19 Feb 19 @ 1:41 pm
AlhifiPRO InfinityMember since 2015
Hi again,

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?

Bye
Roger
 

Mensajes Tue 19 Feb 19 @ 3:33 pm
NicotuxHome userMember since 2014
Hi,

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
 

Mensajes Tue 19 Feb 19 @ 3:59 pm
I don't use Artnet nor an associated plugin.
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)
 

Mensajes Tue 19 Feb 19 @ 7:31 pm
NicotuxHome userMember since 2014
Anyway there are only some VDJ script "syntax errors" in the scripts:

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

Without quotes:
"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


 

Mensajes Tue 19 Feb 19 @ 9:22 pm
AlhifiPRO InfinityMember since 2015
Hi again,
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.

Plugin:
is_audible deck active ? var "PAR001" ? set $VDJartnetsend 255 : set $VDJartnetsend 0

Poi,
set "PAR001" 1 & repeat_start "TOffPar001" 150ms 1 & set "PAR001" 0

Bye
Roger
 

Mensajes Mon 25 Feb 19 @ 3:34 pm
As a complete newby I try to send bmp over artnet, but in groups.
So I wrote get_bmp $ param_greater 100 ? set $VDJartnetsend 100 : set $VDJartnetsend 80, tried
param_greater get_bmp 100.0 ? set $VDJartnetsend 100 : set $VDJartnetsend 80 and
get_bmp & param_cast 'int_trunc' & set $VDJartnetsend
Doesn´t work.

Can someone help me out ?
Thx
 

Mensajes Mon 05 Aug 19 @ 1:43 pm
NicotuxHome userMember since 2014
first of all it's get_bpm after what everything will go better

get_bpm & param_greater 100 ? set $VDJartnetsend 100 : set $VDJartnetsend 80
will set 100 if bpm > 100 and 80 in bpm < 100

param_greater get_bpm 100.0 ? set $VDJartnetsend 100 : set $VDJartnetsend 80
will set 100 if bpm < 100 and 80 if bpm > 100

set $VDJartnetsend `get_bpm`
will set truncated value of bpm

What version of VDJArtNet do you trying to use ?
 

Mensajes Mon 05 Aug 19 @ 3:41 pm
Well, think I worked it out: despide what VDJPedia says it is NOT get_bpm & param_cast 'integer' & set $VDJartnetsend but
get_bpm & param_cast integer & set $VDJartnetsend (without the ampersands)
And what version I´m using ? Don´t know exactly, it´s a DLL build from your sources by myself, dated 10.April 2019, 17:54
 

Mensajes Mon 05 Aug 19 @ 4:07 pm
get_bpm & param_greater 100 ? set $VDJartnetsend 100 : set $VDJartnetsend 80

I´ll check this out... thx
 

Mensajes Mon 05 Aug 19 @ 4:10 pm


(Los tópicos y foros antiguos son automáticamente cerrados)