Home / Audio / Production and Craft
Updated Jun 21, 2026 · Affirmology_AudioPacingActivation_C26_BuildBrief_v1.md
Status: to build. Studio only. The locked demo never changes. Owner of the craft logic in the council: Hypnos (sequences pace + pauses), Orpheus (writes the questions), Apollo (gates that the pacing rules were honored). Source of the request: Jeff 2026-06-20, "make them dynamite." Test & Change Queue item C26 (craft).
Deep-listening audios (morning, before-bed, journey) are delivered too fast and too flat. Words need room to land. The same words that suit a slow before-bed install are wrong for an activation or gym audio, which wants momentum. Two concrete defects to fix: 1. No deliberate pacing or silence. Affirmations stack without space, so the subconscious never gets the gap it needs to accept them (this is the mechanism behind belief installation rules 7 and 9). 2. Render length is inconsistent. Sol's morning audio came out longer than Jeff's from the same structure. Renders should honor a target length per type.
A belief encodes in the gap after it is spoken, not in the words themselves. Slower delivery, intentional pauses, and a question followed by silence are what let the listener's subconscious search for its own evidence rather than rebut a flat claim. Deep types want spaciousness and a soft bed. Activation types carry the same arc faster over a driving bed. Pace and bed are properties of the audio TYPE, set per Structure, not improvised per render.
In affirmology-agent/src/affirmology/structures.py, add to the Structure model:
- pace: one of deep, standard, activation. Deep = slowest ElevenLabs speed + longest pauses. Activation = quicker speed + shorter pauses + energizing bed.
- target_minutes: the intended finished length for this type (drives length consistency, see item 4).
- bed_profile: the sound-bed character for the type (e.g. soft_ambient, driving, delta_soft). This is the hook the C3 frequency layer and the music-bed selector both read.
Tag the existing structures: morning and before-bed and journey = deep; gym and activation = activation; the rest = standard. Keep defaults so an untagged structure behaves exactly as today (no silent change to existing renders).
In the audio synthesis path (affirmology-agent/agents/audio_synthesis.py and the CLI --speed wiring), set the synthesis speed from Structure.pace, not a fixed value. Deep = the slow, clean baseline speed; activation = a quicker speed. Respect the hard demo rule: the auto-tune ceiling stays at 1.05 and the QC gate (scripts/audio_qc.py) still runs and still rejects dropouts. Pacing must never reintroduce warble.
Two layers:
- SCRIPT layer (Orpheus): when pace=deep, the script writer inserts a question beat (rule 7) and marks an intended silence after it. Question craft: a gentle first-person question that opens the limiting belief, then space, not an immediate answer.
- RENDER layer: convert the marked pauses into real silence. If ElevenLabs SSML <break> is reliable in the current voice path, use it; otherwise insert measured silence between segments in audio_mix.py at mix time (the safer, QC-friendly route). Pause lengths scale with pace (deep gets the longest gaps, e.g. a held beat after each question and a breath of space between affirmation lines).
Honor Structure.target_minutes. The script step should aim the script at the target length for the type (Hypnos plans the number of beats to the target), and the build report should record target vs actual. This removes the drift where the same structure produces different lengths for different people. Acceptance: two people rendered on the same structure land within a small tolerance of each other and of the target.
meditation_hypnosis and breakthrough areas already hold the permissive-language, question, and induction-before-affirmation entries).pace=deep, assert the script contains at least one activating question with marked silence and that the affirmation arc is laddered, not stacked.--council and must be byte-for-byte unaffected. Verify the demo render path does not read the new fields.deep structure renders at the slow speed, contains at least one question followed by a real measured silence, and passes QC.activation structure renders quicker over the driving bed and passes QC.target_minutes and of each other.Read Affirmology_PROJECT_STATE.md, Affirmology_AudioPacingActivation_C26_BuildBrief_v1.md, and Affirmology_BeliefInstallation_CoreCraft_v1.md.
Implement C26 audio pacing + activation per the brief: add pace/target_minutes/bed_profile to the Structure model, drive ElevenLabs speed from pace, insert pauses + silence-after-questions (prefer mix-time silence in audio_mix.py if SSML is not reliable), enforce per-type target length, and wire Hypnos (pace + pause plan + target) and Apollo (pacing gate) in council.py. Studio only; the locked demo render path must be byte-for-byte unaffected. Keep the QC gate and the 1.05 auto-tune ceiling. No em dashes.
Add the four acceptance tests from the brief. Show me the diffs, the test output, and one real deep render plus one real activation render (listen-check) before deploying. Do not touch the demo.