recipes
Every noise *First Light: Betocsin* makes, written down as a recipe rather than recorded: a length, a sample rate, whether it loops, and a `build` that fills a mono f32 buffer. `game.audio.bake` turns these into the `.soundClip` assets under `game/audio/clips`. Nothing here runs…
recipes
Every noise First Light: Betocsin makes, written down as a recipe rather
than recorded: a length, a sample rate, whether it loops, and a build that
fills a mono f32 buffer. game.audio.bake turns these into the .soundClip
assets under game/audio/clips. Nothing here runs at play time.
The palette
The tuning is the bell's. The tocsin is cast bronze with its prime at G3;
the tower's night bed is the same G two octaves under it, and the whole score
is that drone with a third in it — B flat while it is night, B natural once
the sky pales. bed_night and bed_dawn are the same twenty seconds, the same
drone and the same fifth, differing by that one semitone, so crossfading
between them is the dawn.
Everything is low, wet and far off. An estuary at four in the morning is a room with a mile of fog in it, so nothing is dry and nothing is bright until the bell itself is struck.
The clips
ui_move ui_confirm ui_back ui_pause | the console: paper, brass and a struck note |
stone_seat | a course set down; pitched per course by the Sound component |
perfect_chime | bronze agreeing with the stone |
offcut_fall | the shear, the air, and a soft landing far below |
tocsin_toll | the fallen bell, once, from under the fog |
hoist_creak | hemp under load and a timber jib taking the weight |
bell_peal | the tocsin rung — three strikes, the sound the game is for |
collapse | stone leaving stone, then everything at once |
amb_fog | air over a mile of flat water, with slate and rigging in the top |
bed_night bed_dawn | the drone, minor third and major |
Loops
A loop is built to join to itself: held notes are a whole number of cycles
across the buffer, noise beds are filtered circularly, and a struck note's tail
is wrapped round to the head. Interior loop points are stored and read by
nothing, so a bed that does not already join is a bed that clicks.
synth.seamError measures the join in the units the signal steps in — around
one is seamless.
Owned by the sound & voice slice. The synthesis primitives are
deps/…/audio/synth, installed from ZeroMind.
Scoped to this part · feeds back into the world's score.