About This Project

The Ancient Wanderer

A Final Year Project — Jack Larkin, 2026

The Ancient Wanderer started as something else entirely. The original plan was a 25-minute fantasy game soundtrack with multiple cues, character themes, inspired by The Witcher. That was the project for about a week.

What changed it was a conversation with my lecturer James about how I enjoy reading books while listening to film soundtracks. The Dune score under Frank Herbert. Harry Potter scores under Rowling. The feeling of immersion was always real, but it was always undercut by the same problem. The music didn't know where I was in the book. A fight scene would land under quiet music. A quiet conversation would land under something building toward catastrophe. The synchronisation was entirely down to chance.

That mismatch became the project. Not a soundtrack to a game, but a piece of music that knew where the reader was. A soundtrack that adapted to the act of reading itself. The composition would no longer be a finished file you pressed play on. It would be assembled in the listener's browser, conducted by their own scrolling, with the right music always playing for wherever the reader happened to be.

The first prototype

The first thing I built wasn't music. It was eleven sine waves.

The goal was just to prove a concept: could scroll position trigger different audio at different points down a page? No melody, no harmony just test tones blinking in and out as I moved the browser window. It worked, and that was enough to commit.

The first real attempt at playback used Howler.js, an audio library I expected to handle looping precisely. It didn't, loop boundaries drifted, and gapless playback was never quite gapless. I abandoned it and switched to the Web Audio API directly, working at the level of AudioBufferSourceNode and GainNode. More work, but it gave me timing control that Howler never could.

From there came the first working prototype: a 16-bar loop, eleven orchestral stems, all playing simultaneously with some at full volume, some muted (at this point it was an on off switch). Scroll down and certain stems unmute; scroll back and they fade. Every 19.2 seconds a new batch of sources is scheduled and the old ones fade out, giving the illusion of reverb tails at every transition. For a prototype, it held together.

The main weakness was load time. Front-loading eleven audio files at once was slow on weaker connections, and the architecture didn't scale. Whatever this became, it couldn't stay like this.

Link to initial prototype: (Note: early prototype - not the finished project)

Early Prototype https://wanderer.jacklarkincomposer.co.uk/

Writing the music

The composition was the part I had been looking forward to but the part that turned out to be harder than I expected in a way I hadn't anticipated.

With linear music, you have a start and a destination. The architecture of the piece exists in time: you move through it, tension builds and releases, the listener arrives somewhere different from where they began. Writing for this system was almost the opposite. Every loop had to function as its own self-contained unit, I had to ensure it was repeatable indefinitely, with no assumed before or after. But the loops also had to chain together, so that moving from one to the next felt like natural progression rather than a jump cut.

The challenge was holding both of those things at once: each loop independent, but all of them moving somewhere. I enjoyed writing the initial sketches and themes enormously with the motifs for each chapter coming quickly and feeling right almost immediately. Turning those sketches into a full system of working loops was where it got hard. You can't write forward momentum into a loop. You have to build the sense of arrival and progression into the relationship between loops rather than into the music itself.

The composition draws on a set of influences I had been listening to for years. Hans Zimmer for hybrid scoring and rhythmic texture. Bear McCreary for his ability to build entirely distinct sound worlds across very different projects. Hildur Guðnadóttir for a sparse, emotionally direct approach that blurs the line between composition and sound design. Lorne Balfe for how motifs can carry weight across a large-scale score. And Austin Wintory's work on Journey, the most direct compositional parallel to what this project was trying to do, and proof that adaptive game scoring can feel genuinely human.

The three chapters each needed their own sonic identity. Chapter I, The Cursed Village, had actually started life as the initial game audio project before this one, and it set the template: Slavic and Celtic folk instrumentation over a dark, cinematic orchestral backdrop using fujara, uilleann pipes, renaissance flutes, dulcimer. Chapter II, The Forge Village, pushed faster and harder, with diegetic anvil sound effects written into the rhythm of the composition itself. Chapter III, The Fishing Village, was the most emotionally inward of the three being softer at the core, with dissonant bells evoking empty ships anchored in a harbour.

Going bigger

The plan was always three chapters. What I needed to know first was whether the concept could hold at scale and whether the engine and the composition could actually survive it.

This is also where I had to make the decision to split it up into three separate webpages and not one continuous page. The loading just got to large and it felt more disorganised the more I added.

So, I built one chapter first: a complete feasibility test of the full system. When it held together, I added the second chapter, then the third, expanding the engine and the composition in parallel. This was also the stage where stingers, bespoke sound design, and the visual layers like particle systems, the custom cursor, the frequency visualiser were brought in.

The world

The visual layer wasn't an afterthought. Images shape how music is heard, and I wanted them to feel painterly close enough to illustration so that the seam between image and fiction wasn't visible. Finding a workflow that consistently produced that was its own process: testing platforms, refining prompts, iterating on atmosphere per chapter until each image felt like it belonged to the same world as the music. I found that the images helped the music composition process as I was able to visualise If the music really fit the scene I was descripting.

The layout went through three versions. The first stacked sections vertically like a blog post. The second made each section full-size, but the title would drift off screen before you had finished reading it. The third, the current one, fixes the image at 16:9 above the text with a hard height cap so the title is always visible. A small decision that changes everything about how the page feels to move through.

Typography is Cinzel for headings and interface elements, Cormorant Garamond for body text and the traveller lines with first-person italic quotes carrying a single voice across all three chapters. Near-black backgrounds. Gold as the only real colour. The aesthetic benchmarked against my main portfolio site.

What I'd do differently

If I had more time, I would give the reader more agency by branching chapter choices similar to making choices in games, creating the ability to shape the narrative's direction rather than just move through it. I would also find a way to host the entire experience on a single page, which would simplify the chapter handoff and make the journey feel more continuous.

The part of the project I underestimated was how much time the precision engineering would take. Getting stems to loop without drift, managing gain state when the reader scrolls rapidly, making one-shot intros hand off cleanly into their looping continuations. Each of these took far longer to solve properly than expected but it was worth doing right to make the experience as polished as possible.

What I wouldn't change is the central idea. The architecture exists to serve one claim: that the listener's behaviour should be audible in the music itself. A rushed reader and an attentive reader hear different performances of the same piece. That holds, and it's what I'd most want to explore again possibly in a different genre and with a different score.

Return to the experience