The Hardware Abstraction Layer (HAL for short) is a central component of DMXControl 3. Instead of directly addressing the functions of DMX-controlled devices, these functions are processed through an intermediate module in DMXControl. This means that when working with DMXControl 3, you no longer interact directly with DMX channels and DMX values.
Overview
With the help of the HAL, the DMX channels and their associated DMX values, which are required to call a function on a device, are abstracted directly to the property itself. These abstracted properties are stored in the cues independently of a device's channel layout. For example, the dimmer is stored simply as "set dimmer to 50%" or the color as "red to 132, green to 43, and blue to 0", representing the RGB value 132; 43; 0.
The HAL offers the following advantages for the workflow:
- All devices are largely controlled in the same way using a standardized user interface consisting of the control panels for common device functions and the device control.
- Functions can be called up using clear text or sliders. These operate consistently, regardless of the device.
- Device groups can be heterogeneous, meaning you do not need to differentiate between different device types during programming.
- The channel layout of a device is no longer relevant for programming.
The HAL applies to several device functions, including the shutter and dimmer, strobe function, color channels, and gobos.
In practical terms, even with a mixed device group containing LED spotlights, scanners with color wheels, and wash-moving heads with CMY color mixing, you can set the color centrally as an RGB value for the entire device group. The HAL handles the conversion to various color mixing systems or selects the closest matching color for devices with fixed colors.
Key Features
The HAL influences how devices behave within the project, both internally in DMXControl 3 and during the data output process:
- The HAL defines a default state for each function that all devices assume unless modified by a cuelist.
- The HAL provides virtual implementations of certain functions for devices that lack them.
- The HAL manages the interaction of different devices, simplifying the process for the user.
- The HAL monitors which values are authorized for output, particularly when multiple active cuelists target the same function.
Usage
Default State for Functions
When devices are added to a project, they adopt a predefined default state. This usually means that DMX values are sent to devices in this state, which is often visible for properties like position and color.
![]() |
These values are embedded in DMXControl 3 and cannot be changed. If you require a different initial state, create a dedicated background cuelist. |
Function | Default Value | Explanation and Notes |
---|---|---|
Position | Center of the pan-tilt range | For moving heads, this typically means the lens points vertically upward and the tilt arm is parallel to the base. |
Pan-Tilt Speed | Maximum speed 100% |
|
Color | White 255; 255; 255 |
|
Color Temperature | Daylight white 6500 K |
This value is selected when virtual color temperature control is enabled for devices with the appropriate LED chips. |
Notes
- Color: All devices default to white when the dimmer is raised, including LED spotlights, which behave similarly to moving heads or scanners with discharge lamps. If you open the shutter here and raise the dimmer, they also light up white directly.
Software-Provided Functions
Dimmer / Shutter
Whether an LED spotlight has only RGB channels or an additional dimmer channel, brightness can be controlled uniformly. For devices without a physical dimmer, the HAL provides a virtual dimmer.
Strobe
If a device lacks a built-in strobe function, the HAL provides a virtual strobe effect. The maximum frequency for this software-generated strobe is 5 Hz
.
![]() |
The virtual strobe toggles the dimmer channel (or RGB channels) on and off. This process occurs per device, meaning perfect synchronization between devices cannot be guaranteed. |
Color Temperature
For devices with multiple white LEDs (e.g., cold white and amber), the HAL provides a virtual color temperature control, automatically incorporating any additional white LED colors like warm white.
Interaction of Functions
Function behavior varies depending on the property:
Color
Colors are stored as RGB values in a scene. This allows combining different device types within a device group. The HAL ensures that the most suitable value is selected for each device.
For example, if a device group contains LED spotlights, scanners with color wheels, and wash-moving heads with CMY color mixing, setting the color to red ( 132, green 43, blue 0) will:
- Output the exact RGB value for LED spotlights.
- Select the closest matching color on the color wheel for scanners.
- Convert RGB to CMY for wash-moving heads.
Gobo
Gobos require special handling due to device-specific differences. DMXControl 3 includes an internal gobo database that tracks similarities between gobos, allowing the HAL to activate the most similar gobo across different devices.
For instance, if one moving head has a five-dot circle gobo and another has a five-star gobo, both will display their closest equivalent when the five-dot gobo is selected.
Output Monitoring
Beyond providing consistent control, the HAL also monitors values from multiple cuelists and the programmer. Based on cuelist priorities and mixing modes, only the most relevant value is passed to the DMXC mixer, ensuring that devices receive the correct data.
Links and References
Links