Seeti sounds like three rising whistle toots and acts like a whistle weight that bounces, and this settles which cues play, when, how loud, and how Seeti's sounds replace today's product cues.
Today
Sound in the live product
Part
Today
Cues
29 designed cues rendered offline with earshot from tools/sfx/cues.json into public/sfx brew/tools/sfx/cues.json; memory brew-sounds
Levels
Set by loudness through a small speaker, from about minus 23 LUFS for live and win to minus 38 for ratchet. Never peak normalised brew/tools/sfx/cues.json; memory brew-sounds
Fallback
A synth version of each cue plays if its file is not loaded yet brew/public/app.js:1481-1516
Loading
Files load on the first tap or key, else 12 s after load brew/public/app.js:1521
Default
On, unless the person turned Sounds off in the account menu brew/public/app.js:1470, 2939
One tap, one sound
Background cues give way to any cue just played; screens that change by themselves stay silent brew/public/app.js:1523-1530
Haptics
A light vibration on phones 760 px wide or less brew/public/app.js:1526
Copy
Every clipboard write plays tick brew/public/app.js:1532
Cue
When it plays today
heart, unheart
Heart or unheart a card brew/public/app.js:1548
live
Ship in the jam, share to someone brew/public/app.js:1536
send
Share, pick, Build my feed and jam sends brew/public/app.js:1537, 1558
tick
Copy, save, hand off copy brew/public/app.js:1538
select
Opening a card, approve tops, onboarding tiles brew/public/app.js:1539
bubble
AI fix, variants, make brew/public/app.js:1540
approve
Approve, and turning sound on brew/public/app.js:1544, 2939
error, ready, reply, connected, keep, drop
Failures, long jobs ready, a jam reply, a tool connected, swipe keep or drop brew/public/app.js:1505-1512
Motion in the live product
One loader on every wait, tied to the button that started it, shown after 140 ms and for at least 380 ms. brew/public/loader.js:8; memory brew-loader
Seeti's sound files
File
What it is
snd/logo.mp3
Sonic logo, three toots pitched lower to higher, the third held, about 1.8 s brand-directions/cooker/motion.html v0
snd/cue-ready.mp3
One bright whistle toot, 1.2 s brand-directions/cooker/snd/sound-log.json
snd/cue-heart.mp3
A small happy steam chirp, 0.8 s brand-directions/cooker/snd/sound-log.json
snd/cue-handoff.mp3
A ticket torn and slapped down, a little bell, 1.2 s brand-directions/cooker/snd/sound-log.json
snd/cue-caught.mp3
A lid set down, a slow steam sigh, 1.6 s brand-directions/cooker/snd/sound-log.json
snd/cue-error.mp3
A soft sputter, never an alarm, 1.4 s brand-directions/cooker/snd/sound-log.json
snd/line-*.mp3
Seven moment lines and two taglines in Seeti's voice brand-directions/cooker/snd listing
snd/voice.json
ElevenLabs Seeti voice, option 2 of 3 brand-directions/cooker/snd/voice.json
The books level cues to about minus 16 LUFS, a different scale from the product's small speaker levels. brand-directions/cooker/motion.html v0; brew/tools/sfx/cues.json
Tomorrow
Sound
v1, New: the sonic logo, three rising toots, plays only when the week is ready and on the brand's own films and reels. Never on errors. brand-directions/cooker/motion.html v0
v1, New: the whistle is explained once, on the first read: in Indian kitchens cooks count the whistles, three and the dal is done. brand-directions/cooker/brand.html b5
v1, Changes: sound is off on a first visit and one switch in Settings turns it on, and stays as set. Today it is on by default. brand-directions/cooker/brand.html b5; brew/public/app.js:1470
v1, New: no sound on a page someone opened from a brief link. brand-directions/book/content/f.js:974
v1, Stays: one cue per action, the later one wins, levelled for small speakers the way brew levels today.
v1, Changes: Seeti's cues are re-levelled with the product's small speaker rule before they ship, not at the books' minus 16 LUFS.
v1, Stays: the crisp kit cues for taps, toggles, sheets and steps stay as they are. Only the five moments and the logo take Seeti's sounds.
v1, New: the voice speaks only on the stage, the home page, marketing and once in onboarding. In the product, lines are text and cues carry the feeling. brand-directions/cooker/motion.html v0
v1, New: never a siren, a crash or a boom, never a looped whistle while waiting, never the whistle on a notification that does not mean ready, never a music bed. brand-directions/cooker/brand.html b5
Mapping onto today's cues
Seeti cue
Replaces today's
Moment
Tag
Sonic logo
live, win
The Monday drop lands
v1, New
Ready
ready
The read is done, a long job is ready
v1, Changes
Heart
heart
More like this
v1, Changes
Handoff
tick on hand off copy only
The brief is copied
v1, Changes
Caught up
No cue today
Kitchen's clean
v1, New
Error
error
Something failed
v1, Changes
Motion
State
Motion
Timing
Tag
Idle
Whistle jiggle and a puff, blink, breathe 1 percent
3.2 s, blink 5.5 s
v1, New
React
One toot, squash to 1.05 by 0.93, face swaps
260 ms, holds 1.2 s
v1, New
Celebrate
Three toots with the logo, steam blast, once
1.8 s
v1, New
Wait
Whistle pills fill, one per read stage
180 ms per pill
v1, New
Error
Lid hops once, sheepish face
320 ms
v1, New
Monday drop
Five picks pop up one by one
80 ms apart
v1, New
v1, New: tickets slap down and specials pop up in 180 to 320 ms, never a slow fade. Overshoot on the whistle drop, never on the body. brand-directions/cooker/brand.html b4; brand-directions/cooker/motion.html v1
v1, New: while you type, read or make, Seeti only blinks. No screen shake, no full body spin, no looped celebration. brand-directions/cooker/motion.html v1
v1, New: every animation sits inside a reduced motion check; with it on, Seeti holds its pose and only the face changes. brand-directions/cooker/character.html c7; brand-directions/cooker/kit-skin.js motion
v1, Stays: the one loader on every wait stays. Seeti's wait pose shows only on long waits in its slot.
v2, New: a toot for Tray's ready when files are prepared and await a yes. Sound for a post going out plays only after the person said yes.
v3, New: a plate checker cue for How it went, never a sound for a bad result or a missed week.
v4, Stays: no new sound for ads within rules beyond the five cues and the logo.
Reels
v1, New: three templates: a six second sting, a fifteen second story, a thirty second reel, each ending on three whistles. brand-directions/cooker/motion.html v2
v1, New: kitchen room tone at minus 30 LUFS, Seeti's voice on top, at most three toots per reel, captions in Bakbak One. brand-directions/cooker/motion.html v2
How we do it
Re-render a product cue after a change to the cue list:
cd /Users/param/Documents/ChatGPT/brew && tools/sfx/build.sh
Level by loudness through a small speaker, 350 Hz to 9 kHz. The build fails a cue that loses more than 6 dB that way. Never peak normalise.
Test by recording every AudioBufferSourceNode start and fingerprinting each decoded mp3, then walking the real app.
Check one tap gives one sound and screens that change by themselves stay silent.
Check reduced motion holds every pose still.
Numbers
Metric
Definition
Where measured
Status
Sound on rate
Share of signed in people with Sounds on after their first week
Local setting, counted when Settings is opened
Proposed
Blind sound match
Share who pick Seeti's logo as meaning ready, with no pictures
Founder test sessions
Proposed
Cue loss
dB a cue loses through the small speaker band, must stay under 6
tools/sfx build
Exists
Open
Should sound start off, as Seeti's book says, or on, as the product does today? Proposal: off on a first visit, with one line on the first read offering to turn the whistle on.
Should the Monday drop sonic logo play inside the product, or only in the Monday email and marketing? Proposal: in the product, once a week, only if sound is on.
Keep the crisp kit cues for small taps alongside Seeti's five? Proposal: yes, the whistle is for moments, the kit is for taps.