A Constraint That Turned Into Craft
Splitting synthesis at language boundaries leaves small gaps in the audio — places where one request ended and the next began. The instinct is to eliminate them: trim the silence, butt the segments together, make the narration flow continuously the way a single call would have.
The design does the opposite. The seam is kept, and it is tuned. The reasoning is that the splits do not land randomly. Every language switch happens at a meaning boundary — a quotation entering or leaving, a correction arriving — so the gap falls exactly where a pause belongs anyway. Run the quote flush against the surrounding narration and it stops sounding like a quotation at all.
So a technical constraint became an expressive device, which is a satisfying outcome and a slightly dangerous story. It worked here because of a specific alignment: the constraint's boundaries coincided with the boundaries the content wanted. That is not guaranteed, and a constraint whose seams fall in arbitrary places is just damage.
Gap Length Is a Parameter, Not a Constant
Once the gap is treated as content rather than as residue, one implementation detail follows: its length varies per segment. A quotation entering needs a different pause from an ordinary sentence break, and a correction interrupting needs a different one again.
Making it a per-segment parameter rather than a global constant is a small change with a general lesson behind it. A single tuned constant is what you write when a thing is a nuisance you are minimizing. A per-instance parameter is what you write when it is something you are using. The shape of the code follows from which of those two you have decided it is, and settling that question is usually more valuable than the tuning itself.
The same reversal is recognizable outside code. The moment a loading indicator stops being a screen that hides waiting and starts being a device that tells you how much is left, its duration stops being a constant to minimize and becomes a value bound to progress. When whitespace stops being leftover room and starts setting reading pace, it stops having one value and starts having a value per position. It is the same move every time: something crosses from nuisance to material.