Années de pèlerinage · Vallée d'Obermann · ChucK + ChuGL
First light on a mountain lake — Liszt's Vallée d'Obermann, made to move with the piano.
Plate I — running live in your browser · the C-major “first light” passage, playing itself · tap anywhere for sound
Deep in Liszt's Vallée d'Obermann, after all the searching, the music turns to C major and the clouds break — a passage of pure first light. Pèlerinage takes that one moment and stands you in it: a first-person wade into a still alpine lake at dawn, where every ripple, every glint, every drifting thing is being driven, live, by the piano.
It is a single program written in ChucK with the ChuGL graphics engine — the audio analysis and the real-time rendering living in one file, so the sound and the picture are never out of step. Nothing here is pre-rendered or generated; it is played.
The passage opens in blue twilight and warms into gold as the phrase resolves. Light is not a switch — it floods in only as the harmony earns it.




This is the whole point of ChucK + ChuGL: not a video with music on top, but an instrument you can see. Everything below is wired to the live note stream — the same whether it comes from a MIDI file, a keyboard, or a microphone.
One person, one hand-written ChucK file: sound and image from a single instrument, reacting in real time. The koi orient to the way they swim; the water is a GPU shader fed by the notes; the light is an integrator that only warms when the harmony does. It is small and particular on purpose.
Built by hand in ChucK + ChuGL — the tools that make this kind of thing possible in the first place.
What you see above runs live in your browser — the actual ChucK VM and ChuGL engine compiled to WebAssembly. The full piece also runs natively on the desktop, where ChuGL renders on the GPU. To play it:
1. Install ChucK (recent releases include the ChuGL graphics engine) from
chuck.stanford.edu,
or on macOS: brew install chuck.
2. Get the project and play — download the zip below, unzip it, then:
# in the unzipped folder cd pelerinage # play the C-major first-light passage — you'll hear it too ./run-life.sh midi # or just watch the scene, no audio input ./run-life.sh preview
Needs an unlocked screen (it opens a GPU window) and a recent ChucK with ChuGL. See the included README for the full set of run modes.