Page 1 of 1

Question about scripting

Posted: Sat Jul 18, 2020 2:18 am
by mattchristenson
Hi!

I'm just learning to use QLC and I'm wondering if the product is powerful enough to do what I am hoping for.

I would like to be able to write scripts that can take a value of a virtual console control and store that to a variable. Then I would like to set various channels to a value that is a result of an expression (a combination of and/or and arithmetic expressions).

I'm also wondering if it supports basic conditional constructs like if/then and looping?

I'm crossing my fingers that this kind of thing is possible!

Thanks!

Matt Christenson

Re: Question about scripting

Posted: Sat Jul 18, 2020 1:35 pm
by sandinak
So .. AFAIK .. you cannot do this in the scripting console .. the primatives that are available are on this page: https://www.qlcplus.org/docs/html_en_EN ... ditor.html .. tho I can think of two ways you might consider
  • using the RGB Matrix against your fixture(s) .. writing your own function ( using https://www.qlcplus.org/docs/html_en_EN ... ptapi.html ) and then you can programatically send values to the lights .. however not sure how you'd get an input to the matrix other than statically via a passed data encoded in the matrix .. there is a "dimmer control" option there but i've not played with it.
  • I have done something similar by going external, using OLAd and intercepting the DMX values coming from QLC from one U and modifying them ( mainly H,V ) for joystick control of moving heads; and outputting on a different Universe. If you're interested in the code base it's a bit dated ( working now to convert to Python3 ) but you can find it here: https://github.com/sandinak/dmx-followspot .. but that could get you started.
  • you *can* call external programs from "Scripts" .. I've used this with 'sendosc' to control OSC tools (Mitti) via cue's.. but I don't believe you can take data returned data and apply it; it'd be hella powerful if you could do this ;)
Having more functionality in the scripts would be nice .. but would add some complexity having to deal with all the primatives.. might be easier if there was a way to pass data to/from external and apply it.

Good Luck ;)