QLC+ version 4.10.0


This page is dedicated to the numerous functionalities introduced with version 4.10.0.
Here there are the most visible changes we've done since 4.9.1, but constant activities of bugfixing and performance improvements are always ongoing, to increase the stability and scalability of QLC+ on large installations.
The following functionalities are in random order (and not by importance) and the complete changelog can be found at the end of this page.

Footnote: to give the proper support for this version and future ones, in the last months I went through a number of expenses: Akai APC Mini (77€), Raspberry Pi official touchscreen (85€), RPi hardware kit (40€), a second hand iPad 4 LTE (250€) + camera Kit (20€).
So, every donation is very welcome to help the project and allow me to continue to purchase furher devices for tests and improvements. Thanks !

RGB Matrix blending

A new option has been added to the RGB Matrix editor, to select the so called "Blend mode".
There are 4 types of blending modes: Default (HTP), Mask, Additive, Subtractive.
The default blending is the one we've been using so far. The standard DMX HTP rules are applied when running a RGB Matrix over already running QLC+ Functions.
The other modes, instead, act on a sort of layering between running Functions, including running RGB Matrices. They basically work on the same concept of layer operations you can do with image manipulation softwares like Photoshop or Gimp.
These modes allow to obtain fancy results in a short time. For example applying a mask matrix to a Scene can manipulate the Scene colors or turn on/off your lights with a RGB Matrix pattern.
Note that a blending matrix started before other Functions will produce no effect, since it would try to manipulate black colors.
It is therefore suggested to do blending layering via Collections, to make sure your Functions are executed in the correct layering order.

I have uploaded an improved version of the project file used in the Video Tutorial #6 with some blending modes included. Get Tutorial_6_RGB_Matrices_v2.qxw here.

Virtual Console buttons custom feedbacks

This long awaited functionality is finally here !
It was mainly requested by the Akai APC users, but it has been implemented in a generic way so even other types of controllers might benefit from this.
Basically it is now possible to define a lower and an upper value to be sent back to an external controller. By default, as it has always been, on/off values are 0 and 255.
This is available on "buttons", where buttons are most of the Virtual Console widget controls enabled by on/off states, including widget presets.

Here's a screenshot of what you will find. In the example, the OFF state will light a APC Mini button to red and the ON state will light it to green.
Please refer to the MIDI plugin documentation or your controller user manual to learn which values you should set. Please remember that MIDI values are divided by 2, so a custom feedback value of 6 will be actually translated into MIDI value 3.

Virtual Console Speed Dial enhancements

Thanks to Giorgio Rebecchi and David Garyga, a whole lot of new features have been added to the Speed Dial widget.
By default, when creating a new Speed Dial widget, it will look like the previous QLC+ versions, for backward compatibility, but opening the configuration window will allow to enable these new features.
The only exception is the "Infinite" control, which has now become a Preset button (thus easier to hit if you're using a mouse)

  • Multiplier and divisor buttons. When enabled, 3 buttons will be displayed in the Speed Dial layout, allowing to multiply and divide the current time value by a factor that you can increase or decrease. There's also a reset button to return to the 1x factor, so to the original time value of the Dial.
  • Apply button. This is useful particularly when using multiple Dials in a Virtual Console. The apply button will immediately set the current time value of the Dial, so switching from a Dial to another won't force you to change the time at all.
  • Presets. Like what has been done on the Animation widget, a Speed Dial can now include a number of preset buttons at the bottom of its layout. This allow instant shortcuts to pre-defined time values. Presets can have a specific name and can be activated with an external controller.
In this area there is still a bit of margin of improvement, so in the future we might add a "Store" button to save the current time value into a new preset.

Virtual Console Cue List step fader

The Cue List widget side faders can now be turned into a single fader, controlling the current Cue List step.
This allows to "sweep" across cues with a single fader that can be assigned to an external controller.

Solo Frame sliders mixing

Thanks to David Garyga, a new option is now available on Solo Frames to allow the mix of Virtual Console sliders in playback mode.
When this option is enabled, sliders in playback mode are allowed to be enabled at the same time.
When moving a slider up, instead of instantly cancelling the other running sliders, it will fade them out at the same speed you are fading it up.
Here's an animated demonstration, showing the difference of behaviour with the option disabled and then enabled.

Virtual Console XY Pad enhancements

In addition to the standard usage of the XY Pad, two new usages have been added to cover even more live needs.
In the widget configuration page you will find a new page to add presets.
Presets can have a specific name, can be activated by an external controller and they can be of 3 types:
  • Position preset: define an absolute Pan/Tilt position for the fixtures currently added to the XY Pad (in the configuration window, Fixtures tab)
  • EFX preset: it is possible to start an existing EFX Function and control its position and size with 4 controls, defined in the General page.
    When a XY Pad working window is defined, the EFX will be resized and positioned into it.
    Please note that this mode is not suitable for EFX in relative mode or if you really want to use them, you are warned.
  • Scene preset: it is possible to start an existing Scene defining Pan/Tilt positions.
    When activating this type of preset, the XY Pad will switch into a relative mode. The blue cursor will move to the center of the pad, and the current working window will be hidden.
    Moving the pad cursor will add a relative offset to the current positions set by the running Scene
Please refer to the updated documentation to understand in details how these all new modes work.

Input/Output Plugins

  • DMX USB: a major "under the hood" rework has been carried out but Windows and Linux users should not notice any difference.
    OSX/Important: This version aims to partially resolve the super annoying problem of the Apple FTDI driver conflicting with QLC+.
    For those who don't know the story, here's a quick recap.
    With Mavericks (OSX 10.9), Apple had the genious idea to introduce a new driver called AppleUSBFTDI which started to take control of every FTDI-based device plugged into a Mac. As most of the DMX adapters use FTDI chips, this change broke most of the software DMX controllers, including QLC+. A solution was found later on, forcing everyone to disable the evil driver and restore the peace in the world.

    QLC+ 4.10.0 has now started to actually use the evil driver, since Apple doesn't seem to provide an alternative to us poor developers.
    Basically the 4.10.0 DMG bundle now delivers 2 drivers: a native Qt which actually uses the Apple driver, and the usual libFTDI that we've had before.
    Unfortunately, the Open DMX adapters don't work with the Apple driver, so you'll still need to disable it in order to make them work.
    On the other hand, all the DMX USB Pro adapters will work out of the box, without touching your operating system. (so if you disabled the Apple driver, just re-enable it)
    In the DMX USB plugin information box, you will see a text saying "Driver in use: ...". If you see "QtSerialPort" then you're using the Apple driver. If you see "libFTDI" then you need to make sure the Apple driver is disabled, otherwise QLC+ will not be able to produce any output.

  • MIDI: Program Change signals are now working on Windows and OSX too.
    In the Input Profile editor it is now possible to tell the MIDI plugin to send (or not) Note Off messages to an external controller. This is what makes the Akai APCMini to work.

  • ArtNet and OSC: it is now possible to enter an arbitrary output IP address, to work across different routed networks

  • E1.31: added unicast support and stream priority parameter

Raspberry Pi

There are also some exciting news for the QLC+ on the Raspberry Pi users.
In random order:

  • It is now possible to run QLC+ in "no GUI" mode, so the HDMI output will be free to be used as you prefer (e.g. video playback or other applications)
  • The official Raspberry Pi 7" touchscreen is now supported out of the box. Please keep in mind though that it has a poor resolution of just 800x480 pixels, so you might need to adjust your Virtual Console to fit into a small screen
  • 2 new plugins have been added to cover some typical aspects of the embedded world: UART and GPIO.
    The UART plugin in particular, adds the support for the BitWizard DMX interface.
    An in depth article is available in the QLC+ blog section of the forum.

Linux automated builds

Thanks to the help of Veljko Stankov, the QLC+ project can now count on 60 different Linux packages, addressing the combination of 4 things:

  • Distros: Arch, Fedora 21, Fedora 22, OpenSUSE 13.1, OpenSUSE 13.2, OpenSUSE Tumbleweed, Ubuntu 12.04, Ubuntu 14.04 and Ubuntu 15.04
  • Architectures: 32bit and 64bit
  • Released and GIT versions
  • Qt 4 and Qt 5
Please note that released builds are in release mode, while GIT builds are in debug mode.
In general, GIT builds are not suitable for production usages, but they can be helpful to check the current state of the project developments or the resolution of a specific issue reported in the forums.
Links can be found in the downloads page or directly here:
4.10.0 Qt4 released, GIT Qt4 version, 4.10.0 Qt5 released, GIT Qt5 version.


  • Channel Groups: Fix crashes related to invalid channels (David Garyga)
  • Chaser: Fix flickering issue when chaser order is Random (David Garyga)
  • Engine: some more fixes on forced HTP/LTP channels
  • Engine: fixed 4.9.x regression causing QLC+ to hang at the end of audio playback
  • RGB Matrix Audio Spectrum: Fix crash when audio input volume is set to zero (David Garyga)
  • RGB Matrix: Fix 4.9.1 regression which makes fading of green and blue colors not smooth (David Garyga)
  • [NEW] RGB Matrix: Introduced blending mode between matrices (see documentation)
  • Audio Input: Fix crashes when selecting another audio input device while an audio input driven function/widget is running (David Garyga)
  • [NEW] Audio Input: It is now possible to select the audio input format (sample rate and channels)
  • Video: fixed playback from a time offset (where possible)
  • Video: (Windows) Videos now have a black background, like all the other platforms
  • Add Fixture dialog: Generic fixtures don't take the number of channels of the previously selected fixture (David Garyga)
  • Add Fixture dialog: Fix address 512 not usable by adding several fixtures at a time (David Garyga)
  • Scene Editor: correctly select the fixture tab when switching from tabbed/all channels view
  • [NEW] EFX Editor: it is now possible to use an EFX on RGB channels (thanks to Giorgio Rebecchi)
  • Collection Editor: added preview button (thanks to Giorgio Rebecchi)
  • Fixture Remap: fixed remapping of EFX functions
  • Function Wizard: improved creation of color scenes for RGB panels
  • Function Wizard: automatically set a gobo picture (if available) on buttons attached to gobo Scenes
  • Show Manager: Fix some cursor teleportation issues (David Garyga)
  • Simple Desk: Fix cue playback on universes 2+ (David Garyga)
  • Simple Desk: Fix crash when selecting recently added universe (David Garyga)
  • [NEW] Simple Desk: Added reset buttons to reset a single channel
  • Simple Desk: Fix page count when channels per page does not divide 512 (Jano Svitok, reported by Florian)
  • Virtual Console: fixed Grand Master not sending feedbacks
  • [NEW] Virtual Console/Input Controls: implemented custom feebacks. For now used only by VC buttons
  • [NEW] Virtual Console/Solo Frame: Option to allow mixing of sliders in playback mode (David Garyga)
  • [NEW] Virtual Console/Speed Dial: Introduced multiplier/divisor, apply and presets buttons (see documentation)
  • Virtual Console/Button: allow to set a background picture
  • [NEW] Virtual Console/Cue List: Options for the Next/Previous buttons behavior (David Garyga)
  • Virtual Console/Cue List: Fixed playback of a Chaser in reverse order (David Garyga)
  • [NEW] Virtual Console/Cue List: Added a new "Steps" mode for the side faders (see documentation)
  • Virtual Console/Cue List: Allow to resize columns to 0 pixels, to completely hide them
  • [NEW] Virtual Console/XYPad: Introduced presets, including the usage of existing EFX and Scenes (see documentation)
  • Virtual Console/XYPad: Fix DMX output not working when going to Operate mode while the XYPad is disabled (David Garyga, thanks to bestdani)
  • Input Profiles: added an option for MIDI profiles to feedback a Note Off or a Note On with 0 velocity. APCMini now works out of the box. (Jano Svitok)
  • Input Profiles: Improved BCF2000 Input profile (thanks to Lorenzo Andreani)
  • Plugins/MIDI: (Linux) Fixed data transmission to multiple devices (thanks to Adrian Kapka)
  • Plugins/MIDI: fixed Program Change handling on OSX and Windows
  • Plugins/MIDI: (Windows) do not close the device when sending SysEx data
  • Plugins/ArtNet: it is now possible to enter an arbitrary output IP
  • Plugins/OSC: it is now possible to enter an arbitrary output IP
  • [NEW] Plugins/E1.31: added stream priority to configuration (thanks to Nathan Durnan)
  • [NEW] Plugins/E1.31: added unicast support (David Garyga)
  • Plugins/DMXUSB: fixed close/open sequence on a Enttec Pro input line
  • [NEW] Web Access: implemented frames collapse functionality
  • [NEW] RGB Scripts: added Plasma Colors script (thanks to Nathan Durnan)
  • Fixture Editor: Channel capability editing is now done in a single window
  • Updated fixture: Showtec Indigo 6500 (thanks to Jochen Becker)
  • New fixture: Ayra ComPar 20 (thanks to Rob Nieuwenhuizen)
  • New fixture: XStatic X-240Bar RGB (thanks to Nathan Durnan)
  • New fixture: Venue ThinPAR 38 (thanks to Thierry Rodolfo)
  • New fixtures: Contest MiniCube-6TCb, Eurolite LED FE-1500, Lightronics FXLD618C2I, JB Systems COB-4BAR (thanks to Robert Box)
  • New fixtures: Eurolite LED KLS-401, Chauvet Intimidator Wash Zoom 350 IRC, Equinox Party Par LED PAR 56 (thanks to Robert Box)
  • New fixtures: Robe Robin MiniMe, PR Lighting Pilot 575, Stairville DJ Lase 150-RGY MkII, JB Systems Dynaspot (thanks to Robert Box)
  • New fixtures: American DJ Hyper Gem LED, Robe ColorSpot 575 AT, Kam iLink All Colour Models (thanks to Robert Box)
  • New fixtures: Chauvet Intimidator Wave 360 IRC, Varytec LED PAR56 (thanks to Habefaro)
  • New fixture: American DJ Fog Fury Jett (thanks to Dean Clough)
  • New fixtures: Eurolite TB-250, Futurelight DJ-HEAD 575 SPOT, GLX Lighting Power LED Beam 38 Narrow (thanks to Ovidijus Cepukas)
  • New fixture: Pro-Lights UVStrip18 (thanks to Alessandro Grechi)
  • New fixtures: American DJ Inno Pocket Beam Q4, Martin ZR24/7 Hazer, Blizzard Lighting Stimul-Eye (thanks to George Qualley)
  • New fixture: American DJ Mega TriPar Profile Plus (thanks to George Qualley)
  • New fixtures: Pro-Lights SmartBat, Robe ClubWash 600 CT (thanks to Lorenzo Andreani)
  • New fixture: Stairville Show Bar Tri 18x3W RGB (thanks to Udo Besenreuther)
  • New fixtures: Blizzard Lighting Rokbox Infiniwhite, Chauvet COREpar 80 (thanks to Chris Gill)
  • New fixture: Cameo CL Superfly HP (thanks to Stuart Brown)
  • New fixture: American DJ Event Bar Q4 (thanks to Maxime Bissonnette-Théorêt)
  • New fixture: Cameo LED Moving Head 60W CLMHR60W (thanks to Jasper Zevering)
  • New fixtures: Proel PLLED64RGB, Litecraft LED PAR 64 AT3, Robe Robin 300E Beam (thanks to Mihai Andrei)
  • New fixture: Electroconcept SPC029 (thanks to Bulle)
  • New fixture: Microh Plasmawave 1 RGB (thanks to Rommel)