recipes
Every synthesised sound in BLOCKBUSTER 767, written down once — the wind-up march, the playroom room tone, the motor, the air, and the fourteen one-shots the game fires by name.
recipes
Every synthesised sound in BLOCKBUSTER 767, written down once — the wind-up march, the playroom room tone, the motor, the air, and the fourteen one-shots the game fires by name.
Nothing here runs at play time. game/audio/bake.luau renders each recipe into
a .soundClip under game/audio/clips/; SoundDirector plays those assets.
Change a recipe and run the bake again:
execute { file = "/zero/source/game/audio/bake.luau", args = { force = true, only = { "collapse" } } }
Each entry names the sample rate, the channel count, the codec, the mixer
channel the sound belongs on, and the peak it is normalised to. A loop is
codec = "pcm": an Opus clip loses about 5 ms off its head on decode and
clicks at the seam. A one-shot is Opus and does not care.
A loop is seamless by construction, one of two ways. Synth.snap puts every
partial on a whole number of cycles over the loop and wrap = true folds a
decay round the end, which is how the music bed comes round on the downbeat.
Where noise makes that impossible, the recipe renders long and Synth.seamless
crossfades its own tail back over its head — the two frames either side of the
join were adjacent in the original, so there is no step there at all.
Synth.seamGap reads the distance between the first and last frames. Under
about 0.02 nothing is audible; a noise bed reads higher than that simply
because two adjacent noise samples differ, which is not a seam.
The peaks leave headroom on purpose. Everything here was measured playing alone
against a silent mixer (audio.peakSince), and nothing reaches the master
above about 0.77 — so a collapse under a music bed under a voice line still
has somewhere to go.
Scoped to this part · feeds back into the world's score.