Rework log: Fixture definitions

A place where updates of QLC+ activities and technical articles are posted as if it was a blog
Post Reply
User avatar
mcallegari
Posts: 4482
Joined: Sun Apr 12, 2015 9:09 am
Location: Italy
Real Name: Massimo Callegari
Contact:

As anticipated, I'm starting a series of articles about the reworks that happened in the QLC+ code during the last months.

The first, and probably the biggest one ever landed on QLC+, is about fixture definitions.

The need for this big change is motivated by the necessity of having an accurate preview.
Accurate preview means you saving time (and probably money) when creating a light show because you already know, with a degree of accuracy, what to expect from the real equipment.

While the 2D view is quite limited for so many aspects, the 3D preview is not, and therefore, the more details QLC+ knows about a fixture, the better.
So far QLC+ has attempted to guess the meaning of a channel/capability from its name. However, if you created your custom fixture in German, QLC+ would have miserably failed.

So, we needed a way to represent in a non-mistakable way the exact meaning of channels and capabilites.
Therefore the concept of "Presets" have been introduced, both for channels AND capabilites.

Please note that these changes support "old" fixtures, while fixtures created with 4.12.0 and later will not work on previous QLC+ versions.
Unfortunately that's the price to pay for a greater good.
The change affects both QLC+ 4 and QLC+ 5, but QLC+ 5 will use much more information than QLC+ 4. (see: limited 2D preview)

Along the way, many other aspects and missing features have been addressed, so the major changes are:
- improved channel editing
- channel presets
- channel default value
- capability presets
- aliases
- global physical information

This is the updated documentation for the fixture definition editor.
If you want to know all the techy details, here's a document that explains the decisions taken.

Improved channel editing

Alright, I've spent so much time in reviewing user fixture definitions and I have to say: it was uncomfortable.
So I decided to review a bit the way capabilities can be edited, adopting a spreadsheet-like approach.
Basically now you can start from DMX value 0 to 255 without ever leaving your hands from the keyboard. No million clicks needed anymore.

This is how the channel editor looks like now:
fixtureeditor_channel_shutter.png
Channel presets

This is most likely a big shortcut when creating a definition. Think for example of those LED bars with 32 RGBW channels.
To pass the fixture validator you had to set the channel name, the channel group, add a capability and give it a description.
With presets, you just select an item from a combo box and the whole channel is set automatically with all the correct information.

Screenshot:
fixtureeditor_channel_preset.png
But channel presets are not just that. There are presets like "Pan/Tilt speed (fast to slow)" that will indicate exactly multiple things:
- the channel is a speed channel
- it affects Pan and Tilt
- it goes from fast to slow

All with just one click !
When detecting such preset, QLC+ will know exactly what to do in the preview ! You can see this feature in the 3D demo video I posted some time ago.

I migrated all the 900+ fixtures in the library, and this change alone saved something like 20% of space occupied by definitions.

Channel default value

I think the name says it all. On power up, pan/tilt channels, but also gobo rotation channels are set to a value that is not 0. (usually 127)
For example, many moving heads point the head vertically when powered up. We missed this, so there you can set a default DMX value to be considered at startup.

Capability presets

This is probably the most interesting part of the whole rework. And it really leaves space to future improvements.
Something primitive was there for color and gobo capabilities. You could set a color or a picture, and QLC+ knew what to do.
However, more complex channels like shutter, usually have several capabilities with totally different meanings.

So, capabilities now have a list of presets to exactly specify the meaning of a capability.
Some presets are specific to a channel type (e.g. shutter), but some other have been left generic.
For example, a "rotation" presets in combination with the channel type (e.g. gobo), tells QLC+ exactly what to do (e.g. a gobo picture should start rotating)

Screenshots:
fixtureeditor_channel_gobo.png
fixtureeditor_channel_color.png
Aliases

And this is the most wanted feature ever asked: interdependent channels !
This covers the need of channels changing their meaning depending on other channel values.
Therefore a capability preset called "Alias" has been introduced to address this need.

Once an alias has been set, it is possible to define which channel has to be replaced and in which mode.
Please refer to the updated documentation to understand how this works. There's a practical example too.

Screenshot:
fixtureeditor_aliases.png
Aliases are just a visual aspect, they don't really matter to what DMX value goes out on which DMX channel, unless you are replacing a LTP channel with a HTP channel.
Visually, you can achieve things like this:
aliases.gif
Global physical information

Another boring part of fixture definitions was the fact that each mode had to define physical information.
In 99% of the cases, physical info don't change across modes.
Therefore now you can define it once (in the global Physical tab) and then each mode will be set to "Use global settings".
If you are writing a definition for similar, but several products, you can still override the global info per-mode.

The global Physical tab has been placed right after the General tab, to indicate that the fixture definition creation workflow should be:
- define the fixture generalities
- define the fixture physical information
- define all the possible channels and capabilities for every mode
- define all the modes indicated in the product manual
- define aliases, if needed
User avatar
fooschnickens
Posts: 73
Joined: Fri Aug 14, 2015 2:39 am
Real Name: Taylor

Wow this is pretty great, the aliases and default values particularly interest me, as I've butted heads with those exact issues in the past.

The presets will be phenomenal for moving heads. We do a lot of rental work where clients request a simple lighting desk which often requires a ton of work behind the scenes (or virtual console, in this case) to make things mostly idiot-proof when we aren't dealing with static fixtures. Really enjoying watching v5 work its way out of alpha, the final release is going to be a huge accomplishment.
Deezy0629
Posts: 2
Joined: Fri Nov 17, 2023 5:11 pm
Real Name: Dominique Buckley

Is there a link to the "3D Demo" video that is referenced in this video? I recently took over responsibilities for lighting in our auditorium and I am looking to add a few lights. Any help would be appreciated.

Thank you
janosvitok
Posts: 1274
Joined: Mon Apr 13, 2015 7:05 am
Location: Bratislava, Slovakia
Real Name: Jano Svitok
Contact:

It's one of these: https://www.youtube.com/@MassimoCallegari/videos I don't know exactly which one, I think it doesn't matter anyway.

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

Deezy0629
Posts: 2
Joined: Fri Nov 17, 2023 5:11 pm
Real Name: Dominique Buckley

janosvitok wrote: Fri Nov 17, 2023 8:24 pm It's one of these: https://www.youtube.com/@MassimoCallegari/videos I don't know exactly which one, I think it doesn't matter anyway.

Jano
Thank you!!
Post Reply