Repository navigation
SOUND LEVELS
Every sound RISE offers (the atmospheres, the music and the tones in SOUND_GROUPS, src/audio/sound-list.js) plays at one loudness: −29 dBFS RMS, ±2 dB, measured at the output of the real audio engine at its default levels (soundscape layer 0.85, master 0.7). Before SND-001 the catalogue spanned 42 dB, from the music at about −53 dBFS to the Gateway tone at about −11.5 dBFS, so choosing a sound also chose a volume.
Each sound reaches the band by a trim in dB, SOUND_TRIM_DB in src/audio/sound-levels.js. The engine multiplies a layer's gain by the trim of the sound it is playing, so a reader's own volume and the voice ducking work from the trimmed level. Sounds that are not offered (a personal bed, a chant bed, the parked Feelings sounds) have no trim.
levels.json is the last measurement:
-
measuredAt: when it was taken. -
settings: the engine's levels, its fade-in, the sample rate, and the window measured: 25 seconds from 3 seconds after the start, past the 2-second fade-in. -
band: the target and its tolerance, the same asLEVEL_BANDinsound-levels.js. -
sounds: for each offered sound, itstrimDband the measuredrmsDbfsandpeakDbfs.
src/audio/sound-levels.test.js holds the manifest to the code: every offered sound has a trim and nothing else does, each entry was measured with the trim the code ships, and each sits inside the band. A sound that changes level fails the build once it is measured again.
After changing a sound, or the engine's gain stages:
node scripts/measure-sound-levels.mjs # every sound; writes levels.json
node scripts/measure-sound-levels.mjs piano jazz # only these; prints, writes nothingThe script starts a Vite dev server, opens headless Chromium with Playwright, starts each sound the way the Chamber does on a fresh engine, and records the engine's last node through an AudioWorklet in real time, three sounds at once (about two and a half minutes for all sixteen). It prints a table with the trim each sound would need to sit at the centre of the band. Copy those trims into SOUND_TRIM_DB, measure again, and commit the manifest once every sound is in band. It is a development tool and does not run in CI.
Published from docs/evals/sound/SOUND-LEVELS.md. Edits made here are overwritten on the next push to main.
Start here
- COMPOSER-FIRST-ROADMAP
- VISION
- PROJECT-KNOWLEDGE
- ARCHITECTURE
- SYSTEM-DESIGN-REVIEW-2026-08-22
- ACCOUNT-SAVES
- RELEASING
- PLUS-CUSTOMER-LIFECYCLE
- AGENTS
Release
Pilot
- LIVE-CURRENT
- LIVE-HANDOFF
- LIVE-MCP
- DIRECTORY-SCREENSHOTS
- INSPECTOR-RUN-2026-10-10
- CLAUDE-RUN-2026-10-10
- CREATIVE-CONTROL-EVALS
- PERCEPTION-EVAL
- SOUND-LEVELS
- WORDING
- RUN-2026-10-08
- COMPOSER-INSTRUMENTS
- CHATGPT-DEMO
- EMBED-WITNESS
- RISE-GATE0
- CHATGPT-HOST-2026-10-04
- LIVE-002-HOST-2026-10-05
- EMBED-STAGE-HOST-2026-10-07
- RELEASE-GATES-2026-10-07
- EMBED-SAFETY-2026-10-05
- LIVE-GEMINI
- LIVE-EVALUATION
- LIVE-RED-TEAM
- CURRENT-CONSOLIDATION
- RISE-CHANGES
The Archive - texts and their editing
- ARCHIVE-CANON-SPEC
- ARCHIVE-CLEANSING-SPEC
- CORPUS-REVIEWER-PROMPT
- TYPESETTING-CANON
- PHRASE-CHUNKING-STUDY
- CHUNKER-AWARENESS-STUDY
- LIBRARY-SPEC
- SOL-PD-ACQUISITIONS-DOSSIER-LITERATURE-2026-07-28
Authoring - scores, rooms, and rendering
- EXPERIENCE-PROGRAM-SPEC
- LIVE-CURRENT-EVENTS-V1
- RISE-CURRENT-V1-SLICE
- RISE-SDK
- SCRIPTORIUM-SPEC
- WORKSHOP-COMPOSITION-STUDIO-SPEC
- AGENT-COMPOSITION-AND-RENDER-SPEC
- NARRATION-LANE-SPEC
- RECITATION-SPEC
- SCRIPTORIUM-STRENGTHENING-SPEC
Reading surfaces
- PAGE-MODE-SPEC
- RHYTHMIC-VISUAL-PRESENCE-SPEC
- LATERAL-TRAVERSAL-SPEC
- CONTINUOUS-FIELD-SPEC
- JEV-VARIANCE
- INVOCATION-SKINS
- PHASE-2-SAFETY-SPEC
- SPATIAL-CHAMBER-SPEC
- Premium_Mobile_Chamber
Imagery - what may be shown, and on whose authority
- MUSEUM-ATLAS
- SOURCE-CURATION-SPEC
- SOURCE-EXPANSION-SPEC
- ATRIUM-IMAGERY-SPEC
- PERICOPE-IMAGERY-SPEC
- icon-museum-request-draft
- TEXT-ATTUNED-IMAGERY-SPEC
The Chapel
Direction and unbuilt work
Affect and the Emotions room
Reading decision service and retired gate
Product direction and team tracking
- README
- READER-DIRECTION
- CONSOLIDATED-READER
- COMPOSER-FIRST-ROADMAP
- TRACKER-DESIGN
- 2026-10-03-direction-decisions
- 2026-10-04-composer-decision
- 2026-10-05-consolidated-reader-decisions
- 2026-10-05-embed-stage-decision
- 2026-10-06-score-speech-service-roadmap
- 2026-10-07-current-with-a-look
- 2026-10-07-reader-control-and-replay
- 2026-10-05-one-colour-vocabulary-design
- 2026-10-07-chrome-follows-theme
- 2026-10-07-gallery-follows-with-works
- 2026-10-05-canonical-home-design
- 2026-10-04-reader-evidence
- 2026-10-original-performance-roadmap
- 2026-10-08-voice-hardening-2-findings
- 2026-10-09-feelings-sounds-parked
- 2026-10-10-connector-directory-readiness
- 2026-10-10-connector-submission-packet