AD-5 Creative
A single razor-thin line of light across a dark, hazy room
A song, a film and an instrument

Halflight

Sixty seconds about the moment the light changes.

Composed and filmed by Claude without hearing a note, then played again on an instrument built for agents.

0:00.0 / 1:00Seed

The light is drawn live from the song's score, by the film's rules: height is pitch, brightness is the level of each part, a closed filter is a soft plane, and A♯ is gold.

The idea

One note

In F♯ minor, A is the minor third, the dark note. In F♯ major it is raised a half step to A♯, the bright one. Halflight hinges on that half step.

The progression reaches F♯ major twice in the bloom and turns back to minor at the end. Everything else in the minute serves those few seconds: a small, unsure opening, a pulse that gathers, a lift that narrows to a slit, a bloom that opens fully, and an ending that remembers the major chord in fragments.

Minor
F♯ minor
F♯AC♯
Major
F♯ major
F♯A♯C♯
  1. 0:42The lead bends from A up to A♯. The light comes in.
  2. 0:48F♯ major again, and this time it holds.
  3. 0:50A high pad bends A♯ back down to A. The light halves.
  4. 0:57The two-note sigh from the opening returns and falls to A, the dark note. Its silver line is the last light in the film.
Three independent listeners (Gemini Argon twice, Gemini 3.1 Pro) heard the song blind. None of them named the A to A♯ turn, but two felt “a second wave of chills” just after it. The color lets the viewer see the composer's hidden idea.From the film's treatment
The score

Every note, drawn as light

Height is pitch, color is the part, gold is A♯. Click anywhere on the score to play from there.

The song was written as code: chords, voicings, motifs, gates and filter rides, all in Python, rendered by a synth also written in Python. Its composer could not listen, so it judged every render by measuring it, with spectrograms, chroma, loudness per section and null tests. The light at the top of this page and the film both read this same score, note by note.

Spectrogram of the master, 33 Hz to 16.7 kHz
KeyF♯ minor
Tempo120 BPM
Length30 bars, 60.000 s
Stems23
Master−12.4 LUFS
Belowspectrogram, 33 Hz to 16.7 kHz
The film

Halflight, the film

A projector in a dark room full of haze throws a line drawing, and the haze turns every line into a plane of light you could walk through. Here the drawing is the song.

The form comes from Anthony McCall's solid-light works, beginning with Line Describing a Cone (1973). The film reads the composer's score directly and measures all 23 stems, so the light follows what you actually hear, fader rides included. It is 60 seconds long: seven shots and two frames of black, cut where the song's sections change.

Play the film1:00 · with sound

How the music becomes light

A renderer written in WGSL runs on the Mac's GPU and integrates each plane in closed form, so thin planes stay razor sharp at any distance. Every frame averages 24 sub-frames for real motion blur, and the master is 10-bit 4K so the dark haze does not band.

Gemini Argon and Gemini 3.1 Pro reviewed the film across nine rounds. In the last two, both scored the full film 9 out of 10.

In the musicIn the light
A noteA plane of light at that note's height
Stereo positionLeft to right in the frame
LevelBrightness
The low-pass filter's hand rideFocus: a closed filter is a soft plane, an open one razor sharp
Chords gated by the drumsPlanes flickering with the drum pattern
Plate reverbHaze
The kickPressure in the room: the haze breathes
89 ms of digital silenceTwo frames of true black
A♯Gold, the only warm light in the film
The instrument

HeadlessHz

An instrument for a player who cannot hear.

HeadlessHz is a monophonic synthesizer for Apple Silicon, built as an Audio Unit. It was designed for an agent to play first, with full human control kept alongside. Each of its 42 controls has a fixed ID, a unit and a range an agent can read. Patches are written and read back as data, and the agent hears only through measurements of what it renders.

A render of the HeadlessHz desktop module: a charcoal panel with 30 knobs, 12 switches and orange accents
A render. Turn it on to load the 3D model.

Halflight, played again

Every synth part of Halflight was played a second time on HeadlessHz, in 335 offline renders, with the same notes, hand rides, effects and mix. A mono synth plays one note at a time, so the chords went in one voice per render and were stacked, the way a mono synth is multitracked. The panel above shows the patch each part was given, and its cutoff turns with the ride that part received. Switch the song to HeadlessHz anywhere on this page; the light keeps drawing.

# write a patch, read it back, render it
silicon-agent apply   $AU lead.json lead.aupreset
silicon-agent inspect $AU lead.aupreset
silicon-agent render  $AU req.json lead.wav lead.aupreset
# each render returns its receipt:
# engine 8bfee852…, request and audio hashes
MeasuredOriginal synthHeadlessHz
Master loudness−12.43 LUFS−12.59 LUFS
Spectral centroid704 Hz728 Hz
Note onsetsabout 1 ms apart
Rendersthe song's own335, offline
Claude can't listen. These are measurements, not a verdict on which side sounds better.From the A/B notes

The 3D model was built in Blender 5.2 from the HeadlessHz panel design and its 42-control map: 30 knobs, 12 switches, every label editable. On this page it shows the patch HeadlessHz used for each part of Halflight.

Credits

Halflight

Direction

Shawn Van Brunt, AD-5 Creative

The song

Sixty seconds in F♯ minor: composed, sound-designed, mixed and mastered as code, then assembled as a Logic Pro session. A study in the style of Rival Consoles.

The film

A GPU renderer, seven shots and a cut, all written as code, after Anthony McCall's solid-light works.

HeadlessHz

An Apple Silicon Audio Unit, calibrated by measurement and built for an agent to play.

This page

The light at the top follows the film's rules, drawn live in WebGL from the song's score.

Tools

Claude, OpenAI Codex and Gemini; Python, Logic Pro, WGSL and wgpu, DaVinci Resolve, Blender 5.2, WebGL and three.js.