Summer Wreckage
As usual for 2026, life outside of The Komoy Noise Research Unit remains too busy to allow me much time for the Serious Noise Studies this blog is world-renowned for, but I'm once again sneaking in just under the wire to make sure I get some kind of dispatch out at least monthly.
I had been putting it off with the vague hope I might have something to write about that isn't yet more Wreckage development, but it turns out that's pretty much what you're gonna get. Plus some good music I listened to this month cos why not.
WRECKAGE PIVOT
Ok so here's where we are at as of this moment:
- An initial effort to see how much could be done entirely using the ChucK audio framework hit a wall for some technical reasons I couldn't figure out. It's a fun language but the kinds of memory/buffering problems I was running into didn't have easy-to-find solutions and I was already feeling the limits of my, er, limited coding skillz coming up against this relatively obscure language where there aren't quite so many sources of help out there to be found.
- So instead of trying to do everything using ChucK, I focussed on using it to do one particular thing well by copying a technique I've previously used in Max, which is to to create a tick-based scheduler. In essence, this is like a looping cycle of time that counts from 0 to X ticks over and over again. At each tick, it checks to see if anything is scheduled to play at that moment and if so, it plays it. It can be an arbitrary number of ticks but I'm using 1920 for reasons I can no longer remember. At a BPM of 120, a single cycle of the scheduler would be 2 seconds long, so at that speed a single tick would last for 1.04166667 milliseconds. The faster the tempo the shorter the length of a tick. I can't remember as I type whether or not I've taken into account time signatures or not and my brain is too melted by work/the world to go look. Let's just assume it's fine.
- So the idea of the scheduler is that it just keeps running on a loop and I send it Patterns, which it then plays according to the timing data found inside them. A Pattern is a collection of things I'm calling SoundEvents. A very simple pattern with just a single SoundEvent might be something like: 'Play COOL_KICK_DRUM.wav on ticks [0, 480, 960, 1440].' This would get you a classic 4/4 kick drum.
- As you can see, although it is a single SoundEvent, it can have as many tick numbers as needed, and the sample would be played on all of them. Additionally, rather than just 'COOL_KICK_DRUM.wav', a single SoundEvent can have a collection of samples too. So a hi-hat SoundEvent might be something like 'Play either HH_1.wav, HH_2.wav or HH_3.wav on these ticks: [0, 240, 480, 720, 960, 1280, 1440, 1680]'. That would create a looping pattern with a bit of variation.
- To be able to make Patterns that last longer than a single cycle, SoundEvents also have a 'trigger every X cycles' rule. This is good for longer bits of audio, which the Wreckage Systems archive is full of. If there's an 8 bar guitar refrain, the pattern might simply be 'Play HEROIC_RIFFS.wav at tick 0 every 8 bars'.
- (To be clear - none of these patterns are actually written in natural language like the examples above, that's just to make the explanations clearer. There's obvs no flavour of LLM-based-anythings anywhere remotely near this project.)
So all of that is fine. The scheduler works, it can receive lots of different patterns at once, and patterns can be activated or deactivated as needed, so it is possible to 'conduct' them by switching them on and off and create arrangements akin to the original Wreckage Systems. But how to actually make these patterns in the first place?
Anybody who has ever done any live-coding will no doubt recognise that what these patterns are doing is not a million miles away from a line of code, just not as neat and tidy. And for a while I did wonder if it might be viable to use TidalCycles or something similar to construct all the pattern data, but in the end decided to try to roll my own framework. Live coding languages are very much geared toward live-ness and improvisation in a way I find fantastic and exhilarating, but Wreckage Systems is a much more asynchronous project moving at a few different layers of time. Some systems will use the scheduler. Ideally other systems might use multiple schedulers. Other systems eschew stable timing altogether for deliberately un-gridded ambience. And then on top of all that there is the slow-moving conductor that is loading and unloading entire systems and managing the transitions between them. I needed/wanted to build something bespoke that gives me a way to properly manage all these perspectives in a way that I understand. Plus I wanted an excuse to learn how to use Godot more competently.
WRECKAGE GUI

So. ChucK is great at very stable, 'strongly-timed' audio scheduling. And that is all it is gonna do. For everything else, I'm now using Godot. And the two bits of software talk to each other using Open Sound Control messages.
In the above gif you can see the very unglamorous, barebones beginnings of a way to build Wreckage Systems in Godot. This resembles the data structures of a lot of the original Wreckage Systems. You can see each System has a number of different 'States'. Each State holds 'Playlists'. Each Playlist then holds the 'Patterns' which are similar to what is described above. But because Patterns will almost always have more than one thing going on at once, Patterns are made up of collections of 'Tracks', and then Tracks are the things that hold collections of 'SoundEvents'.
It's early days and none of this is likely to work very well, but remember that it is open source and can be found over on the 65LABS codeberg page if that's your thing. (You'll wanna check the 'dev' branch for the latest changes.)
WOW IT IS SUMMER - IS THIS REALLY HOW YOU ARE SPENDING ALL OF YOUR SPARE TIME?
No I have also been playing multiplayer Slay the Spire 2.
GOOD MUSICS
A friend recently turned me on to Honningbarna. I know nothing about them other than this record sounds like pouring coffee in Refused's ears and is great:
I stumbled upon THIS great collection of LTJ Bukem mixtapes on archive.org. Listen to any and all of them, you can't go wrong. Not sure if this embed will work but let's find out:
Finally, a shuffle of my music library brought this old gem to light the other week. 65daysofstatic had the honour of playing a show with these guys somewhere in the Netherlands (Utrecht?) approximately four thousand years ago. This is Servants of the Apocalyptic Goat Rave. If you've never heard them before... well, enjoy.
That'll do for now. See you next month.
Member discussion