aterm: play the sound mark, from pre-rendered samples #1256

Closed
opened 2026-08-26 02:49:47 +00:00 by coilyco-ops · 0 comments
Member

Part of #1245. Needs #1251 first.

Every overlay ships sound_mark{timbre, contour, pulse} per personality. Nothing in the estate has ever played one. The vocabulary is fully distinct across all ten personalities:

personality    timbre       contour            pulse
decisive       snare-crack  falling-cut        single-accent
empirical      glass-tap    level-hold         measured-two
grounded       wood-block   low-return         steady-pair
imaginative    celesta      expanding-arc      shimmering-three
immersed       hull-hum     sustained-descent  slow-swell
outward        brass-swell  widening-rise      long-single
playful        toy-piano    zigzag-rise        syncopated-three
protective     low-gong     descending-cover   guarded-pair
tenacious      floor-tom    rising-return      driving-two
warm           felt-mallet  rising-embrace     gentle-three

timbre picks the voice, contour is the pitch envelope, pulse is the rhythm. A role carries two personalities, so a role sound mark is a two-note pair. Platform is floor-tom then wood-block. Frontend is toy-piano then celesta.

Approach

Pre-rendered samples, decided over runtime synthesis. Generate ten short files from the spec once at build time, ship them, and play the role's pair through afplay on macOS and paplay on Linux. Deterministic, no synth engine at runtime, and each one can be auditioned and rejected by ear before it ships.

Adding a personality means regenerating, which is the acceptable cost. Note in the generator which spec revision produced the current set.

Why this is worth building

Not charm. Reach. Every other identity channel in this backlog requires the window to be visible: color, title, and the identity card all fail the moment aterm is behind another window. Sound is the only channel here that works when aterm is not what you are looking at, which is exactly the condition under which you need to be told something.

Must be silenceable, and silent by default in CI and any non-interactive launch.

aterm/session.go.

Part of #1245. Needs #1251 first. Every overlay ships `sound_mark{timbre, contour, pulse}` per personality. Nothing in the estate has ever played one. The vocabulary is fully distinct across all ten personalities: ``` personality timbre contour pulse decisive snare-crack falling-cut single-accent empirical glass-tap level-hold measured-two grounded wood-block low-return steady-pair imaginative celesta expanding-arc shimmering-three immersed hull-hum sustained-descent slow-swell outward brass-swell widening-rise long-single playful toy-piano zigzag-rise syncopated-three protective low-gong descending-cover guarded-pair tenacious floor-tom rising-return driving-two warm felt-mallet rising-embrace gentle-three ``` `timbre` picks the voice, `contour` is the pitch envelope, `pulse` is the rhythm. A role carries two personalities, so a role sound mark is a two-note pair. Platform is floor-tom then wood-block. Frontend is toy-piano then celesta. ## Approach **Pre-rendered samples**, decided over runtime synthesis. Generate ten short files from the spec once at build time, ship them, and play the role's pair through `afplay` on macOS and `paplay` on Linux. Deterministic, no synth engine at runtime, and each one can be auditioned and rejected by ear before it ships. Adding a personality means regenerating, which is the acceptable cost. Note in the generator which spec revision produced the current set. ## Why this is worth building Not charm. Reach. Every other identity channel in this backlog requires the window to be visible: color, title, and the identity card all fail the moment aterm is behind another window. Sound is the only channel here that works when aterm is not what you are looking at, which is exactly the condition under which you need to be told something. Must be silenceable, and silent by default in CI and any non-interactive launch. `aterm/session.go`.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
coilyco-flight-deck/agentic-os#1256
No description provided.