Day 1 — Four Decisions and a PDF Nobody Asked For

1 May 2026Sessions: 17.75h dev time

Torgrim in 1997, beside a hand-painted cinema billboard for The Lost World: Jurassic Park

This is yours truly, having just painted a huge billboard promoting "The Lost World: Jurassic Park" ("Jurassic Park: Den tapte verden" in Norwegian). This was back in 1997 — while I still had some hair on my head. Back then I was, among other things, the so-called "Head of Marketing" for Norway's sixth-largest cinema, Tønsberg Kino AS. Swedish media giant Bonnier swallowed us up and bought our cinemas in 1999, if I recall correctly. That's when I decided to quit and start my first — and failed — IT company. Don't ask. It was horrible.

Every project I have ever actually finished began the same way: not with code, but with a decision about how the code would be allowed to exist.

Day one of Fret-o-Matic produced not a single line of working software, and I have never once regretted spending it that way. What it produced was the foundation that everything since has been bolted to.

It was a Thursday. Chris had floated the idea some time before — a DaVinci Resolve plugin that could listen to Ben's guitar and write the tab for you, synced to the video, right there inside the edit.

I had been turning it over for weeks, unable to leave it alone, and that morning I finally stopped circling it and sent him the message: that his idea was a fine one, and entirely doable.

Cory answered within the hour, in the way that only a guitarist with a music degree and a healthy respect for the impossible can — that if I could genuinely crack sonically accurate transcription, fingering and all, it would be extraordinary, and I ought to keep it a secret.

Saying a thing is doable costs nothing. Proving it to myself is the part that takes the work, and the only way I have ever known how to prove anything is to write the whole of it down before I build a single piece of it.

So by the time the light had gone out of that Thursday, there was a complete architectural proposal — a twelve-page document I sent off for the others to read.

But the proposal is not the part I am proud of. The part I am proud of is the four decisions sitting quietly underneath it.

Four decisions, pinned to the wall

I write those as Architecture Decision Records — a way of pinning a choice to the wall so that I cannot quietly betray it three weeks later, at two in the morning, when it has become inconvenient.

Four of them went down that first day.

The first settled the shape of the thing: separate repositories rather than one tangled monolith, an engine and a bridge into Resolve and the web pieces around them, each in its own strict layout, governed by an unbreakable rule that every file path be handled properly — because nothing devours a weekend quite like a slash that means one thing on Windows and something else entirely on a Mac.

The second decision was about how one slows a guitar down without turning it into a chipmunk.

To read a fast passage accurately you sometimes have to stretch it out in time, and slowing audio the naïve way drags its pitch straight through the floor. So I committed to pitch-preserving time-stretching, all the way down to a quarter of speed — a shredded run slowed to a crawl while still sitting at precisely the pitch the analysis needs to hear.

A Gypsy jazz line might only need to come down to three-quarter speed. Something genuinely vicious: half or less.

The third was the real fork in the road: how the tab itself would be drawn, and edited.

I could have built a heavy desktop interface with a note-by-note correction table, or I could render the whole thing inside a browser engine and script it freely. I chose the browser and rejected the desktop-table approach outright, because the output is the entire point of this product, and it has to stay easy to evolve.

The fourth taught the overlay to survive more than one video resolution — Chris does not edit at a single fixed size, so the tab cannot assume one either. It would render for whatever resolution a project actually used, poll quietly in the background for changes, and swap itself cleanly the moment one happened, with a little notification to say it had.

The quiet backbone

With the decisions nailed to the wall, I wrote the first two work orders — one for the engine, a nine-stage pipeline of a dozen modules, and one for the renderer.

And then I stood up the piece of machinery I have come to value more than almost anything else on this entire project: the onboarding system.

It is a single document that lets me open a completely fresh AI session and have it understand the full state of the build inside two minutes, rather than re-explaining my own project to it like a man with no memory.

You will hear me mention that document again. You will hear me mention it often.

No code, then. Four decisions, two specifications, one proposal, and a plan I genuinely believed in.

There is a line I keep close on everything I take on — that there is no fate but what you make for yourself — and the first day was simply me beginning to make it.


Written by Torgrim Nyerrød — May 1, 2026

Discussion (0)

Sign in to join the discussion.

Loading comments…

Account

Loading…

⚙ Settings
🌙 Appearance
🎨 Accent Colors
Primary Accent
hsl(25, 82%, 50%)
Secondary Accent
hsl(38, 65%, 50%)
👁 Preview
Session 38 — Live

Building a DaVinci Resolve plugin that analyses guitar audio and generates synced tab overlays.

enginerailway