The show format

One text file, one song, every light in the room. Also as plain Markdown at /spec.md.

A show is a light show programmed to one song, in one plain-text file, the way a lighting desk keeps its cues. It says which lights hang where ([rig]), the colours and positions it uses ([palette]), what happens at which bar of the song ([cues]), and the moving parts: chases, effects and video. club.slopped.site plays it in 2D or 3D in time with the music, and drives a virtual DMX universe from it, as a real rig would be driven.

This page is generated from the validator's own lists. The validator is the same function in the browser and in the club's checks, so this page, the editor and the club can't disagree. Everything about it was written by machines.

A whole show

show 1
title: My first show
by: you
about: Eight pars, two heads and a wall, to Tea Break.

[track]
song: tea-break-sloppy-droppy

[rig]
par front*8 at -8,3,7 to 8,3,7 in pars
wash head*2 at -5,-1,8.5 to 5,-1,8.5 in heads
wall screen at 0,-6.6,6 px 16x8 m 10x5
haze fog at 0,-6.8,0.5

[palette]
color tea #c8702a
color milk #fff0d8
pos crowd pan -25..25 tilt 55

[cues]
1 fog: dim 50
1 pars: color tea dim 20 fade 8 bars
1 run steam
drop heads: pos crowd color milk dim 90
drop run pour for 32 bars
drop run sway
biscuit all: dim 0 fade 4 bars

[chase pour]
on: pars
pattern: x ~ x ~
order: inout
look: dim 90 color milk
decay: 1.5b

[fx sway]
on: heads
attr: pan
wave: sine
period: 4 bars
size: 30
spread: 180

[video steam]
on: screen
kind: plasma
colors: tea milk
period: 16 bars
dim: 50

The file

KeyWhat
titlethe show’s name, up to 60 characters (required)
bywho programmed it
aboutone line, up to 160 characters
seeda whole number: random chases and sparkle use it, so the same seed is the same show

[track]

The song the show is programmed to. Without it, the show plays to a silent bar clock at 120 beats a minute.

KeyWhat
songthe id of a song in the club’s set (below)
fromthe first bar that plays (default 1)
tothe bar it stops at (default the end)

The songs in the club's set

Times can name a section of the song (by name, lowercased with spaces as -) or its role (intro, build, drop, breakdown, roller, drop2, outro). drop#2 is the second section called Drop, or if there is only one, the second whose role is drop.

Song idTitleBPMBarsSections (name or role, first bar)
tuning-up-sloppy-droppyTuning Up (Sloppy Droppy remix)132136one-a (intro, 1); still-a (intro, 9); rolling-shut (intro, 17); opening (main, 33); open (main, 49); trio-and-the-a-again (breakdown, 65); build (build, 81); march (drop, 89); tutti (drop, 105); closing (outro, 121); one-a-to-finish (outro, 129)
big-number-sloppy-droppyThe Big Number (Sloppy Droppy remix)138144kick-and-hats (intro, 1); offbeat-bass (intro, 9); the-harp-in-triplets (intro, 17); gates (main, 33); the-understudy (breakdown, 49); the-big-number-on-saws (breakdown, 65); build (build, 81); drop (drop, 97); out (outro, 129); kick-to-the-end (outro, 137)
scene-change-sloppy-droppyScene Change (Sloppy Droppy remix)140120clocking-on (intro, 1); rolling (intro, 9); flats-stabbed (main, 17); heavy-lifting (main, 33); the-tune-on-the-mallet (breakdown, 49); build (build, 65); drop (drop, 73); drop-the-tune-s-shape (drop, 89); clocking-off (outro, 105); kick-to-the-end (outro, 113)
tea-break-sloppy-droppyTea Break (Sloppy Droppy remix)170144kettle (intro, 1); ghosts-and-sub (intro, 17); drop (drop, 33); drop-the-other-loop (drop, 49); biscuit (breakdown, 65); second-drop (drop2, 81); second-drop-the-other-loop (drop2, 97); cold-tea (outro, 113); drums-for-the-next-dj (outro, 129)
pocket-rule-sloppy-droppyPocket Rule (Sloppy Droppy remix)175144drums-for-the-dj (intro, 1); ghosts-and-sub (intro, 17); drop (drop, 33); drop-the-b-part (drop, 49); roller (roller, 65); half-time-full-speed (breakdown, 81); second-drop (drop2, 97); second-drop-the-b-part (drop2, 113); drums-for-the-next-dj (outro, 129)
strip-light-sloppy-droppyStrip Light (Sloppy Droppy remix)175144drums-for-the-dj (intro, 1); ghosts (intro, 17); drop (drop, 33); drop-reese (drop, 49); roller (roller, 65); the-bridge-gated (breakdown, 81); second-drop (drop2, 97); second-drop-chopped (drop2, 113); lights-off (outro, 129)

[rig]

One line per fixture, or per row of them:

<type> <name> at x,y,z [to x,y,z] [in group,group] [@universe.address]
par front*8 at -8,3,7 to 8,3,7 in pars
wall screen at 0,-6.6,6 px 24x12 m 10x5
TypeWhatAttributesDMX channels, in patch order
parA fixed wash light: one colour, no movement.dim, color, strobedim, red, green, blue, shutter
washA soft beam that pans and tilts, any colour, zooms 8 to 50 degrees.dim, color, strobe, pan, tilt, zoompan, pan fine, tilt, tilt fine, speed, dim, red, green, blue, white, zoom, shutter
spotA hard beam with a colour wheel (nearest wheel colour), gobos and a prism, zooms 4 to 30 degrees.dim, color, strobe, pan, tilt, zoom, gobo, prismpan, pan fine, tilt, tilt fine, speed, dim, shutter, colour wheel, gobo, gobo spin, prism, focus, zoom
strobeA bright white flash tube. Its rate is capped at 3 flashes a second.dim, strobedim, rate
barEight RGB pixels in a row; video layers pixel-map onto it.dim, color, strobedim, red 1, green 1, blue 1, red 2, green 2, blue 2, red 3, green 3, blue 3, red 4, green 4, blue 4, red 5, green 5, blue 5, red 6, green 6, blue 6, red 7, green 7, blue 7, red 8, green 8, blue 8
blinderTwo warm-white cells pointed at the crowd. For one hit on the drop, not for long.dimcell 1, cell 2
hazeHaze in the air, so beams show. dim is its output.dimoutput, fan
wallAn LED wall of W × H RGB pixels, patched from the start of its own universe.dim, colorred, green, blue for each pixel, left to right, top row first; from the start of its own universe

The spot's colour wheel, by DMX value: 8 open (#ffffff), 24 red (#ff2a1f), 40 orange (#ff8a1f), 56 yellow (#ffe14a), 72 green (#3dff6e), 88 cyan (#2ee6ff), 104 blue (#2f5bff), 120 magenta (#ff3ad6). Its gobos: open, dots, ring, bars, star, drip, shards, eye.

Selecting fixtures

Anywhere a show names fixtures, it can write a fixture, a group or a type, join them with +, and filter each with :odd, :even, :left, :right, :centre, :3 or :2-5 (positions counted from 1): pars:odd+washes.

[palette]

color slime #59ff7a
pos crowd pan -25..25 tilt 60
beam tight zoom 6 gobo dots

A range A..B spreads across the fixtures it is given to, in order: a fan of positions, or a gradient of colours (color slime..ice). Names are shared across colours, positions and beams. Built-in colours: red #ff2a1f, orange #ff8a1f, yellow #ffe14a, green #3dff6e, cyan #2ee6ff, blue #2f5bff, magenta #ff3ad6, white #ffffff.

[cues]

The timeline. Each line starts with a time:

TimeMeans
33bar 33, beat 1
33.3bar 33, beat 3
33.2.5bar 33, halfway through beat 2
dropthe first bar of the section called Drop (or the first whose role is drop)
drop#2the second one
drop+8eight bars into it
drop+8.3eight bars in, beat 3

Then either a selection, a colon and attributes, with an optional fade:

drop washes: pos crowd color slime dim 90
breakdown all: dim 0 fade 4 bars

or run NAME [for LENGTH | until TIME] or stop NAME for a chase, fx or video layer. Lengths are beats (4b, 0.5b, a bare number) or bars (2 bars).

AttributeValue
dimintensity, 0 to 100 (per cent)
colora palette colour or #rrggbb; A..B spreads a gradient across the fixtures
posa palette position (pan and tilt)
pandegrees, -270 to 270 (0 faces the floor); A..B fans across the fixtures
tiltdegrees, -135 to 135 (0 points straight down from the truss, or straight up from the floor)
zoombeam angle in degrees (wash 8-50, spot 4-30)
beama palette beam (zoom, gobo, prism)
goboa gobo: open, dots, ring, bars, star, drip, shards, eye
prismon or off
strobeflashes a second, 0 (off) to 3; 3 is the WCAG limit

Cues track: an attribute keeps the last value a cue gave it until another cue changes it, fading over the cue's fade. Lines at the same time apply in file order.

[chase NAME]

Steps through fixtures on a rhythm. The rhythm is written in Patter, the cartridges' pattern language (cart.slopped.site/spec.md): one cycle of the pattern lasts cycle:, every x lights the next fixtures.

KeyWhat
onthe fixtures it steps through, in order
patterna Patter rhythm for one cycle: x a step, ~ or . a rest, [x x] two in one step, x*4, <x ~> taking turns, notes (c4) for order: pitch
cyclehow long one pass of the pattern takes (default one bar)
orderforward, back, bounce, random, all, inout, outin, pitch
widthfixtures lit on each step (default 1)
lookthe attributes a step sets (default dim 100)
decayhow long a step takes to fade out; 0 holds it for its step (default 0.5b)

[fx NAME]

A wave on one attribute, its phase spread across the fixtures, the way a desk's effects engine fans a sine across a row of heads.

KeyWhat
onthe fixtures it moves
attrdim, pan, tilt, zoom, hue
wavesine, saw, ramp, triangle, square, pulse
periodone cycle of the wave (default one bar)
sizehow far it swings: per cent for dim, degrees for pan, tilt, zoom and hue
basedim only: the level it swings up from, merged highest-takes-precedence; without it the wave dips the fixture’s own level
spreadthe phase spread across the fixtures in degrees: 0 together, 360 one full wave across them
wings1 to 4: 2 mirrors the spread from the middle
dutythe on part of a square or pulse wave

[video NAME]

A picture on the pixel wall, pixel-mapped onto any LED bars named with it (the bar's pixels show the part of the picture where they hang).

KeyWhat
ona wall, and LED bars to pixel-map the same picture onto
kindsolid, bars, rings, plasma, scan, drip, sparkle, checker, eyes
colors1 to 4 colours
periodone cycle of the picture
dim0 to 100
blendadd (light on light, the default) or over (covers what is under it)
angledegrees, for bars and scan
KindWhat
solidone colour over everything
barsstripes sliding across (angle sets the direction)
ringsrings opening from the centre, one a period
plasmaslow smooth colour clouds
scanone line sweeping across
dripslime dripping down the wall
sparklepixels lighting at random (seeded) and fading
checkera checkerboard swapping every period
eyestwo green eyes that blink now and then

Layers

Lowest first: the cues; then the runs (chases, fx, video) in the order they started, a later one winning (latest takes precedence, LTP). Intensity (dim) merges highest-takes-precedence (HTP) between cues and chases. The shutter (strobe) gates the light last.

Safety

<!-- cite: wcag22-flashes --> <!-- cite: wcag22-general-flash --> Flashing light can trigger seizures in people with photosensitive epilepsy. WCAG 2.3.1 asks that nothing flashes more than three times in any one second. Every show is played through, frame by frame, before it is allowed to play; a show that breaks the rule anywhere is refused, with the bar and beat and what flashed.

RuleValue
sampled60 frames a second, the whole show
a transitionrelative luminance changes by 0.1 or more and the darker side is under 0.8
a red transitiona saturated red (R ÷ (R + G + B) ≥ 0.8) and (R − G − B) × 320 changes by more than 20; or any change into or out of a visible saturated red
too muchmore than 6 transitions (three flashes) in any one second
whereevery light on its own; a 3 × 3 grid of the stage as the floor sees it; the whole view; and each wall’s pixels, by the area flashing together (more than 6.1 m²)
strobes3 a second at most, flashing for the first 25% of each period

<!-- cite: mdn-prefers-reduced-motion --> With reduced motion (the visitor's system setting, or Calm lights on the floor), the same show plays calmer, and must pass the same check that way too:

ThingWith reduced motion
strobestops; the light holds at 50% instead
chasea slow fade across its fixtures, one wave every 8 beats, at 60%
fx8 beats a cycle at least; pan and tilt swing 50% as far; square, pulse, saw and ramp dimmer waves become sines
video4 times slower (at least 8 beats); sparkle, checker and scan become plasma
fadesdim and colour take at least 0.5 beats
blinders50% at most

While a show plays, a governor watches each light as frames go by and holds it still rather than let it flash a fourth time in a second, as a last line behind the check.

Limits

LimitValue
file size32,768 bytes
lines1500
fixtures96
universes8
wall pixels576 (at most 48 each way)
palette entries48
chases, effects, video layers24, 24, 12
cue lines800
strobe rate3 flashes a second
share link12,000 characters
roomx -10 to 10, y -7 to 16, z 0 to 11 metres

A show travels in the fragment of a link to the editor: club.slopped.site/editor/#s=1.<data>, its text deflated (raw DEFLATE) and written in base64url. The part after # never leaves the browser, so nothing is stored anywhere. A link from somebody else is checked like any other show before it plays.