← vighneshganti.com PROGRAMME · AFTER LISZT

Années de pèlerinage · Vallée d'Obermann · ChucK + ChuGL

Pèlerinage

First light on a mountain lake — Liszt's Vallée d'Obermann, made to move with the piano.

♪ TAP FOR SOUND

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 awakening

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.

The lake in blue twilight
I · twilight
First glow and a meteor
II · first glow
Light on the water
III · light on water
Full first light, alive
IV · first light

What is reacting to the notes

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.

Made, not generated

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.

Run it yourself

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.