QLCplus with VirtualDJ, via Artnet

This is a place for sharing with the community the results you achieved with QLC+, as a sort of use case collection.
You can share photos, videos, personal hardware/software projects, interesting HOWTO that might help other users to achieve great results.
bluescreen25
Posts: 55
Joined: Fri Jul 21, 2017 4:52 pm
Real Name: Ralf Janssen

mcallegari wrote: Sun Oct 14, 2018 4:54 pm Alright, then I'm missing something about this VDJartnet plugin architecture.
I thought VDJ exposes some kind of hook when a button is pressed/knob rotated/etc.
If that is the entry point, then ArtNet or OSC is just a different incapsulation of the message into a network protocol.
And for our purposes, OSC would be richer than ArtNet.
Thats the point.
If we have a look on VDJ, there are for example some free buttons to give actions. VDJ has an own scripting language to do any mappings of VDJ functions to the button. Easy things are in the pad editor to do by click some dependences together.

For DMX lighting in VDJ with OS2L they included some OS2L-Messages and merged it into the script code. (my meaning). The user can choose in pad editor a main function as DMX and then to "button push action" there comes for example a simple "os2l_button 'blackout' " . That should activate in lighting software the button called "blackout". Thats all.
Same in the Poi Editor of a track. You can set same simple message. I dont know if next time the button or same Cue is set, if the function will stop. Cannot test it.

For DMX lighting in VDJ with VDJArtnet its the same way, but other workaround. Instead of main function DMX you choose Custom and then to "button push action" you set a variable to a value (set artnet 1). You can use var names you wish. In the VDJArtnet in presets is var "artnet" included but also you can use as example "dmx_button".
In VDJArtnet plugin is only a list. Here line = artnet-channel. In a loop the list lines were read. The code in the lines is also the VDJ Script. Is in one line the dependency variable artnet = value 1 then the code will be executed. In this case it will set an artnet value of 255 to artnet channel else value 0.
In DMX Software you only catch the artnet channels , best as profile where you set the names of functions as used in VDJ.
At this point the VDJArtnet plugin gives you more functions because you can set buttons in VDJ to DMX or Pois in VDJ to DMX or only executing VDJ script code such as "every Beat" or "only first beat of 8" in dependencies you wish. This is an advantage !
The only thing what is to do if you use variables is to set them back to value 0. Means that once the var artnet =1 it never stop the code of that line. So in pad editor you can use more VDJ buttons with other values to switch from function to another. Or you simple set one button as "reset" with value 0.
In poi editor the same. First Cue you set artnet 1 and in Cue2 you can set to value 2 to start other function over other artnet channel. Or you simple set artnet 0 in Cue2 to stop the activated script code / Artnet channel.


What do you think ? Which things are with OSC possible ? And how should the plugin work to get the OSC commands directly to QLC+ and also the possibilities of self executing VDJ Script code to OSC command. What expects QLC+

regards ralf
bluescreen25
Posts: 55
Joined: Fri Jul 21, 2017 4:52 pm
Real Name: Ralf Janssen

Here some changes and bugfixes to presets of VDJArtnet-plugin (Thanks for some ideas to Nicotux from VDJ Forum :D )

Windows DLL Github 10.05.2018 modified 18.10.2018
http://www.cave-live.info/VDJArtnetDLL.zip

regards ralf
Brunoliv
Posts: 8
Joined: Sat Oct 06, 2018 6:34 pm
Real Name: Bruno Oliveira

Can anyone help me to do the basic thing: On VDJ, when an "action" marker is played ("set artnet 35" for example) I want to trigger a button on QLC+ thats it. I dont understand (probably nothing) about artnet and complex vdj script.
maybe a step by step beginners guide for VDJartnet + qlc for dummies. I just want to trigger buttons when the mark is played by VDJ
bluescreen25
Posts: 55
Joined: Fri Jul 21, 2017 4:52 pm
Real Name: Ralf Janssen

Hello,

i made a little tutorial about VDJArtnet to use, but its in german. Sorry for crappy sound....its my first video and used the laptop mic.
If needed, i can try to make in english.

https://youtu.be/dJB3Q0eWlhc

regards, ralf
User avatar
EXELBONSAI
Posts: 48
Joined: Fri Jul 20, 2018 9:33 am
Location: Berlin
Real Name:
Contact:

Hello Ralf

A great video. , ,
Simply ingenious and easy to explain. Even your built-in scripts expand the plugin phenomenally

THANK YOU
nixCode
Posts: 5
Joined: Wed Jun 06, 2018 9:55 pm
Real Name: Jonathan Tanner

Hello all,

I am the original/lead developer of VDJartnet and I was only just made aware of this thread, I apologise for having not released much on the plugin for a while. I have been working on a full rewrite of all the UI code to try to make it less platform dependent, this is now almost complete and we are relatively close to a 1.0.0 release.

As for why I decided to use Art-Net instead of OSC, I originally wrote VDJartnet very quickly in order to persuade my friend to move from Freestyler to QLC+ for his DJ work, at the time, freestyler was the only free lighting software that could interface with VirtualDJ and Art-Net was a simple to implement protocol that seemed to work with everything. I would be happy to work on an OSC version once 1.0.0 is released which I hope will be before the end of the year.

I hope that 1.0.0 will alleviate most of the issues that you have had and I would like to integrate any changes that have been made (particularly to the set of built in presets which are in https://github.com/VDJartnet/VDJartnet/ ... resets.txt) into the main GitHub repo so please submit pull requests with any changes.

Ralf, I apologise if my response to you on GitHub was overly aggressive, I have put quite a bit of time into this and appreciate the feedback and I understand that if English is not your first language then it may not have been intended how I read it. If that is the case then I sincerely apologise, I would appreciate it if you could submit any changes that you have made in the versions you have been distributing as pull requests.

Thank you all and I hope that we can make VDJartnet the best that it can be,

Jonathan Tanner
User avatar
mcallegari
Posts: 4711
Joined: Sun Apr 12, 2015 9:09 am
Location: Italy
Real Name: Massimo Callegari
Contact:

Hi Jonathan, glad you're here, and thanks for your efforts to provide a VDJ to QLC+ solution to everyone.
If there's anything I can do to help out with developments please let me know.
Brunoliv
Posts: 8
Joined: Sat Oct 06, 2018 6:34 pm
Real Name: Bruno Oliveira

bluescreen25 wrote: Mon Oct 22, 2018 5:23 pm Hello,

i made a little tutorial about VDJArtnet to use, but its in german. Sorry for crappy sound....its my first video and used the laptop mic.
If needed, i can try to make in english.

https://youtu.be/dJB3Q0eWlhc

regards, ralf
Thanks Man! I'm from Brazil and my primary language is Portuguese and my second is English, BUT your video help me setting things up the way I intended, besides language barrier. Thanks a lot :)
bluescreen25
Posts: 55
Joined: Fri Jul 21, 2017 4:52 pm
Real Name: Ralf Janssen

Hello,

@Jonathan Tanner: Thanks for your reply and also that VDJArtnet goes to V 1.0 :D

A look in code of comming V1.0 i saw that a handful of presets are input in dll file and you see them on first start of plugin.
But there is a new feature to load an external preset file, too.

In the between time of waiting to V 1.0 i made some more presets scripts and some changes in windows 32 bit dll from Github 05/2018.
The changes in dll will bring this feature and now we can exchange some cool scripts until the big release will come. They can used also in all other versions in future.

So lets diskuss and upload here some cool VDJ-scripts in txt-file-format :D

Here now the package with a ReadmeFirst.txt with manual.

http://www.cave-live.info/vdjartnet/VDJ ... itPack.zip


Hope it helps someone, regards Ralf


Waveform Level Script to QLC+ with slider and cue list. Also possible with slider and speed dial.

https://youtu.be/J2vZ2xc4ZYY

Or First Beat of 4 Fadeout Script.

https://youtu.be/Uc5x7o4-fZQ
bluescreen25
Posts: 55
Joined: Fri Jul 21, 2017 4:52 pm
Real Name: Ralf Janssen

Hello,

here an example workspace to switch between VDJArtnet-Macros which are not set by CUE or Custom Button of Virtual DJ.

Tipp:
- In final workspace you can hide the widgets behind the button.
- Use activate/deactivate of Solo-frame to stop the external input to all widgets, while you not use VDJArtnet Macros. (to reduce some cpu)

regards, Ralf
Attachments
VDJArtnet_Macros.qxw
(15.33 KiB) Downloaded 790 times
VDJArtnet_Macros.jpg
bluescreen25
Posts: 55
Joined: Fri Jul 21, 2017 4:52 pm
Real Name: Ralf Janssen

Hello,

here an example workspace to switch between VDJArtnet-Macros in Automatik as CueList.
CueList step every 32 beats of beatgrid from Virtual DJ.
Within the macros it is possible to add chaser which include efx or rgb matrix. The speeds and intensity (dimmer) from external input of artnet channel (VDJartnet).

It's a little bit tricky to add Makros to cuelist (here done with loopback function)

regards, Ralf

Attachments
VDJArtnet_Macros_Loopback.jpg
VDJArtnet_Macros_Loopback.qxw
(19.15 KiB) Downloaded 813 times
nixCode
Posts: 5
Joined: Wed Jun 06, 2018 9:55 pm
Real Name: Jonathan Tanner

mcallegari wrote: Sun Oct 14, 2018 11:39 am I was wondering, why ArtNet though ? If I had to do this, I would have picked OSC.
ArtNet is kind of an "anonymous" protocol, while OSC has named signals.

I might try to contact Jonathan Tanner who first wrote VDJartnet and see what he thinks about writing an OSC version as well.
Unless someone else volounteer to attempt it. I can give support on the OSC implementation, since I have already done it in QLC+
Having looked at the OSC spec it's a more complex protocol which seems to be reduced to a DMX universe by the QLC+ OSC plugin. As such I'm not sure if it would provide a better experience that just outputting a DMX universe from VDJ. Please correct me if I misunderstood how the QLC+ OSC plugin works.
User avatar
mcallegari
Posts: 4711
Joined: Sun Apr 12, 2015 9:09 am
Location: Italy
Real Name: Massimo Callegari
Contact:

nixCode wrote: Sun Nov 11, 2018 3:24 pm
mcallegari wrote: Sun Oct 14, 2018 11:39 am I was wondering, why ArtNet though ? If I had to do this, I would have picked OSC.
ArtNet is kind of an "anonymous" protocol, while OSC has named signals.
I might try to contact Jonathan Tanner who first wrote VDJartnet and see what he thinks about writing an OSC version as well.
Unless someone else volounteer to attempt it. I can give support on the OSC implementation, since I have already done it in QLC+
Having looked at the OSC spec it's a more complex protocol which seems to be reduced to a DMX universe by the QLC+ OSC plugin. As such I'm not sure if it would provide a better experience that just outputting a DMX universe from VDJ. Please correct me if I misunderstood how the QLC+ OSC plugin works.
Well, OSC itself isn't quite designed for lighting, so yes, it's correct to say it doesn't have a "native" universes knowledge.
However, OSC works by so called "paths", so it opens an (almost) infinite number of possibilities.
For example, if you send paths like "/universe/1/button/1" to "/universe/1/button/100" and "/universe/2/button/1" to "/universe/2/button/100" there you have 2 logical universes and 200 buttons to control.
An OSC input line can be assigned multiple times to several universes, even though you don't really need to, as a single line will handle all the messages from an IP address. Unless you have multiple network cards or multiple IP address per card, but that's another story.
Long story short: the QLC+ OSC plugin handles 65535 OSC paths. Isn't that enough to control a Virtual Console ? :)

P.S. I contacted the VDJ guys once again and they agreed to drop mDNSresolver (or enable/disable - I don't know) and add a configuration dialog where users can enter a destination IP address. Default should be 127.0.0.1, so basically will work out of the box for 2 softwares running on the same PC.
If and when this will happen, I will start implementing a O2SL plugin in QLC+. So there's still hope to go their official solution :)
nixCode
Posts: 5
Joined: Wed Jun 06, 2018 9:55 pm
Real Name: Jonathan Tanner

mcallegari wrote: Sun Nov 11, 2018 6:56 pm
nixCode wrote: Sun Nov 11, 2018 3:24 pm
mcallegari wrote: Sun Oct 14, 2018 11:39 am I was wondering, why ArtNet though ? If I had to do this, I would have picked OSC.
ArtNet is kind of an "anonymous" protocol, while OSC has named signals.
I might try to contact Jonathan Tanner who first wrote VDJartnet and see what he thinks about writing an OSC version as well.
Unless someone else volounteer to attempt it. I can give support on the OSC implementation, since I have already done it in QLC+
Having looked at the OSC spec it's a more complex protocol which seems to be reduced to a DMX universe by the QLC+ OSC plugin. As such I'm not sure if it would provide a better experience that just outputting a DMX universe from VDJ. Please correct me if I misunderstood how the QLC+ OSC plugin works.
Well, OSC itself isn't quite designed for lighting, so yes, it's correct to say it doesn't have a "native" universes knowledge.
However, OSC works by so called "paths", so it opens an (almost) infinite number of possibilities.
For example, if you send paths like "/universe/1/button/1" to "/universe/1/button/100" and "/universe/2/button/1" to "/universe/2/button/100" there you have 2 logical universes and 200 buttons to control.
An OSC input line can be assigned multiple times to several universes, even though you don't really need to, as a single line will handle all the messages from an IP address. Unless you have multiple network cards or multiple IP address per card, but that's another story.
Long story short: the QLC+ OSC plugin handles 65535 OSC paths. Isn't that enough to control a Virtual Console ? :)
In that case, how is OSC better than simply adding support for multiple Art-Net universes?
User avatar
mcallegari
Posts: 4711
Joined: Sun Apr 12, 2015 9:09 am
Location: Italy
Real Name: Massimo Callegari
Contact:

nixCode wrote: Mon Nov 12, 2018 1:50 am In that case, how is OSC better than simply adding support for multiple Art-Net universes?
OSC has named paths that can be easily recognized in QLC+, ArtNet does not.
OSC can send multiple values per path, ArtNet cannot.
OSC can send a single value, ArtNet should always send an entire universe. (even if the standard allows otherwise)
OSC has less packet overhead than ArtNet.
nixCode
Posts: 5
Joined: Wed Jun 06, 2018 9:55 pm
Real Name: Jonathan Tanner

mcallegari wrote: Mon Nov 12, 2018 8:09 am
nixCode wrote: Mon Nov 12, 2018 1:50 am In that case, how is OSC better than simply adding support for multiple Art-Net universes?
OSC has named paths that can be easily recognized in QLC+, ArtNet does not.
OSC can send multiple values per path, ArtNet cannot.
OSC can send a single value, ArtNet should always send an entire universe. (even if the standard allows otherwise)
OSC has less packet overhead than ArtNet.
Can the QLC+ OSC plugin be configured to accept arbitrary paths and multiple values per path?
User avatar
mcallegari
Posts: 4711
Joined: Sun Apr 12, 2015 9:09 am
Location: Italy
Real Name: Massimo Callegari
Contact:

nixCode wrote: Mon Nov 12, 2018 12:35 pm
mcallegari wrote: Mon Nov 12, 2018 8:09 am
nixCode wrote: Mon Nov 12, 2018 1:50 am In that case, how is OSC better than simply adding support for multiple Art-Net universes?
OSC has named paths that can be easily recognized in QLC+, ArtNet does not.
OSC can send multiple values per path, ArtNet cannot.
OSC can send a single value, ArtNet should always send an entire universe. (even if the standard allows otherwise)
OSC has less packet overhead than ArtNet.
Can the QLC+ OSC plugin be configured to accept arbitrary paths and multiple values per path?
It already does, by default.
However, to see named paths in the Virtual Console widgets, you need to use a custom input profile (example), otherwise you will see only the "channel numbers" (= hash) calculated on a path.
User avatar
EXELBONSAI
Posts: 48
Joined: Fri Jul 20, 2018 9:33 am
Location: Berlin
Real Name:
Contact:

Hello dear friends of the good light
As always, translate with google

have the following problem
Connected via Artnet (output) my Pangolin Beyond software and this works perfectly.
Now I'm experimenting with the VDJ Artnet plugin (input) which also works perfectly.

If I want to use both at the same time Pangolin always has the privilege and VDJ does not work.
No matter in which order I activate the plugins.
Is the VDJ plugin active and works, but as soon as I turn on Beyond gets / receives VDJ no signal.

Also use different universes

Is it normal that no 2 Artnet plugins or scripts can run at the same time?
nixCode
Posts: 5
Joined: Wed Jun 06, 2018 9:55 pm
Real Name: Jonathan Tanner

EXELBONSAI wrote: Mon Nov 12, 2018 1:57 pm Hello dear friends of the good light
As always, translate with google

have the following problem
Connected via Artnet (output) my Pangolin Beyond software and this works perfectly.
Now I'm experimenting with the VDJ Artnet plugin (input) which also works perfectly.

If I want to use both at the same time Pangolin always has the privilege and VDJ does not work.
No matter in which order I activate the plugins.
Is the VDJ plugin active and works, but as soon as I turn on Beyond gets / receives VDJ no signal.

Also use different universes

Is it normal that no 2 Artnet plugins or scripts can run at the same time?
You need to set VDJartnet to use a different port to default. I'm not sure which version you are running but in v1.0.0 which is almost ready for release that will be easy.
User avatar
EXELBONSAI
Posts: 48
Joined: Fri Jul 20, 2018 9:33 am
Location: Berlin
Real Name:
Contact:

Hello nixCode

Thanks for the answer. Well, I have a plugin in the window where I can change that. How do I tell it but QLC that I because a plugin z.b 127.1.2 sends?
Post Reply