Fixture Editor
Editing and creating fixture profiles, modes, capabilities and gobos.
Where fixture profiles live: what channels a model has, what each one does, what its wheels hold, and how its emitters are arranged. Patching picks a profile; this window is where profiles come from.
Open it from File → Fixture Editor or with FIXTURE EDITOR.
Profiles are shared by the whole library, not by one show. Editing a profile changes it for every show that patches that model.
The library list
The left-hand pane is the whole fixture library, searchable by manufacturer or model. Under it:
| Button | Does |
|---|---|
| + | Start a new fixture definition from scratch |
| Trash | Delete the selected definition |
| Import GDTF file | Import a .gdtf file you already have |
| Browse GDTF Share | Search and download profiles from GDTF Share (needs an account; credentials can be stored in the system keyring) |
| Discover unknown fixture | Identify a fixture that has no profile - see below |
Picking a fixture is not instant - a big profile is a second or more to read and build - so the library marks it as selected straight away and the editor beside it shows a turning ring and the fixture’s name until it is ready. Switching mode does the same. A small profile opens too quickly to be worth saying so and shows no ring. Neither is a hang, and clicking again does not help.
LMX ships a factory library. Your edits go to a writable copy under ~/.lmx/,
so an update to LMX never overwrites your own profiles, and a deleted user
library is restored from the factory copy on next launch.
The header
Across the top of the window: the fixture being edited, its manufacturer, version, channel count and head count, and the mode the rest of the window is scoped to. Switching mode switches the channels, the heads and the emitter layout together - they belong to the mode, not to the fixture.
An Unsaved changes badge appears beside the mode picker the moment anything is edited, and Save, Save as New and Close sit at the right-hand end.
The Fixture tab
What belongs to the whole fixture rather than to one channel:
- Identity - manufacturer, model, profile version. The version is what a showfile stores alongside the fixture type, so bump it when a change would move fixtures already patched.
- Body & photometrics - the shape the visualiser draws when the profile ships no mesh, the luminous flux every brightness path is scaled by, and the beam angle.
- Heads & emitters - how many cells this mode has, and Edit emitters…, which is where the lamp’s emitters physically sit and how big they are. That layout is what the 3D visualiser draws and what a lens flare is sized from.
The Channels tab
The DMX map
Across the top: the mode’s whole DMX footprint drawn to scale, one block per channel, with a ruler above it. It answers the question a channel list cannot - where does this fixture sit - so a hole in the patch, a channel claimed twice and a 16-bit pair split across the footprint are all shapes rather than numbers you have to compare.
- A block’s outline says how wide the channel is: blue for 8 bit, amber for 16 bit, violet for 24 bit, matching the key beside the heading. Anything wider than 8 bit also carries a badge.
- A block’s fill is the family colour the list uses, so the fixture’s shape reads at a glance.
- A channel no capability claims is drawn hatched and marked Unassigned. Two
capabilities on one channel are both outlined in red, marked
OVERLAP, and stacked on separate rows so neither hides the other. - A capability’s channels are drawn as one block only where they are really adjacent. Park a fine channel at the other end of the fixture and it becomes two blocks, which is what it is.
- A virtual channel occupies no address, so it is not on the map; the heading says how many there are.
Click a block to select that channel - the list and the inspector follow it, and picking a channel in the list highlights its block. Zoom with the − and
- buttons, or Fit to put the whole footprint back on screen; the map fits itself whenever you change fixture or mode until you touch the zoom.
The channel list
The left half below the map is the channel browser: every channel the mode has, filed under the family it belongs to - Intensity, Position, Colour, Shutter & strobe, Gobo, Prism, Focus, Zoom, Frost, Beam, Media, Control, Other
- with its DMX address beside it, its type after that, and its resolution last
(blank at 8 bit, which nearly everything is). On a fixture with more than one
head there is a Head column between the name and the address, because
twenty channels called RED, GREEN, BLUE and WHITE on a five-zone wash are told
apart by nothing else; it says the cell number, or All for a channel that
belongs to the fixture as a whole. A single-cell fixture has no cell to scope a
channel to, so it is not shown one. Each row carries an icon for what
the channel is rather than for its family, so a zoom, an iris and a frost are
told apart on a tab that files all three under Beam; an emitter channel is drawn
in its own colour. Channels are ordered by address within their family, and a
virtual channel (one that occupies no address) sits at the end of its family
marked
virt.
Type in the Filter channels box to narrow the list by name, type, head or address; the count beside the heading says how many of how many are showing. Filtering narrows the list only - the map goes on showing the whole mode. Under the list, Add channel adds one at the next free address, Duplicate copies the selected one onto the next free address, and the trash removes it. Right-clicking the list offers the same three.
The inspector
The right half is the inspector for the selected channel. A strip along the top names the channel being edited, its family and where it is patched - the cards below are titled by subject, so without it the panel reads the same whichever of ninety channels is selected. The cards fold away:
- What this channel is - its name (the key cues, palettes and the CLI
address it by), the display name an operator reads, its type and its unit.
The type is what LMX uses to decide what a capability is - an
intensity, acolour, aposition, agobo- which is in turn what makes palettes, effects, targets and the visualiser work on it, and what files the channel in the browser. - Patch - the DMX address, the resolution, the fine and ultra-fine channels a 16- or 24-bit parameter takes with it, and which head the channel belongs to on a multi-cell fixture. Tick Virtual for a channel that occupies no DMX address and only scales the output of the channels pointed at it.
- Behaviour - HTP or LTP merging, whether the channel fades or snaps, the virtual master that scales it, and the capability it affects.
- Range - the physical range the channel covers, the DMX range it covers it over, and where it rests when nothing is driving it. Above the fields is the travel as a fader - the programmer’s own, run horizontally - with the low end of the range written to its left, the high end to its right, and the rest position on the handle and spelled out above it in both languages (the channel’s own unit and the raw DMX). It follows the fields as you type, and dragging the handle sets the default: it is the Default DMX field, not a picture of it.
- GDTF & advanced - the GDTF attributes the channel was built from, which is what LMX judges behaviour on in preference to matching words in the name; which way round the range runs; whether a colour wheel drives the fixture’s own emitters rather than filtering the beam; and a tint’s neutral point.
- Segments - for a wheel or a stepped channel, the list of gobos, colours or ranges: each with a DMX range, a name, a label and (for colours) an RGB value or (for gobos) an image. The Selected segment fields under the table carry what a segment means - the Kelvin it selects, whether it puts a prism in the gate and how many facets that prism has.
- Test encode / decode - try a physical value against the channel and see the DMX bytes it produces, or the other way round, without patching anything.
Changes are held until you save.
Discover unknown fixture
For a fixture with no profile and no manual. LMX steps a channel at a time, sending live DMX so you can watch the fixture and say what each channel does. The result is a working profile.
Because it sends live DMX it pauses normal output while it runs, and asks before doing so.
GDTF imports
GDTF is the industry profile format, and most manufacturers publish to GDTF Share. LMX converts a GDTF into its own capability model on import. The conversion is good but not total - some exotic capability structures do not have an LMX equivalent and are dropped with a warning rather than guessed at. If an imported fixture is missing an attribute you expected, look at the channel browser first.
Downloading a lot of them at once
Browse GDTF Share is built for taking a whole manufacturer, not one fixture at a time. Every model in the list has a tick box, and ticks are remembered as you search and as you move between manufacturers - so you can tick a dozen Robe fixtures, go back, tick a few Chauvet ones, and fetch the lot in one go.
| Control | Does |
|---|---|
| Tick All Listed | Ticks everything the page is showing. On the manufacturer list that means every model those manufacturers make, so searching “robe” and pressing it queues the whole Robe catalogue |
| Clear Ticks | Empties the queue |
| Skip files already in the folder | Leaves alone anything already downloaded, so a re-run after a dropped connection only fetches what is missing |
| Download Ticked… | Asks for a folder and saves the .gdtf files there |
| Download & Import Ticked… | Downloads to a temporary folder and imports every one into the library |
You always get the newest revision of each model. Downloads run one at a time with a progress bar you can cancel, and one fixture that fails to download or import does not stop the rest - the summary at the end names what failed and why.
To do the same thing without the window open - an overnight refresh, say - there is a script:
python scripts/gdtf_share_bulk_download.py --manufacturer Robe
python scripts/gdtf_share_bulk_download.py --all --out ~/gdtf
After editing a profile
Fixtures already patched to that profile pick up the change. If the change moves
channels around, re-check addressing with PATCH REPORT. To move existing
fixtures to a different profile entirely:
EXCHANGE 1 THRU 8 TYPE Chauvet Professional Rogue R3 Spot
EXCHANGE 1 THRU 8 MANUFACTURER Robe MODEL "Robin DL7S Profile" FORCE
EXCHANGE keeps ids, addresses, positions and group membership; FORCE is
needed when the swap would lose values that the new profile cannot hold.