01. Basics
Introduction
What is QLC+?
What Does "Open Source" Mean?
Why Consider Donating?
How can I donate?
Can I contribute another way?
Windows
macOS
Linux
Audio
Blackout
Capabilities
Channel Groups
ChaserClick And Go
Collection
DMX
EFX
Fixtures
Fixture Group
Fixture Mode
FunctionsGrand Master
Head
HTP (Highest Takes Precedence)
Input/Output plugins
Input profiles
LTP (Latest Takes Precedence)
Modes
RGB Matrix
RGB Script
Scene
Sequence
ScriptShow
Video
Question #1: QLC+ cannot detect my USB device
Question #2: I've got several buttons in my Virtual Console. I need a way to disable thecurrently active button when I enable another one. How do I do that?

Question #3: I just upgraded my Mac to Mavericks (or later) and my USB DMX adapter
doesn't transmit any data.
Question #4: Where is the QLC+ user folder located in my system?
Question #5: Where is the QLC+ system folder located in my system?
Question #6: QLC+ cannot play some videos on Windows
Question #7: I have a 4k display and everything in the QLC+ interface is extremely
small
Question #8: My lights flicker. What can I do?
02. Main window
Main Window
Menu bar (1)Active Panel (2)Panel Tabs (3)DMX view
Toolbar controls
2D view
Toolbar controls
Fixture Item Editor
Pan/Tilt display
03. Fixture manager
Fixture Manager
Controls
Controls
Panel creation
Panel Properties
Size
PhysicalOrientation
Displacement
Direction
Controls
Controls
Add/Edit Channel Groups
Channels properties
Channel Modifier Editor
Channel Modifier Templates
Remapping window
04. Function manager
Function Manager
Controls
General Tab Controls
Channel Groups Tabs

Fixture Tabs
Channel enabled/disabled status
Controls
Controls
General Tab Controls
Movement Tab Controls
Fixture Order
Direction
Relative ModeControls
Controls
RGB Script Syntax
Foundation
Properties
FunctionsrgbMapStepCount(width, height)
rgbMap(width, height, rgb, step)
API version 2
Development Tool
Example Script: Full Columns
Controls
Language syntax
startfunction
stopfunction
blackoutsystemcommand
setfixture
wait
comments
randomControls
Controls
Controls
Controls
05. Show manager
Show Manager
Sequences vs Chasers
Show Manager toolbar controls
Just 4 steps
1. Add a new Show
2. Add a track3. Add some Functions
4. Edit your Functions
And finally...play!
06. Simple desk
Simple DeskControls - Universe
Controls - Playback
Controls - Cue Stack
Tuning07. Virtual console
Virtual Console
Tool Bar Controls
Configuration
Button States
Add a Matrix of Buttons
Configuration
Configuration
Configuration - General Tab
Configuration - Level Tab
Configuration - Playback Tab
Configuration - Submaster Tab
Configuration
Introduction
Configuration
General Page
Custom Controls Page
Widget elements
Operation
Configuration - Functions tab
Configuration - Input tab
Configuration - Appearance tab
Configuration - Multiplier tab
Configuration - Presets tab
Widget elements
Limiting the working area
XY Pad usages
Keyboard control
Configuration
Configuration
Operate mode
CrossfadeHint
Configuration
Appearance tab
Pages tabHeader Controls
Configuration
Configuration
Introduction
Configuration
DMX channels
Functions
VC Widgets
Moving Widgets
Resizing Widgets
Widget Background
Widget Foreground
Widget Borders
Fonts
Widget Stacking Order
08. Input output
Input/Output
Input/Output Manager
Adding/Removing universes
Patching
Universe PassthroughInput and Feedback
Input Profile Manager
Profile assignment
Add/Edit a Profile
Input Profile Editor
Manual mode
Automatic mode
Channel properties
Sliders movement properties
Encoder properties
Button properties
Back to the input profile definitions panel
09. Plugins
Plugins
Introduction
ConfigurationDMXKing eDMX and ENTTEC ODE
Compatibility
Introduction
Configuration
Requirements
Linux
macOS
Windows
ENTTEC DMX USB Pro supported modes
TuningIntroduction
Configuration
Compatibility
Introduction
Requirements
Joysticks
Nodle USB DMX interface
FX5 USB DMX
Introduction
Configuration
ExamplesButtons that set a (submaster or regular) slider to a predefined value
Introduction
Configuration
Feedback
KORG nanoPAD X Axis
AKAI APC LED Feedback
MIDI beat clock
MIDI initialization message
Channels map
Introduction
Requirements
Configuration
OLA Setup
Introduction
Configuration - Virtual DJ
Introduction
Configuration
Controllers
Introduction
Requirements

LinuxMac OS X
Windows
Introduction
Requirements
Linux
macOS
Windows
TuningIntroduction
Requirements
Windows
Disabling the Apple-provided VCP on OS X 10.9 and later
Disable by Renaming (OS X 10.9 and 10.10 only)
Temporarily Unload (all versions of OS X)
Block with D2xxHelper (OS X 10.9 and later)
10. Fixture definition editor
Fixture Definition Editor
Saving your fixture definitions
Main toolbar
Fixture Editor
Channel Editor
Capability wizard
Mode Editor
Channels Tab
Heads Tab
Head Editor
Physical Tab
11. Advanced
Advanced Topics
Virtual Console page
Simple Desk page
DMX Keypad
Configuration page
Known limitations
QLC+ configuration location
Linux
Windows
macOS
Configuration ResetParameters syntax
LinuxWindows
Mac OSXParameters list
1. Simple Desk
2. DMX USB Enttec Open channels number
3. uDMX frequency
4. uDMX channels number
5. Master Timer frequency
The theme style file
QLC+ dark blue style example

01. Basics

Introduction
Welcome to the Q Light Controller+ documentation
Here you can find all the concepts, workflows and tips and tricks to work with QLC+ at best
What is QLC+?
QLC+ is powerful and user-friendly software designed to control lighting. Whether you're an experienced
lighting professional or just getting started, QLC+ empowers you to take control of your lighting fixtures withease. The primary goal of this project is to bring QLC+ to the level of available commercial software. QLC+
represents a community-driven approach to software development, as it is proudly open source.
You can use QLC+ on Linux, Windows (7+), macOS (10.7+) and the Raspberry Pi.
What Does "Open Source" Mean?
Being open source means that QLC+ is developed in a collaborative public manner. The source code of
QLC+ is freely available for anyone to view, modify, and distribute. This approach encourages innovation
through collective problem-solving. Users from around the world contribute to its development, ensuring that
QLC+ is continuously evolving and improving.

Why Consider Donating?
QLC+ is available to you at no cost, but developing and maintaining a project of this scale involves
considerable time and resources. Your donations play a crucial role in keeping QLC+ vibrant and responsive
to its users' needs. By donating, you help ensure that the project continues to develop, that bugs are fixed
promptly, and that support remains available and free for everyone.
We rely on contributions from users like you. Every donation, no matter the size, makes a difference. If you
find QLC+ valuable or enjoy using it, please consider supporting our efforts with a donation. Your support isgreatly appreciated and directly contributes to the future of QLC+.
How can I donate?
You can contribute via GitHub Sponsorship or by purchasing official merchandise. You can also donate via
PayPal, go to qlcplus.org to learn more.
Can I contribute another way?
If you don't have the means to donate there are a number of other ways to contribute to QLC+ including:
1. Participating in the QLC+ official forum
2. Suggesting improvements to this documentation (See the top right "Edit this page" button)
3. Telling your friends about QLC+
4. Using QLC+ for your projects!
Installing QLC+ is pretty straight forward. Just head to the download page and get the version you prefer for
the Operating System you're using.

Windows
QLC+ on Window comes as a self installing .exe package. Just double click on the file and follow the
instructions that are displayed.
Chose whether to install QLC+ in its standard location (C:\QLC+) or another folder like C:\Program Files.
No admin privileges are required to install QLC+ unless you want to associate .qxw (Project files) and .qxf
(Fixture definition files) to the related application. In that case, right click on the installer file and run it asadministrator.

macOS
QLC+ on macOS comes as a DMG bundle.
Just double click on it and launch directly QLC+. Otherwise you can drag and drop it to the Application folder.

LinuxThe official QLC+ package for Linux is delivered as Debian package (.deb).
To install it run the following from a terminal and the folder where you downloaded the package:sudo dpkg -i qlcplus_x.y.x.deb

Q Light Controller Plus (QLC+ for short) is meant to control lighting equipment used in various performances,like live concerts and theatres etc. The main intention is that QLC+ will be able to outperform commercial
lighting desks without the need for a 500+ page manual through the use of an intuitive and flexible userinterface.
This page has been arranged in alphabetical order to facilitate searching for a specific topic.

Audio
An audio function is an object representing an audio file stored in a disk.
QLC+ supports the most common audio formats like Wave, MP3, M4A, Ogg and Flac. It supports mono orstereo channels and several sample rates like 44.1KHz, 48KHz, etc...
Audio functions can be placed in Chaser or in a Show at the desired time, using the Show Manager panel.
Like most of the QLC+ functions, Audio supports fade in and fade out times.

Blackout
Blackout is a special QLC+ function used to set all HTP channels in all universes to zero. This will have theeffect of stopping light output from all fixtures. The channels will remain at zero, regardless of currently
running functions or values assigned to them manually (from the Simple Desk for example). When theBlackout is switched off, all the channels will go back to being controlled by functions or their manually set
value.
Capabilities
Some channels in intelligent fixtures provide many kinds of functions, or capabilities like switching the lamp
on when the channel value is [240-255], setting a red color on a color wheel when the value is exactly [15], or
simply controlling the fixture's dimmer intensity with values [0-255]. Each of these individual function is calleda capability and each of them has these three properties:
Minimum value: The minimum channel value that provides a capability.
Maximum value: The maximum channel value that provides a capability.
Name: The friendly name of a capability.
Channel Groups
Channel groups can be added and defined in the Fixture Manager panel by using the Channel groups editor.
Channel groups can have a user defined name and can group together any user defined channels selectedfrom an existing Fixtures list.

ChaserA chaser function is built up from multiple scenes that are run in sequence, one after the other, when thechaser function is started. The next function is run only after the previous has finished. Any number offunctions can be inserted to a chaser.
The Chaser function's direction can be reversed or scene selection can be randomized. The Chaser function
can also be set to do an infinite loop, an infinite ping-pong-loop (direction is reversed after each pass) or it canrun through just once, in a single-shot mode, after which it terminates by itself. If the function is set to loop
infinitely, it must be stopped manually.
Each Chaser has its own speed settings:
Fade In: The fade in speed of a step
Hold: The hold time of a step
Fade Out: The fade out speed of a step
Duration: The duration of a step
Copies of chaser functions can be created with the Function Manager. The scenes inside a chaser are not
duplicated when a chaser is copied. Only the order and direction are copied to the new one.
Click And Go
Click And Go is a technology that allows the user to quickly access macros and colors in a completely visual
way and with just a couple of clicks. This can lead to more efficient live shows and more freedom to choose
the desired result very easily.
So far, three types of widgets are available:
Single Color (applies to: Red, Green, Blue, Cyan, Yellow, Magenta, Amber and White intensity channels)
RGB Color Picker. Controls values for selected RGB channels with a single click
Gobo/Macro Picker. Access and display a Gobo/Macro defined in the Fixture definition
An overview with screenshots is available here

Collection
A collection function encapsulates multiple functions that are run simultaneously when the collection function
is executed. Any number of functions can be inserted to a collection, but each function can be inserted only
once and a collection cannot be a direct member of itself.
Collections have no speed settings. The speed of each member function is set individually using their own
editors.
Copies of collection functions can be created with the Function Manager. The functions contained in acollection are not duplicated; only the list of functions is copied.
DMX
DMX is short for Digital MultipleX. It basically defines a whole bunch of properties, protocol, wiring etc. In thecase of lighting software, it defines the maximum number of channels (512) per universe and the value rangeof each channel (0-255).

QLC+ supports unlimited universes (there are 4 initial, but more can be added if needed). They do notnecessarily need to be connected to DMX hardware. Actual hardware abstraction (whether it's analogue 010V, DMX or some other method) is achieved through output plugins.

EFX
An EFX function is mainly used to automate moving lights (e.g. scanners & moving heads), though it can also
automate RGB or Dimmer values of non-moving lights. The EFX can create complex mathematical paths on
an X-Y plane that are converted to DMX values for the fixture's pan and tilt, or RGB or Dimmer channels.

Fixtures
A fixture is essentially one lighting device. It can be, for example, one moving head, one scanner, one laser
etc.. However, for simplicity, individual PAR cans (and the like) that are usually controlled thru one dimmer
channel per can, can be grouped together to form one single fixture.
With the Fixture Definition Editor, users can edit shared fixture information stored in a fixture library that
contains the following properties for each fixture:
Manufacturer (e.g. ClayPaky)
Model (e.g. MAC250)
Type (Color Changer, Scanner, Moving Head, Smoke, Haze, Fan...)Physical properties (bulb type, beam angle, dimensions...)Channels:
Channel group (Intensity, Pan, Tilt, Gobo, Color, Speed etc.)
8bit and 16bit channel bindings for pan & tilt groups
Optional primary color for intensity channels (RGB/CMY)
Value ranges for channel features (e.g. 0-5:Lamp on, 6-15:Strobe etc..)
These fixture definitions can then be used to create actual fixtures in the Q Light Controller Plus application,that will have additional properties defined by users:
DMX Universe
DMX Address
Name
Several instances of a fixture can be created (e.g. users must be able to have several instances of a MAC250
in use). Each fixture can be named, but the name is not used internally by QLC+ to identify individual fixture
instances. The same goes for the DMX address. Nevertheless users are encouraged to name their fixtures insome systematic way to help identify each of them -- if necessary.
Generic dimmer devices don't need their own fixture definitions, because usually multiple dimmers arepatched into a common address space, employing one or more dimmer racks. Users can create instances ofthese generic dimmer entities just by defining the number of channels each one of them should have.

Fixture GroupA fixture group is, as the name says, a group of fixtures. They also define (at a rather basic level) the actual
physical, real world arrangement of these fixtures. This knowledge can be used, for example, in the RGB
Matrix to produce a wall of RGB-mixable lights that can act as individual pixels in a graphic pattern or
scrolling text.
Fixture Mode
Many manufacturers design their intelligent lights in such a way that they can be configured to understanddifferent sets of channels. For example, a scanner might have two configuration options: one for only 8bit
movement channels (1x pan, 1x tilt) and another one for 16bit movement channels (2x pan, 2x tilt). Instead ofcreating a completely new fixture definition for each variation, they have been bundled together in QLC+'s
fixture definitions into fixture modes.

Functions
The number of functions is practically unlimited. Functions are used to automate the setting of values to DMX
channels. Each function type has its own way of automating lights.
The function types are:
Scene
ChaserSequence
EFX
RGB Matrix
Collection
Show
Audio
Video
Each function can be named and, although the name is not used to uniquely identify individual functions,users are encouraged to name their functions in some systematic and concise way to help identify each ofthem. For your own comfort.
As of version 3.3.0, each function has its own speed settings:
Fade In: The time used to fade HTP (in Scenes also LTP) channels to their target value
Fade Out: The time used to fade HTP/intensity channels back to zero
Duration: The duration of the current step (not applicable on Scenes)
Grand Master
The Grand Master is used as the final master slider before values are written to the actual physical DMX
hardware. Usually, the Grand Master affects only Intensity channels, but can also be changed to effect thevalues of all channels.
The Grand Master has also two Value Modes that control the way how the Grand Master affects channel
values:Reduce: Affected channels' values are reduced by a percentage set with the Grand Master slider. For
example, Grand Master at 50% will result in all affected channels being reduced to 50% of their current
values.
Limit: Affected channels cannot get larger values than the value set with the Grand Master slider. For
example, Grand Master at 127 will result in all the affected channels' maximum values being limited atexactly 127.
Head
A head represents an individual light output device in a fixture. Usually, a single fixture contains exactly one
output, like the lens, the bulb, or a set of LEDs. There is, however, an increasing number of fixtures on themarket that, although treated as a single fixture, have multiple light output devices, i.e. heads.
For example, you might have a RGB LED bar fixture that is assembled onto a single chassis and as such itappears as a single fixture with one DMX input and one DMX output. However, it is actually comprised of four
separate RGB LED "fixtures". These separate fixtures are treated in QLC+ as heads; they share someproperties with their sibling heads, they can be controlled individually, but they might also have a master
intensity control that controls the light output of all the heads together.
Each head belongs to a Fixture Mode because in one mode, a fixture might provide enough channels tocontrol each of its heads individually while in another mode, only a handful of channels might be provided forcontrolling all the heads simultaneously.
HTP (Highest Takes Precedence)
HTP is a rule that decides what level is sent to out to a DMX universe by a channel when the channel is being
controlled by more than one function or Virtual Console widget. Generally, intensity channels obey the HTP
rule. This includes generic intensity channels used to control light intensity with dimmers and also channels
controlling the intensity of a color, typically in an LED fixture.
The HTP rule is simple: the highest level (nearer 100%) that is currently being sent to a channel is the onethat gets sent out to the DMX universe.
Let's say you have two sliders that control the same intensity channel. First, you set slider 1 to 50% and thenmove slider 2 from 0% to 75%. As long as slider 2 is below 50% nothing happens, but after crossing the 50%
level set by slider 1, the light intensity increases up to 75%. If you drag slider 2 again towards 0%, the lightintensity decreases until it reaches the 50% set by slider 1 and stays at 50% until slider 1 is dragged down.
A crossfade between 2 Scenes will replace the HTP levels in the first scene with the HTP levels of thesecond. The new HTP levels will be combined with HTP levels from other functions and virtual console
widgets as above. See also LTP.

Input/Output plugins

QLC+ supports a variety of plugins to send and receive data from/to the external world.
A plugin can be an interface to physical devices (such as DMX adapters or MIDI controllers) or to a network
protocol (such as ArtNet, OSC or E1.31).
Plugins support input, output or feedback capabilities depending on the device or the protocol they'recontrolling.
The primary input methods for QLC+ are naturally the keyboard and mouse. Users can assign keyboard keys
to virtual console buttons and drag sliders and do pretty much everything with a mouse.
Although, with plugins it is possible to attach additional input devices to one's computer to alleviate the rather
clumsy and slow user experience that is achieved with a regular mouse and a keyboard. Plugins supporting
an input line provide capabilities for getting external devices to produce input data to various QLC+ elements.
An input line is a connection provided by some hardware or network which is accessed through an input
plugin. It can be, for example, a MIDI IN connector in the user's computer (or peripheral) to which users canconnect MIDI-capable input devices like slider boards etc.
An output line is a connection provided by a hardware or network which is accessed through an output plugin.
In other words, it is a real DMX universe, but has been dubbed output to separate it from QLC+'s internal
universes. You could think of them as individual XLR output connectors in your DMX hardware.
Input profiles
Input profiles can be thought of as fixtures' cousins; they contain information on specific devices that produce
input data. An input device can be, for example, a slider board like the Behringer BCF-2000, KORG
nanoKONTROL, an Enttec Playback Wing...
LTP (Latest Takes Precedence)
LTP is a rule that decides what level is sent to out to a DMX universe by a channel when the channel is being
controlled by more than one function or Virtual Console widget. Generally, it is used for channels that havebeen assigned to groups other than the Intensity group, such as pan, tilt, gobo, strobe speed and otherintelligent fixture parameters
The LTP rule is simple: the latest level that has been set by a function or a Virtual Console widget gets sentout to the DMX universe.
During a crossfade between Scenes, LTP levels will often be changed. This has to be handled with somecare as some LTP levels need to jump immediately to a new level, for example, changing from one gobo toanother. LTP groups such as pan and tilt, however, might need to change gradually from one level to anotherduring a crossfade. Different timings can be achieved by combining scenes in a Collection. See also HTP.

Modes
Q Light Controller Plus is based on the common concept of having two distinct operational modes to prevent
accidental and possibly harmful changes during operation:
Design mode is meant to edit the behaviour of the program; create and edit functions and fixtures andadjust how they work.

Operate mode is meant to execute the created functions that eventually control the user's lighting fixtures.

RGB Matrix
An RGB matrix function can be used to impose simple graphics and text on a matrix (a grid or a wall) of RGB
and/or monochrome fixture heads. The RGB matrix function has been designed to be extendable with scriptsthat can be written by users.
Each RGB matrix has its own speed settings:
Fade In: Time to fade each pixel ON
Fade Out: Time to fade each pixel OFF
Duration: The duration of the current step/frame

RGB Script
A RGB script is a program written in ECMAScript (also known as JavaScript) that produces the necessary
image data for RGB Matrix functions. Learn more from the RGB Script API page.

Scene
A scene function comprises the values of selected channels that are contained in one or more fixture
instances. When a scene is started, the time it takes for its channels to reach their target values depends on
the scene's speed settings:
Each function has its own speed settings:
Fade In: The time used to fade all channels to their target values, from whatever value they had
Fade Out: The time used to fade HTP/intensity channels back to zero. Note that ONLY HTP channels
are affected by this setting.
Copies of scene functions can be created with the Function Manager. All of the scene's contents are copied tothe duplicate.

Sequence
A Sequence has some of the functionality of a Chaser.
It is equivalent to a Chaser in which each step is a single Scene and every one of those Scenes controls thesame set of channels. A Sequence is bound to one specific Scene, which means that all the steps of theSequence can only control the enabled channels of that Scene.
When creating new steps in a Sequence, no Function selection pop-up will appear, since a Sequence stepcannot include other Functions, unlike a Chaser step.
When a Sequence is created, a special sequence icon will appear in the Function Manager as a child of the
Scene to which it is bound.

To understand the difference between a Sequence and a Chaser, you are invited to read the second
paragraph of the Show Manager documentation.

ScriptThe Script function works on a simple yet powerful scripting language to automate QLC+ functionalities in asequential order. A Script can be modified with the Script Editor.

Show
A Show is an advanced function which encapsulates most of the QLC+ Functions to create a time driven lightshow. A Show can be created only with the Show Manager and can be inspected and renamed with the Show
Editor.

Video
A video function is an object representing a video file stored in a disk or a network URL.
The supported video formats depends on your Operating System. For example Mac OSX is limited to
MOV/MP4 files and not much more.
Video functions can be placed in Chaser or in a Show at the desired time, using the Show Manager panel.
In this page you will find the common questions that may come to mind when starting with QLC+.
Here you can either find the answer directly or find help to point you in the right direction.
Question #1: QLC+ cannot detect my USB device

A: QLC+ supports a wide variety of USB devices. First of all you should check if the physical connection is
OK. Usually a LED on your device should indicate if it is powered up and working correctly.
If you are using Windows and your device is manufactured by Peperoni or Velleman, please read theinformation on how to get them working on these help pages. For licensing issues they both need an extra
DLL file to work. Please check Peperoni output plugin or Velleman output plugin
If you're using Linux, please check if your distribution detected the device when plugged in. Basically, thedmesg command should tell you something.
Question #2: I've got several buttons in my Virtual Console. I need a way to disable the currently active button
when I enable another one. How do I do that?

A: Simply place your buttons inside a Solo Frame. It does exactly that.
Question #3: I just upgraded my Mac to Mavericks (or later) and my USB DMX adapter doesn't transmit any data.

A: The problem is in an Apple driver called AppleUSBFTDI, which takes control of every FTDI based device
detected in the system.
There are a few ways to solve the problem, but basically the result is the same: the Apple driver must be
disabled.

Please check the dedicated page to understand how to disable the Apple FTDI driver
Otherwise, you can download the ENTTEC FTDI Driver Control tool and try to enable/disable the Apple driverwith it.
Note 1: this can compromise the behaviour of other USB devices, so do it only if you know what
you're doing!
Note 2: every time Mac OS receives an update, you need to perform this procedure again!
Note 3: Most likely, when you disable/enable the Apple driver, you need to reboot your Mac
Question #4: Where is the QLC+ user folder located in my system?

A: The user folder is where user fixtures, input profiles, RGB scripts and MIDI templates go.
It changes depending on your operating system:
Linux: it is a hidden folder in your user home directory: $HOME/.qlcplus
Windows: it is a folder in your user (e.g. ) directory: C:\\Users\\<Username>\\QLC+
Mac OS: it is located in your user Library directory: $HOME/Library/Application\\ Support/QLC+
You can reach any of these folders from a terminal with the cd command. For example:
cd $HOME/Library/Application\\ Support/QLC+

Please keep in mind that fixtures and input profiles found in the user folder will have precedence over thesame files in the QLC+ system folder.
You can also save custom Fixture Definitions and Input Profiles in the same folder as your project, QLC+ willfind them when you open that project.
Question #5: Where is the QLC+ system folder located in my system?

A: The system folder is where QLC+ resources (fixtures, input profiles, RGB scripts, etc) are installed and itchanges depending on your operating system:
Linux: it's a fixed folder named /usr/share/qlcplus
Windows: it is the folder where you actually installed QLC+. By default: C:\\QLC+
Mac OS: it is a folder inside the QLC+ bundle (.app file). It is possible to browse the QLC+.app bundle
contents simply with Finder. Just right click on the file and select "Show Package Contents".
Otherwise, the system folder can be reached with a terminal but it depends on where you installed QLC+.
For example if you dragged QLC+ into Applications it will be:/Applications/QLC+.app/Contents/Resources

Question #6: QLC+ cannot play some videos on Windows

A: QLC+ relies on the Qt libraries which relies on the DirectShow filters installed in the system.
Unfortunately the basic codecs supported by Windows are quite poor, so you need to install some extra
codecs package like K-Lite, available here.

Question #7: I have a 4k display and everything in the QLC+ interface is extremely small

A: You need to add an option to the QLC+ command line to tell the Qt libraries to autoscale the interface on a
High DPI display. Examples:Linux (from terminal): QT_AUTO_SCREEN_SCALE_FACTOR=1 qlcplus
Windows shortcut: C:\\Windows\\System32\\cmd.exe /c "SET QT_AUTO_SCREEN_SCALE_FACTOR=1 &&START /D ^"C:\\QLC+^" qlcplus.exe"

Mac OS (from terminal): QT_AUTO_SCREEN_SCALE_FACTOR=1 QLC+.app\\Contents\\MacOS\\qlcplus
In case, see the command line parameters page for further information.
Question #8: My lights flicker. What can I do?

A: Sometimes an unbuffered USB DMX adapter or a noisy DMX line can cause some fixtures to flicker
unexpectedly. QLC+ allows you to adjust the output frequency rate to mitigate the undesired effect. Pleaseconsider that a good DMX refresh rate should be around 44Hz.
Here's an example showing an Open DMX clone settings panel. You can access it by double-clicking on the
output line or by selecting an output line and by clicking on theicon.

02. Main window
Main Window
The QLC+ Main Window consists of three main parts:
1. A Menu bar containing buttons for global functions
2. Active panels selected by their respective tabs
3. Tabs that allow the selection of one of the QLC+ panels
Most of the controls throughout the software have tooltips, which pop up after holding your mouse cursor overthem for a short while.

Menu bar (1)The menu bar on the top of the workspace window contains the following buttons (from left to right):

New workspace (CTRL+N)
Open an existing workspace (hold the button longer for a list of recent files) (CTRL+O)
Save the current workspace (CTRL+S)
Save the current workspace with a new name

DMX Monitor (CTRL+M)
DMX Address tool
Audio triggers

Toggle full screen mode (CTRL+F11)
View this documentation (Shift+F1)
View information about QLC+DMX Dump (CTRL+D)

Live Edit: allows you to modify a function while QLC+ is in Operate Mode
Live Edit Virtual Console: allows you to modify the Virtual Console while QLC+ is in Operate Mode. Click to
ToggleStop All Functions (CTRL+Shift+ESC)

Toggle Blackout
Switch between Design Mode and Operate Mode (CTRL+F12)
Active Panel (2)Everything happens here. Which panel is active depends on which tab is currently selected.
Panel Tabs (3)At the bottom of main window you can find easy eye catching icons for switching between QLC+ contexts.
By double clicking on a tab, a context can be detached on a separate window. To reattach a detachedcontext, just close the window.
QLC+ contexts appear in the following order (from left to right):

View the Fixture Manager
View the Function Manager
View the Show Manager
View the Virtual Console
View the Simple Desk
View the Input/Output configuration manager
The DMX Monitor is a useful tool to track the values that are being sent to the output universes. Only the
information related to the required fixtures are displayed. The monitor's display options have no effect on
actual fixture addressing, after all, it is just a monitor.
The DMX monitor has two display modes: DMX view and 2D view.

DMX view
The DMX view shows the all the fixtures of the project, representing each channel with numbers and icons. It
basically represents each channel in 3 rows:
The channel group icon
The channel number
The channel value
Toolbar controls

2D View

By clicking on this button, it is possible to switch to the 2D view mode.
Change the monitor font. To prevent the numbers from flickering and jumping, you shouldchoose a proportional (i.e. fixed width) font; for example Monaco, Andale or Courier. The
font property is global, meaning it will not be saved into your current project, but it will be
stored in the QLC+ main configuration.

DMX

Display fixtures' channel numbers as absolute DMX channels; channel numbers go from 1

Channels

to 512 as they are assigned to each fixture.

Relative

Display fixtures' channel numbers relative to fixtures i.e. every fixture's channel numbers

Channels

always start from 1.

DMX
Values

Display channel values as absolute DMX values (0-255).

Percent
Values
Universe

Display channel values as percentages of 255 (0-100%).
Select which universe to monitor. The first entry is always "All universes"

2D view
The monitor 2D view is another way to represent the fixtures of your project that, instead of numbers, uses agraphical preview trying to represent as much as possible the real result of a light-emitting device.
Currently, monitor reflects:
Master Dimmer
R/G/B
C/M/Y
Color wheels, if they contain RGB color value. Two-color values are not supported
Shutter, which is open, unless the capability name contains "close" or "blackout" (example: "Shutter
Close")In 2D view mode it is possible to select which fixtures to display and their position in a grid representing thedimensions of a real stage.
The grid would like to reproduce the front view of a stage, but you can use it as a generic space as you might
like.
Graphical items can be manually moved by dragging them over the grid, or, when clicked, they can be
configured with the Monitor Fixture Editor panel that will be displayed on the right side of the window.
Toolbar controls

DMX View

By clicking on this button, it is possible to switch to the DMX view mode.

Griddimensions

Set the width and the height of the 2D view grid by changing the values displayed in thetwo spin boxes

Grid units

Set the 2D view grid measurement units by selecting the desired one from the drop downmenu. Possible options are meters and feet.
Add a fixture to the 2D view grid. When clicking on this icon, the fixture selection dialog
will be displayed. Fixtures already added to the view will be disabled as it isn't possible
to add the same fixture twice
Remove a fixture from the 2D view grid. Clicking on this icon will remove the currently
selected fixture. A fixture is highlighted in yellow when selected.
Open the Monitor background picture selection dialog.
Here it is possible to choose between 3 possible modes:
No background: the Monitor 2D view won't have any background picture
Common background: the Monitor 2D view will display the chosen background picture
Custom background list: in this mode it is possible to select a background picture for a
specific QLC+ Function.
Just click on theandbuttons to add/remove Functions and their associated background picture to the Monitor.
When a Function in this list will start the Monitor 2D view background picture will change
accordingly.
Show/hide fixtures' names underneath their graphical representation

Fixture Item Editor
When a fixture is clicked, it gets highlighted in yellow and the Monitor Fixture Item Editor is displayed on theright side of the window.
Following, the possible parameters that it is possible to tune:

Horizontal
positionSet the position on the grid X axis using the grid measurement units

VerticalpositionSet the position on the grid Y axis using the grid measurement units

RotationSet the rotation angle of the graphical item representing the selected fixture

Color gelSet the color gel to be applied to the currently selected fixture item. This is useful for
generic dimmers with a traditional light bulb, not emitting any color by itself. This function
has no effect on RGB LED fixtures.
Reset a previously set color gel

Pan/Tilt display

PAN/TILT display is schematically displayed using colored rings/arcs around fixture. Purple arc shows PAN
angle, and Turquoise arc shows TILT angle. Gray dots show PAN/TILT ranges. Zero (middle of the range) isat the bottom.
In the following picture PAN range is 660 degrees and tilt range is 300 degrees. Pan is at counter-clockwiseend (-330 deg) and tilt is at -150 deg.

The DMX address tool is a quite easy/self explanatory functionality of QLC+ introduced in version 4.3.2.
It helps you to calculate your fixtures addresses quickly in a visual way.
A representation of a common 10way DIP switch is displayed and you can select the background color, thehorizontal and vertical orientation, so that the DIP switch is displayed exactly as you would see it on yourfixture.
Note that for many fixtures, switch 10 is used to enable or disable the DMX input. If your product manual says
it has to be 'on' to enable the DMX input, then remember to do it even if QLC+ has it set to OFF.
The DMX Dump functionality allows you to save the current DMX values that are being sent to the output
universes at a particular moment. Basically it takes a "snapshot" of DMX channels and saves them for a lateruse.
DMX Dump can save values to a new Scene or overwrite the values of an existing Scene. The "dumped"
Scene can also be added to an existing Chaser, Virtual Console button or slider
Please note that:
Selected Channels/Chasers will be remembered when re-opening this window
The DMX values saved are taken before the Grand Master
When opening the DMX Dump window, the following options will appear:

Scene
name

Defines the name of the Scene that will be created. If no name is specified, a default namelike "New Scene From Live" and a numeric identification will be set, allowing fast use ofthis functionality.

By clicking on this button, a Function selection window will be displayed, allowing to selectan existing Scene to be overwritten with the current DMX values.
Note: Overwriting a Scene doesn't ask for confirmation and can be a potentially dangerous
operation if you select the wrong Scene by mistake. So be careful when using thisSelect anfunctionality.

existing
Scene

When a Scene is selected, the DMX Dump window will automatically set two things for you:
* The "Dump selected channels" option will be checked* The Fixtures tree will be updated, and only the channels enabled in the Scene channels
will be selected. If you need to overwrite different channels, just select/deselect them
manually before confirming the operation

Dump allchannels

If this option is selected, QLC+ will dump all the channels of all the universes and all the
fixtures. To inform the user about what this option will do, a report in the form of (Universes,
Fixtures, Channels) will be displayed.

Dump

If this option is selected, the panel below will be activated, allowing you to choose exactly

selected

which channels that you want to be saved into a Scene. They are organized in a tree bychannels

Universes and Fixtures.
This section offers you immediate use of your scene in an existing Virtual Console widget.
Options are:
Chaser: The list contains all the chasers present when DMX Dump window is opened.
Each Chaser has a checkbox that, if checked, will tell QLC+ to add the newly created
Scene to the selected chasers.
This feature is very useful when using Cue Lists in the Virtual Console panel, because the
newly created Scene will appear in the Cue List for immediate use during a live

Add toDump
only nonzero
valuesperformance.
Button: The list contains all the buttons currently present in your Virtual Console space.
When selected, the buttons will be set to activate/deactivate the Scene just captured. You
will see the button label changing to "Scene from live ..." and a progress number to identify
it.
Note: Any previous function associated to the selected buttons will be overwritten!
Slider: The list contains all the sliders currently present in your Virtual Console space.
As with buttons, all the selected sliders will be set to control the Scene just captured.
Note 1: A slider must be in playback mode to work as an intensity controller for a Scene.
Note 2: Any previous function associated with the selected sliders will be overwritten!
This option will tell QLC+ to save only the channels with values that are not equal to zero.
If you know what you're doing, this could save project space and avoid channels conflicts
with other Virtual Console widgets.

Starting from version 4.5.0, QLC+ offers a functionality which allows the adjustment of your Functions while inOperate Mode.
The Live Edit icon

is located in the QLC+ top bar, beside the DMX Dump icon
and it is activated only when the user has switched to Operate Mode.
When clicking on the Live Edit icon, a Function selection panel will be displayed, allowing the selection of thefunction you want to adjust.
When you press OK, the correct editor will be displayed for editing that function.
At the moment, the following functions are supported for live editing:

Scene will open a Scene Editor
Note that by default the editor will be set in "Blind mode" when you edit a Scene that is not currently
running, in case you want to make the changes effective only when the Scene is being replayed the nexttime it is selected. For a currently running Scene the editor will open in live mode by default.

Chaser will open a Chaser Editor

EFX will open an EFX Editor

RGB Matrix will open an RGB Matrix Editor
The types of functions listed in the Function selection can be selected by using the filter check boxes atthe bottom of the panel.
There is an option at the top of the panel to list currently running functions only.
Note that if another function is running when performing a live edit, HTP channels in the other function
may prevent some adjustments from being seen on the stage.

03. Fixture manager
Fixture Manager
The fixture manager is the heart of QLC+'s fixture-oriented architecture. As its name already says, you canmanage (add, remove and edit) your lighting fixtures from the fixture manager. On the left side of the manager
there is a list that displays all of the fixtures in the current workspace. When a fixture is selected, the right sideof the window displays the details of the selected fixture. When a Fixture Group is selected, the right side of
the window is occupied by the Fixture Group Editor.
Controls

Add new Fixture(s) to the workspace with the Add/Edit Fixture dialog.

Add a RGB panel to the workspace with with the Add RGB Panel dialog.
Remove the selected fixtures from the workspace. This also removes the fixtures from ALL groups
they have been assigned to.
Edit the currently selected fixture's properties with the Add/Edit Fixture dialog.
Opens the Channel Properties Configuration window.
Assign the selected fixtures to a Fixture Group displayed in a popup menu. If you have no groups
defined yet, you can choose to create a new one from the menu that opens when this button is clicked.
Resign (remove) the selected fixtures from the group they are currently in. Note that removing fixturesfrom a group will NOT destroy the fixtures completely. Also, removal from one group will not affect the
fixtures' memberships to other groups.
Move the selected Channel Group up
Move the selected Channel Group down
Imports a fixture list file (.qxfl) into QLC+. Please note that fixture addresses conflicts are not handled,
so it is suggested to use this functionality on an empty project.
Exports the list of fixtures currently available on a QLC+ project into a file with extension .qxfl. This filecan be used afterward with the import functionality.
Opens the Fixtures remapping window.
The same dialog (with slight differences) is used for both adding new and editing the properties of existing
Fixtures.
NOTE: When editing an existing fixture, you can always choose a completely different fixture type to replace
the previous one, but if their channels don't match each other exactly, any Scene functions you may havecreated, will very probably do things that you don't want. Also, if the channel counts don't match, you mightend up having fixtures with overlapping channels, which results also to unwanted behavior. RGB Matrix, EFX,
Chaser and Collection functions remain unaffected since they don't directly address specific channels, but are
more dynamic in nature.
Controls

FixtureModel list

Shows you a list of available fixture definitions and their general types. If you don't see
your favorite fixture definition on the list, you can create one yourself with theaccompanying, easy to use QLC+ Fixture Editor. Since QLC+ is completely free software,please consider sharing the definition files with the community on the QLC+ ForumName: The friendly name you wish to assign to the fixture
Mode: The mode you have configured to the fixture
Universe: The DMX universe where the newly-added fixture(s) are connected toAddress: The address of the (first) fixture you are adding. If you are adding multiple
fixtures, each consecutive fixture will be assigned an address immediately after the
Fixtureprevious fixture's channels, unless address gap (see below) is non-zero.

Properties

Channels: If you have selected the Generic dimmer device, you can define its channel
count to this field. Otherwise this field is read-only and it just tells you how many channels
the currently selected fixture needs in its currently selected mode.
Channel list: This field displays a more detailed list of individual channels for the currently
selected fixture and its mode. For Generic dimmers, this field remains empty since alldimmer channels are treated as dummy intensity channels.
You can also add more than one fixture at the same time if your setup consists of multiple
fixtures that are of the same make & model. These features are disabled when you are
editing an existing fixture.

Multiple
Fixtures* Amount: Number of new fixtures to create. Each newly-added fixture includes also a
number after its assigned name when adding more than one fixture at a time.
* Address gap: Leave this many empty channels between each new fixture

On the market you can easily find LED strips that you can wire as you prefer to create a RGB Panel (ormatrix). This dialog allows you to quickly create and setup a RGB Panel. It is a dedicated dialog to help youwith the most annoying process of creating fixtures manually depending on the desired layout.
Please note that once the panel is created, the only way to modify the layout is manually.

Panel creation
When clicking OK on this dialog two things will happen:
QLC+ will create a fixture for each row of the panel. They can be considered like if the panel is composedby individual RGB bars.
QLC+ will create a fixture group representing the panel with heads already in the right displacement
Once a RGB panel is created, it is straight forward to go to the Function Manager, create a new RGB Matrix
and start using the panel very quickly.
Let's have a look at every option in this panel:
Panel Properties

Name

An arbitrary string that can be used to name the RGB panel

Universe

The universe where the RGB Panel is going to start. If the panel requires a number ofchannels that don't fit in a single universe, it will span across multiple universes, startingfrom the one selected with this option.

Address

The DMX start address where the RGB Panel has to be mappedSize

Columns

The RGB Panel number of columns (or the number of pixels per row)

Rows

The RGB Panel number of rows (or the number of pixels per column)

PhysicalWidth

The physical width in millimeters of the RGB Panel

Height

The physical height in millimeters of the RGB Panel

Orientation

Top-Left

The first pixel will be located on the top-left corner of the panel

Top-Right

The first pixel will be located on the top-right corner of the panel

Bottom-Left

The first pixel will be located on the bottom-left corner of the panel

Bottom-Right

The first pixel will be located on the bottom-right corner of the panel

Displacement

Snake

The panel displacement follows a "snake" logic. It means the next pixel of the end of a row ison the same column of the next row. Then the other pixels follow in the opposite direction.

Zig-

The panel displacement follows a "zig-zag" logic. It means the next pixel of the end of a row is

Zagon the first column of the next row.

Direction

Horizontal

Pixel addresses are incremented horizontally.

VerticalPixel addresses are incremented vertically.

The Fixture Group Editor is used when you select a Fixture Group in the Fixture Manager. This editor can beused to describe the physical arrangement of the fixtures and their heads that are assigned to the group.
Controls
Each Fixture Group has a name (for your convenience) and the fixture configuration in an unlimited [X,Y] grid.
You can adjust the size of the grid as well as the placement of individual fixture heads on the grid.

FixtureGroup
Name

Change the name of the group.

Add fixture heads to the currently selected row, filling each subsequent column on that row
with the selected fixture heads. You can select individual fixture heads or complete fixtures tobe added on the selected row.
Add fixture heads to the currently selected column, filling each subsequent row on that column
with the selected fixture heads. You can select individual fixture heads or complete fixtures tobe added on the selected column.
Remove the selected fixture head from the grid (and the group).
The fixture grid displays the current fixture/head arrangement in the selected group. You canswitch places between two heads as well as fill up spaces or create empty spaces between
heads simply by dragging the heads on top of each other in the grid.
When using fixture groups in RGB Matrices, each cell in the grid represents one colored (orFixturegrid

monochrome) pixel in a graphic scene rendered by the RGB Matrix.
Each cell is displayed with an info text that contains the following information:* The name of the fixture as well as an icon
* H: represents the head number* A: represents the fixture's address* U: represents the fixture's universe

Width

Adjusts the grid width (number of columns on the X-axis).

HeightAdjusts the grid height (number of rows on the Y-axis).

The Channel Groups editor it activated by clicking on the "Channels Groups" tab in the Fixture Manager
panel.
With this functionality (introduced in QLC+ version 4.0.0), it is possible to create groups of channels with thesame functionality.
For example, if you have 20 PARs you might want to control the RED channel of all of them with a single
fader.
Controls

Add a new channels group to the workspace with the Add/Edit Channels Group dialog.
Remove the selected channels group from the workspace.
Edit an existing channels group in the workspace with the Add/Edit Channels Group dialog.
Move the selected group up in the list to change the logical order.
Move the selected group down in the list to change the logical order.
Add/Edit Channel Groups

Group Name

Set/change name of the channels group

Channels list

Select channels that should be included in this channels group.

Apply changes

When checked, clicking on a channel will select/deselect the same channel on all

to all fixtures of

fixtures of the same type. Use it when you want to select e.g. all Red channels of all

the same type

fixture of a particular LED PAR model

External input

Select external input for this channels group for easier control in Function Manager.
External input for channels groups will not work elsewhere.

This window displays a tree with items nested in a Universes/Fixtures/Channels structure.
On the right side of each fixture's channel are displayed the available options that can be set to modify the
behaviour of each single channel.

Channels properties
Determine if a channel is included or excluded in the QLC+ fade transitions.
By default all the channels are affected by the Fade In and Fade Out timings of the QLC+
functions.
Can fade

When this property is unchecked, a channel will not fade, meaning that a fade transition
from 20 to 200, will set the channel immediately to 200.
This is useful for example for Pan/Tilt channels of moving heads, where you want the
motors to avoid fading but immediately go to the final value.
Force the channel behaviour according to the HTP and LTP rules. When changing the
behaviour of a channel, the list will highlight in red, showing evidence that the channels

Behaviour

has been modified.
Note: Use this functionality only if you know what you're doing and fully understandhow HTP and LTP work

Modifier

Channels modifiers are a powerful tool to modify the behaviour of a channel by acting at
the end of the DMX value calculation, right before the Grand Master modification.
By default all the channels will follow a linear rule, meaning that the original DMX value
will be equal to the output DMX value. (0-0, 1-1, ... , 255-255)
When clicking on this button, the Channel Modifier Editor panel (described below) will be
displayed.

When dealing with a lot of fixtures of the same type, you might want to check the "Apply changes to fixtures ofthe same type" check box.
This means that changing a channel property will affect all the channels of the same type and fixture in thelist.
This can save you quite a lot of time when setting up your projects for the first time.

Channel Modifier Editor
The channel modifier editor is presented like this:On the right side of the window, a list of available modifier templates is displayed.
Clicking on a template in the list, will show the curve preview on the left side of the window.
A modifier curve is composed by a number of lines representing how a DMX channel should be modified
when its value changes.
Each line starts and ends with a so called "handler". A modifier can have a virtually infinite number ofhandlers, but there must be always one handler on the DMX value 0 and one handler on the DMX value 255
to cover all the DMX values range.
Basically the X coordinate of the preview represents the original DMX value and the Y coordinate represents
the modified DMX value.
When clicking on a handler this gets clearer as the fields above the curve preview are filled with the saidvalues.
Handlers can be simply moved with the mouse by dragging them around or by manually changing the valuesof the original or modified DMX values.
To create a new template just select an existing template, give it a new name and add/remove handlers asneeded with theandbuttons.
When done, just click the
button and your template will be saved in your user templates folder. Please refer to the Questions andAnswers page to locate this folder.

Channel Modifier Templates
QLC+ delivers a few templates that might cover the most common cases.

Always FullFix ("park") the channel value to 100% (255), regardless of other QLC+ mechanisms(except blackout and universe passthrough). Useful for e.g. dimmer channels.

Always HalfFix ("park") the channel value to 50% (127). Useful for keeping Pan/Tilt channels at aneutral position.

Always Off

Fix ("park") the channel value to 0% (0). Useful for disabling wrong fixtures.

Exponential
Deep
Exponential
MediumExponential
Shallow
Exponential
SimpleInverted

Invert a Pan/Tilt channel where a product doesn't have this feature by factory default.

LinearDefault curve, same as when no modifier is set.

Logarithmic

This template can improve the fade transitions of LED-based fixtures, trying to bring themDeepback to a more linear effect

Logarithmic
MediumLogarithmic
Shallow
Preheat 5%

May extend lamp life by keeping them at 5% minimum

Threshold

Converts dimmer channel to switch channel (off below 128, full above)

Starting from version 4.4.1, QLC+ offers a functionality called fixtures remapping.
When performing live shows in different venues, you may only be able to find out at the last minute which
fixtures are installed there. Well, fixtures remapping helps you to use your existing projects in this and manyother situations, such as when you need to replace a faulty fixture or when you want to use hired in equipment
alongside your own.
For example, you can set up a project with just one PAR, one moving head and one scanner. When reaching
the venue where the show is going to take place, you can remap your fixtures to those you find there, forexample 50 PARs, 30 moving heads and 15 scanners.
With QLC+, it takes just a few minutes to do this operation!
Fixtures remapping allows you to perform 1-to-1 or 1-to-many reassignments of entire fixtures or single
channels. QLC+ will try as far as possible to reassign the original channels used in the project to newchannels in the same category.
When you confirm the remapping operation, a new project will be automatically saved to preserve youroriginal project.
All the fixtures, scenes, EFX, Virtual Console widgets and audio triggers found in the original project will be
remapped so that they work on the new fixtures list.

Remapping window
Let's now explain how to use the fixture remapping window, starting from a screenshot of a complete example:

And now, here is a detailed explanation of each element of the remapping window.

SourceOn the left side of the window, there is a tree representing the universes, fixtures andfixtureschannels used in your project. This list cannot be changed in this window.

Remapped

On the right side of the window, there is a tree representing the universes, fixtures andfixtureschannels where you are going to remap your source fixtures.
Add one or more fixtures to the Remapped fixtures list. Clicking this button will open the
Add/Edit Fixtures window. Please note that once a fixture is added, it cannot be modified,
so if you need specific names or quantity, remember to do it before adding the new
fixtures
Remove the selected Fixture from the remapped fixtures list.
This is probably the most important button in the window. It allows you to determine theconnection between a source fixture and a remapped fixture. The connections can be
performed either between single channels or on whole fixtures.
In the first case you will need to select the source channel from the source fixtures list anda target channel from the remapped fixtures list.
In the second case you will need to select a fixture from the source fixtures list and atarget fixture from the remapped fixtures list.
Wrong selections will cause an error message to popup. For example you cannot remap
a channel to a fixture and vice-versa.
If the connection is valid, it will be represented as a line in the white area between thesource list and the remapped list.
Remove a previously created remapping connection. Wrong selections will cause anerror popup.

Remapfixturesnames
Destination
project
nameIf this is checked, a new remapping connection between fixtures will also set the target
fixture name be the same as the source fixture name.

The absolute path and name of the remapped project. For convenience, QLC+ willautomatically take the original project name and will add "(remapped)" at the end of it.

04. Function manager
Function Manager
With the function manager you can manage all of your functions that do the actual work of automating yourlights. You can create new functions, remove and edit existing ones as well as create copies of them. Controls
are on the upper part of the window; the lower part displays all of your functions as well as the function editor
for the currently selected function (if any).
Each function type can be found under its own category: Scene for scenes, EFX for EFX's etc. When a new
function is created or an existing one selected, the appropriate editor is chosen and displayed on the righthand side of the Function Manager window. Changes made in the editor pane are stored immediately in thefunctions themselves and no additional OK clicks are required.

Controls
Create a new Scene and edit it using the Scene Editor. (Shortcut: CTRL+1)
Create a new Chaser and edit it using the Chaser Editor. (Shortcut: CTRL+2)
Create a new Sequence and edit it using the Chaser Editor. (Shortcut: CTRL+3)
Create a new EFX and edit it using the EFX Editor. (Shortcut: CTRL+4)
Create a new Collection and edit it using the Collection Editor. (Shortcut: CTRL+5)
Create a new RGB Matrix and edit it using the RGB Matrix Editor. (Shortcut: CTRL+6)
Create a new RGB Script and edit it using the RGB Script Editor. (Shortcut: CTRL+7)
Create a new Audio function to be used in Chasers or Shows. (Shortcut: CTRL+8)
Create a new Video function to be used in Chasers or Shows. (Shortcut: CTRL+9)

Create a new folder in the selected category. (Shortcut: CTRL+L) A folder can be renamed by double
clicking on it.
When a folder is selected, a newly created function will be added to it. To move existing functions
inside a folder, just select and drag them into it. In the same way they can be moved outside a folder
by dragging them onto a category item.
When deleting a folder, all the functions and subfolders contained into it will be deleted as well.
Note: Empty folders will not be saved into your project.
Open the Function selection dialog to choose a startup function. The selected function will be started
every time QLC+ switches to operate mode. This is very useful when running QLC+ in kiosk mode(thus using -k or -p flags)
A special entry named "<No function>" is present to remove a previously set startup function.
Start the Function Wizard. (Shortcut: CTRL+W)
Create a copy of each of the selected functions. Note: cloning a Sequence will clone its bound Scene
too.
Permanently remove the selected function(s).
The scene editor, as its name suggests, is used to edit
Scene functions. The editor is divided into tabs; with the first, General tab, you control the list of fixtures andchannel groups that take part in the scene editing, together with the Scene name.
All subsequent tabs are used to control the individual channel values for each fixture and, if any are defined,
the channels groups values.

General Tab Controls
On the left hand part of the screen, the buttons to control the fixtures used in the scene are displayed.

Scene name

Change the name of the scene.
Add an existing Fixture to the scene.
Remove the selected Fixture(s) from the scene.
Enable all channels of the selected fixtures.
Disable all channels of the selected fixtures.

On the right hand part of the screen, the buttons to control the channel groups used in the scene are displayed

Enable all the selected channel groups.
Disable all the selected channel groups.

Hint: It's useful to know that when a channels group is checked/unchecked, the fixtures controlled by thegroup will be automatically added to the left panel. The channels controlled by the group will also be
automatically enabled/disabled on each fixture.

Channel Groups Tabs
This tab will be displayed only if one or more channel groups are selected in the General tab.
Each Channel Group will be displayed with a quick macro access button (Click And Go if supported), a labelwith the group value, a fader and the name of the group.

Fixture Tabs
Each fixture is represented by its own tab that contains sliders for each of the fixture's channels. Each channel
can be enabled or disabled with a check box at the top of the channel unit. The value of each channel can be
set either by typing the value to the edit box at the top of the slider or by moving the slider. Channels thatprovide multiple functions such as gobos, colors, etc. also have a button above the channel slider - this button
can be used to directly select a specific function or capability provided by that channel.
Hint: The keyboard shortcut to move between channels values edit boxes is 'Tab' to move to the right and'Shift + Tab' to move to the left.
Channel enabled/disabled status
If a channel has not been enabled, the scene will not touch that particular channel's value, ever.
If a channel has been enabled, the scene will change that channel's value to the value that is defined in thescene. This is useful, for example, when you wish to control only the dimmer channel of a scanner fixture you wouldn't want the scene to touch the scanner's pan, tilt, color or gobo channels when you just want tofade in or fade out with the dimmer channel.
Controls

Enable all channels from the current fixture. In all channels mode, select channels for all
fixtures.
Disable all channels from the current fixture. In all channels mode, disable channels for all
fixtures.
Go to the previous tab in the view. If the first tab is selected, this will go to the last tab in
the view. Keyboard shortcut: 'ALT+Left'
Go to the next tab in the view. If the last tab is selected, this will go to the first tab in theview. Keyboard shortcut: 'ALT+Right'

The Copy functionality has 2 modes:
Copy the values (and enabled/disabled states) of all channels in the current fixture to the
clipboard.
Copy only the selected channels (CTRL-clicked, yellow background) values into the
clipboard.
Paste the values from clipboard to the current fixture. If no channels were selected during'copy', then all the enabled/disabled states will be pasted along with the channel values.
The 'Copy all' functionality has 2 modes:
Copy all values (and enabled/disabled states) of all channels to all other fixtures taking
part in the scene.
Copy only the selected channels (CTRL-clicked, yellow background) values to all theother fixtures taking part in the scene.
Launch a color tool to select a specific color and set that color to the current fixture; Thisfeature is enabled only for fixtures that are capable of CMY/RGB color mixing.
Launch a position tool (similar to XYPad in Virtual console) to select a head/mirror
position for the current fixture; This feature is enabled only for fixtures that have either pan
or tilt channels. All heads of current fixture will be changed to the same value.
Show/Hide the Speed Dial widget, used to adjust the Scene parameters such as Fade In
and Fade Out
Switch between "tab view" and "all channels view". The first mode will display one tab foreach fixture, while the second will display a single tab for all the fixtures
Toggle blind mode for the selected fixture.
Clone the current scene and add a new step to the Chaser selected from the drop down
list beside this button
The chaser editor, as its name suggests, is used to edit
Chaser functions.
A Chaser is composed by steps and each step is represented by
A progressive number
The related function name
Fade in time
Hold time
Fade out time
Step total duration time
A note field in case you need to write something to remember what the step does

The timings steps and the note field can be modified by double clicking on them. By default the times aretaken in seconds (for example 135 means 2m15s), unless you use the same syntax QLC+ uses (for example
1m12s.80)
Controls

Chasername

Change the name of the chaser.
Show/Hide the Speed Dial widget, used to facilitate the Chaser parameters tuning like Fade
In, Fade Out and Hold
Start to run the Chaser to test the playback beginning from the selected step
Stop a previously started playback
When playback is active, go to the previous step in the Chaser
When playback is active, go to the next step in the Chaser
Copy the selected steps into the clipboard.
Paste the previously copied steps from clipboard to the current position selected. If none, thesteps will be appended at the end of the list
Remove the selected steps from the list and copy them into the clipboard.
Add an existing Function to the chaser, using the Select Function dialog. The function are
inserted after the currently selected step.
Remove the selected step from the chaser.
Move the selected step above/before the previous step.
Move the selected step below/after the next step.
Reorder (shuffle) the selected scenes randomly. Main differences to "Run Order: Random"
are that the shuffled scene order is static, predictable, can be modified manually and doesn't
necessarily affect all scenes.

Run
Order

* Loop: Run through the steps over and over again.
* Single Shot: Run through the steps once and then stop.
* Ping Pong: Run through the steps over and over again, reversing direction at both ends.
* Random: Run through the steps over and over again in random order.

Direction* Forward: Run through the steps from start to end; 1, 2, 3...
* Backward: Run through the steps from end to start; ...3, 2, 1

Fade In
Speed* Common: Apply the same speed for all the steps in this Chaser* Per step: Apply a user defined speed for each step in this Chaser* Default: Apply the default speed for each step (0 seconds).

Fade Out
Speed
Step
Duration* Common: Apply the same speed for all the steps in this Chaser* Per step: Apply a user defined speed for each step in this Chaser* Default: Apply the default speed for each step (0 seconds).
* Common: Apply the same duration for all the steps in this Chaser* Per step: Apply a user defined duration for each step in this Chaser

The Show Editor is a panel to display the current structure of aShow created with the Show Manager.
At the moment the Show Editor can only rename a Show, which is not possible in the Show Manager.
The tree view of this panel shows useful information regarding the displayed Show such as:
Function: the function name
Steps: the number of steps that compose a Sequence
Start Time: the time at which a sequence is going to be reproduced
Duration: the duration of the sequence
The EFX editor, as its name suggests, is used to edit
EFX functions. The view is split into two tabs:
General tab is for selecting Fixtures, speed and fixture order.
Movement tab is for selecting details on how the fixtures should move their beams.
General Tab Controls

Adjust the EFX speed settings:
Fade In: Fade the EFX startup to target size
Fade Out: Currently not used
Duration: The duration of one full round using the selected pattern
Enable the output and run the EFX to test how it looks like
EFX
name

Change the name of the EFX.

Fixturelist

Step: Shows the order in which the fixtures start their movement in serial/asymmetric order
Fixture: The name of each fixture that has been added to the EFX
Mode: The channels the EFX should control. They can be Position, Dimmer or RGB
Note: when selecting RGB, you might want to enable the "Color Background" described
below.
Reverse: When checked, the fixture reverses its movement as opposed to non-reversed
fixtures. The "normal" direction is set by direction in the "Movement" page.
Start Offset: Value in degrees, where on the movement path this fixture should start
Add a Fixture to the EFX, after the currently selected position. Since EFX is used for moving
the head or mirror of an intelligent fixture, only fixtures with pan and tilt capability (8bit or
16bit) can be added to an EFX.
Remove the selected fixtures from the EFX.

Raise the selected fixture upwards (earlier) in serial order.
Lower the selected fixture downwards (later) in serial order.
Fixtureorder

Change the EFX's fixture order—see below.

Movement Tab Controls

Pattern area

Shows a 2D-projection of the fixtures' head/mirror movement. Every time you change aparameter, one small dot for each fixture travels the complete path in its selected
direction from its start offset.
The speed of the movement reflects selected speed settings.
Default direction of the fixtures (can be altered individually for each fixture by thecheckbox in the Reverse column)

Direction
Forward: The fixtures move forwards along the pattern path
Backward: The fixtures move backwards along the pattern path

Loop: Run thru the steps over and over again.
Run order

Single Shot: Run thru the steps once and then stop.
Ping Pong: Run thru the steps over and over again, reversing direction at both ends.
Select the movement pattern algorithm.
CircleEight
Line: goes from one end to the other and back; faster in the middle, slower at the ends

Pattern

Line2: goes in one direction only; speed is always the same
DiamondSquareSquareChoppy
Leaf
Lissajous
Width: Choose the pan width (0-255)
Height: Choose the tilt height (0-255)
X Offset: Move the pattern's horizontal (pan) centre point (0-255)
Y Offset: Move the pattern's vertical (tilt) centre point (0-255)

Parameters

Rotation: Rotate the pattern along its axis (0-360 degrees)
Start Offset: Where along the path the movement should start (0-360 degrees)
X Frequency: Change the Lissajous pattern's X (horizontal) frequency (0-32)
Y Frequency: Change the Lissajous pattern's Y (vertical) frequency (0-32)
X Phase: Change the Lissajous pattern's X (horizontal) phase (0-360 degrees)
Y Phase: Change the Lissajous pattern's Y (vertical) phase (0-360 degrees)

Color

When enabled, the EFX preview background will display a RGB palette, to show what

Backgroundthe EFX does when controlling RGB channels

Relative

See below.

Fixture Order
Fixtures taking part in an EFX function can be set to follow the algorithm in certain order:
Parallel: all fixtures follow the same pattern synchronously
Serial: fixtures start following the pattern one after the other, with a little delay between each of them.
Asymmetric: all fixtures start moving simultaneously, but with similar offset as in the Serial mode.
Direction
EFX functions' direction can be reversed for all fixtures at once or on a per-fixture basis. The function can also
be set to do an infinite loop, an infinite ping-pong-loop (direction is reversed after each pass) or it can run
through just once, in a single-shot mode, after which it terminates by itself. If the function is set to do an infinite
loop, it must be stopped manually.
Relative ModeEFX position is absolute by default-in other words, the selected EFX will exclusively control the X/Y positionof the specified heads. When the Relative Mode checkbox is enabled, the EFX position acts as a layer on topof any position that has already been set (e.g. by a scene or even another EFX). In other words, the EFX isrelative to current fixture position.
In absolute mode. the EFX can be set to run at specific head position (e. g. do circle downstage center, stageleft, etc.)
In relative mode, the center of the preview window (offset x=127, offset y=127) will be applied to current head
position.
It is useful to reduce number of EFX presets: let's say we want to have 3 types of EFX (pan saw, tilt saw,
circle) at 4 places (e.g. 4 stage corners). In absolute mode that means 3x4 = 12 presets. If we want to change
something, we have to edit many functions. We most probably need also one VC button for each. In relativemode, we create one EFX preset for each EFX type (pan saw, tilt saw, circle), and we set offset to neutral(x=127, y=127). Then, we create scenes with PAN & TILT channels for each position. Now we have only 3+4
presets (and 3+4 VC buttons, preferably in 2 solo frames).
Tips&Tricks
In relative mode, it is also possible to fade between positions (set fade time in scenes) while the EFX is
running.
Using XYPad and relative mode, it is possible to move EFX to any place during the show.
When driving RGB channels:
To see what you are doing, set the Back Ground Color box to checked.
X-Offset will set a Base Color (e.g. Blue = 167).
Height will set the Color Range (e.g. 40 sets the range from Cyan over Blue to Magenta).
Y-Offset will set the Base Intensity.
Width will set the Intensity Range.
The Top Half of the Y-axis varies the Color from Black (Top) to Base Color (Mid, e.g. Blue). The Bottom Half of
the Y-axis varies the Color from Base Color (Mid, e.g. Blue) to White (Bottom).
The collection editor, as its name suggests, is used to edit
Collection functions.
Collections are very helpful in a workflow where you create QLC+ functions dedicated to specific areas ofyour show. For example, you can create a number of Scenes to control only colors, some other Scenes tocontrol only positions and so on. Then you can create a number of Chasers and EFX for automations.
When you have created all the basic elements of your show, you can then use Collections to build a sort of"shortcut" to compound scenes. For example a color Scene + a position Scene.
Note: Collections don't have speed setting; each function you include in a collection follows its own speed
settings.
Important: The order of the Functions in a Collection is fundamental when dealing with HTP/LTP usage orrelative values. QLC+ will internally start the Functions of a Collection from the first to the last, so if they use

the same channels, just keep this in mind because you might run into undesired effects.
For example a Scene setting Pan/Tilt channels + a EFX in relative mode must have a precise order: theScene in the first position and the EFX in the second position.
Controls

Collection

Change the name of the collection.

name

Add an existing Function to the collection, using the Select Function dialog. The order ofthe functions has no significance.
Remove the selected functions from the collection.
The RGB matrix editor, as its name suggests, is used to edit
RGB matrix functions. The function works on predefined
Fixture Groups created by the user with the
Fixture Manager.

Controls
RGB
matrixChange the name of the RGB matrix.

nameAdjust the RGB Matrix speed settings:
Fade In: The time it takes for the fixtures in the RGB Matrix fixture group to fade theirintensity channels up
Fade Out: The time it takes for the fixtures in the RGB Matrix fixture group to fade theirintensity channels back to zero
Duration: The duration of each step of the selected pattern
Convert the current RGB Matrix into a Sequence. This is useful to speed up the creation of aShow. Please note that if the selected pattern generates random data, this functionality will
generate a different Sequence every time.
Switch the preview mode between circles and squares
Make the RGB Matrix run as if it were started from a Virtual Console button. Note that thepreview stops while the function is running.
Fixturegroup

The Fixture Group that is controlled by this RGB matrix.

Preview
area

Shows a preview of the currently selected pattern imposed on the fixtures defined in thecurrently selected fixture group. Note that the preview doesn't show the difference between
RGB-capable and monochrome/fixed color fixtures.

Select the pattern and colors that are used on the selected fixture group for drawing
graphics.
Patterns can be:
Plain Color: all the pixels of the matrix will be lit to the selected color
Animated Text: display an animated text with the following parameters:
Text: The text edit field is used to edit the text content that is scrolled/flashed on the matrix.
Font: The font button
is used to select the font (tip: bitmap fonts work best)
Animation: The drop-down box is used to select the animation style (Horizontal, Vertical orLetters)
Audio Spectrum: QLC+ will start capturing data from the chosen audio input device andwill represent the audio spectrum as vertical bars in the RGB Matrix with the selected startand end color.
For an optimal usage of this pattern, the hold time of the Matrix must be set to a reasonably
low value (e.g. .20)
Image: display an image loaded from a file, with the following parameters:
Pattern

Path: The text edit field is used to edit the image filename
Image: The image button
is used to load an image from file
Animation: The drop-down box is used to select the animation style (Static, Horizontal,
Vertical or Animation)
Supported formats: PNG, XPM, JPG, GIF (for animated GIFs, only the first frame is used).
Styles:Static - the image is statically displayed on the matrix. If the image is smaller than thematrix, it is repeated in both directions. (Tip: for stripes, use 1-point-high images)
Horizontal - the image is scrolled horizontally. Again, image is repeated in both directions.
Vertical - same as Horizontal, but in vertical direction.
Animation - play animation. Stack the frames (of width equal to matrix's) side by side in one
image. For example, when matrix is 8x8 and you want to have 4 frames, make image 32x8.
The image is still repeated vertically.
The rest of the pattern list is filled with RGB Scripts loaded when QLC+ starts up.
Depending on the selected pattern, it is possible to choose a start and an end color. Somepatterns do not allow colors at all (since they elapse them autonomously) or allow just one
color.

The blend mode is the mechanism used to mix multiple RGB Matrices running one on top of
the other.
Here's a representation of how it works:

Pattern
Blend
Mode

The matrix running on the bottom layer must use the default mode, to prepare a ground ofcolors that all the above layers can use to perform blending.
Pattern
Color
Mode

The color mode is the mechanism select which color channels the RGB Matrices applies to.
Default setting is RGB mode, addressing RGB channels or CMY channels. If set otherwise,
only the selected channels (e.g. "White") will be set in a grayscale of the selected color(s).
Channels not representing the selected color mode (e.g. R, G and B) will not be touched.
Available only when Text or Image is the selected pattern.

Offset

X: Used to shift the pattern along the horizontal x-axis (negative values go to the left,
positive values go to the right)
Y: Used to shift the pattern along the vertical y-axis (negative values go up, positive values
go down)

Run
Order

Loop: Run through the steps over and over again.
Single Shot: Run through the steps once and then stop.
Ping Pong: Run through the steps over and over again, reversing direction at both ends.

Direction

Forward: Run through the steps from start to end; 1, 2, 3...
Backward: Run through the steps from end to start; ...3, 2, 1

Control
ModeThis selects the channels which the RGB Matrix uses as output. For example: You can use
the "Dimmer" option to allow the matrix to control dimmer channels for the fixtures in thegroup.

Users can write their own RGB scripts to produce custom graphics projection with the RGB Matrix function.
The scripts' operation principle is to produce a number of RGB maps that each represent one step in thegraphics animation. The principle is basically the same as in movies: the audience observes a moving
picture, which in reality is only a sequentially-played stream of static images that produce an illusion of
movement.
The scripts themselves are written in ECMAScript, which is also known as JavaScript. Note that the language
is case-sensitive and a as standard follows camel case rules, so make sure you write everything correctly andpay special attention to the required API features.

Script files should be named after the script's name and must have a .js extension. Depending on platform,
the files should be placed either in the QLC+ system script directory or, preferably, the user script directory:
Linux user dir: ~/.qlcplus/rgbscripts/
Linux system dir: /usr/share/qlcplus/rgbscripts/
OSX user dir: ~/Library/Application Support/QLC+/RGBScripts
OSX system dir: /Applications/QLC+.app/Contents/Resources/RGBScripts
Windows user dir: %HOMEPATH%\QLC+\RGBScripts
Windows system dir: C:\QLC+\RGBScripts

RGB Script Syntax
Foundation
The scripts must be self-executing, i.e. when they are evaluated, the script itself is put inside an anonymous
function that executes itself and returns an object that contains the required API functions:(function() { // Anonymous function starts here
var algo = new Object;return algo; // Return the script object} // Anonymous function ends here)() // Anonymous function is executed here upon evaluation

Properties
However, a script with nothing more than an empty object does nothing, no matter how self-executing it might
be. You must also declare some properties for the returned object so that QLC+ knows how to use the script
and to show it to the user (you). So, you need to declare the following properties for the returned script object:
apiVersion: The API version that the script follows. Currently, the accepted values are '1' or '2'.
apiVersion 1 allows simple scripting and easier coding, while apiVersion 2 offers advanced featuresdescribed below.
Any other value will cause the script to be treated as invalid.
name: The name of your script. This name appears in the pattern selection box in the RGB Matrix Editor
author: The name of the person who has written the script. You.
acceptColors (optional): Informs QLC+ if the script can accept a start color, an end color or none.
'acceptColors = 0' means no colors are accepted/needed. It means that the script will autonomously
generate the colors information for the matrix pixels.
'acceptColors = 1' means only the start color is needed by the script.
'acceptColors = 2' means both start and end colors will be accepted by the script.
If 'acceptColors' is not provided, QLC+ will default to value '2'.

With this in mind we add declarations for these three properties to the script:(
function() {var algo = new Object;algo.apiVersion = 2; // Can be '1' or '2'
algo.name = "My cool RGB script";algo.author = "Your name";algo.acceptColors = 2; // Can be '0', '1' or '2'
return algo;})()

Functions
Now we are getting to the actual business of producing data for the RGB Matrix. The current API version uses
two functions to achieve this:rgbMapStepCount(width, height)
rgbMap(width, height, rgb, step)
No assumptions on the calling order or argument immutability should be made, i.e. do not cache the values
from either function and assume that they are valid until the end of the world. The parameters might change at
any point (usually when the user changes the matrix size, color or direction) thus invalidating any cachedvalues.
rgbMapStepCount(width, height)
When QLC+ calls this function, it wants to know the number of different RGB maps returned by the rgbMap()function, when the RGB matrix size is width times height pixels. It must always return the same result whencalled with the same width and height parameters again and the result must not change over time.
Parameters:
width: The width of the gridheight: The height of the grid
Return value: Number of steps produced by rgbMap() with the given width and height parameters
So, now we add this support function to the script:(
function() {var algo = new Object;algo.apiVersion = 1;
algo.name = "My cool RGB script";algo.author = "Your name";algo.rgbMapStepCount = function(width, height) {...
return number_of_steps_when_width_is_oranges_and_height_is_jabberwocky;}

return algo;})()rgbMap(width, height, rgb, step)This function is the actual brains of the script. It produces two-dimensional arrays whose size MUST beheight times width. I.e. the array returned from this function must contain height items and each of these
items must be an array that contains width items that must be 32bit integers, representing an RGB color as
understood by QRgb without alpha channel (0x00RRGGBB). The rgb parameter is an integer-representationof the color selected by user in the RGB Matrix Editor. The step parameter tells the step number requested by
the RGB Matrix function and is guaranteed to be within (0, rgbMapStepCount(w, h) - 1).
Parameters:
width: The width of the gridheight: The height of the gridrgb: The color selected by user
step: Current step number to produce (between 0 and rgbMapStepCount(w, h) - 1)
Return value: An array containing [height] arrays each containing [width] integers
Just like the previous function, we also add this other one to the script. Now we have a full and ready template
for any RGB script for your indulgence.
(
function() {var algo = new Object;algo.apiVersion = 1;
algo.name = "My cool RGB script";algo.author = "Your name";algo.rgbMapStepCount = function(width, height) {...
return number_of_steps_when_width_is_oranges_and_height_is_jabberwocky;}
algo.rgbMap = function(width, height, rgb, step) {...
return a_2d_array_of_arrays;}
return algo;})()

API version 2
RGB Script API version 2 introduces the concept of Properties. With properties, a Script can interact with the
QLC+ engine by exchanging parameters, thus extending the possibilities of a RGB Script.

Examples of such properties can be the animation orientation, the number of objects to be rendered, etc..
Adding properties to your script is fairly easy, but requires a specific syntax explained in this paragraph.
Let's make an example:
algo.orientation = 0;algo.properties = new Array();algo.properties.push("name:orientation|type:list|display:Orientation|values:Horizontal,Vertical

The three lines above specifies the following:
1. The script has an internal property represented by the variable 'orientation'
2. Create the properties array. This is needed just once
3. Push (add) the property description into the properties array. This is what the QLC+ engine will actually
read to exchange data with the script
The third line is indeed the most interesting and the syntax of the string stored in the properties array must be
followed to avoid errors during the script loading.
Attributes must be in the form 'name:value' and each attribute must be separated from the others by a pipe '|'character.
Following a table of the accepted attributes and the meaning of their values.

Attribute
nameAttribute value
The name used by QLC+ to uniquely identify a property. The same name must not be used

nametwice in a script. It is a good practice to use the same name of the 'algo' variable that actuallystores the property.
This is a fundamental attribute to allow QLC+ to correctly handle a property. The 'type'attribute must be placed before the 'values' attribute.
Accepted values are:type

list: defines a list of strings that will be displayed by the QLC+ RGB Matrix Editor
range: defined a range of integer values that this property can handle
float: a float value that QLC+ can exchange with the script
string: a string that QLC+ can exchange with the script
The type attribute implicitly defines also how the QLC+ RGB Matrix editor will display theproperty. For example a 'list' is displayed like a drop down box, a 'range' and an 'integer' aredisplayed as a spin box, a 'string' is displayed as an editable text box.

display

An string that QLC+ will display in the RGB Matrix editor for the user. It is a good practice to
use a meaningful and human readable string to allow users to immediately understand whata property doesThis attribute can be applied only when type is 'list' or 'range'. It defines the possible values
that the property can assume. A 'list' type will look like 'one,two,three' while a 'range' type willvalueslook like '2,10'.
Values must be separated by a comma ',' character. A 'range' type cannot have more than
two values.
Defines the name of the Script function that QLC+ should call to write the property value.
In this function the Script's writer should implement all the necessary actions to apply theproperty change.
The write method of the example above is the following:

writealgo.setOrientation = function(_orientation) {if (_orientation == "Vertical")algo.orientation = 1;
else
algo.orientation = 0;}
Defines the name of the Script function that QLC+ should call to read the property value.
The read method of the example above is the following:algo.getOrientation = function() {read

if (algo.orientation == 1)
return "Vertical";else
return "Horizontal";}

Development Tool
There is a development tool available in the QLC+ source repository that makes it easier to debug and test
your custom scripts with a web browser. To use the tool, you must download the following two files to a
directory on your hard disk, open the devtool.html file with your browser and follow its instructions:devtool.html
devtool.js(Right-click and "Copy Link Location" works probably best)

Example Script: Full Columns/*
Q Light Controller Plus
fullcolumns.js
Copyright (c) Heikki Junnila

Licensed under the Apache License, Version 2.0 (the "License");you may not use this file except in compliance with the License.
You may obtain a copy of the License athttps://www.apache.org/licenses/LICENSE-2.0.txt
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions andlimitations under the License.
*/
(
/\*\*
\* This algorithm produces fully-lit columns, meaning all pixels on a single\* column are lit together.
*/function(){var algo = new Object;algo.apiVersion = 1;
algo.name = "Full Columns";algo.author = "Heikki Junnila";/\*\*\* The actual "algorithm" for this RGB script. Produces a map of\* size($width, $height) each time it is called.
\*\* @param step The step number that is requested (0 to (algo.rgbMapStepCount - 1))\* @param rgb Tells the color requested by user in the UI.
\* @return A two-dimensional array\[height\]\[width\].
*/algo.rgbMap = function(width, height, rgb, step){
var map = new Array(height);
for (var y = 0; y < height; y++){map\[y\] = new Array();for (var x = 0; x < width; x++){
if (x == step)
map\[y\]\[x\] = rgb;
else
map\[y\]\[x\] = 0;}}
return map;}/\*\*\* Tells RGB Matrix how many steps this algorithm produces with size($width, $height)\*\* @param width The width of the map\* @param height The height of the map

\* @return Number of steps required for a map of size($width, $height)*/algo.rgbMapStepCount = function(width, height){// Each column is lit completely at a time, so because there are $width// columns in the map, the number of steps must be $width to light all// columns per round.
return width;}
return algo;})()

The Script Editor, as its name suggests, is used to edit
Script functions.
It basically consists in a text editor where the user can write a script using a meta-language with a syntax
described below.
The script can be manually modified if you have a full understanding of the language syntax, otherwise a few
helper buttons are available on the rightmost side of the editor to speed up and facilitate the script
creation/editing.
Each line of a script will be executed by QLC+ in a sequential order.
Controls

Enable the output and run the Script to test its execution
Scriptname

Change the name of the Script.
When clicked, this button will display a popup where you can choose the script snippet you
want to insert at the current cursor position in the editor.

Start Function: Opens the function Selection dialog to select a Function to be started.
This operation will automatically add a comment at the end of the line of code, with the QLC+
name of the selected Function.
Stop Function: Opens the function Selection dialog to select a Function to be stopped. If at the
moment of execution of this line of code the selected Function is not running, this instruction will
have no effect.
This operation will automatically add a comment at the end of the line of code, with the QLC+
name of the selected Function.
Blackout: Opens dialog requesting whether blackout should be turned on or off.

Set Fixture: Opens the Fixture Channels selection dialog, where you can choose the channels
you want to control with the Script. If multiple channels are selected, this operation will add oneline of code for each selected channel. By default, the DMX value generated by this operation
will be 0 and has to be changed manually with the script text editor.
This operation will automatically add a comment at the end of the line of code, with the QLC+
name of the selected fixtures and channels.
System Command: Opens a file dialog to choose the external program/script to run. Please
note that the selected file must be executable to be accepted. Once a file has been selected
another dialog will ask to enter the program/script arguments. If none are required, just leave
the field empty.
Wait: Opens a dialog requesting the time to be waited before the script can execute the next
instruction
Comment: Opens a dialog requesting the text of the comment to insert at the cursor position in
the editor.
A comment has a C language style appearance: it starts with "//" and everything until the end of
the line is then considered a comment
Random Number: Opens a dialog requesting the range of values where to perform arandomization of a number. The resulting code snippet will be inserted at the editor current
cursor position.
This can be useful to randomize DMX values set through the setfixture keyword. See below.
File Path: Open a file dialog to select a file. The absolute path and the file name will be inserted
at the editor current position.
If a path contains spaces, it will be written within quotes
Cut the currently selected text in the editor for a later paste
Copy the currently selected text in the editor for a later paste
Paste a previously cut or copied text at cursor position in the editor
Undo the last performed operation on the editor
Check the Script syntax. A popup message will be displayed indicating if the Script is OK or theline numbers where syntax errors have been found.
Language syntax
The QLC+ Script meta-language is based on a keyword:value model, with some insertions of C language
syntax rules.
Each line of code is parsed by the QLC+ engine and verified to detect the presence of syntax errors.
Here's a table describing each keyword accepted by the Script engine and its syntax.

startfunction

Type: keyword
Description: starts a QLC+ Function with the given ID
Syntax: startfunction:functionID
functionID is an integer number of the ID assigned by QLC+ to a Function.

Since IDs are not exposed to QLC+ users, in this case it is convenient to use the helper button on therightmost side of the editor, which also add a comment with the Function name.
Eventually a user will learn the ID of a Function and therefore use it to manually add more code to the script.
Example:startfunction:2 // Green scene

stopfunction

Type: keyword
Description: stops a running QLC+ Function with the given ID
Syntax: stopfunction:functionID
functionID is an integer number of the ID assigned by QLC+ to a Function. See startfunction description

Example:stopfunction:0 // Blue scene

blackout

Type: keyword
Description: turns blackout on or off.
Syntax: blackout:on|offfunctionID is an integer number of the ID assigned by QLC+ to a Function. See startfunction description.

Examples:blackout:onblackout:off

systemcommand

Type: keyword
Description: execute a program or a script at the provided absolute path with the (optional) provided
arguments.
Syntax: systemcommand:programPath arg:arg1 arg:arg2 ... arg:argN
programPath is the absolute path of an executable program or script. For example /usr/bin/vlc or
C:\\Tools\\myTool.exe

If the path to an executable contains spaces, it must be written between quotes.
_arg1 ... argN are the arguments to be used when executing programPath. If no arguments are needed,
then the arg: keywords are not necessary.
If an argument contains spaces it must be written between quotes.
Examples:systemcommand:/usr/bin/vlc arg:-f arg:/home/user/video.mp4 // plays my video with VLC in fullsc
systemcommand:"C:\\Program Files\\Tools\\My Tool.exe" arg:"D:\\My Files\\My file.txt"

setfixture

Type: keyword
Description: sets a QLC+ Fixture channel to the provided DMX value.
Syntax: setfixture:fixtureID ch:channelIndex val:DMXValue
fixtureID is an integer number of the ID assigned by QLC+ to a Function.

Since IDs are not exposed to QLC+ users, in this case it is convenient to use the helper button on therightmost side of the editor, which also add a comment with the fixture and channel name.
Eventually a user will learn the ID of a fixture and the index of a channel and therefore use them to manually
add more code to the script.
channelIndex is an integer number representing the fixture channel number. Channels indices here startfrom 0.
DMXValue is the actual DMX value to be set to the specified fixture channel. It ranges from 0 to 255

Example:setfixture:0 ch:1 val:135 // Generic RGB, Red. Sets the red channel of a Generic RGB fixture to

wait

Type: keyword
Description: wait for the provided amount of time before executing the next line of code.
Note that a wait time can be randomized too, following the random syntax described below.
Syntax: wait:time
time can be either an integer number of milliseconds or a string representing the wait time in the QLC+ way:**h**m**s.**
Examples:wait:1800 // Waits for 1 second and 800 milliseconds
wait:03s.20 // Waits for 3 seconds and 200 milliseconds

comments

Type: Helper macro
Description: comments can be inserted at any position in the script code and they do not affect the script
execution. They are normally used to give a meaning to a line of code.
QLC+ Scripts comment follow the C Language style rule of the "//" syntax. Basically everything written after"//" will be considered a comment until the end of the line of code.
So pay a particular attention to not writing meaningful code after a "//" and expect it to be run, cause it won't.
Comments can be added at the end of a Script line of code or they can take a whole line, for example todescribe an entire block of code.
randomType: Helper macro
Description: generates a random integer number between the provided minimum and maximum values
Syntax: random(min,max)
min is the minimum value the randomization can reach. It can be either an integer number or a time string
max is the maximum value the randomization can reach. It can be either an integer number or a time string

Examples:wait:random(02s.00,05s.00) // Waits a random time between 2 and 5 seconds// set channel 3 of fixture with ID:1 to a random DMX value between 20 and 235
setfixture:1 ch:2 val:random(20,235)

The audio editor, as its name suggests, is used to edit
Audio functions.
It offers basic controls and shows information about the attached audio file.

Controls
Start/stop the audio file playback. If the file doesn't exist, this button will have no effect
Audio

Change the name of the Audio function. By default this is set with the file name, until it isnamemanually changed.

File name

Displays the absolute path of the current file attached to this Audio function. The source filecan be changed by clicking on the "..." button on the right side.

Duration

Displays the audio file duration in the typical QLC+ way. For example: 04m14s.22.

Channels

Displays the number of channels detected from the attached audio file. 2 means stereo and1 means mono.

SampleRate

Displays the sample frequency of the attached audio file, in Hertz. For example: 44100Hz,
48000Hz, etc

BitrateDisplays the bitrate of the attached audio file, in Kb/s. Audio files can have a constant
bitrate (CBR) or a variable bitrate (VBR). In the latter case, an average bitrate is displayed.

Loop

Loop audio playback until explicitly stopped.
Show/Hide the Speed Dial widget, used to facilitate the audio fade in/out parameters tuning

Fade In

Text box to enter a fade in time for the audio playback. Times can be entered in a QLC+ way(e.g. 3s.55) or in seconds (e.g. entering '2' and pressing Enter will turn into 02s.00)

Fade Out

Text box to enter a fade out time for the audio playback. Times can be entered like in theFade In box

Audio
DeviceSelect a specific audio output device to be used to play the attached audio file. This list is
the same you can find in the Audio Input/Output panel

The video editor, as its name suggests, is used to editVideo functions.

Controls
Start/stop the video playback. If the file doesn't exist or an invalid URL has been entered,this button will have no effectVideo

Change the name of the Video function. By default this is set with the file name, until it isnamemanually changed.
If the attached file is local, displays the absolute path of the video file. A local source filecan be changed by clicking on the "..." button on the right side.

File name

It is also possible to stream a video from the network. Just click on the
button and enter a valid HTTP URL.

Duration

Displays the video file duration in the typical QLC+ way. For example: 04m14s.22.
Displays the resolution in pixels detected on the attached video file.
Note: since QLC+ relies on the Qt libraries to play video sources, there is a known issue
for which Qt is not able to detect the size (and codecs) of videos in Windows and Mac
OSX.

Resolution

Basically a size of "0x0" will be displayed. The fullscreen video playback will be OK
though.
On detection failure, a default size of 640x480 pixels is internally set to allow thewindowed mode to work.
Hopefully this will be fixed by the Qt team in the future.

Video
codec

Displays the codec used to compress the video stream into the attached video file.

Audio
codec

Displays the codec used to compress the audio stream into the attached video file.

ScreenAllows to select the output screen where the video should be playback. This will normallydisplays just one choice unless multiple video outputs (monitors, projectors) areconnected to the system
Allows to choose how the attached video should be displayed. Possible options areVideo
OutputWindowed: a window with the original size of the video will be displayed on the selected
output screen.
Fullscreen: The video will use the whole screen size, without showing any window
decoration (title bar, etc)

Allows to choose how the attached video should be played. Possible options are
Playback
modeSingle shot: The video will be played just once
Loop: The video playback will be restarted from the beginning when reaching the end.
The loop mode will continue indefinitely until the Video function is stopped.

The Function Wizard's purpose is to help users create some common functions for a quick start.
Controls

FixtureList

List of fixtures that will be included in the functions created with the wizard. You can see each
fixture's capabilities for Color-, Gobo- and Shutter- type scenes in the Supported capabilities
column.
Include Fixtures to the functions that will be created with the wizard.
Remove the selected fixtures from the function to be created.
Colors: Create scenes for changing the color simultaneously on all currently included
fixtures. For this to work, the fixtures must have at least one color channel that controls a fixedcolor wheel.

ScenesGobos: Create scenes for changing the gobo simultaneously on all currently included
fixtures. For this to work, the fixtures must have at least one gobo channel.
Shutter: Create scenes for changing the shutter position simultaneously on all currently
included fixtures. For this to work, the fixtures must have at least one shutter channel.

Whenever a Fixture needs to be selected, for example when adding fixtures to a Scene function, the SelectFixture(s) dialog is used.
The dialog is very straightforward; there is only a list of fixtures that you can select from. In some cases you
are allowed to select multiple fixtures, for example, when adding fixtures to a Scene or an EFX. In thesecases, the order in which the fixtures are selected will also be the order in which they are added to theirdestination.
Refer to your operating system manual for documentation on how to select multiple items in a list.
Whenever a Function needs to be selected, for example when you're adding steps to a Chaser, using the
Chaser Editor, the Select Function dialog is used.
Sometimes the destination that you are selecting the function for might allow the selection of multiple
functions, for example, when adding steps to a Chaser or functions to a Collection. In these cases, the order inwhich the functions are selected will also be the order in which they are added to their destination. On theother hand, when attaching a function to a button in the Virtual Console, you may select only one function at atime.
Refer to your operating system manual for documentation on how to select multiple items in a list.
Controls

There are two radio buttons on the top of the window: All functions and Running
functions.
Functions

By clicking on them, the list below will be filled only with the desired functions.

to display

For example, when performing a Live edit, you might want to display only the running
functions.
Obviously, in design mode, selecting "Running functions" will show an empty list.

Function* Name: The names of available functions

list* Type: The type of each of the available functions
You can filter the function list so that only those function types that have been checked areshown. Filtering is especially useful if you have lots of functions to select from.
Scenes: Display
Scene functions in the selection list
Chasers: Display
Chaser functions in the selection list
EFX: Display

Filter

EFX functions in the selection list
Collections: Display
Collection functions in the selection list
RGB Matrices: Display
RGB matrix functions in the selection list
Show: Display
Show functions in the selection list
Audio: Display
Audio functions in the selection list

05. Show manager
Show Manager
This feature is meant to give users the possibility of setting up a time driven show in a friendly and completelygraphical way.
The graphic interface shows a multitrack view, typical of audio sequencers or video editing software, and withit users are allowed to place QLC+ Functions at the desired place and time in the view.

Show Manager gives a lot of flexibility during a Show creation thanks to its visual-oriented approach. Once
understood the basic elements, it is very easy to create, move or edit the existing functions and improve aShow by adding new tracks to it.
Typical use cases of Shows are those gigs where a band plays songs following a metronome and the lightshow has always to be the same, following the music.
Another case are visual entertainment shows, where dancers or singers follow some music and lights create
the atmosphere at the right time.
The Show Manager drives users to make large use of the Sequence function. Here's the explanation of thedifference between a Chaser and a Sequence.

Sequences vs Chasers
Even if the Sequence and the Chaser functions have some common ground, they're not the same thing.
If not done yet, you are invited to read once again their definitions in the Basic Concepts & Glossary page ofthis documentation.
The main differences are:
Steps: The steps of a Chaser can represent any QLC+ Function, while the steps of a Sequence represents
different values of the same Scene.
In other words, a Chaser is an independent function, while a Sequence can exist only on top of a Scene. The
reason for this is, as mentioned before, the visual approach of the Show Manager. If a track of a Show is thegraphical representation of a Scene, then it's more intuitive to think that each Sequence created on that track
is a function controlling the values of that Scene.
Order: Chasers can be reproduced in any order (Forward, Backward, Ping-Pong, Random) while in the ShowManager, Sequences are always reproduced from the beginning to the end (Forward). Again, this is related to
the visual aspect of the Show Manager, where the playback has a natural time forward direction.
On the other hand, Sequences created with the Function Manager can have the same order properties ofChasers.
Editing: The editing approach between Sequences and Chaser is different too.
Normally the workflow of a Chaser is: create a Function, then add it to the Chaser as a step.
The workflow of a Sequence is: create a Scene, create a Sequence on top of it, add steps to it.
The Sequence approach might be very effective when you design a light show if you know which fixtures
you're going to use. Another major advantage of Sequence editing is that when you create a new step, thevalues of the previous step are copied in the new one. So the user is simply required to adjust the differences
between them.
If you are going to create 500 steps and they're all different, then Sequences and Chasers will take almost thesame time to be created.
Synchronization: another major advantage of using Sequences in a Show is that a Show can easily be
extended (or reduced) while with a Chaser you will have a hard time to synchronize the new functions to theexisting ones.
An example. Let's say your project controls 50 fixtures that are a mixture of moving heads, PARs andscanners. At some point you buy a couple of lasers and you want them to become active in existing scenes at
precise moments in time. The Show Manager allows you to do that in a few minutes! You just need to add the
2 new fixtures to the project, add a track to the Shows affected by the change and create a few Sequences tocontrol the lasers.
The Show Manager resume functionality will also save you a lot of time when testing the new changes.
With Chasers you'd probably have to deal with complex Collections and review the timings of a few steps
before finding the right combination.

Show Manager toolbar controls

CTRL+HCreate a new Show. A Show is represented as a multitrack workspace
where tracks, sequences and audio elements can be added
This drop down box lists the currently created Shows. Clicking on aShows list

Show will display it.
Create a new track or add existing functions to the Show. Whenclicking on this button a window is displayed, allowing you to performthe following operations:
Create a new track: This creates a new empty track that will serve asa container for Sequences and Audio functions.
Import an existing Scene: This will create a new track and a 10
seconds Sequence with one single step representing the selected
Scene.
Import an existing Sequence: this operation scans the existing tracks
and if it finds a track already bound to the Sequence's bound Scene,then add the Sequence to that track at the cursor position.
If no compatible track is found, a new track will be created and bound
CTRL+Nto the Sequence's bound Scene.
Import an existing Chaser: add a Chaser function at the cursor
position on the selected track. If no track is available, it will create a
new one.
Import an existing Audio: add an Audio function at the cursor
position on the selected track. If no track is available, it will create a
new one.
Import an existing EFX: add an EFX function at the cursor position on
the selected track. If no track is available, it will create a new one.
Import an existing RGB Matrix: add a RGB Matrix function at the
cursor position on the selected track. If no track is available, it will
create a new one.
A Show can have a virtually infinite number of tracks.

CTRL+E

Create a new Sequence item and bind it to the selected track.

Create a new Audio item. An audio item simply represents an audio
file. Audio items can be added on any track, but if you want to to create
a separate track for it, just create an new track.
Note: It is possible to display the waveform preview of an audio item
CTRL+A

just by right clicking it and selecting the channels you want to display(mono, left channel, right channel, stereo)
Warning: Even though QLC+ allows you to, it is not possible to play
two audio files simultaneously. Especially on Windows, you mightexperience unwanted crashes.

CTRL+C

Copy the currently selected item into QLC+ clipboard
Paste QLC+ clipboard content at the cursor position. When performing
this operation two checks are performed:

CTRL+V

Overlapping: checks if the item you're going to paste overlaps with anexisting item in the selected track
Validity: If you're pasting a Sequence, QLC+ will verify that theSequence contents are compatible with the currently selected track
Delete the currently selected item. This can be a sequence, an audio
item or a track. Note that deleting a track will delete also all its

Delsequences/audio children.
Note: Show Manager will only perform a "visual removal" offunctions. To permanently delete them, please use the Function
Manager

00:00:00.000

CTRL+R

Assign a custom color to the selected item

CTRL+K

Lock or unlock then selected item. Once an item is locked, it cannot be
dragged on the timeline anymore

CTRL+T

Open a window where you can adjust the selected item start time andtotal duration. The behaviour of the latter will depend on the selecteditem.
On Audio and Video items it does nothing.
On Sequences and Chasers it will stretch all the steps timings to fit to
the desired duration.
On EFX and RGB Matrices some extra options will be displayed,allowing to stretch the original function or loop the function until thedesired duration is reached.

CTRL+G

Enable/disable the "Snap to grid" functionality. The view will be filledwith vertical bars corresponding to the header markers (time or BPM)
Snapping to grid will correct your items by dragging them to thenearest reference bar
This field displays the cursor time position both if the playback is
stopped or activatedSpaceStart the current Show playback from the cursor position, or pause it
and leave the lights on.
Stop the current Show playback. Clicking once will stop the cursor at
the current position for resuming later. Clicking twice will restore thecursor to 0 seconds.

CTRL+Space

Hint: When resuming a show with audio tracks, please keep in mind
that audio accuracy depends on the file formats you are using. For
example MP3 files resume is not particularly accurate, while wave files
resume is.

Timemarkers

This drop down menu lets you to choose the desired time division todisplay for your Show.
This can be either 'Time'. 'BPM 4/4', 'BPM 3/4' or 'BPM 2/2'
When a BPM time division mode is selected, this field lets you decide

BPMs

the appropriate BPM to set for you Show. This ranges from 20 to 240.
This can be quite useful when dealing with electronic music or BPM
synchronized shows

Just 4 steps
The Show Manager has been set up to be used quickly and easily. Basically, with just 4 steps a complete
Show can be created:
1. Add a new ShowFirst of all you need to add a new Show to the view. This creates an empty multitrack view with no tracks andno items, ready to be filled.
A popup will appear asking the name to assign to the Show. It is possible to change the name afterwards with
the Function Manager, using the Show Editor panel.
2. Add a track

When you add a track, a popup will ask you to select an existing function or to create a new one with a default
name.
When done, a new track will be created. All the sequences created on this track will act only on theassociated Scene, not affecting any of the other tracks.
A newly created track will be set automatically as active. An active track has a green light on the left handside.
A Track can be set tomute andsolo states. The mute state will exclude the track from the playback, while the solo state will mute all the othertracks of the Show.
When right clicking on a track, it is possible to move it up

or down
for logical ordering.
Once selected, a track will display its Scene Editor on the bottom of the screen.
3. Add some Functions

When a track has been activated, you can quickly add a
Sequence or an
Audio function to it by pressing the toolbar buttons.
Otherwise, by clicking on the
button, it is possible to import existing QLC+ Functions and add them to the Show timeline.
A new item will be placed at the cursor position, but it is always possible to move it to the desired time just by
dragging it along the timeline.
An item cannot be moved to another track, since it is bound to the track where it has originally been created.
An item can be copied, pastedor deletedwith the toolbar icons. The pasted item will be placed at the current cursor position.
The item background color can be changed with the toolbar icon
. The assigned color will be saved in your project file.
Once selected, an item will display its specific Function Editor on the right hand side of the screen. When rightclicking an item a contextual menu will be displayed, showing the following options:
Preview: This option is available only on audio items. It will display the waveform preview for right, left orstereo channels when available
Align to cursor: This option will move the selected item to the cursor position

Lock/Unlock: Once an item is locked, it cannot be dragged on the timeline anymore
Follow step 4 to understand how to fill a Sequence
4. Edit your Functions

Once an item has been created, it is now the time to edit it.
Please note that the difference between a Chaser and a Sequence is that a Sequence is bound to the Track(so the Scene) where it has been created. So, when adding a step, QLC+ will not ask to select a particularfunction, but will always use the channels of the same Scene.
When editing a Function, you will see the item changing on the multitrack view, giving an immediate feedback
for aligning to other items or particular points in time.
Fade In and Fade Out times will be displayed as diagonal lines over the items on the multitrack view, while
different steps/loops will be divided by vertical lines.
To increase the complexity of the Show, more Functions can be added. Just repeat the above steps
depending on your needs.

And finally...play!

When a complete show has finally been created, it can be played just by clicking on the Play icon.
Playback always starts from the current cursor position. The cursor position can be changed by clicking on thetime line.

06. Simple desk
Simple Desk
The simple desk emulates a typical lighting console that is able to control a full 512-channel DMX universe
with a multiple cue stacks operated with playback sliders.
Simple desk is divided into two main areas: channels (top area) and cues (bottom area).
The channels area reflects exactly the current status of each DMX channel of each universe. If channels arecontrolled with no project loaded, users have a completely manual control of them.
When a project is loaded, instead, moving a Simple desk channel will override any other QLC+ function trying
to control that channel. A visual indication will turn the channel background to red, informing the user that
Simple desk now has the total control of it.
This is very useful in some live circumstances where a running function needs some manual adjustment.
To "disengage" Simple desk from overriding channels, just click on the reset button. Resetting channels will
either bring them back to zero or to the value previously set by a function.
Cues operates separately from other QLC+ components. For example, cues within the cue stack are notvisible in the Function Manager and Scenes are not visible in the cue stack.

Controls - Universe
The universe box contains the sliders that are used to control individual DMX channels in the first DMX
universe. Since 512 sliders cannot fit nicely on the screen at the same time, they have been divided into
pages. By default, each page contains 32 sliders but that can be tuned.

Switch the view mode from all channels to fixture channels. Please note that if no fixtures
has been defined, the second mode will produce an empty result
Skip to the previous DMX page.

Universe

Displays the current DMX page. You can skip to a page by writing the page number directly

page box

into this box or use the mouse wheel to skip between pages quickly.
Skip to the next DMX page.
Reset all DMX sliders back to zero or to the value previously set by a function.

GM

The Grand Master

Controls - Playback
The playback box contains a bunch of playback sliders each of which may contain a cue stack. The
playbacks can be used to "play back" the contents of their cue stacks and they can also be used to adjust
their overall intensity of the cue.

Select the currently-active playback, whose cue stack is shown on the right side of thescreen.
Playback

Adjust the intensity of playback's cue stack. When the slider is drawn all the way to zero, theslidercue stack is stopped. Any value above zero will start replaying the playbacks' cue stack.
Flash the playback's first cue.

Controls - Cue Stack
The cue stack box shows the contents of the currently selected playback.

Skip to the previous cue (or start playback on the last cue in the cue stack with full intensity).
Stop the currently active cue stack.
Skip to the next cue (or start playback on the first cue in the cue stack with full intensity).
Switch to/from cue edit mode. When this button is pressed, you can edit the contents ofindividual cues; the currently active cue's contents are shown on the DMX sliders.
The Fade In speed, Fade Out speed and Duration as well as the name of individual cues canbe adjusted with the speed dials that are displayed in a separate tool window. You can also
select multiple cues to adjust their speeds all at the same time, but then the DMX sliders are
disabled to prevent you from accidentally overwriting all cue contents with the same values.
Record a new cue, taking its contents from the current DMX slider values.

This box displays the contents of the currently selected playback's cue stack, along with theindex number (1, 2, 3...), Fade In speed, Fade Out speed, Duration and an optional name forCueeach cue.

Stack
You can change the cue order by dragging the cues on top of each other, either one at a time or
multiple cues at the same time.

TuningPlease refer to the Manual parameters tuning Simple Desk section

07. Virtual console
Virtual Console
The purpose of the Virtual Console is to act as a blank canvas on which the user can create a lighting desklayout of his choice. Users can place various GUI (Graphical User Interface) elements, called widgets, onto
the console surface:
Buttons for starting and stopping functions
Sliders for adjusting channel values or function intensity
Speed dials for adjusting function speeds
XY Pads for manually moving intelligent light beams
Cue lists for theatrical performance purposes
Frames for grouping various widgets together
Solo Frames for keeping only one button/function active at a time
Labels to act as static information banners for other widgets
The topmost part of the Virtual Console is dedicated to a tool bar that provides quick access to the mostcommon actions: adding new widgets, copying them to/from the clipboard, configuring the widgets and, incase of emergencies, a panic button for stopping all currently running functions.
Each Virtual Console widget's style can be configured (to some extent). Widgets can be moved anywhere andresized to any size on the Virtual Console canvas. See the article on Virtual Console Widget Styling &Placement.
Tool Bar Controls

Add a new Button to the currently selected frame (CTRL+SHIFT+B)
Add a new Button Matrix to the currently selected frame, using the dedicated dialog(CTRL+SHIFT+M)
Add a new Slider to the currently selected frame (CTRL+SHIFT+S)

Add a new Slider Matrix to the currently selected frame (CTRL+SHIFT+I)
Add a new Animation to the currently selected frame (CTRL+SHIFT+R)
Add a new Knob to the currently selected frame. This is a convenient shortcut foradding a slider widget using the knob style (CTRL+SHIFT+K)
Add a new Speed Dial to the currently selected frame (CTRL+SHIFT+D)

Add a new XY Pad to the currently selected frame (CTRL+SHIFT+X)

Add a new Cue List to the currently selected frame (CTRL+SHIFT+C)
Add a new Frame to the currently selected frame (CTRL+SHIFT+F)
Add a new Solo Frame to the currently selected frame (CTRL+SHIFT+O)
Add a new Label to the currently selected frame (CTRL+SHIFT+L)
Add a new Audio triggers widget to the currently selected frame (CTRL+SHIFT+A)
Add a new Clock widget to the currently selected frame (CTRL+SHIFT+T). Thiswidget can be used for 3 purposes: System clock, Stopwatch and Countdown.
In the last two cases and when QLC+ is in operate mode, clicking with the mouse left
button will pause the counter, while clicking with the mouse right button will reset thecounter to the initial value.
When in system clock mode, it is possible to schedule when to start a QLC+ function
during the time of day.
Cut the currently selected widget(s) to the clipboard. Note that the widget(s) will only
disappear when pasted into the new location (CTRL+X)
Copy the currently selected widget(s) to the clipboard (CTRL+C)
Paste the widget(s) in clipboard to the currently selected frame (CTRL+V)
Destroy the currently selected widget(s) completely. If a frame has been selected, thisdestroys everything inside it, including other frames (Delete)
Configure the currently selected widget using its own configuration dialog (CTRL+E)
Rename the currently selected widget(s).
Bring the selected widget to front (SHIFT+UP)
Send the selected widget to back (SHIFT+DOWN)

Change the background color of the selected widget (SHIFT+B)
Set a background picture for the selected widget (SHIFT+I)
Change the font color of the selected widget.
Set the font properties of the selected widget (SHIFT+O)
Configure the Virtual Console properties such as the size workspace, the widgets'
default properties and the Grand Master slider properties.
Stop all currently running functions.
A Button is one of the simplest and most powerful widgets in QLC+; with it, you can start, stop and flash yourFunctions.
Configuration
Buttons can be configured with the properties
button found in the toolbar or by double clicking the button itself.

Set the friendly name of the button. The name appears on the button in Virtual Console.
Button label

NOTE: If you set an icon to a button with the Edit -> Icon -> Choose menu, the icon will
override this label.
Shows you the name of the Function that is currently assigned to the button.

Function

Attach a Function to the button
Detach the current Function from the button
You can attach an external input channel from an input device (like a slider board) tobuttons so that you don't always have to use the mouse, touch screen or keyboard toaccess the buttons.

External
input

Input universe: The input universe that you wish to provide input data to the button.
Input channel: The individual input channel within the selected input universe that you
wish to use for controlling the button.
Auto Detect: When toggled, you can just press a button on your external input hardware
and it will be automatically assigned to the button. The latest combination is shown in
the text boxes when QLC+ receives input data. If you don't see anything in the boxes,
your input connection might have a problem that you need to fix first.
Choose...: Shows the Select Input Channel dialog that you can use to select an input
channel manually.

You can attach a keyboard key (or key combination) to the button, which then acts as if
you clicked the button directly with your mouse.
Key
combination

Attach a keyboard key (or key combination) to the button
Detach the current key combination from the button
Toggle Function on/off: When you click the button, the attached Function is started.
When you click the button a second time, the Function is stopped, unless it has alreadystopped by itself.

On buttonpress...

Flash Function: You can "flash" the attached Scene when you keep the button pressed.
If another type of Function is attached to the button, nothing happens when you click it.
Toggle Blackout: When you click the button, QLC+ will toggle the blackout mode
Stop All Functions: When you click the button, all the Functions that are running in
QLC+ will be stopped immediately. It is possible to specify a fade out time to wait for all
the intensity channels to reach a zero level

AdjustFunction
intensity

If checked, this feature will adjust the intensity of the assigned Function just before
playing it when the button is pressed.

Button States
A button can be in one of 3 states; these are Off, On and Monitoring. The state can be changed by clicking
with your mouse, by the set external input or by using the set key combination.
State

Button AppearanceState Description

Off

No Border

The function associated with the button is not running.

On

Green Border

The button has been activated and is running the function.

Monitoring*

Orange Border

The function is running (but activated by another widget)*Note: a button in monitoring mode does not currently send any feedback to an associated controller/feedback
universe.
Pressing a Button while it is in the "monitoring" state will take control of the running Function and the Button
border will turn to green. Another press and the attached Function will be stopped.
A Button Matrix is basically just a way for quickly creating multiple Buttons at the same time inside a common
container Frame.
When creating a new button matrix, you can assign functions to each of the buttons quite quickly with the
dedicated dialog.
Add a Matrix of Buttons

When you want to create many buttons at the same time on the Virtual Console, you may do this by using the
Add Button Matrix dialog.

Functionlist

Shows you a list of functions that will be assigned to the buttons, one function per button.
Add Functions to the list.
Remove the selected functions from the list.
Horizontal button count: Number of buttons to create horizontally
Vertical button count: Number of buttons to create vertically
Button size: The size of each button

Dimensions

Allocation: Shows you the number of functions currently in the list and the number of
buttons that will be created with the current parameters. If you have less buttons thanfunctions, the remaining functions will NOT be allocated to any buttons. On the other
hand, if you have more buttons than functions, some buttons are not assigned a function,leaving them empty.

Frame

Normal: Place the buttons inside a Normal Frame
Solo: Place the buttons inside a Solo Frame

Configuration
Refer to Frame and Button on how to configure them.
Sliders are used for two distinct purposes: Fixture channel level setting and Function playback and intensity
adjustment. Any slider can operate on either of these modes and each mode has its own configuration
options.
Configuration
Sliders can be configured with the properties
button found in the toolbar or by double clicking the slider itself.
Configuration - General Tab
The General tab holds all of the slider's properties that are shared between the slider's two modes.

Slider name

Change the slider's name.
A slider can be displayed as a vertical fader

Widgetappearanceor as a knob
. The appearance can be changed on the fly.

Valuedisplaystyle
Slidermovement

Actual: Display actual DMX (0-255) values
Percentage: Display percentage values (0-100%)
Normal: Values increase towards the top and decrease towards the bottom of the slider.
Inverted: Flip the slider upside down so that values increase towards the bottom anddecrease towards the top.
When enabled, this feature will help to control the slider with external controllers that doCatch upwith theexternal
controller
input value

not support feedback or do not have motorized faders.
For example, when controlling a few sliders in different pages of a Frame with a single
fader of an external controller, it's very easy to have "out of sync" positions whenswitching page.
When this option is enabled, an external controller fader should enter a certain threshold
before the slider cursor starts to move, to guarantee a sync state and avoid undesired
slider jumps.
You can attach an external input channel from an input device (like a slider board) tosliders so that you don't always have to use the mouse or touch screen to move sliders.
Input universe: The input universe from which you wish to get input data for the slider.
Input channel: The individual input channel within the selected input universe that you

External
input

wish to use for controlling the slider.
Auto Detect: When toggled, you can just move/press a button/slider/knob on yourexternal input hardware and it will be automatically assigned to the slider. The latest
combination is shown on the text boxes when QLC+ receives input data. If you don't see
anything in the boxes, your input connection might have a problem that you need to fix
first.
Choose...: Shows the Select Input Channel dialog that you can use to select an input
channel manually.

Configuration - Level Tab
If the slider is not currently in Level mode, all you see is a button telling you to click it to switch the slider toLevel mode. After you click it, the Level mode properties will be shown.

Value
Range

Low limit: Set the lowest DMX value that can be set by the slider.
High limit: Set the highest DMX value that can be set by the slider.t
From capability: You can limit the slider's level value range to a certain capability range
within a fixture's channel. When you have any channel value range selected from the
fixture list (for example "Dimmer Control 006 - 128") and you click this button, the low andhigh limit of this slider are taken automatically from that capability and are set to 6 and128, respectively.

Fixture list

You can select individual channels from this list that contains all channels from all of yourfixtures. Those channels that you have placed the tick mark beside will be controlled bythis slider.

All

Clicking this button will select ALL channels from ALL fixtures.

None

Clicking this button will clear ALL channel selections from ALL fixtures.
Invert the current selection. If you have channels 1, 3 and 5 selected from all fixtures,

Invertclicking this button will clear channels 1, 3 and 5 and instead select channels 2, 4 and 6
from those fixtures.
If you wish to control a specific channel group from ALL fixtures, you can click this buttonand select the channel group to control. Accepting the dialog will select ALL channels

By group...

that belong to the selected channel group from ALL fixtures. This is particularly useful if
you wish to have common control over, for example, all of your scanners' intensity
channels.
Click & Go is a QLC+ technology which allows you to quickly access fixtures
functionalities in a completely visual way. When Click & Go is enabled, a button willappear at the bottom of the slider and with just 2 clicks you will reach the desired result.
The supported modes are:None: Click & Go disabled. No button will be displayed.
Color: Single color selection. A gradient of the color controlled by the slider will be
displayed, allowing you to jump to the desired color visually.

Click & Go

RGB: RGB color selection. A RGB Color picker will be displayed, allowing you to pick
any color from black to white. 16 preset colors are displayed on the left side forconvenience. When selecting a color, the slider value will be placed half way (128).
Moving it downward will fade towards black, while moving it upward will fade towards
white.
Gobo/Effect: Gobo/Macro selection. A grid view of the fixture defined macros will be
displayed and you will be able to choose a macro from its color, its gobo or its name.
When the mouse is over a macro cell, a blue bar will appear, allowing you to choose anintermediate value within the same macro. This is useful for functionalities like Gobo
rotation speed.

Monitor theselectedchannels
and update
the slider
level(EXPERIMENTAL) By enabled this option, the slider will watch the DMX channels
changes and if they assume all the same level, the slider will update accordingly for an
immediate visual feedback.
When activating this option, a reset button and an additional level bar will be displayed in
the slider layout.
If you interact with the slider while it is monitoring some DMX channels, it will switch into
an override state, similar to what happens in Simple Desk. The reset button backgroundwill turn to red, indicating that the override is in place, and the right side level bar willcontinue to indicate the monitoring level.
When pressing the reset button from an override state, the slider will go back to thecurrent monitoring level.
It is possible to associate and external control to the override reset button.

Configuration - Playback Tab

If the slider is not currently in Playback mode, all you see is a button telling you to click it to switch to Playback
mode. After you click it, the Playback mode properties will be shown.
When the slider is in playback mode, the slider acts like a combined button and slider. You can start a function
AND simultaneously control the function's intensity with the slider. When the slider is at zero, the function is
stopped but any value above zero will start the function (unless it has already been started) andsimultaneously adjust the function's intensity (if applicable).
A slider in Playback mode will ignore the attached Function fade in and fade out times, so fade transitions will
have to be performed manually.
If you need fade in/out automations together with the control of the Function intensity, then the usage of a
Virtual Console Button in combination with a Slider in Submaster mode is what you're looking for.

Function

Displays the function that is currently attached to the slider.
Attach a function to the slider.
Detach the currently attached function.

Configuration - Submaster Tab
If the slider is not currently in Submaster mode, all you see is a button telling you to click it to switch toSubmaster mode. After you click it, the slider will be set to work as a submaster.
When a slider is set to Submaster mode, it will control the intensity of every other widget in the same frame(please keep in mind that the main Virtual Console area is a frame too !)The intensity of a widget depends on the type of widget itself and which functionality it controls. A submasterwill control the intensity of any QLC+ "light emitting" functionality, either a function or single channel levels.
For example a submaster can control the intensity of a function attached to a button or the channel levels
associated to a slider in level mode.
Every widget is controlled by a submaster even if the widget's functionality is not active yet. For example if asubmaster is set to 50%, a button pressed afterward will start its associated function with 50% of intensity.
A Slider Matrix is basically just a way for quickly creating multiple Sliders at the same time inside a common
container Frame.
Configuration
Refer to Frame and Slider for how to configure them.
An Animation widget is a complete tool to operate with the RGB Matrices of your project.
It displays several graphical elements to fully control a matrix during live shows.
Most importantly, it allows you to define a number of so called "custom controls" to quickly recall presets,colors and properties and apply them immediately to a running matrix.

Introduction

When clicking on theicon, an Animation widget will be added to your Virtual Console.
By default, the widget will display 4 elements:
On the leftmost side, a slider to control the playback and the intensity of a RGB Matrix.
The slider movement can be associated to an external controller input line.
It behaves exactly like a Virtual Console Slider in playback mode.
On the top right side, two Click & Go buttons to set the matrix start and end color. When clicking on themduring the Operate Mode, a color picker menu will be displayed.
Below the two buttons, a drop down menu to select the desired Matrix animation or preset.
The space below the animation menu, is reserved for Custom Controls. They can be defined in the widget
configuration window and each of them will be displayed as a single button.
Each custom control can be associated to a key combination or an external controller input line.

Configuration
An Animation widget can be configured with the properties
button found in the Virtual Console toolbar or by double clicking the widget itself.
General Page

Widget
nameSet the friendly name of the widget, displayed above the two Click & Go buttons
Shows you the name of the RGB Matrix Function that is currently assigned to the widget.

MatrixFunction

Attach a RGB Matrix Function to the widget
Detach the current function from the widget

Apply color
and presetchanges
immediately

Select whether the changes to the Matrix must be applied immediately or at the next
Matrix loop

You can attach an external input channel from an input device (like a slider board) to thewidget slider so that you don't always have to use the mouse or touch screen to control
the Matrix playback or intensity.
Input universe: The input universe from which you wish to get input data for the slider.
Input channel: The individual input channel within the selected input universe that you
External

wish to use for controlling the slider.

input

Auto Detect: When toggled, you can just move/press a button/slider/knob on yourexternal input hardware and it will be automatically assigned to the slider. The latest
combination is shown on the text boxes when QLC+ receives input data. If you don't see
anything in the boxes, your input connection might have a problem that you need to fix
first.
Choose...: Shows the Select Input Channel dialog that you can use to select an input
channel manually.

Custom Controls Page
A custom control is a "shortcut" to a functionality of a RGB Matrix.
Basically you can control all the options that are normally used in the RGB Matrix Editor during the designphase of a show. The only option you can't control is the Fixture group used by a RGB Matrix Function.
In this configuration page the user can define any number of custom controls depending on the needs during
a live performance.
Each custom control is represented as a button in the Animation widget layout and can be either clicked withthe mouse or pressed on a touchscreen, or associated to a key combination or an external controller input
line.

Add a Matrix start color control. When clicking this button, a color selection tool will be
Add startcolor

Add endcolor

Add end
color
reset

Add
presetdisplayed.
The button displayed in the widget's layout will have a background color representing theone selected and the letter S.
Add a Matrix end color control. When clicking this button, a color selection tool will be
displayed.
The button displayed in the widget's layout will have a background color representing theone selected and the letter E.
Add a Matrix end color reset control.
The button displayed in the widget's layout will have a gray background color and whenpressed, it will reset the current matrix end color (if previously set)
Add a Matrix preset control. When clicking this button, a dialog will be displayed for thepreset selection.
The button displayed in the widget's layout will have a gray background color and a label
corresponding to the preset's name.

Add a Matrix text animation control. When clicking this button, a dialog will be displayed
requiring to enter the desired text to be animated on the Matrix.
Add text

The button displayed in the widget's layout will have a gray background color and a label
corresponding to the chosen text.

RemoveRemove the currently selected control from the controls list.

Speed dials are meant for adjusting the speed of a set of functions from virtual console, much like bus-mode
sliders in the previous versions of QLC+. While the bus concept relied on assigning functions and a slider tothe same bus, the speed dial's method is a simpler and more straightforward one: The user directly selects a
set of functions whose speed properties are controlled with the dial, thus removing the need for buses in the
middle.
The widget is displayed as following:

Widget elements(1) Time
controlbuttons

The plus and minus buttons increment or decrement by one the currently focused time fieldof (4). By default the focused field is milliseconds(2) Dial

The dial can be manually rotated indefinitely to adjust the current focused time field of (4).
By default the focused field is milliseconds(3) Tap
ButtonThe tap button sets the Speed Dial time value to the interval between the buttonpress/release actions. The faster it will be pressed, the lower the time value will be(4) Time
fieldsThe 4 time fields display the current time value of the Speed Dial and they can be adjusted
individually either by entering a number with a keyboard, or by using the time controls
buttons (1), the dial (2), the tap button (3) or presets (11).

(5)
DividerbuttonDivide the current time factor by 2 and apply it to the current Speed Dial time.
A factor lower than 1x will become a fraction like 1/2x, 1/4x, etc

(6) Time

Displays the current factor multiplied by the time currently displayed in (4).

factor

A factor lower than 1x is a divider. Example: time = 8s.28, factor = 1/4x, result = 02s.07(7)
MultiplierMultiply the current time factor by 2 and apply it to the current Speed Dial time.

button(8) Reset

Reset the current time factor to 1x and apply it to the current Speed Dial time.

button(9)
Factored

Displays the result of the Speed Dial time multiplied by the current time factor (6)

time
(10)

Applies the current Speed Dial time to the Functions associated. This is useful whenApplymultiple Speed Dials are present in a Virtual Console

button(11)
PresetThis area displays the time presets, if present, added by the user

buttons
Operation
The speed dial itself looks and works just as the same as the speed dials in various function editors: There isa big dial (2) in the middle that increases the time when rotated clockwise and decreases it when rotatedcounter-clockwise. The plus
and minus
buttons (1) are an alternative way of adjusting the speed.
The current time value (4) is displayed in four parts. When any of these fields is clicked, the dial and theplus/minus buttons will increase/decrease that unit of time. The mouse wheel can also be used instead of thedial/buttons and the fields also accept values entered on the numeric keypad.
h: Hours
m: Minutes
s: Seconds.xx: Centiseconds (100ths of a second)
The tap button (3) can be used to match the time to a beat. The elapsed time between clicks is measured andthis time is set for the controlled functions, just as if the dial had been adjusted to that particular time.
For a cuelist, chaser or RGB Matrix, the tap button advances the function to next step/position when speed
dial is set to adjust duration. The tapped tempo must be more than 1/4 of the original duration.
Configuration - Functions tab

Speed dials can be configured with the properties
button found in the toolbar or by double clicking the speed dial itself.
Speed Dial NameChange the dial's name.Function table
Displays the list of functions, whose speed value(s) are being controlled by the dial.
For each speed value (fade in, fade out, duration), it is possible to set a multiplier.

Fade In factor

Select a multiplier to adjust the functions' fade in speed

Fade Out factor

Select a multiplier to adjust the functions' fade out speed

Duration factor (+tap)

Select a multiplier to adjust the functions' duration

This multiplier will be applied to the speed dial value before adjusting the functions' speed value.
Select (Not Sent) so the functions' speed value will not be affected by this speed dial.

Add function(s) to be controlled by the speed dial.
Remove the selected functions from the speed dial's list of controlled functions.
Configuration - Input tab
Input from an external controller can be configured here
Absolute Value: Select an absolute time range (and precision) that an external signal will control
Tap: Connect a signal or a key combination to the Speed Dial Tap button (3)Apply: Connect a signal or a key combination to the Speed Dial apply button (10)one for value with minimum and maximum and another for tap button.
Configuration - Appearance tab
Individual visibility of the widget's layout elements can be switched on or off here. This way it is possible tosave some screen real estate if some of the fields are not needed (e.g. when controlled by an external
controller, the big dial is not needed).

Show the plus and minus buttons
Show the central dial
Show the tap button
Show the hours fieldShow the minutes fieldShow the seconds fieldShow the milliseconds fieldShow multiplier and divider buttons
Show the apply button
Configuration - Multiplier tab
Here it is possible to select if the multiply factor should be reset when the dial (2) is manually adjusted andindividual external controls for the multiplier button (5), the divider button (7) and the reset factor button (8)Configuration - Presets tab
A preset is a way to have a quick access to a predefined value for a speed dial.
Each preset is represented as a button in the speed dial widget layout, and can be either clicked with themouse or pressed on a touchscreen, or associated to a key combination or an external controller input line.
On the left of the preset tab, there is the list of presets. When selecting a preset in this list, the button on theright will be able to edit its properties.

Add preset

Remove preset

Preset nameSpeed dial

Add a preset

Remove selected preset

Edit the selected preset's name. By the default the name is the dial time.

Edit the selected preset's time value

XY Pad is a Virtual Console widget dedicated to fixtures positioning.
It can handle the typical DMX movement channels (pan and tilt) of intelligent lighting fixtures, namelyscanners and moving heads.
The pad is a resizable area, surrounded by several controls to cover the needs you might have during a liveshow.
It is displayed as following:Widget elements(1) Rangesliders(2) XY Pad
name

These sliders limit the working area. (7)The name can be changed in properties, see below.

(3) DMX

This part displays current DMX coordinates in format (Pan course.Pan fine : Tilt

Coordinatescourse.Tilt fine).
If the fixtures controlled have proper pan and tilt range filled in in their definitions, andthe range is same for all fixtures, then this text will show the angle calculated from DMX(4) Horizontal

coordinates.

and verticalangle

0° is in the middle of the range (DMX value 127.127). For example, if pan range for a
fixture is 540°, the displayed angle will be between -270° and 270°.
Note: this may not work properly, when a fixture has limited axis range in configuration,or reversed axis.

(5) Valuesliders

These sliders can be used to change value of the X/Y axes.

(6) Handle

The blue point is the handle. You can move it either with the mouse, with the keyboard
or an external controller.

(7) Working
areaThis is the area that limits the possible positions. It can be equal or a portion of (8)(8) Main area

This is the area representing all the possible X/Y positions.

(9) Presets

This is the area showing the preset buttons, if available.

Limiting the working area

The XY Pad is basically a map of the whole range of degrees that the pan and tilt channels of your fixtures
can manage.
Here's a picture representing how the main area normally represents degrees:

There are cases though where you want to limit the degrees a moving head or a scanner could reach.
For example fixtures with a 540° Pan range, should be limited to work only in a range facing the audience, or
you might want to avoid that moving heads mounted upside down on a truss will point to the ceiling or outside
the stage.
With the XY Pad, there are 2 ways to achieve this:
1. Working window
With the top and left range sliders (1), it is possible to limit the area where the XY Pad will work.
When reducing the range of those sliders, a semi transparent green area (7) will be highlighted on top of themain area, to mark the X/Y limits where your fixtures should operate.
Note that when using a mouse on the user interface, the movement of the handles will be limited to theworking window, even if you drag the cursor outside of it, while when using an external controller all thevalues will be scaled to the window, so you will be able to use the full range of a physical fader, thus having
more sensitivity when setting a position.
2. Individual fixture range
It is possible to set a specific range for each fixture in the properties dialog (see the Configuration
paragraph). With this method, the whole main area (8) is used and every specified range of each fixture isscaled onto it.
This come very handy when you want to use a XY Pad with mixed fixtures, with different ranges of degrees.
For example you can make a 540° degrees Pan to move exactly like a 360° degrees Pan.
Another example: set fixture X Axis (Pan) minimum to 20% (DMX value 51), maximum to 80% (DMX value204). When the handle is at the left edge (value 0), the actual DMX output is 51. Similarly, handle at the rightedge will output 204 (=80%). For values in between, the DMX output is scaled proportionally.
It is possible to have both limits enabled (using the range sliders and limits per fixtures).
XY Pad usages
The XY Pad allows 3 completely different usages, but all targeted to positioning. It's up to you to decide thebest use of them depending on your needs. You also might want to consider the usage of multiple XY Pads

with different purposes.
1- Absolute positioning: this is the basic usage and it requires only to specify which fixtures you intend
to control (added via Configuration window) and eventually their specific range of operation.
As previously described all you need to do is to setup your fixtures once and start moving them with yourfavourite controller.
It is also possible to define some position presets, so a number of buttons will be displayed in (9) toquickly recall an absolute position.
If a Fixture Group preset is activated, the XY Pad will control the absolute positions only of the Fixtures
defined in the preset. (see Presets tab for more info)
2- EFX: In the Configuration window (Presets tab), it is possible to add some presets to recall existing
EFX functions. When activating a EFX preset, the animated preview of the fixtures movements will be
displayed like this:If no working window is set, the EFX will be be displayed exactly like it is previewed in the EFX Editor.
Otherwise, the EFX will be scaled to fit the defined working window.
If a working window is active, it will be shared between usage #1 and usage #2.
3- Relative to a Scene: In the Configuration window (Presets tab), it is also possible to add some presets
to recall existing
Scene functions
XY Pad will detect which Pan/Tilt channels are present in the Scene and set them.
The Pad handle (6) will automatically position itself to the center of the main area (8). Moving the handle,
will produce relative values from the center of the Pad, that will be added/subtracted to the DMX values of
the running Scene.
Moving up will add a negative offset to Tilt channels and moving down will add a positive offset.
Moving left will add a negative offset to Pan channels and moving right will add a positive offset.
When activating a Scene preset, is a working window is active, it will be hidden, as there's no absolutevalues involved in this usage. When switching back to usage #1 or #2, the working window will be
restored.

Please note that when a Scene preset is activated, the whole Scene will be actually started, with colors
and everything. It is suggested in this case to create Scenes only with Pan/Tilt channels enabled, not to
involve a XY Pad in other matters.
Keyboard control
It is possible to control head position with arrow keys on the keyboard. Each keypress increases/decreases
coarse value by 1. With Shift key pressed, fine channel is changed by 1. With Ctrl, the step is 10 instead of 1.

Arrow keys

Coarsestep=1

Shift + Arrow keys

Fine

step=1

Ctrl + Arrow keys

Coarsestep=10

Shift + Ctrl + Arrow keys

Fine

step=10

Configuration
XY Pads can be configured with the properties
button found in the toolbar or by double clicking on the XY pad itself.
1. General tab
Here you can set the basic XY Pad behaviour as well as the external input controls.
Hint: When assigning a XY pad from Touch OSC, you need to click the "Tilt / Vertical axis" auto detect button,otherwise the X and Y axes will be swapped.

XY PadSet the name of the XY Pad. The name (2) is shown in the upper left hand corner of thenamewidget on Virtual Console.

Y-AxisThe behaviour of the vertical slider (the Y-Axis control) can be set to Normal or Inverted.

slidermovement

In the first case the maximum value will be reached at the bottom of the pad, while in thesecond case it will be reached at the top.

Pan /Horizontal

Allow to select an external input to control the horizontal slider displayed at the bottom of
the widget. When activating a EFX preset, this input will control the X position of the

Axis

working window, so the X position of the EFX.

Tilt /

Allow to select an external input to control the vertical slider displayed at the right side of

VerticalAxis

the widget. When activating a EFX preset, this input will control the Y position of theworking window, so the Y position of the EFX.

Width

Allow to select an external input to control the width of the working window. This has noeffect in usage #1 and #3

HeightAllow to select an external input to control the height of the working window. This has noeffect in usage #1 and #3

2. Fixtures tab

Here you can add/remove the fixtures that the XY Pad will control in usage #1.

Shows the fixtures that are currently controlled by the XY Pad.

Fixtureslist

Fixture: The names of each fixture
X-Axis: Shows the value range (and reversal if applicable) of the horizontal (Pan) axis foreach fixture
Y-Axis: Shows the value range (and reversal if applicable) of the vertical (Tilt) axis for each
fixtureAdd Fixtures to be controlled by the XY Pad, using the Select Fixture dialog.
NOTE: Only those fixtures that have Pan and Tilt channels are shown in the dialog.
Remove the selected fixtures from the XY Pad's control list.
Edit the selected fixture's behaviour as controlled by the XY Pad.

2.1 Fixture movement configuration
You can change the extent of movement and reverse fixtures' movement with the XY Pad Fixture
Configuration dialog.

Horizontal X-Axis

Minimum: Set the minimum pan limit for the fixture
Maximum: Set the maximum pan limit for the fixture
Reverse: Reverse fixture's movement on the horizontal (pan) axis
Minimum: Set the minimum tilt limit for the fixture

Vertical Y-Axis

Maximum: Set the maximum tilt limit for the fixture
Reverse: Reverse fixture's movement on the vertical (tilt) axis

3. Presets tab
Here you can add/remove presets to the XY Pad. Each preset is displayed as a button in the lower part of the
XY Pad widget. EFX and Scene presets can be toggled, to start/stop a function, Fixture Groups presets canbe toggled to activate/deactivate a fixture group, while Position presets can be clicked just once

Presets list

Show the list of the presets currently added to the XY Pad

When clicking on this button, a new position preset is created and added to the XY
Pad. By default the preset name are the X/Y coordinates at the moment of the creation
Add position

When clicking on this button, the Select Function dialog is displayed, allowing you tochoose an existing EFX from your workspace.
When done, a new EFX preset is created and added to the XY Pad. By default the

Add EFX

preset name is the EFX name
When clicking on this button, the Select Function dialog is displayed, allowing you tochoose an existing Scene from your workspace.
When done, a new Scene preset is created and added to the XY Pad. By default thepreset name is the Scene name.
Note that if the selected Scene doesn't have any Pan or Tilt channels, an error is

Add Scene

displayed and no preset is created.
When clicking on this button, the Select Fixture dialog is displayed, allowing you tocreate a group of Fixtures as a subgroup of the Fixtures the XY Pad is controlling(defined in the Fixtures tab)

Add Fixture

When clicking on a Fixture Group preset in Operate mode, the XY Pad will control
only the Fixture positions of the activated Fixture Group.

Group

Note: A Fixture Group preset has no effect on EFX and Scene presets.
Removes the currently selected preset

RemovePreset nameAllows to enter an arbitrary name for the currently selected preset

External input

Allows to select an external input control for the currently selected presetKey
combination

Allows to select a keyboard combination for the currently selected preset

A Cue List provides a list of Functions that you can step through with a single keyboard key. The Cue List isdesigned for theatrical performances where the lighting operator needs only to follow the script and toggle thenext cue as the performance goes on.
The first column on the Cue List displays the cue number that runs from 1 to infinity and beyond*. The second
column shows the individual Function name that has been assigned to that particular cue.
Please note that only Chasers can be assigned to a Cue List, for the simple reason that the Chaser is the
only function with a duration. Since any other Function can be added as a step to a Chaser with the Chaser
Editor, it is simple to create the desired Cues by mixing Scenes, Collections, and so on...
Configuration
Cue Lists can be configured with the object properties button
found in the toolbar or by double clicking on the Cue List widget.

Cue list
nameSet the friendly name of the Cue List. The name appears as the Cue List's second column
title.

Chaser: Select the Chaser to associate with the Cue List.
Associate a Chaser with the Cue List using the Select Function dialog.
Detach the selected Chaser from the Cue List.
Playback buttons layout: Select how the playback can be controlled with the two available
buttons.
Behavior of the Next/Previous buttons when the chaser is not active: Select the
Cue listbehaviour of the Next and Previous buttons when the Chaser is not running. Basically thisoption determines the action that should be taken when the Chaser is started for the firsttime or when the Chaser is stopped at any cue in the list.
The possible choices are:Run chaser from first/last cue (default): This is the default behaviour and it will run the
Chaser with its original running order (Normal or Reverse)
Run chaser from next/previous cue: Start the Chaser from the cue where it has beeninterrupted
Select next/previous cue: This performs only a selection of a cue, without running the
ChaserDo nothing: No action is taken in this case. This is useful when working only with thePlay/Stop button
You can select the key that you want to use to start/stop the selected cue in the Cue List with

Playback

Next cuethis option. The key combination is shown in the text field; if the field is empty, there is no
key combination currently attached to the Cue List.
You can select the key that you want to use to skip to the next cue in the Cue List with thisoption. The key combination is shown on the text field; if the field is empty, there is no key
combination currently attached to the Cue List.

Previouscue

You can select the key that you want to use to skip to the previous cue in the Cue List withthis option. The key combination is shown on the text field; if the field is empty, there is no
key combination currently attached to the Cue List.
Behaviour: Select the behaviour of the side fader.

Side
Fader

If Crossfade is selected, a fader will be displayed on the left side of the panel,
implementing the crossfade functionality between cues.
If Steps is selected, a fader will be displayed on the left side of the panel, and its value will
determine which cue of the Cue List to run.

Operate mode
When switching QLC+ to Operate Mode, the Cue List will become active, allowing the selection of the desired
cues included in the associated Chaser.

Pressing the ENTER key will start the selected cue.
The following items are displayed at the bottom of the Cue List widget:

A progress bar showing the current running cue status.
Cue
progress

When a fade in speed is set and is not set to "default" the bar will be colored in green.
During the hold time the bar will be colored in blue. The text displayed on the bar is the timebar

remaining for the cue to end.
If the cue duration is set to infinite (∞), the bar will just display the fade in progress in green.
When clicked, this button will open/close a side panel showing a fader to control crossfade
or step selection.
(See next chapter for Crossfade details)
There are 3 playback states that a Cue list can assume: running, paused and stopped.
The layout of the playback control buttons can be decided in the configuration dialog, andthe playback rules applied are always as follows:

When clicked from a stopped state, the playback starts from the currently selected cue. If nocue is selected, the playback starts from the first cue according to the associated Chaser
running order.
Once clicked, the button icon changes depending on the chosen buttons layout, which could
be "pause" or "stop".
When clicked from a paused state, the playback will be resumed from where it was left.

When clicked, the playback of the currently running cues is paused, freezing everything thatwas running to the current state (lights will stay on, motors will stop moving, etc).
The button background will turn into a light blue, to indicate that clicking it again will resume
the cue playback from where it was left.
Note: It is possible to pause fade in and hold phases, but not a fade out.

When clicked, the currently running cue will be stopped, and the cue selection will stay on
the last played cue. Any paused state will be reset and lights will be shut down.
If the buttons layout is "Play/Pause + Stop", pressing this button for the second time, willbring back the selected cue to the first cue of the Chaser (or the last if the running order isreversed)
Go back to the previous cue in the Cue List, which will then be reproduced. When the top isreached, the previous cue will be the last cue of the Cue List
Go to the next cue in the Cue List, which will then be reproduced. When reaching thebottom, the next cue will be the first of the Cue List

Crossfade
The side fader can be used to manually control crossfade between two consecutive cues.
The numbers at the top and bottom of the fader show the "current cue" and "next cue".
The label for the current cue has a blue label. This will be at 100% when the playback of the Cue List is
started.
The label for the next cue has an orange label and will be at 0% when the playback of the Cue List is started.
When the Cue list is running, the crossfade fader controls the intensity of the associated cues, overriding their
Fade In and Fade Out speeds and so allowing manual control of the transition.
After the fader has been moved to the opposite end of its travel, the following changes take place:
The orange next cue label changes to blue. This indicates that the old next cue has become the new
current cue.
The blue current cue label changes to orange and the number of the cue is increased by 2. So this fader
now controls the cue which comes after the old next cue.
Hint
When a cue is added to a Chaser using the Chaser Editor, the default duration is set to 0.
To avoid the cues in the Cue List looping frantically without any result, set the duration of your cues, either by
double clicking on the duration field or by using the Speed Dial widget

Note that if you need scenes that you're going to crossfade manually with the Cue List widget, you probably
will want to set the duration of the cues to "infinite" (∞) using the Speed Dial widget. This can be enabled in
the Chaser Editor by clicking on the
button.
A Frame is a container that can hold a variety of widgets, including other frames, inside. In fact, the whole
Virtual Console is already your bottom-most frame. Also, if you apply some styling attributes to a frame, all of
its children (which have not had their own non-default style settings applied) also inherit their parent's styleproperties.

Configuration

Frames can be configured with the properties
button found in the toolbar or by double clicking the frame itself.
Other than the standard styling & placement options, Frames have the following additional options, divided
into 2 tabs:
Appearance tabFrame name: Allow you to assign an arbitrary label to the Frame. This will be displayed only when the"Show header" option is enabled (see below).
Accept child widgets: Allow you to add widgets to the Frame.
Allow resizing: Allow the Frame height and width to be changed.
Show header: Display the frame header. By default it will display 3 elements: An expand/collapse
button, the frame name and a enable/disable button. Some further optional controls are displayed when
the Frame is in multipage mode. See next paragraph.
Pages tabVirtual Console Frames can be turned into multi-page widgets, useful when dealing with a lot of widgets orcontrollers supporting pages.
The multi-page functionality is disabled by default, but can be enabled in this tab.
Following the options to configure this functionality:
Enable: This check box enables/disables the multi-page functionality. When enabled, VC frames will
display additional controls in the header bar (if the header bar is also enabled). These are: Previous page
button, page name and next page button.
Number of pages: With this counter it is possible to determine the number of pages the frame is going tohandle.
Clone first page widgets: When checked, QLC+ will clone the widgets of the frame's first page into all
the other new pages defined by the "Number of pages" field. This is a very useful option to speed up the
mapping of an external controller where all the pages have the same widgets.
External input - Previous page: You can set an external input signal or a keyboard combination here
which will cause the previous page of the frame to be displayed.
External input - Next page: You can set an external input signal or a keyboard combination here which
will cause the previous page of the frame to be displayed.
Page shortcuts: in the bottom section of the pages tab, it is possible to assign to each page a custom
name, an external input signal or a keyboard combination.
In this way a page can be accessed directly without going through the intermediate pages.

Header Controls

By default a Frame is displayed with a header. Following a brief description of the default and optional
controls that can be used either in Operate or Design mode.

Expand/Collapse button: when clicked, the Frame size will be dramatically reduced, to save space on
your Virtual Console. The collapsed state is saved in your project.
Frame name: a label displaying the Frame nameEnable/Disable button: when clicked, the Frame will go into a disable state. All the widgets inside theFrame will not respond anymore to input controls.
This is useful, for example, to use the same input controls on widgets of different frames. For example ifyou bound the key "G" to a button in Frame A and also to a button on Frame B, you can enable one
Frame at a time to use your key binding universally.

Page
Multipage controls (Optional): when a Frame is configured in multipage mode, some extra buttons will
be displayed on the header, allowing you to switch between the Frame pages and to keep track of thecurrent page you're in.
A Solo Frame is almost exactly the same kind of a container as a normal Frame in that can hold various
widgets and other frames inside. However, the difference with Solo Frame is that it treats any Buttons inside it
differently by allowing only one button to be enabled at a time. For example, consider you have Button A and
Button B inside a Solo Frame with Button A currently enabled. Next, you click button Button B which
automatically results in Button A being released, leaving now only Button B enabled.
Configuration
Solo Frames can be configured with the properties
button found in the toolbar or by double clicking the solo frame itself.
Other than the standard styling & placement options, Solo Frames have every frame additional options:
Frame name: Allow you to assign an arbitrary label to the Solo Frame. This will be displayed only whenthe "Show header" option is enabled (see below).
Accept child widgets: Allows you to add widgets to the Solo Frame.
Allow resizing: Allow the Solo Frame height and width to be changed.
Show header: Display a useful header composed of a button and a label. The button allows you to
expand/collapse the Solo Frame, which can save a lot of Virtual Console space. The label will display
the name of the Frame.
And one other specific option:
Mix sliders in playback mode: When this option is enabled, the sliders in playback mode are allowed
to be enabled at the same time. When moving a slider up, instead of instantly cancelling the otherrunning sliders, it will fade them out at the same speed you are fading it up.
A Label is simply text field that can be placed on the Virtual Console to give additional information, forexample, as a heading for a group of buttons or the title of a frame.
Configuration
You can only set up the text to be displayed in a Label with the Rename
button. It does not have any other purpose nor configurable options, other than the standard styling &placement options that all Virtual Console widgets have.

Starting from QLC+ version 4.4.0, this functionality allows you to use an audio input source such as a
microphone, to add more life to your light shows.

Introduction
When clicking on theicon, an audio trigger widget will be added to your Virtual Console.
The widget's graphics area shows live monitoring of the captured audio, displaying a number of spectrum
bars and a volume bar.
On the bottom you can see the range of frequencies analyzed by QLC+

Configuration
When double clicking on the widget in design mode, a panel is displayed showing a complete set of options
to tune the audio trigger's functionality.
The first thing you can configure is the number of spectrum bars that you want to display and that you willneed during your live show. The number accepted is between 5 and 32.
Once the number of bars has been decided, you can proceed to assign a functionality to each bar. There is alist showing the following options for the volume and spectrum bars:

Name

Can be "Volume Bar" or a spectrum bar shown as #number (start frequency - end
frequency). Example: #5 (1250Hz - 1562Hz)
Indicates the type of functionality the bar will control. It can be:None - No functionality assigned
Type

DMX - Controls single DMX channels
Function - Controls a QLC+ function
VC Widget - Controls a Virtual Console widget (at the moment only buttons, sliders,tapping of speed dials and next cue of cue lists)
When a type is selected, a button with a

Assignicon is displayed to allow you to connect the bar to the desired functionality. Depending on
which type you chose, clicking on this button will display the DMX channels, Functions or
Virtual Console widgets selection dialogues.

InfoThis column displays some additional information about the bar--functionality association.
Depending on the type you chose, you will find the number of DMX channels, the function
name or the VC Widget name selected displayed here

DisablethresholdEnablethreshold

Divisor

When selecting a Function or a VC Widget button, this column allows you to set a
deactivation threshold percentage. When the spectrum or volume bar goes below thisvalue, the associated function/VC button will be stopped/deactivated.
When selecting a Function or a VC Widget button, this column allows you to set an
activation threshold percentage. When the spectrum or volume bar goes above this value,
the associated function/VC button will be started/activated.
For speed dials and cue lists, this will divide the taps by the selected number - only every nth tap will be actually sent to the speed dial. In other words, the tap happens only on every
n-th beat. If you want the tap on every beat, enter 1, for every other beat enter 2. For once ina 4/4 measure, enter 4. For once in 3 4/4 measures, enter 12. Maximum is 64.

DMX channels
You can choose one or more channels of the currently patched fixtures. Those channels will be set
proportionally to total volume, or volume in a particular frequency band.
Functions
You can select one or more functions. Those functions are started when volume goes above the Enable
threshold in respective band, and stopped when it goes below the Disable threshold.
VC Widgets
You can select only ONE widget here, either a button, a slider or a speed dial. Depending on the type:
Button is pressed when volume goes above Enable threshold, and released when the volume is below
Disable threshold (similar to functions).
Slider is moved in proportion to the volume (similar to DMX channels). For a slider the thresholds do not
apply.
Speed dial is tapped.
Cue List "Next Cue" is pressed.
For Speed dials and Cue Lists, the tap/button press happens when the volume goes above the Enable
threshold, and won't happen again until the volume falls below the Disable threshold. This probably means
you will have to set the thresholds a little closer to each other than for buttons.
The colors, font, frame style, stacking order, size and placement of widgets can be changed to better suit yourvision of the perfect lighting console. Most of these options, except for moving and resizing, are available inthe Virtual Console Edit menu, that is, they can be accessed from the menu bar as well as from a popup
menu by right clicking a widget you wish to adjust.
NOTE: The Virtual Console widgets' styling and placement options are available only when the application isin Design Mode.
Moving Widgets
Widgets can be moved simply by dragging them as if you were dragging any icon on your desktop. Refer toyour operating system manual on how to drag items.

To move a widget from one frame to another frame, you need to move the widget through the Virtual Console
clipboard. Cut the widgets from the first frame, then select another frame and paste the widgets into that frame.
Resizing Widgets
Each widget has a special resize handle
on their lower right hand corner that you can grab and then resize the widget as appropriate simply bydragging the handle.
Widget BackgroundTo change a widget's background color, choose Color from the Background menu and select a color fromthe popup dialog. To set an image as the widget's background, choose Image from the Background menu
and select an image file from the popup dialog.
To restore the default background color (and to clear an image), choose Default from the Background menu.
NOTE: Some operating systems and/or visual themes do not allow manual setting of background colors or
images. Try changing the desktop theme if you encounter this problem.
Widget ForegroundTo change a widget's foreground color, choose Color from the Foreground menu and select a color from the
popup dialog.
Buttons can have an icon in the foreground, which will override any text set as their name. To change abutton's icon, select Choose... from the Icon menu and select an image file from the popup dialog.
To restore the default background color (and to clear an icon if applicable), choose Default from the
Background menu.
NOTE: Some operating systems and/or visual themes do not allow manual setting of foreground colors or
images. Try changing the desktop theme if you encounter this problem.
Widget Borders
To change the border style for a widget, you can choose either Raised or Sunken from the Border menu. To
completely remove the borders of a widget, choose None from the Border menu.
NOTE: Some operating systems and/or visual themes do not allow manual setting of borders. Try changing
the desktop theme if you encounter this problem.
Fonts
You can change the font for all child widgets of a frame at the same time by changing the font of the frame
itself. Alternatively, you can change the font for each widget separately. Fonts can be changed by selecting
Font... from the Font menu. To restore the font back to the widget's parent frame's font, select Default from theFont menu.
Widget Stacking OrderIn addition to the normal 2-dimensions, vertical and horizontal, you can also adjust widgets' placement in the
3rd dimension: depth. If you see a widget going behind another control, you can raise the widget on top of allother widgets by selecting Raise from the Stacking Order menu. Likewise, if you wish to put a widget behindall other widgets, you can select Lower from the Stacking Order menu.
Whenever an Input Channel needs to be selected, for example when manually attaching a channel from an
Input Plugin to a Virtual Console widget, the Select Input Channel dialog is used.
The dialog is very straightforward; there is a list of input universes and each universe that has an Input Line
attached to it, displays the line's (or the attached device's) name after the universe number. Under each
operational universe, there is a list of channels provided by that universe. You can choose from thesechannels or select one manually.
If you have an Input Profile attached to the universe, you see the individual channel names and numbers forthe device. If there isn't a Profile attached to an input universe, you will need to type the channel number
manually, by double-clicking the item that tells you to do that and then type in the channel number manually.
See also the tutorial on input profiles
NOTE: All Virtual Console widgets that have been made external-input-aware, provide an option forautomatically detecting the input channel as well, so that you don't need do this selection manually.

08. Input output
Input/Output
By default QLC+ provides 4 universes but you can add/remove them as needed.
The input/output mapping is saved in the currently loaded project. This allows you to port your project onanother computer/OS without the need to reconfigure it every time.
If no project is loaded, QLC+ will keep the I/O mapping as a "fallback" configuration.

Input/Output Manager
To access the Input/Output Manager, just click on the tab with theicon placed on the bottom of the QLC+ main screen.
The screen is composed in this way:
On the left hand side there is the list of internal universes that QLC+ can manage
On the right hand side there is the list of devices and their mapped inputs, outputs and feedback lines that
QLC+ has detected
On the bottom right hand side there is a panel displaying brief information on the currently selected
deviceEvery device has a checkbox whenever an input, output or feedback line is available.
Each QLC+ universe can map a single input, a single output and a single feedback line

Some plugins might require configuration before they can be used' so you might not be able to see all
inputs/outputs at first. The configuration button is place next to the information panel and it is enabled if theplugin allows any manual setting.
The button icon is:

Adding/Removing universes
QLC+ supports any number of universes, depending on the CPU limit of the device controlling them.
On the left hand side of the Input/Output Manager there is a toolbar where you can add/remove, name andconfigure universes.

Add a new universe. The universe will have a name like "Universe X", where X is a
progressive number assigned by QLC+ (and also the Universe ID).
Remove the currently selected universe.
Please be careful with this operation as it can compromise your project andcannot be reverted.
When deleting a universe, if it is currently patched or some fixtures are mapped on it, a
popup message will appear asking for confirmation if the operation should becompleted or abandoned.
Universe
namePassthroughAn arbitrary string that you can set to quickly identify the meaning of a Universe
See below

Patching
To patch a plugin's input/output line to the selected universe, you need to place a tick in that particular plugin's
input/output line. You can have only one line assigned to a universe at a time, so when you check anotherline, the tick will move from its previous position to the one you just checked.
If you don't see any line on a plugin, it means you don't have any device that QLC+ understands and you'releft with the one and only (non-selectable) choice: None.
When an input/output line is checked, the corresponding universe information on the left hand side of thescreen will change and will display the new configuration set.
The plugin information on the bottom right hand side of the screen will change as well and will give you the
new status of the plugin line.

Universe PassthroughWhen passthrough is enabled, universe just forwards what it receives in its input line to its output line. This isuseful for several things:
Protocol converter: when you want to use QLC+ to act as a "protocol" converter. For example you can
use this feature to transparently map an ArtNet network to a DMX USB adapter or even MIDI.

Monitor external data: patch fixtures and watch the data in DMX monitor
Merge data from external controller: Have external lighting desk control some of the channels
independently and QLC+ control intelligent lights on the same universe.
Raspberry Pi: forward data from QLC+ on PC while programming scenes; when the workspace istransferred, Raspberry becomes main controller; the devices are always connected to Raspberry Pi
Passthrough data is not affected by QLC+ grandmaster or channel modifiers. It is merged in HTP fashion with
QLC+ output if there are any fixtures patched at that channel (Note: it does not use LTP/HTP channel
settings). Blackout affects passthrough data.

Input and Feedback
When a plugin input line is checked, it gets enabled right away, so you can perform a basic test to double
check if your hardware is working properly with QLC+.
Just move a fader/knob on your external device, and if everything works fine, you will see aicon appearing beside the corresponding universe on the left side of the screen.
If your input device supports a return channel, QLC+ can send a visual/mechanical feedback to it. Devices
such as Behringer BCF2000 support this feature.
At the moment feedback is only supported through MIDI, OSC and loopback.
To learn how to setup your external input device for the best use with QLC+, please continue your readingwith the how-to for input profiles.
This how-to document tells you how to associate input profiles to input universes and how to edit these
profiles. You should first read the input/output mapping page so that you can access the input/output manager
and know how to edit input universes.

Input Profile Manager
To access the Input/Output Manager, just click on the tab with theicon placed on the bottom of the QLC+ main screen.
Select the desired universe on the left part of the screen and then click the Profile tab placed beside theMapping tab on the top right part of the screen.

Profile assignment
You will see a list of available input profile definitions, with a check mark on None. This means that the current
universe doesn't have a profile assigned yet. To assign a profile to the universe, simply place a check mark on
one of the available profiles by clicking on the empty check box. Only one profile can be assigned to one
universe at a time, so the check mark will actually move from its previous position to the item that you havejust selected.

Add/Edit a ProfileIt is probable that your input profile is not on the list and you need to create one on your own.
Click thecreate new input profile button to start making a profile definition for your input profile. Alternatively,
you can edit any existing profile by selecting the appropriate item and clicking theedit button. The procedure is exactly the same in both cases from now on.

Input Profile Editor
A dialog is opened with entry fields for Manufacturer, Model and Type.
First enter the profile's manufacturer and the model to these fields and select profile type.
Type is one of:
MIDI - for MIDI profiles, usually used with MIDI plugin
OSC - for OSC profiles, used with OSC plugin
HID - for HID profiles, used with HID plugin
DMX - generic DMX profiles
ENTTEC - ENTTEC Wing profiles, used with Enttec Wing plugin
So far, the only difference is that MIDI profiles show MIDI message parameters in the channel editor.
Now click the Channels tab to edit the profile's channels. You have two choices for adding channel
definitions: Manual and Automatic:

Manual mode

Click the add button to enter individual channel information by hand for each channel.
Click to remove an existing channel
Automatic mode

Click the automatic wizard button to attempt automatic channel detection. You'll receive further instructions
from QLC+. You must have an input plugin assigned to the current universe for this feature to work. Also, youmust first stop the wizard to be able to navigate away from this dialog page.

Channel properties
When you add

or edita channel, a small window will be displayed, asking you to fill or change some parameters:
Number: The channel number. Since QLC+ supports a wide variety of input plugins, the channel number
might not be intuitive, so only edit this if you know what you're doing.
Name: The channel name. This is an arbitrary string to indicate the purpose of a channel.
Type: The channel type. This can be:
Slider,Knob,
Button or
Encoder
Other types:
Previous page,
Next Page,
Set Page are used to control multipage frames.
For MIDI profiles the dialog contains additional fields:
ChannelMessage
Param
Note
where you can enter the channel specification (which translates to channel number) in a more intuitive way.
Note that you cannot add the same channel multiple times to one profile.

Sliders movement properties
If your input profile includes slider channels, when you click on them you'll notice some extra properties
showing up at the bottom of the input profile editor main window. With those, you can set how values received
from a slider should act within QLC+.
There are two behaviours: Absolute and Relative.

Absolute is the default setting and basically tells QLC+ to use the slider values exactly as they are received
from an external controller.
Relative is a more advanced behaviour that comes handy when using a HID Joystick with a QLC+ XY Pad
widget or a Slider widget. Values received from an external controller are treated as relative movement
starting from the current position of a Virtual Console widget.
Let's make an example. Suppose you have a XY Pad in your Virtual Console, controlling and monitoring agroup of moving heads. During your show you will have a number of scenes moving the heads pan and tilt. At
some point you want to slightly adjust the position of the heads of just a few degrees. Here is when therelative movement kicks in. When you move your joystick (or external slider) QLC+ will adjust the heads fromtheir current positions. The direction will depend directly from your external controller. The relative movement
will stop when the external controller will return to its origin. Joysticks have a spring for that.
In addition to this, the Input Profile Editor Relative setting allows you to set a Sensitivity parameter that will
instruct QLC+ about the strength of your external controller movements. The higher this value is, the slower
the movements will occur. The lower, the faster.

Encoder properties
An encoder is an endless rotary control and can be treated only as a relative control. Basically the encoder
can start at any position and when turned clockwise or counter-clockwise it will generate positive or negative
offsets inside QLC+. When an Input Profile channel is set to the Encoder type, it is possible to specify asensitivity value, which is nothing but the relative offset that will be added to or subtracted from the current
QLC+ channel value.

Button properties
It is possible to change the behaviour of individual buttons from an input profile, and the following properties
will be used globally in QLC+.
Generate an extra Press/Release when toggled: this is a quite specific option used for example when
dealing with TouchOSC or the Behringer BCF2000.
QLC+ toggle events are triggered when a high+low sequence is received. This means that QLC+ expects a
non zero value (typically 255) followed by a zero value to toggle, for example, a button.
Devices like BCF2000 or software like TouchOSC, instead, send just a non zero value when activating abutton, and a zero value when deactivating it.
When checking this option, QLC+ will generate the "missing" events to standardize the way some controller
work. So, for example, the BCF2000 will look like sending 255+0 when pressing a button, and another 255+0
when pressing it again.
Custom feedback: with the "Lower value" and "Upper value" boxes, it is possible to force custom values tobe sent when the selected button sends a non-zero and a zero value.
For example, with this option it is possible to set globally how AKAI APC devices LEDs should be coloredwhen activated/deactivated.

Note that this option is global in QLC+, but it can be overridden if needed by a specific Virtual Console widget,
through its configuration page.

Back to the input profile definitions panel
When you're done with channels mapping, click the OK button to accept changes and save the input profile. If
you didn't enter a manufacturer/model for the profile, you'll be prompted to enter them before you cancontinue.
Now you should see the profile you just defined in the list of available input profiles. Remember how to assign
it to the current universe? Scroll up to Profile assignment if you don't.
To remove any existing input profiles, click theremove button. Note that some profiles are so-called system profiles and cannot be removed unless you're theadministrator.
That's all!
Now you can start using your preferred profile. When assigning an input channel to a QLC+ element (like
Virtual Console sliders, channel groups, etc..) you will see that your Input profile mapping will be used.
This page describes how to select an input or output audio device to be used inside QLC+.
To access the Input/Output Manager, just click on the tab with theicon placed on the bottom of the QLC+ main screen.
Select the desired universe on the left hand side of the screen and then click the Audio tab placed beside theProfile tab on the top right hand side of the screen.
The list of audio devices detected by QLC+ is displayed. Each device has a checkbox depending on if it
supports input capture or audio output capabilities.
The first entry of the list is always "Default device", and it is selected as input and output by default. In thisway QLC+ will work in most of the cases out of the box.
The default device is the one that you currently use to listen to music or to record audio with a microphone.
If in your system there are additional audio cards (PCI or USB), it is possible to select them in this panel as
the preferred QLC+ input or output device.
Basically an input device is used by Virtual Console Audio Triggers while an output device is used by audio
functions.
The selection of an audio input/output line should take immediate effect in QLC+. If not you are invited torestart QLC+ to allow a complete initialization of the internal audio engine.

09. Plugins
Plugins

Plugins are those components that allow QLC+ to perform input and output to physical devices or network
protocols.

Introduction
QLC+ supports the Art-Net protocol through an input/output plugin that receives and transmits packets on the
network.
No extra requirements are needed, since QLC+ has a native implementation of the Art-Net protocol that works
on Linux, Windows and macOS systems.
The Art-Net plugin can send and receive packets from multiple network cards, virtual addresses, the loopback
device (127.0.0.1) and multiple universes per network interface.
By default, Art-Net packets are transmitted as UDP, using the default port 6454 and the broadcast address ofthe selected interface (e.g. 192.168.0.255). When using the loopback device packets are always transmittedusing address 127.0.0.1.
When transmitting multiple universes on the same interface, the packets will be sent by default with an Art-Net
Universe ID equal to the QLC+ universe number minus 1.
For example:
QLC+ Universe 1 --> Art-Net Universe 0
QLC+ Universe 2 --> Art-Net Universe 1...
QLC+ Universe 8 --> Art-Net Universe 7
This choice is due to some facts:
1- The first valid Art-Net universe is 0 and not 1
2- The first universe accepted by commercial Art-Net-DMX devices like eDMX and ODE is 0, so to have
QLC+ to work out of the box, the first Art-Net universe must be 0.
If the above settings don't meet the requirements of your network, please read the following chapter.

Configuration
When clicking on theconfiguration button, a small dialog will be displayed, showing 2 tabs: the Universes Configuration and theNodes Tree.
Universes Configuration: after a QLC+ universe is patched with an Art-Net input or output, an entry will be
displayed in this list, allowing to manually configure the desired parameters to be used by the Art-Net plugin.
Input lines do not have particular parameters, while an output line can be configured with the following:
IP Address: This is the destination IP address where the Art-Net plugin will transmit packets to. Bydefault a broadcast address is used (so ending with .255) and by setting this in the 1-254 range, Art-Net
will transmit a QLC+ universe in unicast mode. If your Art-Net network uses a simple hub, the output IP
address is irrelevant, as broadcast or unicast doesn't make any difference. However, if you use a network
switch, unicast is fundamental to balance the network congestion, as every port of the switch is
associated to a network IP and will receive only the packets with its destination IP.
Note: Do not set the output IP address with the same IP address of your transmitting node (e.g. the PCwhere QLC+ is running) as it is just wrong and can cause a network loop. If you need to communicate
with an Art-Net node running in the same machine where QLC+ is running, use the loopback device
instead (127.0.0.1).
Art-Net Universe: This is the Art-Net universe that will be actually written in every packet transmitted. By
setting this parameter, you can use any QLC+ universe to transmit to the desired Art-Net universe.
Transmission Mode: Here you can select if QLC+ should transmit full or partial universes.
Standard means that DMX universes are transmitted only when at least one DMX channel changes or
every 2 seconds to refresh receiver's values.
Full means that all the 512 DMX channels of a universe are transmitted at the speed rate of the QLC+
internal clock (50Hz), producing a fixed bitrate of about 250kbps.
Partial, instead, means that QLC+ will transmit only the DMX channel actually used in a universe, startingfrom channel 1. For example if you raise channel 3 of a fixture with address 50, the Art-Net plugin willtransmit only 53 DMX channels, thus limiting the transmission bitrate. Use this setting only if the receiving
Art-Net node supports partial transmission.
Settings that are different from the plugin defaults, will be stored in your QLC+ workspace, to increase theportability of a project across different platforms, such as different operating systems or a PC and a Raspberry
Pi.
Nodes Tree: This tab displays the Art-Net nodes discovered on the network, grouped by network interface.
QLC+ will always appear in this list as a node participating to the network.
Art-Net nodes are added to this list if they support the ArtPoll/ArtPollReply message, otherwise they won't
appear. This doesn't mean you will not able to communicate with them.

DMXKing eDMX and ENTTEC ODE
If you own one of these devices, they both have configuration tools that might come handy when working with
QLC+. With them you can set several parameters to match the best configuration to input/output data from/to
QLC+.
For example if you want QLC+ universe 3 to output data on the first port of a eDMX, you need to use the tool
below to change the device universe address to 2.
Here the links to download the tools:
DMXKing eDMX Configuration tool
ENTTEC Node Management Utility

Compatibility
QLC+ has been tested with the following Art-Net software and devices:
DMXKing eDMX1 TX - 1 Output device
DMXKing eDMX2 TX - 2 Outputs device
Enttec Open DMX Ethernet (ODE) - Input/Output device
OLA - Open Lighting Architecture - Input/Output software node
Art-Net Controller LITE - Input controller for Android
Art-Net Controller LITE - Input controller for Android

Modul8
Jinx! - LED Matrix Control

Introduction
The DMX USB plugin supports a variety of FTDI-based USB-to-DMX devices.
Supported USB DMX devices can be found on our compatibility page.

Configuration
DMX USB devices should be automatically detected from QLC+ and displayed in the input/output panels list.
If for some reason the auto-detection fails, you can "force" the type of your DMX USB adapter manually.
Click on the name of your device and open the configuration dialog by clicking on theicon on the bottom-right side of the panel.
You will see a list of DMX USB devices currently connected to your computer. Each one has a drop downmenu where you can force the device type.
Here's the meaning of each one:
Open TX: Enttec USB DMX Open (and clones) in output mode
Open RX: Generic FTDI devices receive mode
Pro RX/TX: Enttec USB DMX Pro or most of the DMXKing devices
Pro Mk2: Enttec USB DMX Pro Mk2 - 2 DMX outputs, 1 DMX input, 1 MIDI IN and 1 MIDI OUT ports areavailable
Ultra Pro: DMXKing ultraDMX Pro with 2 outputs and 1 input
DMX4ALL: DMX4ALL USB-DMX STAGE-PROFI MK2
Vince Tx: Vince DMX512 USB in output mode
Note for OSX users: If your adapter is detected but doesn't produce any output, most likely you'll find thesolution in the Questions and Answers page (Question #3).
Note 1: Eurolite USB-DMX512 Pro devices must be forced to the "Pro RX/TX" mode to operate correctly.
Note 2: On Windows, Enttec open DMX clones might flicker at 44Hz. You can try and decrease the output
frequency until the issue is resolved.

Requirements
Linux
On all Linux distributions, you need to install libftdi. If you install QLC+ with the Ubuntu Software Center orsome other automatic installer tool, this library will be installed automatically for you.
In some cases, if the device doesn't output anything, it might be useful to add your user to the "dialout" groupwith the following command:sudo adduser your_user_name dialoutmacOSOn Apple macOS, you don't need any drivers at all since QLC+ uses the macOS native USB interface.
Installing the D2XX drivers should cause no harm, but DO NOT INSTALL VCP (Virtual COM Port) drivers
as they will definitely interfere with QLC+. If you have previously installed the VCP drivers, consult the FTDI
installation guides on how to uninstall them.
OSX Mavericks (or later) issues: please check Questions & answers #3
Windows
On Microsoft Windows, the plugin needs the latest D2XX drivers from FTDI. Normally, when a FTDI device isplugged in for the first time, Windows will automatically download the D2XX drivers for you, so no action isneeded at all.
If that doesn't happen, please consult the FTDI installation guides to know how to install the drivers.
DO NOT INSTALL VCP (Virtual COM Port) drivers as they will probably interfere with the D2XX interface.

ENTTEC DMX USB Pro supported modes
Following a grid showing the IO modes supported by QLC+ for devices like DMX USB Pro and Pro Mk2.
If a mode is not listed here, it means it is not supported by QLC+ or the device itself because of hardware
limitations, so please do not report them as issues in the QLC+ forum.

1
DMX1 IN
DMX1 OUTDMX2 OUT (1)MIDI IN (2)MIDI OUT (2)

2

3

o

4

5

6

o
o

7

o

9

o
o

o

8

10

11

12

o
o

13

14

o
o

o

o
o

o

o
o

o

o

o

o

o

o

o

o

(1) DMX2 OUT is available only on DMX USB Mk2 Pro(2) MIDI IN and MIDI OUT are available only on DMX USB Mk2 Pro with a 5-way breakout cable. MIDI OUT
signals are sent from 1 to 512 as described in the MIDI plugin channels map

TuningNote: Manual tuning should never be performed except for some very particular cases. Use it at yourown risk!
It is possible to change the DMX frame size for Enttec Open (and like) devices with a hidden settings key oneach platform. The key tells QLC+ how many channels should be transmitted in each DMX frame, so for a
DMX universe (by default 512).
Please refer to the Manual parameters tuning DMX USB Enttec Open section.

Introduction

QLC+ supports the E1.31 protocol (also known as s.ACN) through an input/output plugin that receives andtransmits packets on the network.
No extra requirements are needed, since QLC+ has a native implementation of the E1.31 protocol that works
on Linux, Windows and OSX systems.
The E1.31 plugin can send and receive packets from multiple network cards, virtual addresses, the loopback
device (127.0.0.1) and multiple universes per network interface.
By default, E1.31 packets will be sent as UDP on multicast addresses like 239.255.0.x, where 'x' is theuniverse number selected in QLC+. The port used is 5568.
When using the loopback device packets are always transmitted using address 127.0.0.1.
When transmitting multiple universes on the same interface, the packets will be sent by default with an E1.31
Universe ID equal to the QLC+ universe.
For example:
QLC+ Universe 1 --> E1.31 Universe 1 on 239.255.0.1
QLC+ Universe 2 --> E1.31 Universe 2 on 239.255.0.2...
QLC+ Universe 8 --> E1.31 Universe 8 on 239.255.0.8
If the above settings don't meet the requirements of your network, please read the following chapter.

Configuration
When clicking on theconfiguration button, a small dialog will be displayed, showing the Universes Configuration panel.
After a QLC+ universe is patched with an E1.31 input or output, an entry will be displayed in this list, allowing
to manually configure the desired parameters to be used by the E1.31 plugin.
Input lines can be configured with the following parameters:

This checkbox enables you to select between multicast input and unicast input.
MulticastWhen checked, this universe will received packets from the chosen multicast group on
this interface.
When unchecked, this universe will receive unicast packets on this IP address only.
Selecting Unicast input will allow selecting a different input Port.
This is the input IP address the E1.31 plugin will listen to on the selected interface, forthis QLC+ universe.

IP Address

When the input is set to multicast, you can select the multicast IP from 239.255.0.1 to239.255.0.255.
When the input is set to unicast, the IP address is locked on the IP address of theselected interface.

Port

This is the input port the E1.31 plugin will listen to for this QLC+ universe.
When the input is set to multicast, the port is locked on the default E1.31 multicast port:
5568
When the input is set to unicast, you can select any port you want.

E1.31This is the input E1.31 universe the plugin will accept for this QLC+ universe.

Universe

This allows mapping any E1.31 universe to any QLC+ universe.

Input configuration example:

In this example, when receiving E1.31 packets on the address 127.0.0.1 and port 8000, the packets operatingon E1.31 universe 4 will affect QLC+ universe 1.
Also we're transmitting QLC+ universe 2 on the multicast address 239.255.0.2, E1.31 universe 1, and QLC+
universe 3 on the unicast address 13.0.0.175 port 7000, E1.31 universe 2.
Output lines can be configured with the following parameters:

This checkbox enables you to select between multicast output and unicast output.
When checked, this universe will send packets to the chosen multicast group on thisMulticastinterface.
When unchecked, this universe will send unicast packets to the chosen unicast IP
address.
Selecting Unicast output will also allow you to select the outgoing port.
This is the destination IP address where the E1.31 plugin will transmit packets to.
By default a multicast address is used as described above.

IP Address

When the output is set to multicast, you can set this parameter within the range 1-255.
This allows sending packets to the multicast range 239.255.0.1 to 239.255.0.255.
When the output is set to unicast, you can select any arbitrary IP address.
When patching a QLC+ universe to the loopback device (127.0.0.1), unicast packets
will be always transmitted to 127.0.0.1.
This is the port the outgoing packets will target.

Port

E1.31
Universe

Multicast E1.31 port is always 5568.
When the output is set to unicast, you can select any port you want.
This is the E1.31 universe that will be actually written in every packet transmitted.
By setting this parameter, you can use any QLC+ universe to transmit to the desired
E1.31 universe.

Here you can select if QLC+ should transmit full or partial universes.
'Full' means that all the 512 DMX channels of a universe are transmitted at the speed
rate of the QLC+ internal clock (50Hz), producing a fixed bitrate of about 200kbps.
Transmission
Mode'Partial', instead, means that QLC+ will transmit only the DMX channel actually used ina universe, starting from channel 1. For example if you raise channel 3 of a fixture withaddress 50, the E1.31 plugin will transmit only 53 DMX channels, thus limiting thetransmission bitrate.
Use this setting only if the receiving E1.31 node supports partial transmission.
E1.31 source priority.

Priority

0 is the minimum priority, 200 is the maximum, 100 is default priority.
When E1.31 receiver gets data for a particular universe from multiple sources, it uses
data from source with the highest priority.
This allows various failover schemes. Note that QLC+ does not yet acknowledge
priority on input.

Settings that are different from the plugin defaults, will be stored in your QLC+ workspace, to increase theportability of a project across different platforms, such as different operating systems or a PC and a Raspberry
Pi.

Compatibility
QLC+ has been tested with the following E1.31 software and devices:
DMXKing eDMX2 TX - Output device

Introduction
The HID plugin supports the HID system on Windows and Linux.
HID is a generic way of mapping input/output devices such as joysticks, touchpads, keyboards, mice, etc.
The QLC+ HID plugin aims to support only joysticks and the FX5 USB DMX adapter.

Requirements
No special requirement is needed for this plugin. Just make sure your operating system is actually
recognizing the device you're going to use. On Linux you might need some kernel modules (normallyprovided by modern distributions) and on Windows a driver provided by the device manufacturer.

Joysticks
QLC+ tries to detect the specific joystick functionalities, such as axes and buttons, as individual channels thatcan be mapped to your Virtual Console widgets.
Axes and buttons are mapped by QLC+ in sequential order, so for example if your joystick supports 2 axes
and 4 buttons, they will appear in the input mapping dialogues like this:channel 1: X-axis

channel 2: Y-axis
channel 3: Button 1channel 4: Button 2channel 5: Button 3channel 6: Button 4

Nodle USB DMX interface
The Nodle USB DMX interface is available in two versions: For the self-built kit version it is called: Nodle U1and the prefabricated one it is called Nodle R4S (ready for show).
Both can input and output DMX data like normal, but can also merge dmx internally. When activated via theconfiguration dialog, the device merges any DMX data coming from QLC+ (if selected as output) with all DMX
data coming from the device's input in an HTP (Highest Takes Precedence) manner.
If set, the merger mode persists even when QLC+ is closed as long as the device is powered. This way thedevice is transparent to incoming DMX data and just forwards them.
The device buffers incoming DMX data. So when the incoming DMX connection is interrupted, the last DMX
frame is repeated until more DMX data arrives or the device is reset.
Check the product manual for further information or troubleshooting.

FX5 USB DMX
Although not available anymore. The FX5 USB DMX adapter is still supported either for output and input
DMX data. It offers the same features as the Nodle USB DMX. Check the product manual for the connection
and peculiar issues.

Introduction
Loopback plugin provides a way to control Virtual Console widgets from Scenes and other Functions. Data
that QLC+ sends to the Output port is looped back to the Input port, where it can be used for external control.
Obviously, the Output port and Input port may be attached to different universes.
The plugin provides 4 independent lines.
This plugin is mostly for advanced users -- unlike other input/output plugins, this plugin doesn't control any
real device.

Configuration
Loopback plugin doesn't have any configuration. Simply attach Input and Output to desired universes.

ExamplesButtons that set a (submaster or regular) slider to a predefined value

These buttons can have a fade time attached, these changes may be gradual.
Steps:
1. Set one universe for Loopback output (U1), and set the slider's input universe to Loopback Input (U2).
Let's say the sliders external control is set to channel 14.
2. Add dimmer channel to U1 at address 14. In the channel modifiers dialog, set it to LTP (so that if the
button goes off, the slider doesn't go to zero.
3. Create scenes with desired slider values for channel 14 in the U1 universe. You may set fade times as
well.
4. Create buttons for the scenes

Introduction
This plugin gives input/output support for the MIDI protocol and gives the user freedom to control typicalparameters like channels, Notes, Program Change and Control Change.
The MIDI plugin can be quite powerful used in combination with MIDI devices such as keyboards, MIDI
controllers (like Behringer BCF2000 or KORG nanoKONTROL) or a software audio sequencer like Cubase or
Ardour 3.
The usage can vary from fader-to-fader control (the BCF2000 case) to sequence triggering for synchronizedshows (metronome controlled gigs using an audio sequencer)

Configuration
When you click on the configuration button
a window will appear, showing all the MIDI input and output lines detected.
Each line has three options that can be changed depending on your needs:
MIDI Channel: This is the channel where QLC+ will receive or send data through the MIDI system. MIDI
channels can go from 1 to 16. The special "1-16" channel will tell QLC+ to receive or send data on any
MIDI channel.
Mode: This is the MIDI mode that QLC+ will use to send data through the MIDI system. This parametercan assume three possible values:
Note velocity: in this mode, QLC+ will send data using MIDI notes velocity. MIDI notes can go from
21 (A0) to 108 (C8) and each note can have a velocity going from 0 to 127, which will be doubled
inside QLC+ to match the DMX range (0-255).
Control Change: this is one of the MIDI protocol messages (like Program Change) frequently usedby MIDI controllers. Each device should list the supported CC messages in its user manual, so
please consult it before using this mode. The CC range can go from 0 to 127 and can have values
from 0 to 127, which will be doubled inside QLC+ to match the DMX range (0-255).
Program Change: this is one of the MIDI protocol messages (like Control Change) frequently usedby MIDI controllers. Each device should list the supported PC messages in its user manual, so
please consult it before using this mode. The PC range can go from 0 to 127 and can have values
from 0 to 127, which will be doubled inside QLC+ to match the DMX range (0-255).

Initialization message: This is a list of presets (templates) containing the initialization message that
QLC+ will send when opening a MIDI device before using it. A detailed explanation of this functionality is
written below.

Feedback
The MIDI plugin is one of the QLC+ plugins supporting feedback. When QLC+ detects a MIDI device with an
output line, it will enable the feedback check box in the Input/Output panel. Please note that output andfeedback are exclusive, so they cannot both be used at the same time.
If your MIDI device supports a return channel, QLC+ can send a visual/mechanical feedback to it. Devices
such as the Behringer BCF2000 support this feature. This is very useful during live shows to have immediateknowledge of the current state of faders mapped in QLC+.
A small trick that can be achieved with QLC+ is to use feedback as a generic MIDI output line to trigger
external controllers/sequencers.
Let's look at some examples:
Input: OSC ---> Output: DMX USB --> Feedback: MIDI
Input: Enttec Wing --> Output: ArtNet --> Feedback: MIDI

KORG nanoPAD X Axis
For unknown reasons, the nanoPAD factory defaults don't map the X Axis of the pad area. To have it fully
working with QLC+, please download the KORG utility (Windows and macOS only) from here and set the X
Axis to CC2 (Control Change #2).

AKAI APC LED Feedback
When using one of the AKAI APC controllers, there is a feature that could be very handy: LED color feedback.
The default behaviour with Virtual Console buttons is: value = 0: LED off, value = 255: LED green
This can be customized when selecting an input channel, by pressing the "Custom feedback" button.
A new area is displayed, showing the possibility to enter a lower and an upper value. This is basicallytranslated in which values QLC+ should send for buttons on/off states.
Since the MIDI protocol works in a range of 0-127 values, and QLC+ works in the DMX range of 0-255, thefollowing table points you directly to the values you should enter to obtain the desired color of an APC LED.
Basically they are taken from APC manuals and doubled.
Value

LED color

0

Off

2

Green

4

Green Blinking

6

Red

8

Red Blinking

ValueLED color

10

Yellow

12

Yellow Blinking

14-255

Green

It's interesting to notice that you don't necessarily need to keep 0 as lower value. For example with lower = 6
and upper = 2 the result will be: Function Off -> red LED, Function On -> green LED.

MIDI beat clock
Starting from version 4.5.0, QLC+ supports the MIDI beat clock
Not to be confused with the MIDI timecode, the MIDI beat clock is a useful signal to sync BPM-based devices
such as a drum machine with your lights controlled by QLC+.
Two special MIDI channels have been mapped in QLC+ to control your Virtual Console widgets with a beatclock.
Here's a brief explanation of the special channels:
Channel 530: A signal is sent on this channel when a beat clock starts or stops.
Channel 531: This signal is sent every BPM. QLC+ doesn't take any notice of measures (e.g. 3/4, 4/4,
7/8), so when setting up your MIDI clock you need to consider how QLC+ will handle it.
Hint: If your controller is set to work at high BPM (e.g. 180-200), you might find difficult to catch the start signal.
One trick for doing this is to catch the stop signal. Example:
1. Enable the QLC+ Virtual Console widget auto-detection
2. Hit play on your device generating the MIDI beat clock. QLC+ will detect channel 530 and will switch very
quickly to 531
3. Stop the playback on your MIDI beat clock device. QLC+ will detect channel 530 again.
4. Disable the QLC+ Virtual Console widget auto-detection
In a similar way you can catch the beat signal as well. Just disable the auto-detection process before stopping
the playback on your beat controller (invert steps 3 and 4).

MIDI initialization message
There might be cases where your MIDI device needs some commands to turn into a specific operating mode
The MIDI protocol can handle this through SysEx. These are particular messages to instruct a MIDI device
how to behave.
QLC+ can use a XML template to achieve this that can be selected in the MIDI configuration panel.
Here's an example of how a template looks like:<!DOCTYPE MidiTemplate> <MidiTemplate> <Creator> <Author>Your name</Author> </Creator><Description>A brief description of what the template does.</Description> <Name>Template name to be
displayed by QLC+</Name> <InitMessage>F0 47 00 7B 60 00 04 41 09 00 05 F7</InitMessage></MidiTemplate>You can create the ones you need and place them in your MidiTemplates folder.
You are welcome to submit them in the QLC+ forum.

Channels map
To handle a mix of various MIDI messages (Notes, PC, CC, etc..), QLC+ remaps them into a sequential order.
Following, the channel numbers to be used in the Input Profile editor:
ChannelMIDI message

1

Control Change 1

...

...

128

Control Change 128

129

NOTE ON/NOTE OFF 1

...

...

256

NOTE ON/NOTE OFF 128

257

NOTE AFTERTOUCH 1

...

...

384

NOTE AFTERTOUCH 128

385

Program Change 1

...

...

512

Program Change 128

513

Channel Aftertouch

514

Pitch Wheel

530

MIDI Beat Clock: Start/Continue

531

MIDI Beat Clock: Beat

532

MIDI Beat Clock: Stop

In OMNI mode, add 4096 * Channel number

Introduction
The OLA plugin allows direct communication between QLC+ and the OLA framework on the same machine.

Requirements
The OLA plugin requires OLA to be installed on the system.
Since OLA doesn't run on Windows, only Linux and macOS users can benefit from this plugin.

Information on how to download and install OLA can be found here.
QLC+ needs the OLA server to be running to be able to communicate with the OLA framework. This can bedone either manually by starting up "olad" from a terminal or in the configuration panel by ticking "Runstandalone OLA daemon".

Configuration
When pressing the configuration button over a OLA output line, a small popup window will appear showing
the basic information of how QLC+ outputs are mapped against OLA universes.
On the bottom, a check button will allow you to force the OLA server startup.

OLA Setup
When you have made sure that everything is working in QLC+ and have checked how the universes are
mapped, you can setup OLA to output the signal received from QLC+ to a DMX device, either USB or over the
network.
Here's an introduction of OLA usage.
Basically you need to open a web browser, connect to http://localhost:9090 or http://127.0.0.1:9090 and add auniverse that has the same number mapped in QLC+ and select the desired output line.

Introduction
The OS2L plugin allows direct communication between QLC+ and an OS2L capable host.
OS2L specifications can be found at: http://os2l.org
At the moment the only OS2L host supported is Virtual DJ.
QLC+ OS2L plugin will work either on the same host (127.0.0.1) or on a different host with an OS of yourchoice (Windows, macOS, Linux)

Configuration - Virtual DJFirst and foremost, you need to tell VDJ where to send OS2L messages.
Open VDJ settings, go to the 'Options' panel and type 'os2l' in the top search box.
Modify the 'os2lDirectIp' field by setting the IP:port where VDJ can reach QLC+. For example, '127.0.0.1:9996'
should work if QLC+ runs on the same (Windows) PC of VDJ.
Once done, restart VDJ.
Now go to QLC+, enable the OS2L plugin on any universe. If you have set a specific port in VDJ, open the
OS2L configuration dialog and set the same port there.
Once done, QLC+ will start receiving signals from VDJ (joystick icon will blink beside the Universe box)

Introduction
QLC+ supports the OSC protocol through an input/output plugin that receives and transmits packets on the
network.
No extra requirements are needed, since QLC+ has a native implementation of the OSC protocol that works
on Linux, Windows and OSX systems.

The OSC plugin can send and receive packets from multiple network cards, virtual addresses, the loopback
device (127.0.0.1) and multiple universes per network interface.
By default the OSC plugin will listen on ports starting from 7700, plus the QLC+ universe minus one.
The output, instead, will use ports starting from 9000, plus the QLC+ universe minus one.
For example:
QLC+ Universe 1 --> OSC input port 7700, output port 9000
QLC+ Universe 2 --> OSC input port 7701, output port 9001...
QLC+ Universe 8 --> OSC input port 7707, output port 9007

Configuration
When clicking on theconfiguration button, a small dialog will be displayed, showing the Universes Configuration panel.
After a QLC+ universe is patched with an OSC input or output, an entry will be displayed in this list, allowing
to manually configure the desired parameters to be used by the OSC plugin.
For each OSC input or output the following parameters can be set:
Input Port: If the patched line is opened for input, this parameters defines the port QLC+ will listen to inorder to receive OSC data from your external controller.
Output address: If the patched line is opened for input, this is the destination IP address used to send
feedback to your external controller.
If the patched line is opened for output, this is the destination IP address used to send OSC data on the
network.
OSC output packets are composed to obtain an OSC path like the following: /QLC+ universe 1/dmx/DMX channel - 1
For example channel 12 of QLC+ universe 4 will have the following path: /3/dmx/11
All the values transmitted by the OSC plugin use the float type.
Output port: If the patched line is opened for input, this is the destination port used to send feedback toyour external controller.
If the patched line is opened for output, this is the destination port used to send OSC data on the network.
Note: When patching a Input+Feedback line, the output IP/port you need to change are the ones in the'Inputs' section. Just leave the 'Outputs' section as default.

Controllers
QLC+ has been tested with the following OSC controllers:
TouchOSC. A predefined input profile is ready to use for the Mix16 layout.

Introduction

The Peperoni Output plugin supports USB-DMX output devices produced by Peperoni Light.

Requirements
Linux
On all Linux distributions, you need to install libusb. If you install QLC+ with the Ubuntu Software Center orsome other automatic installer tool, this library will be installed automatically for you.
Mac OS X
Nothing special is needed for Mac OS X. All required components are already inside the Q Light Controller
Plus application bundle because QLC+ uses the OS X native USB interface.
Windows
You must install the Peperoni USBDMX Windows drivers. Usually these come on a CD along with thePeperoni device you've bought.
If after installing the driver, QLC+ still doesn't detect your Peperoni device, copy the usbdmx.dll file you findinside the driver ZIP package (i386 folder) into the main QLC+ folder.
Unzip the driver package to a folder on your hard disk.
Plug the peperoni device to a USB port.
If you're running a 32bit version of Windows, point the "Found new hardware" wizard to look for the driverunder windows/i386.
If you're running a 64bit version of Windows, point the "Found new hardware" wizard to look for the driverunder windows/ia64 or windows/amd64.

Introduction
The uDMX Output plugin supports the Anyma uDMX USB-DMX interface on Linux and macOS.

Requirements
Linux
On all Linux distributions, you need to install libusb. If you install QLC+ with the Ubuntu Software Center orsome other automatic installer tool, this library will be installed automatically for you.
macOS
On Apple macOS, you don't need any drivers at all since QLC+ uses the macOS native USB interface.
Windows
This device is not yet supported on Windows.

Tuning

It is possible to change the DMX frame frequency for all uDMX devices with a hidden settings key on eachplatform. The key tells QLC+ how many times each DMX frame (512 channels) should be sent to the universe
per second. A value of "30" means 30 times per second (30Hz). Please refer to the Manual parameters tuning
uDMX section

Introduction
The Velleman Output plugin supports the Velleman K8062D interface on Windows operating systems.

Requirements
Windows
You must copy the proprietary Velleman K8062D.dll file into the QLC+ main folder (e.g. C:\QLC+).
Considered all the issues that have been raised by QLC+ users around this topic, here's an extract of theofficial FTDI Application Note 134

Disabling the Apple-provided VCP on OS X 10.9
and later
A VCP driver for most FTDI USB to serial converters is provided as part of the kernel in OS X 10.9 and later.
OS X loads this driver (AppleUSBFTDI.kext) when a device with standard FTDI vendor and product identifiers
is connected. To use FTDI's own VCP instead, or to use D2XX programs, AppleUSBFTDI must be disabled,
unloaded or blocked, as follows.

Disable by Renaming (OS X 10.9 and 10.10 only)
Note: this method works only on 10.9 Mavericks and 10.10 Yosemite.
Start a terminal session (Go > Applications > Utilities > Terminal) and copy/paste the following text to thecommand prompt:
cd /System/Library/Extensions/IOUSBFamily.kext/Contents/Plugins
sudo mv AppleUSBFTDI.kext AppleUSBFTDI.disabledsudo touch /System/Library/Extensions

then reboot.
To re-enable VCP, rename AppleUSBFTDI.disabled back to AppleUSBFTDI.kext
cd /System/Library/Extensions/IOUSBFamily.kext/Contents/Plugins
sudo mv AppleUSBFTDI.disabled AppleUSBFTDI.kext
sudo touch /System/Library/Extensions

then reboot.

Temporarily Unload (all versions of OS X)
Note: this method works on all versions of OS X.
It is possible to unload Apple's VCP for the current session, i.e. until the next reboot:sudo kextunload -b com.apple.driver.AppleUSBFTDI(If a warning message indicates that the kext can't be unloaded, then reboot and retry the above command.)To reload:sudo kextload -b com.apple.driver.AppleUSBFTDI

The kextunload and kextload commands can be run in any directory.

Block with D2xxHelper (OS X 10.9 and later)
Note: this is the only non-temporary method which works on 10.11 El Capitan.
FTDI provides a signed kernel extension (D2xxHelper.kext) which contains no code but acts to prevent OS X
from matching an FTDI chip (with standard vendor and product identifiers) with a VCP driver, either Apple's or
FTDI's. This leaves the device unclaimed, and available for D2XX programs only.
1. Disconnect all FTDI devices.
2. Download and run the D2xxHelper installer from https://www.ftdichip.com/Drivers/D2XX.htm
3. Reboot.
4. Reconnect the FTDI devices.

10. Fixture definition editor
Fixture Definition Editor
The Fixture Definition Editor is a separate application bundled together with QLC+ for creating and modifying
fixture definitions. Having a fixture definition for each of your lights allows QLC+ to know how to control them.

Saving your fixture definitions
To use your fixture definitions in QLC+, you must save them in a location where QLC+ expects to find them.
There are two places where you can save your fixture definitions:
1. In the same folder as your QLC+ workspace (Handy if you want to give your workspace to someone else)
2. In the user fixtures folder found in the following locations:Linux: it is a hidden folder in your user home directory: $HOME/.qlcplus/Fixtures
Windows: it is a folder in your user directory: C:\\Users\{Username}\QLC+\Fixtures
Mac OS: it is located in your user Library directory: $HOME/Library/Application\\
Support/QLC+/Fixtures

Important note: you SHOULD NOT save or copy your custom fixtures into the QLC+ system fixtures
folder. This is because when QLC+ is uninstalled, all the fixtures in this folder are deleted. It can also
cause unintended conflicts between the system and your own fixture definitions.

Main toolbar
The main window in the Fixture Editor is just an empty workspace that contains the actual editor windows
used to edit fixture definitions. The following options are available to you:Create a new fixture definition. Opens an empty Fixture Editor window.
Open an existing fixture definition. Opens the fixture definition in a Fixture Editor window.
Save the fixture definition in the currently active Fixture Editor window.
Save the fixture definition with a given name in the currently active Fixture Editor window.

Fixture Editor
Fixture Editor windows contain everything needed to edit one Fixture Definition at a time. The windows are
separated in five tabs: General
PhysicalChannels
Modes
Aliases
Tabs are organized in a logical order that should be followed from left to right when creating a new fixture
definition.
This is the section where the Fixture general information is provided.

The fixture's manufacturer name. For example "ClayPaky". Please note that if you're
Manufacturer

adding a definition of a manufacturer already present in the QLC+ library, you should
adopt the same exact name adopted by the other creators. For example, "IMG
Stageline" is not "img stageline" or "IMG-Stageline"ModelThe fixture's model name. For example "Sharpy". Please stick to the product manual tofill in this information. No need to specify the LED configuration like "PAR64 MKII 8x1W
LED RGBWAUV USB". It's just "PAR64 MKII"
The fixture's category type. For an accurate preview, it is important to fill in the proper

Type

Authorcategory. For example, while a moving head is most likely a color changer too, the typeshould be set to "Moving Head"The fixture definition author name. Please do not submit email addresses or references
to some website. They will be removed anyway during review.

This is the section where the global physical information of the fixture is provided.
An identical section is also present in each mode, in case the fixture allows its physical properties (e.g. pan/tilt
range) to be altered depending on the mode. In that case, the global physical information can be overridden
by per-mode physical information.

* Type: The type of the actual light source within the fixture.
Bulb

Lens

* Lumens: The light source's total luminous output in lumens.
* Color Temperature (K): The light source's color temperature in Kelvins* Name: The type/name of the lens, if applicable.
* Min. degrees: The fixture's minimum beam angle in degrees.
* Max. degrees: The fixture's maximum beam angle in degrees.

Electrical* Power Consumption: The fixture's total power consumption in Watts.
* DMX Connector: The type of the fixture's DMX connector.

Dimensions

Head(s)* Weight: The fixture's total weight in Kilograms.
* Width: The fixture's total horizontal width in millimeters.
* Height: The fixture's total vertical height in millimeters.
* Depth: The fixture's total depth in millimeters.
* Type: The method of focusing the beam on different areas. For stationary fixtures thiscan be set to Fixed.
* Pan Max Degrees: The maximum pan width in degrees.
* Tilt Max Degrees: The maximum tilt height in degrees.

The channels tab contains all possible channels that the fixture understands in all of its modes. The channel
order doesn't matter in this tab at all. Instead, channels are arranged in certain order in each mode in theMode tab. On the Channel tab, only the channel names, their capabilities (i.e. value ranges and their
purpose) matters.

Add a new channel to the fixture using the Channel Editor
Remove the selected channels from the fixture and from all modes
Edit the currently selected channel using the Channel Editor
Copy the currently selected channel to the clipboard. Channels in the clipboard can also be pasted
to other fixture definition windows

Paste a channel from clipboard to the fixture definition. Channels in the clipboard can also bepasted to other fixture definition windows
Expand or collapse all the channel nodes in the channel list
Channel Editor
The Channel Editor is used to edit individual channels and the DMX value ranges of each capability (a green
color, a certain gobo, prism rotation, etc.) that a fixture channel provides. Refer to your fixture's manual to get a
detailed list of the fixture's channels and DMX values.
Here's a few screenshots showing the possible scenarios that can be encountered while editing a Fixturechannel.
Fig. 1

Fig. 2

Fig. 3Fig. 4

Following, the description of the settings that appear in the Channel Editor. Reference to the above figures
will be done to point you to a visual context.

Name

The channel name. When selecting a channel preset (single capability channel), achannel name will be automatically suggested, with the possibility to customize it.
A preset is a sort of shortcut to speed up the definition creation. It also provides to the
QLC+ engine, useful information to recognize and properly treat a DMX channel.
It frequently happens that a Fixture has some RGB or CMY channels. A LED bar might
have dozens of them. Therefore, selecting a color preset will fill in for you all thenecessary information that QLC+ needs, with a single mouse click. (See Fig. 1)

Preset

It is also frequent to find a channel to control Pan/Tilt speed. Some presets are available
for that purpose, indicating also if the speed is from slow to fast or from fast to slow. Justpick the preset that is more suitable for the definition you're creating.
When a preset is selected, all the rest of the editor become inactive. If a channel has
multiple DMX ranges (capabilities), just leave "Preset" to "Custom" and proceed further
with this reading.

This indicated the channel's type (its role in the fixture). Selecting a type, implicitly
defines also the channel precedence (LTP or HTP). It is therefore very important to pickthe correct type here, to avoid undesired behaviours within QLC+.
All the intensity/color channel types obey to the HTP rule: Intensity, Red, Green, Blue,
Cyan, Magenta, Yellow, White, Amber, UV, Lime and Indigo.
All the other types obey to the LTP rule: Beam, Color, Effect, Gobo, Maintenance,
Nothing, Pan, Tilt, Prism, Shutter and Speed.
Intensity is used for dimmer / master dimmer channels.
Primary colors (Red, Cyan, White, etc) are used to control single color channels. Please
do not confuse these types with the "Color" type (see below)
Note that the Grand Master controls only Intensity and primary color channels by default.
Note also that the Color Tool in Scene Editor is available only if a fixture provides
Primary color channels for RGBAWUV/CMY.
Type

The Color type is used to control a fixed color wheel or predefined color macros. Don't
assign individual RGBAW/CMY color channels to the Color type but instead use theprimary color types as described above
The Gobo type is used to control gobo wheel position or indexing.
The Speed type is used to control something related to speed (gobo rotation, rainbow
speed, tracking speed).
The Prism type is used to control a prism.
The Shutter type is used to control a shutter, a strobe or an iris.
The Beam type is used to control a beam shaper (such as a zoom feature).
The Effect type is used to control something that doesn't quite fit into any of the othergroups.
The Maintenance type is used to control feature such as resetting or a cooling fan orsomething similar.
The Nothing type is used as a channel spacer or a place holder. Some channels of thistype might be replaced with the alias feature.
The Pan and Tilt types are used to control Pan/Tilt (or X/Y) features of moving heads orlasersDefault
value

Specify the DMX value (0 to 255) to which a channel is set on power up. For example,
some moving heads position their Pan/Tilt motors half way, which means the initial DMX
channel value is equal to 127.
Applicable to channel pairs that make 16 bit values, usually Pan or Tilt group, but somenewer fixtures support 16 bit dimmer or even RGB, gobo or focus channels.

Role

For 8 bit values (e.g. when the fixture supports only 8bit movement, only one channel foreach movement), assign the Coarse (MSB) control byte to the channel. If, however, thefixture supports 16bit (two channels for each feature), you should assign the Coarse(MSB) byte to the channels that provide coarse value and the Fine (LSB) byte to thechannels that provide fine value adjustment. If you are not sure, use Coarse MSB.

Displays the list of DMX value ranges for the currently edited channel. If a channel
provides only one capability (for example pan or dimmer) you should use a channel
preset (see above). For more elaborate capabilities, such as colors or gobos, you should
create capability ranges for each of the colors (for example 0-15 white, 16-32 blue...).
Capabilities

Specific ranges for each channel can be found in the product manual under the name
"DMX chart".
Entering DMX ranges is pretty straight forward. The entry area is organized as a
spreadsheet where range values and descriptions can be entered continuously just bypressing the TAB key.
Each capability can be enriched with a so called "preset", which tells the QLC+ engine
more useful information about a range of DMX values.
For example if the capability is "Shutter open", a preset called "ShutterOpen" is available
so that QLC+ knows exactly how to treat the range.
Depending on the preset type, one or more additional information could be entered:ColorMacro: allows to pick a single color used typically on color wheels

PresetColorDoubleMacro: allows to pick two colors to represent an intermediate position of acolor wheel (Fig. 3)
GoboMacro: allows to select a gobo picture to be used when entering the capability
range (Fig. 4)
StrobeFrequency: allows to enter a precise frequency (in Hertz) for a strobe feature
StrobeFreqRange: allows to enter 2 values (minimum and maximum) to represent therange of frequencies (in Hertz) to simulate a strobe effect (Fig. 2)
Alias: This is a special capability preset to indicate that when in this range, an alias
should be triggered. An alias is a replacement of a channel. See the Aliases tab tounderstand how to define aliases
Remove the selected capabilities from the channel.
Create new capabilities quickly with the capability wizard.

Capability wizard
Capability Wizard is a handy tool for creating multiple capability value ranges of the same size. Usually thisapplies to fixed colors, gobo indices and various macro channels.

StartThe starting value for new capabilities. Sometimes there might be other capabilities at thestart of the channel's value range that you can skip by adjusting this value.

Width

The size of each value range.

AmountNumber of capabilities to create.

Name

Sample

The common name for each capability. You can use the hash mark # to denote a place for an
index number (i.e. "Gobo #" creates Gobo 1, Gobo 2, Gobo 3...)Every time you change a parameter in the wizard, this list is updated to show you a sample ofwhat kinds of capabilities will be created once you click OK.

The modes tab contains all modes the fixture can be configured to.

Mode
list

Displays all modes for the currently edited fixture. Each mode item can be opened to display theset and order of channels in that mode.
Name: The name of the mode (each name must be unique)
Channels: Number of channels in each mode
Heads: The number of light sources each mode supports
Create a new mode for the fixture, using the Mode Editor.
Remove the currently selected mode from the fixture. Removing a mode does not destroy any
channels or other modes.
Edit the currently selected mode, using the Mode Editor.
Create a copy of the currently selected mode to the same fixture. Since modes are tightly
coupled to a certain fixture's channels, modes cannot be copied across fixtures.
Open or close all mode items.

Mode Editor
The Mode Editor is used to create and edit modes by picking sets of Channels in certain order (as defined by
the fixture's manufacturer). Each editor window is divided into three tabs: Channels, Heads and Physical.

Channels Tab
In the Channels tab you can place the fixture's channels in an order that forms an actual representation of the
DMX channels that the fixture understands when it has been configured in that particular mode.

Mode
Name

The name of the mode (must be unique for each mode).

Channel

Displays all channels present in the current mode in their proper order.
The "Acts on" column is used to bind a channel to another. For example a channel that

list

controls the speed of a rotating gobo.

Add channels from the fixture's channel collection to the mode. You can create/edit channels
in the Fixture Definition Editor's Channels tab.
When you click on this button a new window will be displayed, showing two lists:
The list on the left shows the channels that have not yet been added to this mode. If you'recreating a new mode, this list will show all the channels you created in the Fixture Editor'schannels tab
The list on the right shows the channels that define the mode you're editing. If you'recreating a new mode, this list will be empty.
Please note that the order of the channels in this list is fundamental to the fixture mode
definition.
To move items from one list to another either use the central buttons or simply drag and dropthem.
When done, press OK to update the mode channel list.
Remove the selected channels from the mode. Other modes' channel selections are left
untouched.
Raise the selected channel up by one position.
Lower the selected channel down by one position.

Heads TabIn the Heads tab you can define multiple heads for a single fixture, so that QLC+ knows to treat each of them
individually in certain situations (such as Fixture Groups). If a fixture contains only one head when it'sconfigured to use the currently edited mode (i.e. all of the mode's channels control one head at a time) there isno need to define the head. If, however, the fixture has multiple heads that you wish to be able to control, youmust define each head here.
Heads don't have names as they can be thought of as simple "sub-fixtures" inside a fixture. Instead, they areautomatically given index numbers. The ordering of the Heads should follow the physical fixture's
configuration as closely as possible. So, if the heads go 1, 2, 3, 4 in the real world, don't define them as 4, 2,
1, 3 or something equally annoying.

Head
list

Displays the list of heads currently defined for the fixture.
Add a new head to the fixture, using the Head Editor.
Remove the selected head from the fixture.
Edit the selected head using the Head Editor.
Raise the selected head upwards by one. You can use this to change the order of the heads
within the fixture.
Lower the selected head downwards by one. You can use this to change the order of theheads within the fixture.

Head Editor
The Head Editor is used to create and edit heads by picking sets of Channels that are dedicated to a single
head (as defined by the fixture's manufacturer).
Editing a head is very simple: place a tick on each channel that is used ONLY by the head you are currently
editing. Note that you should check the channels specific to a head, and nothing more. For example if there
are 3 heads each with a dedicated dimmer control, then you should include the dimmer channel too. If,
instead, the fixture has a single dimmer channel to control the intensity of all the heads together, then do notinclude it in the head definition.

Channellist

Displays the list of all fixture channels available in the current mode. Channels that havebeen assigned to another head are disabled and cannot be selected because each channel
can only belong to one head at a time.

Physical Tab
This tab is identical to the global physical tab found in the main Fixture editor windows.
The only difference is that here you can choose if the mode you're editing has the same physical information
or different ones.
In the first case just leave the "Use global settings" option checked. If the mode exposes different properties,
then check the "Override global settings" option and fill in all the information required.
In this tab it is possible to define the rules of replacement triggered by capabilities set as "Alias" preset.
Let's make an example. A fixture has channel 5 named "Effects" which controls the behavior of channel 6.
Channel 5 has 2 capabilities: "Speed on channel 6" and "Sound sensitivity on channel 6". The latter havebeen set to the "Alias" preset. By default, when DMX value of channel 5 is 0, channel 6 acts as speed control.
When DMX value of channel 5 enters the "sound sensitivity" capability, channel 6 becomes a soundsensitivity adjustment.
To cope with this case, you need to define 2 channels: "Speed" and "Sound sensitivity". In the fixture mode
add only "Speed", since it will the default behavior when DMX value of channel 5 is equal to 0.
Then you need to define just one alias: the one that will replace the default channel "Speed" with "Soundsensitivity". QLC+ will then know what to do when the DMX value of channel 5 enters or exits the alias.

AliasIn
mode

Shows the list of all capabilities of all channels set as "Alias" preset. The string is in the form
[Channel name] - [Capability name] [DMX value range]
Select the mode where the alias must have effectreplace

Select the mode channel to be replaced when the alias is triggered

withSelect the channel that will substitute the "replace" channel when the alias is triggered
Add the triplet In mode X, replace Y with Z to the known aliases list
Remove the selected alias from the aliases list

11. Advanced
Advanced Topics
This chapter aims to cover those aspect considered "advanced", so for users knowing the basics concepts of
QLC+ and working comfortably with it.
By default, QLC+ includes a native web server to expose on traditional web browsers some of the softwarefeatures.
It comes very handy when you need to run QLC+ on a device without a display (headless system) either towork standalone or for remote controlling.
The web interface is not enabled by default but can be easily activated by running QLC+ with "-w" or "--web"
option. Please refer to the command line parameters page of this documentation to learn how to do it.

The web interface can be accessed from any modern web browser running on any device, such as acomputer, a tablet or a smartphone. Your browser needs to support the web sockets technology tocommunicate with QLC+, and it is recommended to use Google Chrome.
It is also possible to design custom web pages and access QLC+ functionalities via web API which arebasically strings formatted in a specific way and sent to QLC+ via websocket.
A test page with the available APIs can be found here.
To access the QLC+ web interface simply connect to this address:
http://[IP address]:9999
Where [IP address] is the IP address of the device you want to access via web. For example:
http://192.168.0.100:9999
The web interface consists in three pages:
Virtual Console
Simple Desk
Configuration

Virtual Console page
This page is displayed by default when accessing the web interface address and it represents the QLC+
Virtual Console.
If a project is loaded, this page will display the widgets previously created with QLC+, otherwise it will justshow an empty page.
It is possible to load a project with the Load project button placed on the top left corner of the page. A window
will show up, allowing you to choose a file from the device you're using to control the device where QLC+ is
running.
The project file will be transferred via web and loaded by QLC+.
To access the QLC+ configuration page, just click on the Configuration button.

Simple Desk page
This page is a simplified version of the Simple Desk that you can find in the QLC+ desktop version. It displays
DMX universes divided by pages, where each page shows 32 channels. You can switch between pages withthe left/right arrow buttons and select the current displayed universe with the drop down menu on the top rightof the page.
It is also possible to reset a universe at once by pressing the reset button (gray X)
DMX Keypad
When clicking on the "DMX Keypad" button in the Simple Desk top bar, you can jump to a new page where a
traditional DMX keypad is displayed.
The keypad is useful to set a batch of channel values with a single command. Following a table explaining
the key commands that you can find on the right side of the pad.

Key

Description

AT

sets a value for a specified DMX channel or group of channels (range).
Example: 13 AT 148 (sets channel 13 to value 148)

THRU

selects a range of DMX channels
Example: 3 THRU 15 AT 133 (sets channels 3 to 15 to value 133)

FULL

sets the maximum value (255) to the selected DMX channels or group of channels
Example: 18 FULL (sets channel 18 to 255)
1 THRU 10 FULL (sets channels 1 to 10 to 255)

ZERO

BY

sets the minimum value (0) to the selected DMX channels or group of channels
Example: 4 ZERO (sets channel 4 to 0)
sets a channels gap within a range
Example: 1 THRU 10 BY 2 AT 100 (sets channels 1, 3, 5, 7, and 9 to value 100)
increases by given percent the current values of the channels+%-%

Example: 1 THRU 10 BY 2 +% 20 (increases by 20% the current values of the channels 1, 3, 5,
7, and 9)
reduces by given percent the current values of the channels
Example: 1 THRU 10 BY 2 -% 20 (reduces by 20% the current values of the channels 1, 3, 5, 7,
and 9)

Please keep in mind that:
Every command is sent to QLC+ only when pressing the ENTER button
DMX addresses are contiguous between universes, so Universe 1 ranges from 1 to 512, Universe 2 from
513 to 1024 and so on
You can manually write commands in the top text box once you learn the keypad commands syntax

Configuration page
This page allows to remotely set the QLC+ configuration, divided in four areas:
Universes configuration: Allows to set the inputs, outputs, feedback, profiles and passthrough mode foreach QLC+ universe. This is basically the same functionality of the QLC+ input/output panel.
Since a QLC+ project contains also the I/O information, most likely you won't have to manually configure
it on this page, but just check if everything is correct.
Audio configuration: Allows to select the audio devices used for audio playback or audio input.
User loaded fixtures: Allows to remotely load a custom fixture to QLC+.
When clicking on the Load fixture button, a window will show up, allowing you to choose a file from thedevice you're using to control the device where QLC+ is running.
The fixture file will be transferred via web and loaded by QLC+.
When adding new custom fixtures it is recommended to reload a project or either restart QLC+ on thetarget device.

Authorized users: This section is available only when starting QLC+ with the "-wa" or "--web-auth"option. It enables basic HTTP authentication (no HTTPS or certificates involved).
When enabling this feature for the first time, you need to add at least an administrator, otherwise you will
not be asked for any password when accessing the web interface.
Users can have the following access levels:
Everything: This is the access level for administrators. They can access every functionality of the
web interface and add more authenticated users
Virtual Console and Simple Desk: a user with this access level can view the Virtual Console andSimple Desk page, but cannot access the Configuration page
Only Virtual Console: a user with this access level can view only the Virtual Console page, butcannot access the Simple Desk and the Configuration pageAn administrator can:
Add more users by filling the Username and Password fields and then clicking on the "Add user"
buttonDelete an existing user by clicking on the "Delete user" button
Change the access level or password of an existing user and then click on the "Change" button
Once the configuration has been set, it is possible to go back to the web interface main page by clicking on
the Back button, placed at the top left corner of the page.

Known limitations
The QLC+ web interface is still a work in progress feature and it has some known limitations you should beaware of if you intend to use it.
Speed Dial and XY Pad widgets are not supported yet
Sliders Click & Go button is not supported yet
QLC+ has a special mode when your lighting needs to be operated by inexperienced people, or you just wantto prevent unwanted changes. It's called the Kiosk mode. In this mode only the Virtual Console is displayed,so no editing is possible.
When you want to start QLC+ in kiosk mode, run:
qlcplus -k -f -o workspace.qxw -p -c 500,10,32,32-k enables the kiosk mode-f puts QLC+ in fullscreen mode-o workspace.qxw opens specified workspace-p starts operate mode-c 500,10,32,32 creates a close button with size of 32x32 pixels, 500 pixels from left and 10 pixels fromtop.
You can of course specify your own workspace file for -o, and size/position for -c.

You can omit any of the parameters if you need to - for example, omit -c 500,10,32,32 if you don't want close
button, and omit -f if you don't want fullscreen.
All command-line parameters are described here.
QLC+ supports a number of command line parameters to automate/extend some functionalities on startup.
Using command line parameters can be tricky depending on the operating system you're using:Linux: just open a terminal and type "qlcplus" followed by the parameters you need
Windows: create a shortcut of qlcplus.exe (usually located in C:\QLC+) on your desktop. Right click on the
shortcut and select "Properties". In the "Target" field you will see something like C:\\QLC+\\qlcplus.exe .
There you can add command line parameters. When done click OK.
For example, to force the German language at startup, modify your shortcut command line like this:

OSX: This is the most difficult case since QLC+ on OSX is bundled into a DMG package. You need to open aterminal and "cd" into the QLC+ DMG like this: cd QLC+.app\\Contents\\MacOS
When done, type "qlcplus" followed by the parameters you need-c or --closebutton
Description: Define a position for a close button in the virtual console. The button can be used to close
QLC+. Only has an effect in kiosk mode (see -k) and is most useful when in fullscreen mode without awindow manager.
Parameters: x,y,w,hExamples:Create a button at (x400, y500) whose size is (w70, h50):
qlcplus -c 400,500,70,50
qlcplus --closebutton 400,500,70,50-d or --debug
Description: Enable debug mode and optionally set the output level. Note that since 4.8.0 messages forlevel DEBUG (0) are not included in released binaries.
Parameters: Level (see QtMsgType)
Examples:Enable debug mode and set debug level to 0:
qlcplus -d
qlcplus --debug
Enable debug mode and set debug level to 3:
qlcplus -d 3

-f or --fullscreen
Description: Start the application in fullscreen mode
Parameters: Method (either 'normal' or 'resize')
Examples:Tell the window manager to give the whole screen space to QLC+:
qlcplus -f
qlcplus --fullscreen
qlcplus -f normal
qlcplus --fullscreen normal
Resize QLC+ to take up the whole screen space (useful in custom X11 sessions without a window
manager):
qlcplus -f resize
qlcplus --fullscreen resize-g or --log
Description: Log debug messages to a file ( $HOME/QLC+.log )Parameters: None
Examples:Enable debug messages and store them to log
qlcplus -d 0 -g
qlcplus --debug 0 --log-h or --help
Description: Display command-line help (only in Linux & OS X)
Parameters: None
Examples:Display the command-line help:
qlcplus -h
qlcplus --help

-k or --kiosk
Description: Enable kiosk-mode (only virtual console is visible and the application is locked in operate
mode)
Parameters: None
Examples:Start the application in kiosk mode:
qlcplus -k
qlcplus --kiosk-l or --locale
Description: Use the given language for translation
Parameters: Language code (currently supported: ca_ES, cz_CZ, de_DE, en_GB, es_ES, fi_FI, fr_FR,
it_IT, ja_JP, nl_NL, pt_BR)
Examples:Use finnish language:
qlcplus -l fi_FI
qlcplus --locale fi_FI-m or --nowm
Description: Inform the application that the system doesn't provide a window manager. QLC+ will
therefore add some extra controls to close the windows.
Parameters: None
Examples:Start QLC+ with no window manager:
qlcplus -m
qlcplus --nowm

-n or --nogui
Description: Start the application with the GUI hidden (Raspberry Pi only)
Parameters: None
Examples:Start QLC+ with no visible GUI:
qlcplus -n
qlcplus --nogui-o or --open
Description: Open the given workspace fileParameters: File nameExamples:Open sample.qxw:
qlcplus -o sample.qxw
qlcplus --open sample.qxw-p or --operate
Description: Start the application in Operate mode.
Parameters: None
Examples:Start QLC+ in operate mode:
qlcplus -p
qlcplus --operate-v or --version
Description: Display the current application version number
Parameters: None
Examples:
qlcplus -v
qlcplus --version

-w or --web
Description: Enable remote web access on port 9999
Parameters: None
Examples:
qlcplus -w
qlcplus --web-wp or --web-port
Description: Use a specific port for web access
Parameters: Port number
Examples:
qlcplus -wp 12345
qlcplus --web-port 12345-wa or --web-authDescription: Enable remote web access with users authentication
Parameters: None
Examples:
qlcplus -wa
qlcplus --web-auth-a or --web-auth-file
Description: Specify a file where to store web access basic authentication credentials
Parameters: File nameExamples:
qlcplus -wa qlcplus_password
qlcplus --web-auth-file qlcplus_password
This section explains how to manually get at and tune some QLC+ parameters not available from the UI.
Keep in mind that if you cannot change them from the UI, it means there is a good reason for it.

Warning: DO NOT edit the configuration files manually unless you know what you're doing. Any
misplaced change can cause program crashes or awkward instability.

QLC+ configuration location

Linux
Configuration files are located in your user $HOME directory, in the .config/qlcplus folder.
Here's the quick command to access it from a terminal:
cd $HOME/.config/qlcplus

You will find both QLC+ and Fixture editor configuration files.

Windows
Configuration parameters are stored in the Windows registry.
To access it, run the "regedit" tool and search for the key named "qlcplus".
The key where user configuration is stored is named Computer\HKEY_CURRENT_USER\Software\qlcplus\

macOS
Configuration files are located in your user $HOME directory, in the Library/Preferences folder, which is bydefault hidden by macOS.
Here's the quick command to access it from a terminal:
cd $HOME/Library/Preferences

The QLC+ configuration file is called net.sf.Q Light Controller Plus.plist while the Fixture editor
configuration file is called net.sf.Fixture Definition Editor.plist .
Please note that preferences are cached!
Basically macOS loads all the plist files in memory at boot, and if you change them manually it will ignore thechanges. Even worse, periodically it refreshes the files, so it overwrites your changes.
The solution is, after changing a .plist file, open a terminal and type this:killall -u yourusername cfprefsd

Where yourusername is the name of the user you use to access your Mac. The command forces macOS toreload the preferences, including your changes.

Configuration Reset

Sometimes it might be necessary to reset the QLC+ configuration and bring QLC+ to a "Factory defaults"
state.
To do so, locate the configuration as explained in the first paragraph, then do the following:
On Linux and OSX use the rm 'filename' command to delete the configuration file
On Windows delete the whole 'qlcplus' KEY using regedit

Parameters syntax

Due to Qt differences on different platforms, parameters are stored in different ways depending on yourOperating System.

Linux
Parameters are stored in a plain text file that you can modify with a plain text editor like gedit, kwrite, kate,nano, vim or similar. They are presented as follows:[category]
name=value

Windows
Parameters are stored in the Windows registry and can be modified with the regedit tool included in every
Windows version. They are presented as follows:"category" is displayed as a folder"parameter" is contained in "category" and is represented as a key. It is most likely that all"value" is the actual value of "parameter"

Mac OSXParameters are stored in a plain text file that you can modify with a plain text editor like TextWrangler orsimilar. They are presented as follows:<key>category.name</key><string>value</string>or<integer>42</integer>

Parameters list

Most likely you will not find the following parameters in a standard QLC+ configuration. To make themeffective, you need to add them at the end of your configuration file.
1. Simple Desk
Category: simpledesk
Name: channelsperpage
Type: integer
Description: Set the number of DMX channel sliders displayed per page

Default: 32
Category: simpledesk
Name: playbacksperpage
Type: integer
Description: set the number of playback sliders displayed per page
Default: 15
2. DMX USB Enttec Open channels number
Category: enttecdmxusbopen
Name: channels
Type: integer
Description: Set the maximum number of DMX channels transmitted by Enttec Open (and similar) devices.
In some cases this could solve flickering issues. For example you might try with 256.
Default: 512
3. uDMX frequency
Category: udmx
Name: frequency
Type: integer
Description: Set the DMX frame frequency in Hertz for uDMX devices
Default: 30
4. uDMX channels number
Category: udmx
Name: channels
Type: integer
Description: Set the maximum number of DMX channels transmitted by uDMX devices.
In some cases this could solve flickering issues. For example you might try with 128.
Default: 512
5. Master Timer frequency
Category: mastertimer
Name: frequency
Type: integer
Description: Set the QLC+ core timer frequency in Hertz
Default: 50
Starting from version 4.5.0, QLC+ can read a custom file to change the GUI appearance in a very accessibleway.
If no file is found, QLC+ will start with the default style.

The theme style file

The file name is hard-coded into QLC+ and must be: qlcplusStyle.qss
The style file must also be placed in a specific path which is:Linux: $HOME/.qlcplus
Windows: C:\\Users\{Username}\QLC+
OSX: $HOME/Library/Application\\ Support/QLC+
The theme file is divided in sections. Each section represents the UI items that will be modified when running
QLC+. Unchanged sections can be omitted.
Sections start with a bunch of === characters and the section name.
At the moment, supported section keywords are:============== MAIN============== SIMPLE_DESK_NONE============== SIMPLE_DESK_EVEN============== SIMPLE_DESK_ODD============== SIMPLE_DESK_OVERRIDE============== GRANDMASTER============== FIXTURE_CONSOLE_COMMON============== FIXTURE_CONSOLE_NORMAL============== FIXTURE_CONSOLE_EVEN============== FIXTURE_CONSOLE_ODD============== CONSOLE_CHANNEL_COMMON

The section content must have a CSS syntax. If you're comfortable with web designing, you should find thecreation of this file very easy!
Since the style file is strictly related to the inner Qt objects, you might want to read the following articles to findout the elements' names and the additional CSS properties the Qt team added to the default CSS syntax.
Qt Style Sheets
Qt Style Sheets Examples
It is up to your imagination how you prefer to customize the QLC+ GUI appearance! If you find a style worth
sharing, don't forget to send in your contribution by posting it online in the QLC+ forum
Please note: not all styles are available to be changed via the stylesheet as they are hard-coded in C++.

QLC+ dark blue style example
Just to give you an example of how easy this process is, here's a bluish dark style for QLC+.
If you copy the following lines into qlcplusStyle.qss in the right location as explained above, you will see itapplied to QLC+ at the next startup.
============== MAIN
QMainWindow, QDialog{
background-color: #404B57;
color: #E6E6E6;}
QTreeWidget{

background-color: #3A444F;
alternate-background-color: #404B57;
color: #E6E6E6;}
QTextBrowser{
background-color: #3A444F;
color: #E6E6E6;}