the video
- length
- 2:50
- voices
- two AI voices: the singer and the friend who pushes her
- pictures
- 12 pencil-and-watercolour sketches in a notebook
where the idea came from
I have made a few songs with AI music tools, and after a while they all started to feel the same: polished, upbeat from the first line, nowhere to go. I wanted the opposite. A song should tell a story about a place, a person, a memory, and it should start low and climb.
- verse 1loss: handing back the staff pass
- verse 2despair: rejection letters, kopi gone cold
- pre-chorusfirst light: her mother's memory
- chorushope: still searching, still walking
- bridgeresolve: the uncles at Bedok Jetty
- endinga direction: Thursday, nine
The people are made up. The places are real: a lobby gate, a full train, a void deck at ten in the morning, a kitchen with the light left on.
the test: four ways to make a speaking voice sing
Fish Audio's Drama 3 is a speaking voice, built for emotion. Before writing the song I made four 30-second samples of the same lines to see which way of singing worked.
| sample | how | how it sounded |
|---|---|---|
| A | spoken in rhythm, each word moved onto the beat | clear, more like a chant than a song |
| B1 | pitch fully tuned to a melody | in tune, and robotic |
| B2 | tuned, but half its own expression kept | warmer, and still a machine singing |
| B0 | asked to sing, nothing corrected | a person learning to sing, not perfect yet |
I picked B0. If I want a perfect song, there are tools for that. This one needed the feeling of someone trying, which suits a song about people who keep trying.
how it came together
- 1
Story first, then lyrics. The shape of the song (loss, despair, first light, hope, a direction) came before any words. Each section got its own feeling to ask the voice for, from "numb and tired" to "full of hope".
- 2
She admits she's practising. The song opens with her saying it's one of her first tries at singing, and a second, older voice coaxing her: "Step up lah. Don't be shy." The same voice cheers her into the last chorus and closes the song: "First few times, nobody sounds good."
- 3
One take, not eight. My first draft asked for each section separately, and every request came back as a slightly different woman. Asking for her whole part in one go kept her the same person from start to end.
- 4
The music follows her. Her pitch wanders, so the chords were chosen from the notes she actually sang in each half line. When she drifts off the key, the chord drops a note so the clash stays soft. Each section was only nudged up or down as a whole; no single note was corrected.
- 5
Piano and bass in Logic Pro. The arrangement was written as MIDI and played by Logic's Steinway Grand Piano and electric bass. Pad, cello and strings came from a free soundfont.
- 6
A notebook for the video. A practice song gets a practice notebook: her lyrics appear word by word as she sings them, and pencil sketches of each place fill the pages. The pencil turns to warm ink at the first chorus. The friend's lines arrive as yellow sticky notes.
- 7
Checked before it shipped. A speech-to-text pass heard 95% of the lyrics in the final mix. Every page turn was checked frame by frame, and the end credits were held long enough to read.
what went wrong on the way
- Asking the voice to sound "sad, voice breaking" made it jump almost an octave higher, and it sounded like someone else. One long take fixed it.
- The first mix buried the music; the next one buried the voice. The final mix sits in between.
- Logic opened the arrangement on silent tracks, so the first bounce had no piano in the opening 25 seconds. It was caught by measuring the file, not by ear.
- Writing each word with a moving pen effect risked black frames when rendering 40 of them per page, so the words fade in instead.
the tools, and what each one did
- the plan
- Claude: story, lyrics, the arrangement and the checks
- the voices
- Fish Audio Drama 3: the singer and the friend
- the music
- Logic Pro (piano, bass) and FluidSynth (pad, strings)
- the pictures
- Google Flow: 12 sketches and the painted table, from one character sheet
- the video
- HyperFrames: built as web pages, rendered to MP4
- the files
- FFmpeg, Rubber Band and Whisper: mixing, key shifts, lyric timing