Skip to content

Light supporting modules

The modules the light pipeline is assembled from, beside the effects, modifiers, layouts and drivers you pick. They are the containers you add them to, the Layer that composites effects, and the fixture profiles that say how a light's channels are wired. The classes underneath, which are no module, are in the MoonLight architecture.

Drivers

Drivers preview

The container of driver modules, owning the shared buffer and the per-light output correction every driver applies before sending. Every driver under it reads its own slice of that buffer, as the drivers catalog shows.

  • on: Master power.
  • relayPins: GPIOs switching the LED power supply, closed while on and brightness is above 0.
  • brightness: Global output brightness, multiplied with each driver's localBrightness.
  • identify: Blink the lights for five seconds, so this device is found by looking.
  • palette: What effects sample from: a built-in palette or a scripted .mlp one.
  • paletteScript: The scripted palette's file, which palette picks.
  • motionHold: How long a powered-off rig keeps tracking before its heads go still, in seconds.
  • multicore: Run the output stage on the second core.
  • renderWait: How long core 0 waited for core 1 at the frame boundary.

Source

Effects

Effects preview

The container holding every rendering layer, which Drivers composites into one output. Each layer renders independently into its own buffer, over the physical topology the shared Layouts describes.

Source

FixtureProfiles

FixtureProfiles preview

The named channel wirings drivers reference: which channel carries Red, Green, Blue, White, or a fixture role such as Pan and Tilt. Real fixtures ship read-only, the color orders, multi-channel pars and moving heads. Add your own alongside them. A driver saves its profile by name, so a rename sends it back to its default at the next boot.

  • profiles: The editable list of profile rows.

Source · Tests

Layer

Layer preview

One rendering layer: a buffer, a mapping onto physical lights, and the effects that fill it. Effects write the buffer, modifiers reshape it, and Drivers composites the stack of layers into one output.

  • blendMode: How this layer combines with the layers below it.
  • opacity: How strongly this layer shows, from invisible to full.

Source

Layouts 💫

Layouts preview

The container defining the installation's physical light topology. One Layouts describes the setup, and every layer in Effects renders into it. Children stitch into one flat physical address space, in registration order.

Source

FixtureProfiles, details

16-bit channels

A fine role is the low byte of a 16-bit channel, the DMX convention. RGB 16-bit, GRB 16-bit and RGBW 16-bit ship built in. Effects stay 8-bit, and brightness and curve go to 16 bits on output. Pan and tilt widen by repeating their byte, and a master dimmer is held wide open.

Color balance

A batch whose white looks tinted gets a profile of its own with the strong die pulled down: green at 220 takes a green cast out. The gain applies after the curve, so 128 is half the light, and every driver on that profile follows.

Which profile a chip takes

Chip Profile
WS2812B, WS2813, WS2815 GRB
SK6812 RGBW GRBW
WS2814 WRGB
WS2816 GRB 16-bit
UCS8903 RGB 16-bit
UCS8904 RGBW 16-bit

A WS2811 orders its colors as its maker wired it, so try RGB, then the other five orders. The TM1814 and TM1914 need a settings preamble that a profile cannot describe.

Layer, details

Trails and fades

Nothing clears the buffer between frames, so an effect that fades what is already there leaves a trail. A fade is a rate, so a trail is the same length at any frame rate. Several fading effects cost one pass.

The status line

The status shows the logical box the effects render into. A mirror modifier folds a 128 by 128 layout into a 64 by 64 box. A warning replaces it when the layer does not fit in memory.

Layouts, details

Order and universes

Disabling a layout removes its lights and the layouts after it shift down. Reordering by drag and drop shifts them too. Both move Art-Net universe assignments, so disable the driver to keep a mapping stable.

The status line

It reports the total light count and the physical bounding box. A dense grid's count equals its box volume, so a smaller count signals a sparse layout.