# QLab

QLab is a cue-based, multimedia playback software package for macOS, intended for use in theatre and live entertainment. It is developed by Figure 53, an American company based in Baltimore, Maryland.

## Structure

QLab is centered around the concept of cues, which are grouped into cue lists. A simple workspace might contain a single cue list with multiple cues, each of which plays back a single audio file. More complex workspaces may contain multiple cue lists, groups of cues, advanced timing control, and integrations with external devices.$^{:43}$
One main function of QLab is as a media playback software, with additional abstraction and editing functionality. Each media file, such as a video or audio file, is referenced ("targeted" in QLab terminology) by its own cue. QLab contains advanced non-destructive editing functionality with its system of abstraction through cues. Any changes made to a cue are saved as part of the cue, and not the media file itself.$^{:55–56}$
In addition to media files, some cue types are capable of targeting other cues. These cues, such as Fade cues and Start cues, enable advanced scripting and programming capabilities. To create advanced multimedia sequences in QLab, multiple cues are used in combination, linked together with pre-programmed or manually-triggered timing.$^{:43}$
The latest version, QLab 5, supports 25 types of cues:
* Audio
* Video
* Camera
* Text
* Lighting (Art-Net or DMX)
* Fade
* Open Sound Control
* MIDI (voice messages, sysex, or MSC)
* MIDI File
* Timecode (MTC or LTC)
* Group
* Start
* Stop
* Pause
* Load
* Reset
* Devamp
* Goto
* Target
* Arm
* Disarm
* Wait
* Memo
* Script (AppleScript)

## Version history

The concept for QLab originated in late 2005, when Baltimore-based theater designer Chris Ashworth responded to a request from a small theatre company for audio playback solutions. The initial version of QLab utilized the Core Audio API in Mac OS X, a defining feature, which made the program exclusive to Apple computers. Ashworth advertised the beta version of QLab on a listserv for theatrical sound designers, and incorporated their feedback into version 1.0, released in September 2006.$^{:xxvi}$ Within a year of its release, QLab was in use on Broadway and the West End, in revivals of Grease and In Celebration.
QLab 2 was released in 2009. Key features in version 2 include a revised interface; support for timecode via MIDI and LTC; automatic and manual vamping; and scripting via AppleScript, Python, and Ruby.
QLab 3, released in 2013, introduced a rebuilt video system, support for Open Sound Control, and a mobile app for remote control on the iPad. Version 3.2.15, released in October 2018, is the final supported release of QLab 3.
QLab 4 was released in 2016, introducing lighting control functionality. QLab 4 controls lighting devices with the industry standard DMX512 protocol, using commercially available USB-DMX adapters or networked systems via Art-Net. This version also integrates features from QCart, a previously separate program for non-linear show control and advanced programming.$^{:3–11}$
QLab 5 was released in 2022. This version adds features for real-time collaboration, and introduces a rebuilt video rendering system based on the Metal API. Additional features include a revised audio routing system and enhanced functionality in the "Audition" preview mode. As of September 2024, QLab 5 is the latest major version of the program.
All major versions of QLab are supported by smaller releases of bugfixes and additional features. As of November 2023, QLab 4 and 5 receive these updates.

## Licensing

QLab offers multiple tiers of licenses, reflecting the broad feature set of the program. The free version of the program includes limited audio and video playback functionality, and separate licenses are available for fully-featured audio output, video output, and lighting control.
Licenses are available as a perpetual license, as a daily rental, or as a volume license for large installations. As of November 2023, licenses are only sold for QLab 5; these licenses are also honored for QLab 4 installations. Perpetual licenses can be reassigned to different computers via an automated web interface.

## Features
### Audio playback

QLab allows an end-user or designer to align audio files in a sequential order. Once the audio files are inserted into the cue list, the end-user can then manipulate it by looping it, changing the amplitude or volume, and adding fades in or out. Audio cues can also be placed into groups, so that multiple files can be triggered at one moment.

### Video playback

QLab is capable of playing back multiple video formats, fully integrated with audio playback and other cues. In addition to video files, QLab can route and display video signals from cameras, through multiple supported protocols. A text editor is also available for surtitles and other applications, and video effects can be applied to any content. The video system in QLab supports advanced use cases such as projection mapping.$^{:187–188}$
Video output is available through a variety of protocols. QLab 5 utilizes multiple layers of abstraction in its video output system, allowing output devices such as screens and projectors to be split, combined, and manipulated. QLab can output video through the Mac's native video outputs, Blackmagic Design video adapters, and network devices over Syphon and NDI.

### Show control integration

QLab supports MIDI bi-directionally. QLab allows MIDI signals to be sent as a cue to trigger other devices, such as digital audio consoles. The software also accepts MIDI signals as triggers for its own cues. MIDI signals can be sent to QLab from any other MIDI capable device, using a MIDI interface.

### Live playback

A key software feature with QLab is its ease of use in live playback situations. The designer of a cue sheet can save their show file, and lock it, preventing any changes to the cues. After doing so, an untrained user can run the software in a playback situation. By default, a cue is triggered by clicking a large GO button on the screen, or by pressing the space bar.