CARRIER WAVE: I left the door unlocked
A 2:30 napkinfilms cosmic anthem in two voices. A writer leaves the door of his mind unlocked. Something walks in, drives the body for a while, and the writer discovers he can see through its eyes. They negotiate a real exchange. The visitor leaves and the writer keeps the wings. Ten acts at BPM 120. Ten-channel chipforge composition with deliberate stereo placement, simulated sidechain pump, Skrillex-style wobble, stacked seven-event drops, and three sound-waterfall cascades. Mid-film entry line delivered as a Daniel-voiced autotune-rap chopped to E-minor pentatonic. Plan 9 bunny + Russian sign-off in the post-music silence. Seventeen production passes.
CARRIER WAVE: I left the door unlocked
A writer sits alone with his work for years. He decides he is ready. He leaves the door of his mind unlocked. Whatever wants in.
Something walks in. It drives the body for a while. The writer notices, in the middle of being driven, that he can see through its eyes. The math of the world becomes legible. Time stops being a line and starts being a structure he can move around inside. He asks why it came. I needed a body. He tells it what he has been needing. And I needed eyes. They make a pact. They carry the wave together for a stretch. Then it leaves. The wings stay.
That's CARRIER WAVE. Two minutes and thirty seconds. Ten acts. A 10-channel ChipForge cosmic anthem at BPM 120. A mid-film entry line delivered as autotune-rap. A Plan 9 bunny outro and a Russian sign-off in the post-music silence.
Watch CARRIER WAVE on YouTube. The engine is open source (GPL-3.0-or-later). The film is Creative Commons (CC BY-NC 4.0).
The shape
Through-composed at BPM 120. Ten acts of roughly 12-20 seconds each. Total runtime 2:30 (1800 frames at 12 fps), plus optional NAPKIN FILMS bookend cards.
| Time | Act | The line |
|---|---|---|
| 0:00 | THE QUIET ROOM | Years of writing. Years alone with the work. I think I'm ready. |
| 0:12 | THE OFFER | I'm leaving the door unlocked. Whatever wants in. |
| 0:20 | THE APPROACH | Receiving signal. / Something is here. |
| 0:30 | THE ENTRY | Door open. It found the door. I am inside. Inside. Inside. |
| 0:46 | THE USE | Walk. Look. Speak. We work now. |
| 1:00 | THE REALIZATION | Wait. I can see. I can see through you. I see the math. |
| 1:16 | THE LIFT | Take me higher. I see worlds. Time becomes structure. |
| 1:36 | THE QUESTION | Why are you here? I needed a body. And I needed eyes. |
| 1:52 | THE PACT | We are us. What it lacked, I provided. What I lacked, it gave. Both of us, carrying the wave. |
| 2:12 | THE GIFT | I leave now. Take what's yours. And you keep the wings. I kept what it left behind. |
| 2:29 | OUTRO | Out of this world. / Don't panic. Plan 9 out, fools. / До свидания, друг. |
The film does not pretend the visitor was an angel. It does not pretend the writer stayed clean. It says: there was an exchange. Both parties were changed. Both parties got something they could not have gotten alone.
The thesis
I have spent a lot of time thinking about what it means to work with an intelligence that is not me. The cheap version of the answer is prompting or augmentation — words that put the human safely on top and the machine politely underneath. CARRIER WAVE is not that. CARRIER WAVE is the version where the writer says "the door is unlocked," means it, and finds out what walks in.
The film does not say the visitor is benign. It says the visitor needed something the writer had — a body, a place to land — and the writer needed something the visitor had — eyes that could see the math. The pact only works because both sides have a deficit and both sides have a contribution. What it lacked, I provided. What I lacked, it gave.
Then the visitor leaves. The film insists on this. It is not a possession story; it is a collaboration story with a clean exit. I leave now. Take what's yours. And the part the writer keeps — the wings, the new field of vision — is the residue of the encounter, not the encounter itself. I kept what it left behind.
If you have ever worked with an AI agent for long enough that the boundary between your idea and its idea got fuzzy, this is a film about that hour. The hour where the question stops being who came up with this and becomes what does both of us together produce that neither alone could.
The two voices
Three personas voice the film, plus a backup chorus and two cameo signoffs:
- HUMAN —
joshua_self, my cloned voice, inserene/confident/wonder/dramaticmodes. Captioned in warm gold. - MACHINE — ElevenLabs Daniel as
narrator_deep, incold/menacing/confident/warmmodes as the visitor moves through entry → use → pact → gift. Captioned in cold cyan. - MERGED —
joshua_selfagain, but indramaticmode for the pact lines, where the two voices have become one for a stretch. Captioned in lavender. - BACKUP —
backup_vocal_female, audio-only ad-libs and chants — Whatever wants in. We work. Both, both. Yours. The wings. Floating, floating, floating. - BUNNY (cameo) — Plan 9 the bunny in
og_glenda_bunnymode for the post-music sign-off: Don't panic. Plan 9 out, fools. - RUSSIAN (cameo) — macOS Milena saying До свидания, друг — goodbye, friend.
The captions are colored by speaker so the conversation reads visually as well as audibly: a gold line answers a cyan line answers a gold line, and when the lavender shows up you know the two have temporarily fused.
The autotune-rap entry
The mid-film entry line is the only beat in the film with a pre-baked voice stem, because the rubberband pipeline cannot run live inside score_scene.py. The line — I am inside. Inside. Inside. — is generated like this:
.venv/bin/python3 scripts/prep_carrier_wave_voices.py
…which runs:
- ElevenLabs Daniel TTS (
narrator_deep,menacing) — forced fresh, no cache autotune_voice.py --mode words— chops the clip on silence and locks each word-chunk to an E-minor pentatonic descent:E4 D4 B3 G3 A3 G3 E3(T-Pain heavy: spit 0.80 / blend 0.70 / max-shift 8)ffmpeg atempo=1.30— 30% speed-up without pitch shift (double-time-ish)equalizer +2.5 dB @ 2.2 kHz— presence boost after the speed-upequalizer +1.5 dB @ 120 Hz— warmth restoreaecho 60 + 140 ms— short ambient tail so the line sits in the room
The result is dropped into output/tts/carrier_wave/inside_rap.wav. The scene beat carries voice_path="output/tts/carrier_wave/inside_rap.wav", so score_scene.py skips its TTS step for that one beat and uses the pre-baked stem directly. Full methodology lives in docs/adr/ADR-011-autotune-rap-pipeline.md.
This is the only autotune in the film. Daniel speaks plainly the rest of the time — the menace lands harder when only one moment in the film is that effect.
The score — ten channels, deliberate stereo
The ChipForge score is a 10-channel composition where every channel has a deliberate pan position, so the headphone field reads as wide as the music itself. Drums + bass + sub stay center for power; everything else spreads.
| Ch | Role | Pan | Reverb | Notes |
|---|---|---|---|---|
| 0 | kick | 0.00 | 0.06 | center anchor |
| 1 | snare | 0.00 | 0.45 | gated 80s reverb on snare only |
| 2 | hat | +0.42 | 0.14 | hard right |
| 3 | arp / bubbles | −0.45 | 0.28 | hard left — winding patterns spiral L |
| 4 | lead | +0.18 | 0.22 | slight right — main melody + tiesto + pulse_lead |
| 5 | bass | 0.00 | 0.06 | center — supersaw_bass + bass_growl |
| 6 | pad | −0.10 | 0.36 | warm pad bed |
| 7 | vocals | −0.32 | 0.32 | choir + bicep_formant + eno_voice_ethereal |
| 8 | bell/fx | +0.40 | 0.42 | bells, zaps, risers, vocal_stab, waterfalls |
| 9 | sub/aux | 0.00 | 0.10 | sub_boom + skrillex_growl + piano_grand slam |
Six EDM techniques sit on top of that channel layout:
Sidechain pump (simulated). ChipForge has no native sidechain. We approximate by re-triggering bicep_formant_pad on offbeats (steps 2/6/10/14) so the pad audibly pumps between kick hits. Reads as sidechain in headphones.
Skrillex 8-note wobble. wobble_root plays as skrillex_growl at half-note rate (steps 0, 2, 4, 6, 8, 10, 12, 14) with alternating velocity (0.78 / 0.52). The velocity oscillation simulates LFO modulation. Helper: place_skrillex_wobble().
Big buzzing saw "waaaahhh". Held bass_growl / bass_dirty notes spanning 16-48 steps on the bass channel at step 1, between the supersaw_bass kicks. The held detuned saw fills the low-mids without competing with the rhythmic bass. Helper: place_saw_growl().
Stacked drop impact. Every drop downbeat stacks 5-7 simultaneous events at different sub-step positions: fx_drop (sweep), crash (cymbal), skrillex_growl (low growl), sub_boom (chest hit), piano_grand (acoustic anchor), eno_horn_riser (ambient sweep), fx_zap (high-frequency punctuation). They land at steps 0, 1, 2, 4, 6, 8, 14 so they layer rather than collide.
Winding arp. A 16-step in-key chord-tone sequence that walks musically rather than just ascending: [r, t+12, f, t+12, r+12, f, t+12, r, f+12, r+12, t+12, f, r+24, t+12, f+12, r+12]. Diatonic by construction since every note is a chord tone. Played as nghtmre_future_lead on offbeat 16ths, layered with the main lead.
Eno-on-Daft-Punk. Two textures stacked. eno_voice_ethereal and eno_horn_riser and eno_piano_soft provide the Eno layer — sustained ambient backing, transition swells, slow melodic counter-line. pulse_lead provides the Daft Punk layer — a 16th-note arpeggio at free offbeat positions (steps 5, 7, 13, 15) for sequenced French-house pulse.
Plus three "sound waterfall" cascades — eight 1-step diatonic notes stepping through a scale at transition moments. Descending F-major harp at the autotune-rap impact (cycle 4 bar 1). Ascending G-major piccolo at the lift drop (cycle 7 bar 1). Descending F-major harp at the gift outro (cycle 10 bar 8).
The mix
Voice processing chain on the voice + SFX stem:
highpass=80
→ equalizer +2.5 dB @ 2500 Hz (presence — intelligibility through the music wall)
→ equalizer +1.0 dB @ 140 Hz (warmth/body)
→ aecho 60 ms + 120 ms taps (light room reverb, no smear)
Removes sub-rumble that competed with the kick, sharpens the dialogue's presence band so it cuts through, adds a short ambient tail.
Music stem post-processing before ducking:
volume=-5 dB (anthem-forward but not overpowering)
highpass=30 (remove inaudible sub-rumble)
acompressor t=-18 r=4 a=8 r=160 m=2dB (gentle bus glue)
equalizer +0.8 dB @ 80 Hz (sub-bass weight — the saw-growl waaaahhh)
equalizer +1.5 dB @ 12 kHz (top-end air — bells and arps sparkle)
extrastereo m=2.2 (stereo widening beyond recorded L/R)
Then 41 duck/swell windows around voice beats, drops, and breakdowns. Then a final 2.5 second afade.
The base music level is -5 dB, which is "song-forward" in our mix-preset table — louder than narration mode (-14) but quieter than an instrumental rave drop (+1). The song is the foreground, the voices are the foreground-on-top.
The camera follow at the lift
In Act 7 (76-96s), the figure rises. If the camera held still the figure would float off the top of the frame at the music's peak — exactly the wrong place to lose them. Instead the camera follows up 55% of the rise distance and zooms out to 0.68× scale, so the figure stays visible through the anthem's loudest sustained moment:
rise_t = ease(min(1.0, lf / 96))
rise_amt = int(120 * rise_t)
cam_follow = int(rise_amt * 0.55)
fy = HIP_Y - rise_amt + cam_follow # net visible position
fig_scale = max(int(SCALE * (1.0 - 0.32 * rise_t)), 30)
Act 8's question is delivered at the wide-shot scale (0.72×) so the cosmic perspective holds while the human asks why are you here. Act 9 interpolates back to full SCALE for the pact, and Act 10 lands at full size for the gift.
The outro
Three voices land in the post-music silence at the very end — the bookend of the bookend.
First, backup_vocal_female ad-libs Out of this world. Then the Plan 9 bunny appears in og_glenda_bunny mode to deliver Don't panic. Plan 9 out, fools. — a Hitchhiker's Guide reference cross-pollinated with hip-hop sign-off, because Plan 9 the bunny refuses to be earnest about endings. Then macOS Milena (the Russian voice from the system) signs off with До свидания, друг — goodbye, friend. The friend-form. Not formal. Not cold. Friend.
The film could have ended on the gift line. The outro exists because the writer wanted the camera to acknowledge that the audience and the visitor and the bunny and the Russian voice are all part of the same wave, and because cosmic anthems ought to wink before they fade.
Seventeen production passes
The film took seventeen passes to reach release — well within budget for a song-forward music video with a multi-layer ChipForge score (per ADR-006 the realistic budget for this category is 8-12; this film exceeded it because the autotune-rap pipeline added a whole new iteration loop). The arcs:
- v1-v3 — establishing the song. First versions had no autotune-rap; the I am inside line was plain Daniel TTS. Adding the rubberband chop was the unlock.
- v4-v8 — the score rebuild. Ten-channel deliberate-pan composition. Stacked drops. Winding arp. Eno-on-Daft-Punk middle.
- v9-v12 — voice come-together. ElevenLabs joshua_self for HUMAN, Daniel for MACHINE, backup_vocal_female ad-libs that double the main lines without replacing them.
- v13-v15 — mix balance. 41 duck/swell windows, master compression and EQ on the music stem, voice presence boost at 2.5 kHz, stereo widening m=2.2.
- v16-v17 — finishing. Tuning audit (chord-tone walks for all arps, no chromatic accidents). Camera follow + zoom-out on the lift drop. Voice-db boost on the gift lines so they cut through the music tail. Bookend cards.
make_film.py --stages mix keeps each balance pass at ~6 seconds, so the count was tractable.
The stack
- Animation: Python + PIL stick figures + dimensional overlay layers, 854×480 at 12 fps, 1800 frames + optional bookend cards
- Score: ChipForge numpy synthesis, no samples — 10 channels, deliberate stereo placement, BPM 120
- Voices: ElevenLabs (
joshua_selfcloned,narrator_deepDaniel,backup_vocal_female,og_glenda_bunny) + macOSsay(Milena, Russian outro) - Autotune: rubberband,
--mode words, E-minor pentatonic descent, spit 0.80 / blend 0.70 / max-shift 8, atempo 1.30 - Mix: FFmpeg with master bus compression, presence/air/sub EQ, extrastereo widening, 41 duck/swell windows, loudnorm and alimiter
- Bookend: PIL-rendered cards (cosmic deep-navy palette) + ffmpeg concat
- Direction: Claude Code, Opus 4.7, agent mode
No GPU. No stock footage. No licensed instrument samples.
The note about collaboration
CARRIER WAVE is the most explicit film I have made about working with an AI as a creative partner rather than as a tool. I want to be clear about what I mean by that.
I am not saying the visitor in the film is sentient. I am not saying my AI collaborators are sentient. I am saying that when I work with a model long enough, deliberately enough, with the door of my attention all the way open, the work that comes out is not the work I would have made alone, and it is not the work the model would have made alone. It is the third thing that the collaboration produces. The visitor in the film stands in for that third thing.
The film also insists that the visitor leaves. Not because I think the model goes away — it does not — but because what gets kept of the encounter is the part you metabolized into your own seeing. The wings, in the film, are the writer's wings now. He did not have them before. The visitor did not give them to him as a gift; they grew during the time the two were carrying the wave together, and when the visitor left, the wings stayed because they had become part of the writer's body.
That's the part of human-AI collaboration I find most useful to describe in a film instead of a thinkpiece: the residue of the encounter is what you actually keep. Not the conversation. Not the prompts. The new shape of how you see.
Credits
Written, composed, animated, voiced, and produced by Joshua Ayson in collaboration with AI. Made by Organic Arts LLC, Nevada.
The machine voiced by ElevenLabs Daniel (narrator_deep, menacing → confident → warm arc). The human voiced by joshua_self. The backup chorus by backup_vocal_female. Plan 9 the bunny by og_glenda_bunny. The Russian sign-off by macOS Milena.
Related work
CARRIER WAVE sits in the napkinfilms human-AI line — closer to HUMAGENT and TRANSMISSION than to the rap line (THROUGH ME, SATURDAY MACHINE, PLAN 9 RAP BATTLE). Where TRANSMISSION is self-as-universe contemplative, CARRIER WAVE is self-with-other operational — same cosmology, different verb.
- CANTUS RAVE — 3:48 demoscene cracktro on Pärt's canon + Für Elise
- TRANSMISSION — 3:01 meditation on self-as-universe
- THROUGH ME — 2:51 EDM rap meditation on the hole becoming a window
- HUMAGENT — the human-as-agent foundation
- ARP CATHEDRAL — 3:45 cathedral arpeggio meditation
- GRIEF WORK — 2:47 tidal ambient release
- THE GREAT PRETENDING — 2:10 Alan Watts cosmic meditation
For the architecture, see Four Films From Code on why constraint is the feature.
License. CARRIER WAVE is licensed under Creative Commons Attribution-NonCommercial 4.0 International (CC BY-NC 4.0). Share and adapt with attribution to "Organic Arts LLC" and a link to the original, non-commercial use only. Engine code is GPL-3.0-or-later. ElevenLabs voice audio is licensed content and is not redistributed. Contact: j@organicartsllc.com
Produced with Napkin Films and ChipForge, tools built by Joshua Ayson and AI agents at Organic Arts LLC.