Stoatworks Labs

Aquilon Pitch

Mixed-pitch walls on one Aquilon screen

In developmentRuns in a browser tab

One screen, two pixel pitches, and a layer that changes size at the join.

Work out the pitch compensation an Analog Way LivePremier needs when one screen spans LED walls of different pixel pitches. Type each output group's raster and its pitch (or its measured size, and let the pitch fall out) and get the H and V ratios to type into Web RCS, the canvas footprint each group will take, the screen canvas that results, and the millimetres the device's three-decimal field costs you at the far edge of each wall.

Everything is worked out in the page and nothing you type is uploaded, so a client's set design has nowhere to leak to. It has no socket and won't be growing one: the AWJ frames a script would send are printed for you, and nothing here connects to a switcher.

Aquilon Pitch — Mixed-pitch walls on one Aquilon screen
A 2.6 mm main wall and a 4.0 mm side wall on one screen: the side wall wants a ratio of 1.53846…, the field holds 1.538, and across a 1920-pixel raster that's 1.85 canvas pixels short, or 4.8 mm of real wall at the far edge.

What it works out

01

Which way the ratio goes

Measured, not read

The manual gives pitch compensation four sentences and doesn't say which way round the ratio is. The ratio multiplies a group's raster to give its footprint on the canvas, so a coarser wall gets a number above 1.000. That was established by writing pitchRatioH = 2000 to an output of a running LivePremier simulator and reading a 1920 × 1080 output back as 3840 × 2160. Fourteen such pairs are pinned as tests.

02

The finest wall is the reference

The ratio scales a raster up into canvas pixels, so the reference should be the group with the most pixels per millimetre: every other group is then handed more canvas than it has pixels and scales down, which a video processor does well. Pick a coarse group instead and the finest wall in the room spends the whole show upscaling. The tool defaults to the right one and says so when you override it.

03

What the field will actually hold

Integer thousandths, 0.100 to 10.000, three decimals and no more, and an out-of-range write is discarded, not clamped. The device says nothing, and the operator is left looking at a field that still reads whatever it held before. So the tool refuses a ratio the switcher will never take rather than quietly reporting one it clamped.

04

The device floors, and it costs a pixel

pitchedWidth = floor(raster × ratio / 1000), measured four separate times against the values rounding would give. With the three-decimal field, that's where the drift comes from, and the tool reports it per group per axis, in canvas pixels and in millimetres on the wall, because that's the number that decides whether the rounding matters.

05

The screen drawn twice

The walls in the room above, the canvas below, at the same scale, so a mapping that isn't uniform is visible rather than inferred. Alongside: the screen canvas the design needs, a plain statement when a blocked group makes it unachievable as specified, a CSV for the show folder, and the AWJ frames.

What to check before a show

  1. 01

    Nothing here has touched physical Aquilon hardware

    The arithmetic was driven into a running AW LivePremier Simulator 6.2.73 and read back off the wire, which runs the same web application and object model as the switcher. It still isn't the switcher, though, and no pitch-compensated screen built from this has been driven onto real LED walls.

  2. 02

    It gives you the ratios, not the layout

    A LivePremier lays its canvas out from each output's own area of interest, which nothing here can reach into. The ratios are the part that's solved; the canvas rectangles shown beside them are what you build on the device.

  3. 03

    A ratio written alone does nothing

    If you do script it, xUpdate isn't optional: writing a ratio on its own moves the command value and leaves the canvas exactly where it was. That's verified, and it's why the printed AWJ frames include it.

Run your own copy

Aquilon Pitch is also published as a Docker image, ghcr.io/stoatworks-labs/aquilon-pitch, serving the same files as the hosted copy. On a laptop or a box in the rack it keeps working when the venue's internet doesn't.

Docker

docker run -d --name aquilon-pitch --restart unless-stopped -p 8540:80 ghcr.io/stoatworks-labs/aquilon-pitch:latest

Then it's at http://localhost:8540/. The repo's docker-compose.yml does the same with docker compose up -d.

Unraid

Search Community Applications for aquilon-pitch and install it. The template sets the port to 8540 for you.

Self-hosting the web tools, and which ones you can