Page 1 of 2

DMX KeyPad

Posted: Sat Apr 12, 2014 11:38 pm
by jannis87
Hi community,
I'm using QLC+ mainly for doing live lightshows during rock concerts. When I arrive at a venue where there's usually a lighting desk, I use the "Simple Desk" to check all fixtures and the patching and then create Functions and my Virtual Console. While it is very nice that the Virtual Console can be accessed via web server, the Simple Desk cannot. So while I'm on stage with my laptop at the FOH, I cannot use my mobile phone to check the fixtures since I just didn't yet setup the Virtual Console at all.
Furthermore, If you ever tried using sliders on the web interface via a mobile phone you realize that you need to be very precise. Otherwise my browser scrolls instead of modifying the value.
To get rid of all of these problems, I tried to implement a DMX KeyPad in QLC+. The ones you find on lighting desks like GrandMA and the ones made by transtechnik to select a range of channels and assign a value to them. Those keypads are very suitable for touchscreens and the webserver of the OLA daemon (Open Lighting Architecture) features such a keypad.

My first try enhances the Simple Desk by adding the keypad to the sliders in the upper section. This make sense since just like the sliders, the commands from the keypad override the DMX channel values until reset and you get a visual feedback which channels are overridden (red background of sliders). The long aim is to add it also to the webserver so it can be used via mobile phone or tablet.

The code can be found here: https://github.com/kripton/qlcplus/tree/dmxkeypad
Just switch to the Simple Desk and play around.
The number keys, "AT", "CLR", "FULL", "THRU" (for channel ranges, not yet for value ranges) and "ENTER" should be working. "MINUS", "PLUS" and "BY" as well as value ranges (transtechnik calls them "FAN" function) haven't been implemented yet.
I plan to add a syntax diagram as found on https://sqlite.org/syntaxdiagrams.html for the documentation later.

It would be nice to get comments on the code and the functionality so I can change it rather early than later.

Best regards,
Jannis

DMX KeyPad

Posted: Sun Apr 13, 2014 12:17 pm
by Jano Svitok
For diagrams, check asciidia.

DMX KeyPad

Posted: Sun Apr 13, 2014 7:24 pm
by jannis87
Jano, thanks for the hint, the generated graphs look usable. However, I think I'll try the way SQLite generated their graphs first since they used a Tcl-program and I know Tcl better than PHP. Furthermore I didn't decide yet, whether to ship the diagrams as SVG/PNG or as source and let them be generated during build time. In the latter case it matters on what interpreter we can depend.

Another note about the actual KeyPad StateMachine algorithm: I just realized that I should use the enter() and exited() signals of the states more often. That might save me a lot of if-instructions. Refactoring the code right now ...

DMX KeyPad

Posted: Tue Apr 22, 2014 8:54 pm
by jannis87
Here's a screenshot of the functionality

DMX KeyPad

Posted: Tue Apr 22, 2014 8:58 pm
by jannis87
Another screenshot. Two commands were issued:
1 THRU 10 BY 3 AT 200
18 THRU 25 AT 0 THRU 255

DMX KeyPad

Posted: Tue Apr 22, 2014 9:34 pm
by Jano Svitok
I really like it, I kind of planned something like that (as a developer, I always welcome keyboard control, and command line interfaces :) ). Unfortunately I'm pretty busy so I can't check the code now. Massimo is planning release real soon, so I suppose he won't merge it before the release either.

DMX KeyPad

Posted: Wed Apr 23, 2014 9:42 am
by Massimo Callegari
Hi Kripton, you did it right to post the shots here. Sorry for asking them in private.
As Jano said, this is too much to be integrated in 4.7.1, but I'm willing to do it later.

The only problem I see here is a "space issue". I struggled to have the Simple Desk 32 channels to fit on smaller screens. Now the smallest width that Simple Desk can assume is 980 pixels (at least on Linux)
Your shots are 1318 pixels wide, so your solution won't fit on 1280x1024 or 1024x768 resolutions. In those cases I guess QLC+ will resize the window out of the screen, so the user won't be able to access the rightmost icons, like operate mode, blackout and so on.
Even worse, all the right editors will be cut (chaser, efx, rgb matrix editors, etc)

I would propose to add a button to show/hide the keypad
- as an optional left panel (your current solution)
- as a separate window always on top, like the speed dials window

What do you think ?

DMX KeyPad

Posted: Wed Apr 23, 2014 6:15 pm
by jannis87
Hi,
no problem that this won't make it into 4.7.1. More time to write documentation :D (And maybe get it onto the webserver?)

The smallest width I can get by resizing is 1088px (Too wide for 1024). But it looks like the width is limited (in a minimum width way) by the bottom half.

However, all the splitters (the horizontal one between the "Universe control" (top) and the cue stack (bottom) can be resized and when pulling the splitter between the faders and the keypad way to the right and the keypad will disappear automatically. However, hiding it by default will probably keep it hidden forever.
In the bottom half, the "Cue stack" is a tab and I thought about just adding the keypad as another tab there. From the design side (mostly looking at the existing code) it really doesn't belong there but directly attached to the "Simple Desk" faders at the top.
Separate window: Sure, thought about that one, too. Everytime the keypad runs detached from the simple desk, it needs a button to reset the channels. I even thought about deriving from the simpledesk and running detached from it. Any design-improvements are appreciated :D

DMX KeyPad

Posted: Sat Apr 26, 2014 1:29 pm
by Massimo Callegari
Two considerations:
- the Simple Desk minimum width is determined by the top part, not the bottom one. I think the channels top icons are the ones that cannot be resized
- the Cue Stack is a tab because if channel groups are present in the project, they will appear in the Simple Desk as a new tab (try it out). This means that those tabs are generic, so not necessarily related to the bottom part.

Said that, I would go for two options:
- keypad as a separate window
- keypad as a tab

Which one do you prefer ? :)

DMX KeyPad

Posted: Tue Apr 29, 2014 5:05 pm
by sebastian hartl
you guys are simply the best! unfortunately i am not a developer and a bit slow on the intake as far as including add ons in the software. can you tell me how to access qlc+ through the web browser? and i would love the add on with the channel pad on the simple desk. please teach me!

thank you

DMX KeyPad

Posted: Sat Jul 12, 2014 7:35 am
by jannis87
Hi Sebastian,
sorry I didn't respond earlier, I just saw your questions today.
To get QLC+ on the web browser is easy. Just make sure you are using the latest version and append "-w" to the command line. Then, in your web browser enter "http://:9999" or "http://127.0.0.1:9999" if testing it locally and you should be set.

The DMX keypad has not yet been merged to QLC+ and you could access it if you compiled QLC+ yourself.

Re: DMX KeyPad

Posted: Fri Jan 08, 2016 8:20 am
by forresthopkinsa
Can we get an update on this? It's been a year and a half, and this would be really useful functionality. Are there any major issues that are preventing it from being pushed upstream?

Re: DMX KeyPad

Posted: Thu Mar 03, 2016 12:41 pm
by Baer
Would be great to have this feature, and would be even greater to have the possiblity to add this to the virutal console

Re: DMX KeyPad

Posted: Wed Mar 23, 2016 7:20 pm
by Tasaei
a friend of mine implemented it, too, was really cool to work with!

Re: DMX KeyPad

Posted: Thu Aug 01, 2019 12:50 am
by bblinky
Tasaei wrote: Wed Mar 23, 2016 7:20 pm a friend of mine implemented it, too, was really cool to work with!
Github?

Re: DMX KeyPad

Posted: Thu Aug 01, 2019 7:17 pm
by sbenejam
There is a DMX Keypad on the web interface of QLC +.
https://www.qlcplus.org/docs/html_en_EN ... rface.html

Re: DMX KeyPad

Posted: Sun Jul 26, 2020 11:35 am
by edogawa
I've done a bit of work to get the dmxkeypad code up to date, to compile against current master, and add keyboard input.

See my comment in https://github.com/mcallegari/qlcplus/pull/280

Re: DMX KeyPad

Posted: Thu Nov 19, 2020 7:55 pm
by mcallegari
I'm here.

Is there a convention for the "language" to be used?
I can start from where Jannis left (6 years ago :( )

Re: DMX KeyPad

Posted: Fri Nov 20, 2020 11:07 am
by edogawa
That's a difficult topic, I'll try to summarize my little knowledge (or what I think I know) about it and still keep it a short post ;-)

Hardware venders all use their own logic and concepts that have developed over decades, and users tend to prefer one or another depending on what philosophy they grew up with...

Really, MA Lighting, ETC Congo, ETC Eos Family, Strand Genius, Compulite, Avab, Hog, they may share *some* basic ideas but differ considerably in others. Some are better suited for theater, others for concert/clubbing, and some try to be allrounders. Also during the last years a whole new generation of hard- and software has emerged, to introduce modern concepts to better handle the many possibilities that new intelligent multicoloured lights offer.

That's also the reason why you usually depend on a board operator to program the venue's lighting console when you arrive there on tour and don't bring your own board. I'm trained on Strand Genius software and Compulite Spark and Applause desks, can more or less deal with simpler stuff on ETC Eos, but have hardly a clue about AVAB, GrandMA or ETC Congo, for example. Some of these big desks offer switching to alternative input methods, for operators that are trained to other systems of that same manufacturer, and/or personal preference choices.

I've seen sections in handbooks of big desks to explain how keyboard input and the commandline interpreter work, so you get a basic understanding of the thinking behind and can quickly learn the "language". They usually talk about commandline elements like commands, targets, operators, modifiers, and explain the needed syntax by instruction and example, and after a while you get the hang of it. Also the onscreen status area usually gives error or warning messages for wrong/incomplete or dangerous commands, and desks often offer a help page.

The current DMX keypad in QLC+ is very basic. At the moment it allows to assign values to one or a combination of several DMX channels, and that's it, but that's pretty helpful and timesaving already. Extending it beyond that would probably ask for a way to call scenes, channel groups or whatever targets for operations by number.

I have no clue if kripton (is that Jannis?) still is around or has any plans to continue with this.

Re: DMX KeyPad

Posted: Fri Nov 20, 2020 11:14 am
by mcallegari
Alright, I've got a working prototype
Most difficult part is +/- buttons (still not working)

@Edgar: thanks for the usual lengthy post ;) To be honest though I'm not sure if in 2020, and seeing also how many features software can have (vs hardware), operators are still that attached to a keypad.
Anyway, I've noticed there's interest in this, so I've finally found some time to work on it.