Home

2025

2024

Worklog

LETSGO Game

Multi-Note Instruments
Multi-Note Instruments

Multi-Note Instruments

Owner
JerkyTreats
Tags
🎶
This is part of a ongoing series called Building A Music EngineBuilding A Music Engine

It documents the process of me smashing my head against the keyboard to build a game called LETSGOLETSGO

It’s gotten long enough to break into several sections:

TLDR: Summer 2024 was crazy busy, and I don’t want to go back and write a huge devlog on something I did weeks ago. But here’s the progress I’ve made:

I’m revisiting this after about 3 weeks, questioning why I’m forcing myself to write these in-depth devlogs.

I bring this up because I don’t remember exactly what I did. Thankfully though, I had a PR:

Unfortunately that PR does not encapsulate the entirety of the work, as evidenced by the commit-to-main shenanigans of:

Here’s the thing, I don’t want to go back and construct the narrative of what I did. It was basically just updating the data structures to represent something like:

[1, C1], [2, C1], [3, C1], [4, G1]

Where 1 is the beat (quarter note), and C1 is the C note on the first octave (as represented on a MIDI keyboard).

How did I do it? The commits speak for themselves:

Then I did the PR to get the above working.

And it does work. Which is neat.

I lost the thread of this though because then I went 2 solid weeks of trying to debug a bug when collapsing the 48 unique Metasounds into one. It was highly entertaining in that I was idiot the entire time:

Once I got it working though, things started moving relatively quickly. I added a Phase to Set the Third - allowing the player to choose a Major/Minor key.

With that though, we can move right along to the thing I actually want to write about:

Generative Music Without LLMsGenerative Music Without LLMs