---
title: "Oh Wait"
url: https://akdarrah.com/posts/oh-wait
author: Adam Darrah
published: 2026-11-09T00:28:46Z
updated: 2026-11-09T00:28:46Z
tags: ["video","ai"]
---

# Oh Wait

My wife Kirsten turns 39 today. A few weeks ago a friend texted her something like "here's to the last year of our 30s." Kirsten was ready to correct her: she's 38. Then she counted. Oh wait.

That's the song. It's called "Oh Wait (The Ballad of Kiki)", and it plays at her birthday dinner tonight with both sets of grandparents.

https://youtu.be/tE4qmSxG3Pc

## The song

Kirsten's favourite band is Lord Huron. We saw them once and both agree it was one of the best shows we've ever been to, and seeing them at Red Rocks is on her bucket list. So the song is fast western indie folk with galloping drums, twangy reverb guitar and a lonesome whistle. It's funny for most of its four minutes and then slows down for the last verse.

The verses are her: buying and selling on Facebook Marketplace and Buy Nothing, cardboard boxes we never throw away because "someone might want it", replacing every plastic thing in the kitchen, and falling asleep the second she's horizontal on the couch. She makes up songs for our kids, and one of them turned out to be the Imperial March. She found out when I played her Star Wars. She also used to design licensed Dolly Parton products, and now Dolly's Imagination Library sends our kids books.

Then there's our cat, Michter. He has pooped on the floor for years. Every time I clean it up, Kirsten walks by and asks the same question: "Did you let it sit for at least two minutes?" That got a whole verse, with a "Yes, dear!" from the backing vocals. The song ends with me speaking: "Happy birthday, Kiki... and yes. I let it sit for two minutes."

![The 38 rolls over to 39 in the chorus](/rails/active_storage/blobs/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzQsInB1ciI6ImJsb2JfaWQifX0=--d818f46bd567891d237e406239289f84580f75b1/oh-wait-39.png "The chorus. The 38 rolls over to 39 right as it's sung.")

## Why everything looked like a cartoon

The first version was a pulp paperback western. Every line was a dime-novel cover, a WANTED poster or a crime magazine, and the lyrics were the printed type. It was well made, and it was in sync. But when I watched it, it was more cartoony than I expected. And it wasn't just this one. A lot of my recent videos had looked like that.

So I asked Claude where it was coming from. It checked all eleven films I've made and found that not one of them had a single photo or frame of footage in it. The cause was my own lyric-film skill. One of its build rules said "Images: inline SVG only." That meant every cat, cowboy and record player had to be drawn in code as vector shapes, so everything came out as thick outlines and flat fills. Add the bouncy animation the scenes used, and you get a cartoon every time, whatever the art style is called.

We tried a version with real photos instead. It wasn't cartoony, but I didn't want photos either. What I wanted was illustration that didn't look like clip art.

![The Michter verse in the first, pulp version](/rails/active_storage/blobs/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzUsInB1ciI6ImJsb2JfaWQifX0=--a3f57df01829a40541b542ba6dd11ec9be5d3a68/oh-wait-pulp-version.png "Before: the pulp version") ![The same moment in the final version](/rails/active_storage/blobs/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzYsInB1ciI6ImJsb2JfaWQifX0=--e9321776dbf854cea1a466085babbeff22cda454/oh-wait-painted-version.png "After: the same line in the final version")

The final version is motion graphics over painted backgrounds. Instead of drawing shapes, Claude paints each background in Python: layered mesas with haze between them, soft light, a sunset glow and brush texture, with no outlines anywhere. The layers move at different speeds, so it feels like a slow camera move. The lyrics are the main event. They're big, they fill in letter by letter as they're sung, and the shouted backing vocals hit as full-screen colour flashes.

I've also told Claude to stay away from the cartoon look in future videos, so I don't have to catch it again.

## How it was built

- Claude wrote the lyrics from an interview with me, and generated takes in Suno through the Chrome extension. I picked a take after several rounds of lyric changes, including cutting a line that sounded like a word I did not want in a birthday song.
- It aligned every sung word to the vocal, so each letter fills at the moment it's sung, and slows down on held notes.
- Before building anything, it made a 28-second sample of three sections so I could approve the look.
- Ten subagents then built the 46 scenes in parallel from one brief. The brief listed what was banned: photos, outlines, clip-art props and bouncy easing.
- The full-film review caught one bug the builders couldn't see: in the whole-project build, the main title font silently fell back to a generic sans-serif and clipped words. That needed a local copy of the font.

Kirsten only appears as a distant silhouette, and our kids are only names in the type. Nobody in my family is drawn.

It was made with my [lyric-film](https://github.com/akdarrah/lyric-film) skill, Suno, and HyperFrames.

![Red Rocks under the stars in the final verse](/rails/active_storage/blobs/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzcsInB1ciI6ImJsb2JfaWQifX0=--8f8b7e69dadc4e581fae12b6d284f6574d2c800c/oh-wait-red-rocks.png "The last verse")

Happy birthday, Kiki. Someday at Red Rocks.

