Cues for Joey and Courtney’s wedding reception. Useful as an example of how an actual small show was put together using a subset of the Deep Symmetry lighting rig, and perhaps as a source of effects that may want to make their way to a more central place


(build-group-cue-elements group effect-suffix name-suffix)

Helper function which builds the common variables needed to create a cue which runs on either all lights or a named group of lights.


(build-ratio-param var-map)

Creates a dynamic parameter for setting the beat ratio of one of the dimmer oscillator cues in make-cues by forming the ratio of the cue variables introduced by the cue. This allows the show operator to decide over how many beats the oscillator runs, and how many times it cycles in that interval.

Expects the cue’s variable map to contain entries :beats and :cycles which will form the numerator and denominator of the ratio. If any entry is missing, a default value of 1 is used for it.


The location of the ceiling on the show Y axis.


(circle-chain fixtures ceiling? & {:keys [bars radius stagger], :or {bars 2, radius 1.0, stagger 0.0}})

Create a chase that generates a series of circles on either the floor or the ceiling, causing a single head to trace out each, and passing them along from head to head.

The number of bars taken to trace out each circle defaults to 2 and can be adjusted by passing a different value with the optional keyword argument :bars. The radius of each circle defaults to one meter, and can be adjusted with :radius. If you want each head to be tracing a different position in its circle, you can pass a value between zero and one with :stagger.


(dimmer-sweep fixtures osc & {:keys [width level fade], :or {width 0.1, level 255, fade false}})

An effect which uses an oscillator to move a bar of light across a group of fixtures. The width of the bar, maximum dimmer level, and whether the level should fade from the center of the bar to the edge, can be controlled with optional keyword arguments.


(global-color-effect color & {:keys [include-color-wheels? fixtures effect-name], :or {fixtures (show/all-fixtures)}})

Make a color effect which affects all lights in the show. This became vastly more useful once I implemented dynamic color parameters. Can include only a specific set of lights by passing them with :fixtures


(global-dimmer-effect level & {:keys [effect-name add-virtual-dimmers?]})

Return an effect that sets all the dimmers in the show. Originally this had to be to a static value, but now that dynamic parameters exist, it can vary in response to a MIDI mapped show variable, an oscillator, or the location of the fixture. You can override the default name by passing in a value with :effect-name


(group-end-keys effect-suffix)

Helper function to produce a vector of effect keywords to end all effects running on light groups with a given suffix.


The location of the wall behind the audience on the show Z axis.


The location of the house left wall on the show X axis.


The named groupings of lights to build rows of effects in the cue grid.


(make-ambient-cues page-x page-y)

Create a page of cues for controlling lasers, and ambient effects like the H2O LED and black light.

Also holds cues for turning on sound active mode when the show operator wants to let things take care of themselves for a while, and doesn’t mind losing the ability to control show brightness via dimmer masters.


(make-color-cue color-name x y & {:keys [include-color-wheels? held fixtures effect-key effect-name priority], :or {fixtures (show/all-fixtures), effect-key :color, effect-name (str "Color " color-name), priority 0}})

Create a cue-grid entry which establishes a global color effect, given a named color. Also set up a cue color parameter so the color can be tweaked in the Web UI or on the Ableton Push, and changes can be saved to persist between invocations.



Create the cues for the show, using the above helper functions.


(make-dimmer-cue group x y color)

Creates a cue which lets the operator adjust the dimmer level of a group of fixtures. Group will be one of the values in light-groups, or nil if the cue should affect all lights.


(make-main-color-dimmer-cues page-x page-y)

Creates a page of cues that assign dimmers and colors to the lights. This is probably going to be assigned as the first page, but can be moved by passing non-zero values for page-x and page-y.


(make-movement-cues page-x page-y)

Create a page of with some large scale and layered movement effects. And miscellany which I’m not totally sure what to do with yet.


(make-sawtooth-dimmer-cue group x y color)

Create a cue which applies a sawtooth oscillator to the dimmers of the specified group of fixtures, with cue variables to adjust the oscillator parameters.


(make-sine-dimmer-cue group x y color)

Create a cue which applies a sine oscillator to the dimmers of the specified set of fixtures, with cue variables to adjust the oscillator parameters.


(make-square-dimmer-cue group x y color)

Create a cue which applies a square oscillator to the dimmers of the specified set of fixtures, with cue variables to adjust the oscillator parameters.


(make-strobe-cue-2 name fixtures x y)

Create a cue which strobes a set of fixtures as long as the cue pad is held down, letting the operator adjust the lightness of the strobe color by varying the pressure they are applying to the pad on controllers which support pressure sensitivity, and having the base strobe color depend on a shared show color variable. On controllers which support it, the color of the cue pad will be also driven by this shared color variable, with a white flicker to emphasize them as strobing cues.


(make-torrent-cues page-x page-y)

Create a page of cues for configuring aspects of the Torrent F3s and another to its right for their gobo selection.


(make-triangle-dimmer-cue group x y color)

Create a cue which applies a triangle oscillator to the dimmers of the specified set of fixtures, with cue variables to adjust the oscillator parameters.


(patch-other-lights & {:keys [universe], :or {universe 1}})

Patches the Weather Systems and Hex IRCs, which are going to be separately positioned so this will need to be hand-edited to reflect their actual locations before using the show.


(patch-torrents-and-snowball & {:keys [universe y], :or {universe 1, y (tf/inches 88)}})

Patches the moving heads which are on the larger tripod stand, which defines the origin of the show, the spot on the floor underneath the center of the T-bar. The z axis increases towards the audience from that point.

Because the height of the tripod can be adjusted, you can pass in a value with :y to set the height of the center of the T-bar. If omitted a default height of 88 inches is used, which is the height to which it was raised during our rehearsals.

Fixture numbers are assigned stage left to stage right (looking at the lights from behind).


The height of the center of the T-bar of the tripod holding the moving heads as set up in the current venue.


The location of the house right wall on the show X axis.


The location of the wall behind the rig on the show Z axis.


A step parameter for controlling example chase cues. Change it to experiment with other kinds of timing and fades.


(torrent-8 & {:keys [bars cycles stagger spread pan-min pan-max tilt-min tilt-max], :or {bars 1, cycles 1, stagger 0, spread 0, pan-min -45, pan-max 45, tilt-min 0, tilt-max 45}})

A effect that moves the torrents in a figure 8.


(use-wedding-show & {:keys [universe], :or {universe 1}})

Set up the show for the wedding reception. By default it will create the show to use universe 1, but if you want to use a different universe (for example, a dummy universe on ID 0, because your DMX interface isn’t handy right now), you can override that by supplying a different ID after :universe.


Allows effects to set variables in the running show.


Holds the show if it has been created, so it can be unregistered if it is being re-created.


The color to flash strobe cues to identify them as such.


(x-phase head show)

Return a value that ranges from zero for the leftmost fixture in a show to 1 for the rightmost, for staggering the phase of an oscillator in making a can-can chase.