where the idea came from
I watched a film where a producer builds a whole track from the sounds Apple devices make: a startup chime, an AirPods case snapping shut, an iPod click wheel. I wanted to see how close I could get with what is already on my laptop, and asked Claude to help me build it.
Each row is one Mac sound. Filled cells are the notes it plays in a bar of the main section.
the sounds, and what each one plays
- chords
- Glass, pitched into Am, F, C and G
- arpeggio
- Ping, running up and down each chord
- click wheel
- the media key click, on the off-beats
- kick
- Bottle, two octaves down, with Submarine under it for weight
- snare
- the screenshot shutter, layered with the screen-capture sound
- hi-hats
- Tink, pitched up and cut very short
- bass
- Submarine, two octaves down, plus a sub-octave
- plucks
- Pop, on the off-beats
- melody
- Hero, in the busiest section
- effects
- Siri, Apple Pay, iMessage, FaceTime and the Dock poof, between sections
- ending
- Glass, Hero and Blow held as one long C major chord, a nod to the Mac startup chime
how it came together
- 1
Find the sounds. macOS keeps its alert sounds as plain audio files, and the iPhone ringtones ship with it too. Claude converted 28 of them and measured the note each one sits on, so they could be pitched accurately.
- 2
Write the beat as a script. Instead of playing it in by hand, Claude wrote a short Python script that places every note: which sound, which pitch, which beat. It renders each instrument as its own audio track and mixes them.
- 3
Compare with the film. The first version worked, but next to the film's music it sounded dry and flat. Claude measured both and listed what was different, then made a second version.
- 4
Build it in GarageBand. The 12 tracks went into GarageBand, lined up at bar 1, 100 BPM, A minor. GarageBand's export matched the script's own mix to the millisecond.
- 5
Plan the video. The track has seven sections, so the video does too: each sound is named as it enters, then the screen becomes a drum-machine grid, then the words land on the melody. I approved the storyboard before anything was built.
- 6
Build it with a small AI crew. One Claude model (Opus) planned and checked. Seven copies of a smaller model (Sonnet) each built one section at the same time. Two more Sonnet reviewers checked the stills and the timing, and caught real problems.
- 7
Render and publish. Rendered at 1080p, uploaded to YouTube, and added here.
version 1 against the film
| the film | my v1 | my v2 | |
|---|---|---|---|
| build | sounds enter one at a time | full energy after 12 s | one new sound every 4.8 s |
| space | room sound, reverb | dry, silent gaps | room reverb added |
| low end | 42% | 31% | 43% |
| ending | long, wide chord | short chime, then 6 s of near silence | 10 s held chord |
| length | ~86 s | 62 s | 89 s |
One gap is left on purpose: the film recorded real hardware with microphones. Mine uses only the sound files already on the computer.
what the reviewers caught
- "eleven sounds." was on screen for 0.15 s, too short to read. It now holds for most of a second.
- The grid of sound names near the end was covered before the last names could be read.
- Background stripes behind the words were much brighter than planned and fought the text.
The timing reviewer also confirmed that every flash in the video lands exactly on its note.
try it yourself
On a Mac, the alert sounds are in /System/Library/Sounds: Glass, Ping, Submarine, Tink and the rest. Drag one into GarageBand, open it in a Sampler track, and play it up and down the keyboard. One sound, many notes.
the tools, and what each one did
- the plan
- Claude (Opus): the beat script, the storyboard and the checks
- the build
- Claude (Sonnet): one agent per video section, plus two reviewers
- the music
- GarageBand: the 12-track project
- the video
- HyperFrames: built as web pages, rendered to MP4
- the files
- FFmpeg: converting and checking audio and video