{"path":"listening/how-to-write-for-listening.md","content":"# How to write for listening\n\n**Why this exists.** The founder listens to long material on walks, through a text-to-speech reader\n(ElevenReader). The first piece written for that on purpose, the Arc P walkthrough of 2026-09-26, is\nthe one he asked to keep as a template: *\"I quite liked this audio walkthrough, so persist it to\ndisk. That way I can refer back to it and use this as both a lookback and milestone in the project's\nevolution and as a template for how to generate audio content going forward.\"*\n\n**Status.** The founder approved the *example*. The rules below are Claude's reading of why it\nworked, and most are unruled. Two parts are his: room to think (2026-10-05) and *More room, and\nbreath* (ruled 2026-10-06 after he heard a sample: *\"Definitely incorporate in all future ones\"*).\nA third part, *What a walkthrough is for* (2026-10-08), records his words on the purpose; the rules\ndrawn from them are Claude's reading, and his report on the twelfth piece decides them.\n\n**The one example so far:** [`2026-09-26-arc-p-the-april-conversation-audited.md`](2026-09-26-arc-p-the-april-conversation-audited.md)\n(about 4,350 words, roughly thirty minutes at a comfortable reading speed).\n\n**Second, the same day:** [`2026-09-26-what-counts-as-evidence.md`](2026-09-26-what-counts-as-evidence.md)\n(about 8,800 words, roughly an hour) — a research walkthrough rather than an audit, written after the\nsynthesis and ledger rows were committed, on his instruction *\"Document everything carefully before\nyou spit out the audio walkthrough.\"* Not yet commented on.\n\n**Third, 2026-09-27:** kept in the private notes (`.private/listening/2026-09-27-the-decisions-waiting-and-three-words.md`),\nbecause one part describes a community's members-only threads\n(about 5,400 words, roughly thirty-five minutes) — the decisions waiting for him, with the three\nconcepts he found confusing (*encounter*, *weighed by its own standing*, *certainty*) explained from\nthe ground up, and his own questions of that day answered in place. Delivered as the reply, for him\nto paste into ElevenReader: *\"Spit out the walkthrough here, I wanna copy it into ElevenReader.\"*\n\n**Fourth and fifth, 2026-09-29, the first rendered as audio:** the major-transitions walkthrough,\nkept private because part of it concerns the founder personally\n(`.private/listening/2026-09-29-major-transitions-heredity-and-evolvability.md`, about 7,000\ncharacters), and [`2026-09-29-proving-reliability-and-bend.md`](2026-09-29-proving-reliability-and-bend.md)\n(about 15,000 characters, fourteen and a half minutes), which also corrects two rules the first one\nproposed.\n\n**Sixth, 2026-09-29 evening:** [`2026-09-29-microtasks-in-broad-daylight.md`](2026-09-29-microtasks-in-broad-daylight.md)\n(about 13,500 characters, thirteen minutes), rendered after the work it reports was done, fixed and\ncommitted, and cut into eight requests at its part boundaries.\n\n**Seventh, 2026-10-05:** kept in the private notes\n(`.private/listening/2026-10-05-six-days-from-the-first-calculus-ruling-to-the-first-labels.md`),\nbecause one part tells of a fault whose disclosure to the people affected is still his to decide\n(about 42,800 characters, 41 minutes), the first *catch-up* piece: everything since the sixth. His\nrequest: *\"Make an audio walkthrough that goes over all the research and insights since and including\nwhat the last audio walkthrough covered, please. Have it be rather long so I can listen during my\ntravels.\"* What it added to the method is under *A catch-up over several days* below.\n\n**Eighth, 2026-10-05 evening:** [`2026-10-05-the-evals-loop-and-our-machine-passes.md`](2026-10-05-the-evals-loop-and-our-machine-passes.md)\n(about 18,000 characters, 24 minutes), one podcast episode read against our machine passes, and\n**the first with room to think**: 40 marked pauses, a longer gap after every sentence, and the\nvoice slowed by 8%. He had found the seventh too fast. What changed, and why, is under *Room to\nthink* below. Not yet commented on.\n\n**Ninth, 2026-10-07:** [`2026-10-07-four-proposals-about-wanted-words.md`](2026-10-07-four-proposals-about-wanted-words.md)\n(1,689 words, 15.2 minutes), a short piece on one note's four proposals, asked for the same\nmorning the note was written. Two things its making showed. **A piece of short sentences runs\nslower than planned**: 111 words a minute overall where the planning figure is 120, since every\nsentence end and paragraph break gets its gap, so count sentences as well as words when stating a\nlength. **A word with a sound-alike needs a sentence that settles it**: *witch* was heard as\n*which* by the speech model, and a listener has only the sound. Not yet commented on.\n\n**Tenth, 2026-10-07:** [`2026-10-07-what-a-link-rests-on.md`](2026-10-07-what-a-link-rests-on.md)\n(702 words, 6 minutes 58 seconds), the first piece made to a stated length. His request: *\"a max\n7 minutes audio walkthrough\"*. Three things its making showed. **A length is planned from the\ntext, never by feel**: the first draft, written to a guess of 680 words, had 949. The renderer's\n`--dry-run` now says how long the file will run, as a span (*Before sending it*, below). **The\nvoice's own pace moves**: 145 words a minute while speaking here, where the ninth piece ran at 158\nand the eighth at 168, on the same settings and with sentences of the same length (about seven\nwords). So a piece with a limit is cut until the longer end of the span fits; this one was planned\nat 158 and came in two seconds under. **The check has a small model for a machine short of room**:\nwith `--model mlx-community/whisper-tiny` it took ten seconds and confirmed all 17 pauses, on a\nday when the Mac had too little disk and swap free to load the large one. In one place it wrote\nnine words the text does not have, all stamped at one instant, which is the speech model\ninventing; heard again alone, the stretch matched. His answer was about its content (*\"merely\nnaming what the links consist of would be weak sauce\"*) and asked for the next piece; on its form,\nnot yet commented on.\n\n**Eleventh, 2026-10-07:** [`2026-10-07-writing-out-the-unwritten.md`](2026-10-07-writing-out-the-unwritten.md)\n(1,618 words, 15 minutes 17 seconds), the answer to that. No length was asked for. Four things its\nmaking showed. **The sentence that states the length is written last, from the dry run**: the\ndraft said *about thirteen minutes*, a guess from the tenth piece's rate, and the forecast for the\ntext as written was 14:16 to 16:01. **Count the words between marked pauses before rendering**:\nthree stretches ran past sixty words, the opening among them, and each got a pause; nothing in the\nrenderer or the check looks for that (since 2026-10-08 a script does: `scripts/listening_stretches.py`). **A piece that corrects the one before it says so inside the\npiece, in the first person**, and its header lists every place where the spoken text is rounder\nthan the note: twelve here, which is what a dense note costs when it is spoken. **A breath cue can\ncome out voiced**: the speech model wrote one exhale down as a word (*phew*), so listen for\nbreaths that turn into sighs. Not yet commented on.\n\n**Twelfth, 2026-10-08:** kept in the private notes\n(`.private/listening/2026-10-08-eight-proposals-as-ideas.md`), because its closing speaks to the\nfounder personally (5,125 words, 45 minutes). The eight proposals of the philosophy note, and the\nfirst piece written after he said what a walkthrough is for: no scoreboard, two examples before\nevery proposal, each part closing on what is real today and what it would open. What changed, and\nhis words, are under *What a walkthrough is for* below. Three things its making showed. **A sample\ngoes out first when the register is new**: the opening and part one were rendered and sent while\nthe rest was written, seven minutes for 550 credits, so a wrong register would have cost him seven\nminutes and not forty-five. **Proper names are checked by what the speech model heard**, since a\nname is where a voice goes wrong: *slavoy gijek*, *in ray lacotos* and *sephylis* were close\nenough, and the six flagged sentence openings the check listed each held a proper name. **Depth costs\nlength**: nine parts with two examples each came to 45 minutes, where the day's earlier pieces ran\n7 and 15. Not yet commented on.\n\n**Thirteenth, 2026-10-08:** [`2026-10-08-eight-proposals-pondered-again.md`](2026-10-08-eight-proposals-pondered-again.md)\n(4,581 words, 42.5 minutes), the twelfth piece made a second time on his request, after a day's\nreading had changed what several of the proposals say: *\"Now you can gimme this, re-pondered in the\nlight of all the research and thinking since back then.\"* Three things its making showed. **A\nsecond look keeps the names a ruling can be made by**, and says so where one changes: *three ways\nto walk* became *four*. **A second look brings new examples** and recalls the first hearing's in a\nline, since the listener has heard them. **The count of words between pauses is now a script**\n(`scripts/listening_stretches.py`, to be run before the dry run), kept from the count that found\nthree stretches past the mark in this piece before it was rendered.\n**And a fourth, found the same night: a piece that walks proposals is read against the older corpus\nbefore it is rendered.** Three readers set this one against earlier rulings and built code\nafterwards. Seven of its statements needed correcting, and nine of its proposals met something\nalready ruled or built ([the note's § 14](../research/what-a-rule-rests-on.md)). His comments so far\nare on its content: on part eight (§ 13.6 there) and on how the wager was paraphrased (§ 14.5).\n\n**Fourteenth, 2026-10-08:** [`2026-10-08-what-our-own-notes-already-knew.md`](2026-10-08-what-our-own-notes-already-knew.md)\n(2,563 words, 24.3 minutes), a fresh and shorter piece he asked for after that reading: *\"perhaps 20-25\nminutes or so\"*. Two things its making showed. **Plan the words from the minutes before writing**: at\nthis pacing a piece runs about 105 words a minute overall, and the first draft, written without that\nsum, was 2,965 words and had to be cut twice. **A gate on the forecast belongs in the render command**:\nthe render refused to start while the forecast ran past the length he asked for, so no credit was\nspent on a piece that was too long. Not yet commented on.\n\n**Fifteenth, 2026-10-10:** [`2026-10-10-the-chain-folded-inside-an-arrow.md`](2026-10-10-the-chain-folded-inside-an-arrow.md)\n(1,015 words, 9 minutes 13 seconds), a day's thinking to a stated limit. His request: *\"Focus on\nactual ontology/core stuff, not the corpus graph tooling etc. 10 minutes max.\"* Three things its\nmaking showed. **Ten minutes holds three parts** when each has its two examples, its point and its\nclosing on the landscape: the parts ran two to three and a half minutes, and a fourth would have\ncost one of them its examples. **The counts moved to the header, and there were twelve of them**:\na day of trials spoken with no scoreboard leaves that many places where the ear got a rounder\nword than the note has. **The voice ran near its faster end this time** (155 words a minute while\nspeaking, where the forecast's longer end assumes 142), so the piece planned to end by 9:48 ended\nat 9:13. The longer end stays the plan, since the pace cannot be known beforehand. Not yet\ncommented on.\n\n---\n\n## The request that produced it\n\n*\"Explain all of Arc P and related reasoning including the superseded/contradicted stuff. In a way\nthat is conducive to being read aloud, since I'm gonna feed your response to ElevenReader and listen\nduring a long walk.\"*\n\nTwo things in that request set the shape: **all of it**, including what was retracted, so nothing is\nsummarised away; and **read aloud**, so everything that only works on a page has to go.\n\n## What a listener cannot do, and what follows\n\nA reader skims, glances back, and sees structure at once. A listener gets one pass, in order, at the\nspeaker's pace. Every rule below follows from that.\n\n1. **Say the map before the territory.** Open with what the piece covers and the order of its parts,\n   in one or two sentences. A listener can't glance at the table of contents.\n2. **Headings are spoken signposts.** \"Part three. The claim that was superseded.\" Short, numbered,\n   saying what the part is *about* rather than labelling it. A TTS reader reads them aloud, so they\n   have to work as speech.\n3. **Nothing that only works visually.** No tables, bullet grids, arrows, code identifiers, file\n   paths, markdown emphasis doing work, or parenthetical asides. A table becomes a sequence of\n   sentences; a path becomes a name (\"the weakest-link work in late August\").\n4. **Numbers as they would be spoken.** \"Zero point six five\", \"nineteen twenty-one\", \"about eighty\n   hours\". Ledger ids as words: \"P two\", not \"P2\". Round anything whose precision doesn't matter to\n   the ear.\n5. **One idea per paragraph, short sentences, plain connectives.** \"Here's what happened after.\"\n   \"Three things about that deserve honesty.\" The connective carries the structure the eye would\n   otherwise get from layout.\n6. **Name the stakes before the detail.** \"It's the most important thing in this whole arc, so I'll\n   take it slowly.\" That tells the listener where to spend attention.\n7. **Explain any outside name in half a sentence on first mention.** \"Lara Buchak's work on risk\",\n   \"the statistician I. J. Good\". Never lead with a proper noun the listener has to already know.\n8. **Concrete pictures for abstract points.** The participation-dependence argument landed through\n   one image: a claim in a corner where only its supporters have shown up, whose strength climbs\n   while nothing about the world changes.\n\n## What made this one honest, which is the part worth keeping most\n\n9. **His words verbatim, introduced as his.** \"In your words:\" and then the quote, unedited. The\n   standing rule that rulings are recorded in his words applies with extra force in audio, where a\n   paraphrase in the speaker's voice is indistinguishable from his.\n10. **Superseded material gets full treatment, not a footnote.** Say what was claimed, who claimed\n    it, what contradicted it, and why the contradiction holds. The superseded parts were where the\n    reasoning was most interesting.\n11. **Own errors plainly, in the first person.** \"I want to own it, because it was my claim.\" \"I\n    invented them in that conversation.\" No passive voice about who got it wrong.\n12. **Separate open, ruled and superseded by sound.** Close each item on its status: \"P four is\n    open.\" \"So P five is marked superseded.\" A listener can't see a status column.\n13. **End on the decisions, framed as questions to carry.** The last part lists only what is waiting\n    for him, as questions he can turn over while walking, then one sentence of summary. That makes\n    the walk itself the review.\n\n## A catch-up over several days\n\nThe seventh piece covered six days and nine documents instead of one question. Four things made\nthat workable, each a guess until he comments:\n\n- **Start from the session record, never from the documents.** `SESSION-HISTORY.md` holds each\n  arc in a few dense paragraphs with his words in them. It gives the order and the corrections;\n  the documents' answer-first sections then give each part its depth.\n- **Open with where the last piece ended and what became of its closing questions.** A listener\n  who heard the last one gets continuity, and each old question gets a status by ear: open, done,\n  folded into another.\n- **One part per arc, the most important one named as such**, and the rest kept shorter than they\n  could be. Eleven parts at two to five minutes each held together; a part over six minutes should\n  be cut in two.\n- **Corrections go where the corrected claim is told, in the first person**, and the opening says\n  how many there were. Over six days there were about a dozen, and several changed a conclusion.\n\n**His quoted words, when spoken.** A slash in his text is spoken as a pause (*\"deploying, switching\non\"*), an abbreviation is spoken in full, and quote marks inside a quote are dropped. Nothing else\nchanges. A quote in Swedish is translated and said to be a translation, since the voice reads\nEnglish.\n\n## Room to think (2026-10-05)\n\n**What he asked for**, after the seventh piece: *\"One improvement for the audio walkthroughs I want\nyou to make for all future walkthroughs is that... I often need a second or three to ponder a\ncomplex sentence. And since most topics I'm dealing with in Deliberus are complex I'm finding myself\noften slightly gargleblasted by the sheer speed and the lack of pacing and patient\nexplanations/examples. At the very least I need a few seconds of silence sprinkled in throughout the\nwalkthrough at moments after you've delivered some sentence/s where there's many concepts or\ninferences at play.\"*\n\n**What the seventh piece really sounded like**, measured from its file:\n\n- **183 words a minute** (7,578 words in 41.4 minutes). This file had planned on 150.\n- **About 0.4 seconds after a sentence.** Of 1,066 gaps, 696 lay between 0.25 and 0.45 seconds.\n- **The longest silence in 41 minutes was one second**, and only three gaps reached 0.6.\n\n**What the voice model can do by itself**, measured the same day on short clips:\n\n| Lever | What it did |\n|---|---|\n| The `speed` setting | Nothing: the same clip ran 9.68 seconds at 1.0 and 9.76 at 0.85 |\n| One `[pause]` | About 1.1 seconds |\n| One `[long pause]` | About 1.4 seconds |\n| Two `[long pause]` in a row | 2.8 seconds |\n| Three in a row | 2.6 seconds, so the length cannot be set by counting marks |\n| A direction such as `[calmly]` | One clip, still about 190 words a minute |\n| The fields `previous_text` and `next_text` (the text on either side of a piece) | Accepted, and not charged for. Whether they make the joins between pieces smoother was not tested |\n\nSo its own marks can make a pause of two and a half seconds where one is written. They do not\nlengthen the gap after an ordinary sentence. ⚠ This paragraph ended *and nothing slows the voice*\nuntil 2026-10-06. That was too wide: the `speed` setting and `[calmly]` do nothing, and `[slowly]`\nin front of a sentence slows that sentence by about a fifth (*More room, and breath* below).\n\n**So the room is made after the voice has spoken.** `scripts/render_listening.py` does four things,\neach with a default and a flag:\n\n| What | Default | How to write or change it |\n|---|---|---|\n| A marked pause | exactly the seconds asked for | a line holding only `[[pause 3]]`, between two paragraphs |\n| After every sentence | 0.45 seconds more (0.35 until 2026-10-06) | `--sentence-gap` |\n| At every paragraph break | 1.1 seconds more (0.8 until then) | `--paragraph-gap` |\n| At every `---` | 3.5 seconds more (2.5 until then) | `--part-gap` |\n| The voice | slowed to 0.92 of its speed, pitch kept | `--tempo` |\n\nThe slowing is done after the fact with ffmpeg's `atempo` filter, which changes the speed and keeps\nthe pitch. It costs nothing, so a piece can be re-paced from its kept voice files (`--keep-pieces`)\nas often as wanted.\n\nThe eighth piece, made this way: 168 words a minute while speaking, **138 overall**, and 4.4 of its\n24.2 minutes are added silence.\n\n*How the silence gets to the right place.* The voice service reports when each character was\nspoken. Silence is spliced into the middle of the gap the voice itself left there, so no word is\never cut. One thing about that report cost a first assembly its accuracy: it says when the next\nsentence begins **on time or up to a third of a second late, never early** (sixteen pauses\nmeasured). So the renderer takes the last real silence that ends by the reported moment. A rule\nthat took the nearest silence put one pause a word late, after *So,* where it belonged after the\nfull stop before it.\n\n**How to write for it.** These continue the numbered rules above.\n\n14. **One new idea per sentence.** Most sentences under twenty words. The eighth piece has a median\n    of eight.\n15. **After a sentence that carries several ideas: a pause, then the same thing again.** In plainer\n    words, or as an example. *\"In plainer words: you cannot write the rulebook first.\"*\n16. **Ask, wait, answer.** Put the step that matters as a question to the listener, leave four\n    seconds, then give the answer. *\"How often does it agree with the person?\"* A listener who has\n    tried to answer hears the answer differently.\n17. **Close each part on one line that says it again.** *\"So, part two in a line.\"*\n18. **Say at the opening that the silences are deliberate**, so a pause is not taken for a fault.\n19. **Say less.** Plan the length at the measured pace with the pauses counted, and cut content\n    before cutting pauses.\n\nHow long a pause, since 2026-10-06: **three seconds** after a dense sentence, **four** after a key\nnumber or a turn in the argument, **five** after a question put to the listener, **six** after the\nline that closes a part. About one marked pause every twenty to twenty-five seconds. (The eighth\npiece used two, three and four seconds, and one pause every half minute: 40 in 24 minutes.)\n\n**Why this should help**, and how far each source was read:\n\n- **Pauses restore what speed takes away.** A lab that has studied this since the 1990s states it\n  as well established that silent pauses inserted into speech improve recall and comprehension, at\n  normal speed as well as fast. They found early that the benefit depends on where the time is put,\n  comparing pauses at the boundaries of sentences and clauses with pauses at random points. In a\n  later experiment, pauses at such boundaries brought recall of fast speech back to about the level\n  of normal speech and lowered measured effort (Wingfield and colleagues, 1999, 2023, 2025;\n  abstracts read, and the first does not say how large the difference was).\n- **Long spoken passages overload, short ones do not.** Speech vanishes as it is heard, so a long\n  complex stretch has to be held in mind while more arrives (the *transient information* effect,\n  as Chen and colleagues define it in 2026; Wong, Leahy, Marcus and Sweller tested it in 2012 on\n  spoken text in long and short segments. Abstracts read, the second only as far as its\n  hypotheses, since the fetched copy was cut off before the results).\n- **A question before the content.** Learners who overheard a dialogue with a searching question\n  before each sentence did better than those who heard a monologue, and better than those who used\n  the tutoring program themselves (Craig, Sullins, Witherspoon and Gholson 2006; abstract read). A\n  caveat seen only in a search summary and not opened: a 2022 study did not find the gain in short\n  narrated videos.\n- **A few seconds to think.** When a teacher waits a few seconds longer after asking, answers\n  improve markedly (Rowe 1986 and 1987; abstracts read). The figure usually quoted from her work is\n  three seconds; it was not read in the paper itself.\n- **Radio practice.** One fact or idea per sentence, because the listener gets one chance (NPR's\n  training pages, read through a search summary that quotes them).\n\n**Considered, and not made the default.** Each is his to choose.\n\n- **The model's own marks only.** No code at all, and enough for a pause of about two and a half\n  seconds at a marked place. It leaves the sentence gaps and the speed as they are.\n- **Two voices in dialogue.** The research on overheard questions points that way. It would change\n  the voice he chose, and one study of machine-read dialogue formats found small effects and had no\n  single-voice arm to compare with (arXiv:2608.20822, abstract page read). Rule 16 keeps most of\n  the idea in one voice.\n- **A soft tone to mark a pause for thought.** Not tried.\n- **A slower voice still.** `--tempo 0.88` gives about 160 words a minute while speaking. Slowing\n  stretches the sound, so more of it risks an unnatural voice; nobody has listened for that yet.\n  Since 2026-10-06 there is a better tool for the sentence that matters: `[slowly]`, the voice's\n  own slowing (rule 21 below).\n\n**Changing the pacing later costs nothing.** With `--keep-pieces` the rendered voice stays beside\nthe mp3, and the same command with other numbers puts the file together again without a new\nrender.\n\n## More room, and breath (2026-10-06)\n\n**What he said after the eighth piece**, the first made with room to think: *\"I appreciated it a\nlot. The pacing helped. Feel free to add even more pacing and pausing to the next one. Aids in\nreflection. Feel free to add appropriate speech noises/breathing/intonation matching the vibe\naround the pausing and pacing also.\"*\n\nSo two things changed for every piece from here on: more silence, and a few sounds a person makes\naround a silence.\n\n**More silence.** The three defaults went up (the table above), and the pause lengths went up by a\nsecond each, with a fourth length for the end of a part. Measured on the eighth piece's own voice\nfiles, put together again at no cost: with the new defaults and every pause one second longer it\nruns **25.7 minutes where it ran 24.2, with 5.9 minutes of added silence where it had 4.4, at 130\nwords a minute overall where it had 138.** A piece written with more pauses (one every twenty to\ntwenty-five seconds) lands near 125.\n\nOne step, and then his report again. A study of machine-read lectures cites earlier work for two\nthings: pauses help comprehension more than slowing the voice does, and past some share of pause\nthey begin to hurt (Elmers and Székely 2023, their citations 30 and 31, which were not opened). The\nspeaker in that study paused for 40% of the time. The eighth piece was 18% silence, and the next\nwill be about a quarter.\n\n**What the voice can do around a pause**, measured on 2026-10-06 on 21 short clips of the same two\nsentences, three longer clips for `[slowly]`, and one sample passage (Lucy, full `eleven_v4`, about\n520 credits in all). Speech in these clips averages −25 dB and peaks near −14:\n\n| Written | What it did |\n|---|---|\n| `[exhales]`, `[sighs]` | A breath out of about half a second, peaking between −29 and −46 dB, inside a gap of about a second |\n| `[inhales]`, `[inhales deeply]`, `[breathes]` | A breath in of about half a second, a little softer; the deep one once came in two parts |\n| `[takes a slow breath]` (our own words) | The cleanest: a breath, then half a second of quiet |\n| A breath out closing one paragraph and a breath in opening the next | Both, with a third of a second between them |\n| `Hmm.` as its own sentence | A voiced *hmm* of half a second, with quiet on both sides |\n| An ellipsis in place of the full stop | A beat of about 0.4 seconds |\n| `[slowly]` before a sentence | **That sentence about a fifth slower** (183 to 148 words a minute on two takes; 212 to 167 and 214 to 171 on a longer passage), fading after a sentence or two. The paragraph after is untouched |\n| `[deliberate]` | About 5% slower |\n| `[softly]` | 4.5 dB quieter, same speed |\n| `[quietly, after a pause]` | 0.6 seconds of quiet, then a quieter start |\n| `[thoughtful]` | No change in speed or level (its tone was not measured) |\n\nNo cue was read out as a word in any clip (a speech model listened to all of them).\n\n**A breath has a side, and the renderer keeps it there.** The first assembly of the sample put a\nbreath in *before* three seconds of silence: breath, silence, words. An inhale belongs to the\nsentence it comes before. So:\n\n- A breath cue that **closes** a paragraph stays before the silence: sentence, breath, silence.\n- A breath cue that **opens** a paragraph comes after the silence: silence, breath, sentence.\n- No sentence gap is added between a sentence and the breath that follows it.\n\nThe renderer finds the breath in the sound itself (short, and never as loud as a word), counting\nback from the words after the pause. Only the six cues in the first three rows of the table are\ntreated as breaths. Any other cue is treated as a direction, so measure a new one before relying on\nit. `scripts/check_listening.py` now also says whether each breath sounds on its own side, with no\nspeech model needed for that part, and it rejects the wrongly ordered file.\n\n**How to write for it.** These continue the numbered rules.\n\n20. **A breath beside a pause, on its own side.** `[exhales]` at the end of the paragraph before a\n    pause carries the weight of what was just said. `[inhales]` at the start of the paragraph after\n    it carries the turn to what comes next. About one pause in three or four gets a breath. The\n    silence does the work; the breath only makes it sound meant.\n21. **`[slowly]` on the sentence that matters.** One or two a part, on the sentence a listener\n    should leave with. It needs repeating for each sentence it is wanted on.\n22. **Never a filler.** No *um*, no *uh*. At most one `Hmm.` in a piece, before a correction or an\n    admission.\n23. **`[softly]` for an aside, rarely.** A bus or a street eats quiet speech.\n24. **Close each part with its line, and then six seconds.** Time to gather before the next part.\n\n**Why breath might help, why it might not, and how far each source was read.**\n\n- **A breath before a sentence helped people repeat it.** In machine speech, a breath in of 0.6\n  seconds before a sentence raised word-for-word recall of that sentence (0.923 against 0.902); one\n  of 0.3 seconds did not. Single sentences only (Elmers, Werner, Muhlack, Möbius and Trouvain,\n  Interspeech 2021, repeating Whalen and colleagues 1995; read from the abstract to the\n  discussion: [isca-archive.org](https://www.isca-archive.org/interspeech_2021/elmers21_interspeech.pdf)).\n  Our breaths run 0.5 to 0.7 seconds.\n- **In lecture-length machine speech it went the other way.** Listeners heard three-minute\n  passages built from a lecturer who paused for 40% of the time, with 212 *uh*s in four passages.\n  Whether the breaths and fillers were kept, replaced by silence of the same length, or cut out\n  made no significant difference to the total score. Questions whose answer came right after pause\n  material were answered correctly less often (0.58 against 0.77). Interest in the content was a\n  strong predictor (Elmers and Székely, Speech Synthesis Workshop 2023; read from the abstract\n  through the results on preceding material and interest, not the discussion:\n  [isca-archive.org](https://www.isca-archive.org/ssw_2023/elmers23_ssw.pdf)).\n- **Practice.** A voice-over artist calls the breath unseen punctuation, with a measured breath in\n  before a sentence signalling that something matters; an audiobook editor's rule is to shape a\n  pause and never delete it (Ricketts 2025; Tonkoi 2026; both read as search extracts only).\n- **The voice service's own pages** list `[sighs]` and `[exhales]` as breath sounds, say a cue goes\n  right before or right after the words it belongs to, and warn that what a cue does depends on\n  the voice (ElevenLabs' best-practices page and two help pages, read as search extracts; they are\n  written for the model before this one). A third-party guide to this model says it has no speed\n  control and names `[slowly]`; that claim was checked here by measuring.\n\nSo the evidence is mixed and thin, and it is about recall, where he asked for room to reflect.\n**His own report is the measure**, which is why breath stays sparse and fillers stay out.\n\n**RULED 2026-10-06, after he heard the sample below**: *\"Walkthrough sample sounded great btw.\nDefinitely incorporate in all future ones\"*. So everything in this section is standing for every\npiece from here on: the longer gaps, pauses of three to six seconds, a breath beside a pause on its\nown side, `[slowly]` on the sentence that matters, six seconds at the close of a part.\n\nOne thing his word does not settle. The sample put every device into one minute, which is denser\nthan rules 20 to 23 allow. He approved how it sounded. He has not heard a half-hour piece at the\nrules' density (a breath at about one pause in three or four, `[slowly]` once or twice a part, one\n`Hmm.` at most). The rules stand as written, and his report on the first full piece decides whether\nthey move.\n\n**The first full piece at this density** (2026-10-06): the seventh piece, made a second time on\nhis request (*\"Can you remake the six-days walkthrough using the new pacing etc? Thx\"*). Its text\nis in the private notes, as the first version's is. Measured on both files:\n\n| | First version | Made again |\n|---|---|---|\n| Length | 41.4 minutes | 68.5 minutes |\n| Words | 7,578 | 8,230 |\n| Words a minute while speaking | 183 | 163 |\n| Words a minute overall | 183 | 120 |\n| Added silence | none | 17.8 minutes, 26% of the file |\n| Marked pauses | none | 179, one every 23 seconds |\n| Breath cues | none | 43, at about one pause in four |\n| `[slowly]` | none | on 18 sentences |\n| Parts | 11 | 11, five of them cut in two or three |\n| Credits | 5,173 | 5,669 |\n\nHis report on it decides whether rules 20 to 23 move. Four things the making taught:\n\n- **The same content takes two thirds longer.** The slower voice and the silence added most of\n  it; the closing lines, the opening and the questions added 650 words. So plan a new piece at\n  **120 words a minute overall**, and settle its length before writing it. (⚠ 2026-10-07: the\n  two pieces after this one ran at 111 and 101. The dry run now gives the length from the text:\n  *Before sending it*, below.)\n- **Rule 19 was not kept here.** He had asked for this piece again, and had asked for the first to\n  be long, so the content stayed and the length was accepted. For a new piece the rule stands.\n- **The copy for a phone needs a lower rate once a piece passes about 50 minutes.** At 80 kbps a\n  copy reaches the 30 MiB a phone accepts at 52 minutes. This one went at 56 kbps, 27.4 MiB.\n- **The check could not vouch for a piece this long, and took 21 minutes.** Twenty minutes in he\n  wrote: *\"Never mind the audio check, it's so slow\"*, and the file went out unchecked by ear.\n  Read afterwards, the check had confirmed 175 of the 179 pauses and flagged four, and each of the\n  four was its own mistake: three where a number was heard as digits or two words as one (*fifty\n  per cent* as *50%*, *any more* as *anymore*, *two in a hundred* as *2 in 100*), and one where the\n  soft end of a word was taken for a breath on the wrong side of a silence. Its count of sentences\n  was void, because the speech model heard 3,934 of the 8,230 words: it skips and repeats on a long\n  file full of silences. What stood in: the voice service's own timings put the end of every piece\n  on its last written character, at a steady 58 to 61 milliseconds a character. The repairs owed\n  are in `TODO.md`. Until they are made, a piece over half an hour is checked from those timings\n  and from its voice pieces heard one by one, not from the assembled file.\n\n**The sample**: one minute, every device once, kept with the audio as\n`pacing-sample-2026-10-06.mp3`. Its text, as rendered:\n\n```\n[warmly] Here is a short sample of how the next walkthrough could sound.\n\nFinding the kinds of fault is one job. Proving how rare a fault is, is another job. [exhales]\n\n[[pause 3]]\n\n[inhales] [slowly] A proof only holds for the instructions it was measured on.\n\n[[pause 2]]\n\nAnd each fault you find changes the instructions.\n\nNow think about what that means for your hours. Say you sit down to prove a pass before the reading has settled. What happens at the first fault you find? [takes a slow breath]\n\n[[pause 5]]\n\nThe wording changes. And the proof starts again from zero.\n\nHmm.\n\n[[pause 3]]\n\n[softly] So reading comes first. [slowly] Proving comes after the wording has stopped moving.\n```\n\n## What a walkthrough is for (2026-10-08)\n\n**What he said**, interrupting the making of the twelfth piece: *\"I reflected earlier while\nlistening to the recent walkthroughs that it often sounds like I'm listening to a statistics sports\nnarrator, speaking in fractions and burping up individual numbers as though that's the point. The\npoint of the walkthroughs and reviews and most of the cognitive work I do in/for Deliberus needs to\nbe much better clarified I feel.\"*\n\n**Asked what he had been waiting to hear instead**: *\"Oh idk ANYTHING OF ACTUAL SUBSTANCE JOGGING\nMY MIND AND IMAGINATION CONSTRUCTIVELY? A return to the basics of analytical philosophy, a twisted\nmonologue by Zizek, a visionary imagining of how people and agents could reason and think and\ndecide together better and feel into, intuit and explicate their moral and spiritual subtle nature\nin a way that transcends and inverts the self outward for the world to see transparently, an elder\nholding my hand* […] *a playful suggestion about a critical creative reframing of a UI UX question,\na quirky example from everyday life to ground all the vague fleeting terminology, or a sit-down\nwith any and all of the most relevant textbooks and most modern academic publications, also all the\nirreverent perspectives brought to bear on the questions and topics at hand, or all of the above?\nSomething like that? I'd like my mind to light up.\"* One clause, about what he hears within\nhimself, is left out here and kept whole in the private notes.\n\n**And on what all of it is for**, the same hour: *\"I want to see crisper and more fully the\nlandscape of both reality and potentiality that I'm standing in, generally\"*.\n\n**What the pieces of 7 October had become.** Reports of trials: what was predicted, what held,\nwhat broke, each as a count. The first piece he kept as a template, the audit of the April\nconversation, told the story of an argument. The drift had two honest sources. The day's work was\ntrials. And the chat style asks for numbers in place of adjectives. A count is the right thing in a\nnote and the wrong thing in the ear.\n\n**How to write for it.** Claude's reading of his three messages: unruled, tried once (the twelfth\npiece), and his report decides. These continue the numbered rules.\n\n25. **A number is spoken only when the number is the idea.** *Formal proofs run about four times as\n    long* is an idea. A tally of how thirty links came out is a scoreboard: say what happened, in\n    words (*it refused, every time I asked*; *most*; *a few dozen*). The counts stay in the note,\n    and the header says where the spoken text is rounder.\n26. **Two examples before every point**, as he asked for the proposals: one from everyday life, one\n    from the field's history or from our own graph. The point comes third.\n27. **A palette of registers, in his list**: the basics of philosophy; a voice with a twist; a\n    vision of how people and agents could reason together; an elder's voice; play with an\n    interface question; a quirky everyday example; the textbooks and the newest studies; the\n    irreverent view. Not all in every piece, and never as decoration: each one used has to carry\n    part of the argument.\n28. **A borrowed voice is marked as borrowed.** *These are my words, in his manner.* Only what the\n    person said is given as theirs. This is the project's own rule for reported speech, applied to\n    style.\n29. **The elder's voice stays inside what can be stood behind**, and it never speaks for what he\n    hears within himself. That is his alone to name.\n30. **Every part closes on the landscape: what is real today, and what this would open.** The piece\n    closes on the view from here, both halves once more, before the questions to carry.\n31. **A proposal gets a picture for a name** (*the toll bridge*), and the ledger row carries the\n    same name, so that he can rule by it.\n32. **A correction of a count is spoken as a correction, without the new count**, when the count is\n    not what the listener needs. *The count was never the finding.*\n\n**What the first try cost.** 5,125 words and 45 minutes. Rule 19 (say less) and his ask (explain\ndeeply, two examples each) pull against each other, and his report settles which gives.\n\n**The reasoning behind these rules**, the two questions put to him, and what his answer may mean\nfor the reviews:\n[what-the-walkthroughs-and-the-reviews-are-for.md](../research/what-the-walkthroughs-and-the-reviews-are-for.md).\n\n## Before sending it\n\n- **Verify every factual line against the corpus**, as for any doc. Audio makes errors *more*\n  persuasive rather than less: nobody pauses a walk to check a citation.\n- **Read it once as a stranger would hear it.** Anything that needs the corpus loaded to parse gets\n  half a sentence of explanation or gets cut.\n- **Length:** read it from `--dry-run`, never from a words-a-minute figure. Before anything is\n  spent, the dry run counts the silence the text will get, by the rules the assembly follows, and\n  prints the span the file will run in. The span is as wide as the voice's own pace, which has\n  run between 142 and 168 words a minute while speaking on these settings, the short pieces\n  slowest. Overall, the last four pieces ran at 138, 120, 111 and 101 words a minute, falling as\n  the pauses grew and the pieces shortened, which is why no one figure is given here (this line\n  said 140 until 2026-10-07). State the length when offering a piece. For a piece with a limit,\n  cut until the longer end of the span fits.\n- **Deliver it as the reply itself**, with no preamble or trailing notes, since everything in the\n  reply gets read aloud.\n\n## Rendering it as audio\n\nWhen he asks to *listen* rather than read, render it with `scripts/render_listening.py`. The\ndefaults are his, from 2026-09-29: *\"Don't use the turbo but rather the full version of V4 btw.\nMake that our default. Also in Ruby.\"*\n\n- **Model**: the full `eleven_v4`, never a turbo or flash variant. Ruby's conversation voice was\n  switched to the same model that day (`~/.claude/hooks/sound_config.json`).\n- **Voice**: Lucy (`lcMyyd2HUfFzxdCaC4Ta`, Ruby's narration voice). Stability 0.5, similarity 0.8,\n  mp3 at 44.1 kHz and 128 kbps. The `speed` setting is sent as 1.0 and has no effect on this model\n  (measured 2026-10-05); the pace is set after rendering, by `--tempo`.\n- **Audio tags**: v4 reads `[warmly]`, `[thoughtful]` and the like as direction rather than words.\n  Use them to carry what a page carries with layout: a change of topic, an aside, the weight of a\n  correction. For a pause, write `[[pause 3]]` on a line of its own (*Room to think* above); the\n  model's own `[pause]` cannot be set in seconds. Six cues are breaths and have a side\n  (`[exhales]`, `[sighs]`, `[inhales]`, `[inhales deeply]`, `[breathes]`, `[takes a slow breath]`),\n  and `[slowly]` slows one sentence (*More room, and breath* above).\n- **Length per request**: the API takes 10,000 characters. The script cuts at blank-line paragraph\n  breaks into pieces of at most 9,500 and joins them with ffmpeg. A line holding only `---` forces a\n  cut and is never spoken: put one at each part boundary, and open each part with its own framing\n  sentence.\n- **Check it**: `uv run python scripts/check_listening.py TEXT_FILE OUT_MP3`. A speech model on\n  this machine (`mlx_whisper`; nothing is sent anywhere, and it costs no credits) listens to the\n  finished file. The check reports whether each marked pause is silent for its length, whether the\n  words on each side of it are the words the text has there, whether every sentence was spoken,\n  whether a stage direction was read aloud, and whether each breath written beside a pause sounds\n  on its own side of the silence. Where the first hearing disagrees with the text it\n  listens again to that half minute alone, because a long file is sometimes heard with a short\n  sentence missing beside a long silence. About three minutes for a 24-minute piece. On a\n  68-minute piece it took 21 minutes and its count of sentences could not be relied on (*The first\n  full piece at this density*, above). On a machine short of disk or swap, `--model\n  mlx-community/whisper-tiny` does the same check in seconds with a model of 71 MB. It mishears\n  more words, so listen again to any stretch it flags before believing the flag.\n- **Cost on the keeper's Claude plan: the steps, not the words.** Measured 2026-10-08 on the founder's\n  question (*\"Estimate the use of tokens for each audio walkthrough generation including the\n  ElevenLabs voice synthesis credits\"*), from the session's own transcript with\n  `scripts/walkthrough_cost.py`, which counts each model call once and sums any stretch of a\n  session. Six pieces made in one long session on Opus:\n\n  | Piece | Length | Model calls | Tokens produced | Tokens re-read | Weighted | Voice credits |\n  |---|---|---|---|---|---|---|\n  | What a link rests on | 7 min | 25 | 60k | 14M | 2.9M | 478 |\n  | Wanted words | 15 min | 39 | 105k | 19M | 3.6M | 1,115 |\n  | Writing out the unwritten | 15 min | 35 | 47k | 16M | 2.7M | 1,107 |\n  | The evals loop | 24 min | 61 | 122k | 38M | 4.9M | 2,180 |\n  | Eight proposals as ideas, with its sample | 45 min | 46 | 172k | 28M | 5.3M | 3,932 |\n  | Six days, remade | 68 min | 94 | 196k | 55M | 7.8M | 5,669 |\n\n  Each row runs from the request, or from the compaction before the writing, to the file being\n  sent. Filing a piece afterwards is extra: 20 calls and 2.0M weighted for the twelfth. *Weighted*\n  adds the token classes at the API's list ratios, as a stand-in for what the plan counts.\n  - **Half to three quarters of a piece's cost is the session's standing context, re-read at every\n    step** (460k to 840k tokens a step in that session). What the model produces is a tenth to a\n    sixth. So a piece's cost follows its number of steps far more than its length: seven minutes\n    cost 2.9M and sixty-eight cost 7.8M.\n  - **In points of the weekly limit: about half a point to two points a piece.** An estimate: the\n    session read the limit fifteen times while it moved 26 points for 104M of its own weighted\n    tokens, some of the movement being other sessions', so a point is 4M to 5M. How the plan counts\n    is not published.\n  - **A session carries its instruction files in that standing context, and after a compaction a\n    second copy of any that changed since it began.** Measured that day: 259k tokens a copy, in a\n    context of 833k. An edit to an instruction file in the middle of a session is paid for at every\n    later step.\n- **Cost: the API prices this model in dollars, and credits follow from the plan.** Read on\n  ElevenLabs' API pricing page on 2026-10-05: $0.022 per 1,000 characters until 12 October (72% off\n  at launch), then $0.08; *\"API usage is billed in US dollars, not credits.\"* The plan's credits are\n  converted at what the plan paid for them. On Creator ($22 for 121,000) that is 0.121 credits a\n  character now and **0.44 after 12 October**, so a 41-minute piece costs about 5,200 credits\n  today and about 18,900 afterwards, some 15% of a month.\n  - *Measured*: 5,173 credits for 42,845 characters on 2026-10-05, 0.1207 a character on each of\n    twelve requests, which is the page's price converted to three digits. On 2026-09-29, before the\n    plan was renewed, four renders cost 0.06 a character (424 for 7,011; 922 for 15,253): the same\n    dollar price on an account whose credits were worth twice as much (inferred from the exact\n    doubling).\n  - ⚠ *Corrected 2026-10-05*: this note said the listed price was one credit a character, read off\n    the models endpoint's `character_cost_multiplier: 1.0`. That field is not this model's price.\n    A forecast of 43,000 credits for a piece this long was wrong by more than half.\n  - *A separate offer, not for the API*: the app's banner (*free for 2 weeks, up to 242K credits*)\n    covers Creator and above generating with this model **in ElevenLabs' own web and mobile apps**\n    until 12 October. It does not touch renders made by this script.\n- **The money rules, his, 2026-09-06**: *\"don't use elevenlabs api money before I've paid the monthly\n  sub please\"* and *\"Don't wanna risk paying MORE than the monthly sub price.\"* The script enforces\n  them since 2026-10-05: it renders only on an active plan that cannot run past its credits, and\n  only if the text fits in what is left with 20,000 credits kept back, because Ruby, his voice\n  assistant, draws on the same account. The first piece is checked at one credit a character,\n  an upper bound no plan reaches, and the rest at the price the API charged for it. The plan on that day: Creator, 126,608 credits a\n  month, renewing on the 5th, not allowed to run over (the account's own endpoint says so, in\n  `can_extend_character_limit`).\n- **A failed render loses nothing**: pieces are kept beside the output until the join, and the same\n  command resumes. `--keep-pieces` leaves them there afterwards, with a small record of where each\n  pause was put (`OUT.mp3.pacing.json`), which the check reads.\n- **Keep the audio out of git**: `.private/local-only/listening-audio/`.\n- **Getting it to his phone**: send the file into the conversation. That reaches a phone only\n  under 30 MiB, and 41 minutes at 128 kbps is 38, so the copy for the phone is re-encoded to mono\n  at 80 kbps (24 MiB; the voice is mono already). This is the one route confirmed on 2026-10-05.\n  A second copy was put in `~/Documents/Deliberus listening/` for iCloud to carry to the Files\n  app, and iCloud had not uploaded it eight minutes later, though an older file in the same\n  folder showed as uploaded. The cause was not found: the sync tool (`brctl`) refuses this\n  process. Do not count on that route until one upload has been seen to finish.\n\n## Persisting one\n\nSave it here, as `YYYY-MM-DD-<subject>.md`. Put a short header (what it is, what it covers, its\nstatus as a snapshot, a link back to this file), then a horizontal rule, then the listening text\n**unchanged from what was delivered**. A walkthrough is a milestone as well as a document: a snapshot\nof where the project stood that day, which the live surfaces (the ledger, the frontier) will move\npast. Don't retro-edit it when they do. Add a note to the header saying it has been superseded.\n\n**Copy the delivered text out of the session's own record; never retype it.** On 2026-09-27 a copy\nwritten from the drafting pass differed from the delivered reply in dozens of sentences, since the\nreply had been revised on its way out. The fix is mechanical: take the assistant message that begins\nwith the walkthrough's title from the session transcript and paste it below the header as it is.\n"}