stage
The shots, the framing arithmetic and the synthesised sound behind HOLLOWBELL's staging. Pure data and maths: nothing here touches the scene, which is what lets a beat be re-timed and watched again without reloading the component that wires it up.
staging.stage
The shots, the framing arithmetic and the synthesised sound behind HOLLOWBELL's staging. Pure data and maths: nothing here touches the scene, which is what lets a beat be re-timed and watched again without reloading the component that wires it up.
local Stage = require("staging.stage")
Framing
Stage.framing(width, height) answers the gameplay camera for a live screen
size — the distance, the lead ahead of the hero, and the lens. It reads
Hollow.CAMERA as the authored base and never writes it back, so it is
idempotent however often it runs.
Stage.station(center, distance) is where the camera stands to look at a point
from the authored isometric angle — the same arithmetic
@builtin::controller.isometric runs, which is how a cinematic ends exactly on
the gameplay station and the hand-off is not a cut.
Beats
Stage.opening(ctx) · Stage.gate(ctx, n) · Stage.boss(ctx) ·
Stage.death(ctx) · Stage.victory(ctx, at)
Each returns a cutscene definition. ctx carries the live framing and the three
things a beat reaches the running game through — say(key), sound(name, opts)
and key(spec) — plus captions, which says whether a caption band is already
showing spoken lines. Where nothing is, the beat carries the line as its own
subtitle, so a spoken line is never lost to a slice that has not landed.
The chambers are walled from each other at the gates, so the opening cuts between rooms rather than craning through them: a camera crossing a gate at vault height spends the crossing inside the wall.
Sound
Stage.bellPcm(seconds, fundamental) · Stage.dreadPcm(seconds) ·
Stage.liftPcm(seconds) return interleaved mono f32 at Stage.SAMPLE_RATE.
Stage.CLIPS is the order the component bakes them in.
The bell is built the way a bell sounds: a hum an octave under the prime, a minor third above it, and a strike transient of noise at the head.
Scoped to this part · feeds back into the world's score.