Narration
Set Voice system
Set Ducking 30%
Set Subtitles on
Say "This is Musicbox, a sketchpad for chord progressions."
Say@over "Press space, [play] and every lane starts looping."
Wait [play]
Key space
Say "<text>"speaks the line and waits for it to end before the next step.Say@over "<text>"starts the line and carries on with the next steps while it plays.Wait [marker]waits until the narration reaches a[marker]in an earlierSay@over, so an action lands on a word. Markers are letters, digits,-and_; they aren't spoken.
Lines never overlap: one starts when the line before it ends. The take runs until the last line has been said.
Set Voice |
Speaks with |
|---|---|
system (default) |
macOS's own voice. Offline, nothing to install. |
system:Samantha |
That macOS voice. |
voicebox:<profile> |
An AI voice from voicebox, by profile name or id: a voice you cloned from a sample, or one of its preset voices. voicebox runs on your Mac; nothing is sent anywhere. |
Set Voice voicebox:Main
Set Voice guest voicebox:Bella
Say "This is Musicbox."
Say@guest "Can it play the chords alone?"
Say@guest,over "Mute the melody, [mute] and listen."
Set Voice <name> <voice> names another voice, and Say@<name> speaks in it; @over goes with it, in either order.
Names are letters, digits, - and _. The unnamed Set Voice speaks every other line. The seed, language and
server are the same for every voice.
voicebox is the AI voice reel speaks with today: open source, local, with several speech engines; reel uses the one
each profile names. For voicebox, Set VoiceServer is its address (http://127.0.0.1:17493 unless set), Set VoiceSeed its seed
(1) and Set VoiceLanguage its language (en).
Every line is voiced before the app opens and cached in .reel/<reel>/voice/, by text, voice and seed, so an
unchanged line isn't voiced again. Nothing is played aloud while recording. The voice is mixed in when rendering.
A line with markers is voiced whole, in one breath, and each marker found in it: where the words before it end (each stretch between markers is voiced on its own as well, to know how long it takes), moved to the pause there when the voice pauses before the next word. Where it runs the words together, a marker can land up to a syllable late: said alone, the words before it take a little longer than in the whole line.
| Setting | Default | |
|---|---|---|
Set Ducking <n%> |
25% | The app's sound under the voice. It ramps down and back up over 0.2 s; lines close together duck as one. |
Set VoiceVolume <n%> |
100% | The voice's level. |
Set AppVolume <n%> |
100% | The app's level. |
Set Subtitles on\|off |
off | Each line as a caption while it plays. A caption showing at the time is cut around it. |
A GIF has no sound, so subtitles are how narration reaches one. The social profiles turn them on, since feeds play muted.
A line's text, voice or seed is part of the take: the reel's timing came from it, and voiced again it may come out a different length. Change one and record again. Volumes, ducking and subtitles change with a render.