Home / Product / Features and Vision
Updated Jun 17, 2026 · Affirmology_CompanionAudio_TwoVoice_Spec_v1.md
The single-person Sacred Audio is solved and now rendering on the Mac through the Studio. This spec designs the missing capability: an audio for two people (and later a whole team) that speaks to them as a unit AND to each of them individually, all from their real charts. It reuses the architecture we already built. Nothing here is chartless.
One continuous first-person piece that does three things and braids them:
- THE BOND. The composite and synastry truth, spoken as "we / us / the two of us." One shared Moon, one shared Mars, the seven defined centers between you, the channels that only light up when you are in the room together, the Penta. This is relationship.py made audible.
- EACH PERSON. The distinct medicine of each chart, spoken so each person hears themselves. "The one of you who builds and convenes." "The one of you who carries the voice." Their own Sun, Moon, rising, authority, their own role in the machine.
- THE WEAVE. Moving between the two so the listener feels both "this is mine" and "this is ours," landing on the shared seal.
The two drafts we already wrote (Solstice Launch, Concordia) are early hand-built examples of this shape. The job now is to make it a real, chart-driven, repeatable structure in the engine, not a one-off.
This is the decision that drives the architecture. Four models, increasing in richness:
A single voice (today's Charlotte) speaks plural and names each person by role. This is what the Solstice/Concordia drafts do. - Pro: smallest build. Renderable this week. One voice, one render, the mix we already use. - Con: it is one voice speaking ABOUT both of you, not each of you hearing your own part. Good, not yet magical.
Each person's individual passages are spoken in a DISTINCT voice; shared passages are spoken by both (sequentially, or blended into a soft unison). Jeff's lines in one voice, Sol's in another, the "we" in both. - Pro: this is the actual "speaks to both simultaneously and individually." Novel, premium, unmistakably Affirmology. No competitor does this. - Con: needs a speaker-tagged script and multi-voice synthesis (the engine uses one voice today). More render steps, a stitch/blend pass. - THE BIG UNLOCK: use each person's OWN cloned voice. The product promise is literally "hear their own truth in their own voice." ElevenLabs can clone a usable voice from a short sample. If Jeff and Sol each give ~1-2 minutes of clean audio, the team audio braids their actual voices. That is the version that makes people cry.
From ONE shared relationship analysis, emit a separate second-person audio for each member ("you", their own voice), complementary by design, playable in sync or alone. - Pro: scales cleanly to the whole company and the Penta (each new hire gets their own from the team analysis). Reuses the single-voice pipeline per person. - Con: it is two solo audios that rhyme, not one shared object. Less "together in the room."
Each person's individual address panned to one side, shared lines centered. Literally simultaneous. - Pro: a striking demo trick; pairs well with Model B. - Con: niche; only works on headphones; layer it on later, not now.
Build the shared layer a single time, then any voicing model is just a render strategy on top:
relationship.py already computes hd_connection (electromagnetic / companionship / dominance / compromise channels), Penta (the 3-5 person business aura), western synastry (Moon/Mars/node overlaps), composite midpoints, Vedic Moon kuta, Gene Keys Venus overlap. Generalize the call site to take 2..N people.script_generator.py is single-person. Add a path that feeds N charts + the relationship facts into the council (Sophia brief already knows how to ingest facts) and produces a Companion script. Crucially: the script is written with explicit speaker tags - [BOTH], [JEFF], [SOL] - even in Model A (where we ignore them at render). That one choice means upgrading from Model A to Model B is a rendering change, never a rewrite.[BOTH] segments into a soft unison; one music bed under the whole thing.
- C: project the tagged script into per-person second-person scripts, render each solo.person_id; add people: [ids] and a "Companion" structure (or a small family: Companion-Evergreen like Concordia, Companion-Moment like the Solstice piece). The two-phase job model, QC gate, Heavenly Circuit mix, and the report all carry over.relationship.py (full), council loop, single-voice synth + QC + voice-anchored mix, Studio two-phase pipeline + job store + media serving, the two example scripts for craft reference.people[] on compose; (d) Model B multi-voice render + optional blend; (e) optional: per-person voice cloning enrollment.Chart-driven only; no chartless finished scripts. No content bleeds between people except the shared composite, which is legitimately theirs jointly. Locked demo untouched; all of this lives in the Studio. No em dashes. Sol is "Sol." Subconscious Operating System stays the frame. Renders stay QC-gated. Structure changes are made with Jeff.
Which voicing model is the North Star for the signature team audio (this sets what Phase 2 aims at)? Recommendation: build the shared analysis + tagged-composer layer now and ship Model A this week, while making Model B with cloned voices the flagship we build toward.