echolevel
@echolevel.co.uk
Brendan O'Callaghan Ratliff - Audio Director/Coder, Sound Designer & Composer at Cardboard Sword Games • Film Sound • BBC radio drama • Irish traditional music • chiptune/demoscene stuff as Syphus^UpRough
https://echolevel.co.uk
https://echolevel.co.uk
My actual day job (one of them, anyway) is to compose 90s atmospheric drum and bass, in the custom tracker wot I wrote, for a video game. The game responds to the music data and vice versa. In 1994 I hoped I’d get a job doing this on the Amiga when I grew up - close enough.
#gameaudio #demoscene
#gameaudio #demoscene
September 19, 2025 at 2:19 PM
My actual day job (one of them, anyway) is to compose 90s atmospheric drum and bass, in the custom tracker wot I wrote, for a video game. The game responds to the music data and vice versa. In 1994 I hoped I’d get a job doing this on the Amiga when I grew up - close enough.
#gameaudio #demoscene
#gameaudio #demoscene
Metron Tracker standalone is a feature-complete 2.4MB exe! This example song is 2.6MB on disk and its memory footprint is 3.7MB. Playback averages 2% of audio CPU budget.
That leaves me ~4GB and 98% CPU to spend on ambient fart emitters with convolution verb
#UnrealEngine #middleware #gameaudio
That leaves me ~4GB and 98% CPU to spend on ambient fart emitters with convolution verb
#UnrealEngine #middleware #gameaudio
September 8, 2025 at 2:12 AM
Metron Tracker standalone is a feature-complete 2.4MB exe! This example song is 2.6MB on disk and its memory footprint is 3.7MB. Playback averages 2% of audio CPU budget.
That leaves me ~4GB and 98% CPU to spend on ambient fart emitters with convolution verb
#UnrealEngine #middleware #gameaudio
That leaves me ~4GB and 98% CPU to spend on ambient fart emitters with convolution verb
#UnrealEngine #middleware #gameaudio
Wrote a new sample loader for Metron standalone so all the oldskool tracker commands are back! No DSP effects here, just sample manipulation - very cheap on CPU. Multisample instruments at diff octaves played randomly, but all share 1 buffer in mem.
#gameaudio #gamedev #unrealengine #middleware
#gameaudio #gamedev #unrealengine #middleware
September 6, 2025 at 6:59 PM
Wrote a new sample loader for Metron standalone so all the oldskool tracker commands are back! No DSP effects here, just sample manipulation - very cheap on CPU. Multisample instruments at diff octaves played randomly, but all share 1 buffer in mem.
#gameaudio #gamedev #unrealengine #middleware
#gameaudio #gamedev #unrealengine #middleware
I rewrote my #unrealengine tracker in raw C++ so it’s a 3.5 megabyte exe instead of a 35GB engine/project. This is a core player engine with a Win32 wrapper and a UE plugin wrapper. Testing with my hybrid FM/phase distortion synth and waveform blending LFO, and my cheesy-but-cheap reverb algo
September 1, 2025 at 7:00 PM
I rewrote my #unrealengine tracker in raw C++ so it’s a 3.5 megabyte exe instead of a 35GB engine/project. This is a core player engine with a Win32 wrapper and a UE plugin wrapper. Testing with my hybrid FM/phase distortion synth and waveform blending LFO, and my cheesy-but-cheap reverb algo
I wrote a combined sample reverse & pitchslide up/down command for my #UnrealEngine runtime tracker! (also optimised everything to hell - this tune inc DSP FX uses ~2% of my CPU budget and a ~500kb memory footprint - but who cares, jungle reeewind spinback is what I'm excited about) #gameaudio
July 15, 2025 at 6:51 PM
I wrote a combined sample reverse & pitchslide up/down command for my #UnrealEngine runtime tracker! (also optimised everything to hell - this tune inc DSP FX uses ~2% of my CPU budget and a ~500kb memory footprint - but who cares, jungle reeewind spinback is what I'm excited about) #gameaudio
A glimpse of my composing & mixing workflow in The Siege and The Sandfox. I tend to work at runtime with Metron Tracker & my mix system as #DearImGui overlays. I can override gameplay mix events or test in place, tweak synth/sample instruments, adjust quantised sync offsets #UnrealEngine #gameaudio
May 26, 2025 at 1:00 PM
A glimpse of my composing & mixing workflow in The Siege and The Sandfox. I tend to work at runtime with Metron Tracker & my mix system as #DearImGui overlays. I can override gameplay mix events or test in place, tweak synth/sample instruments, adjust quantised sync offsets #UnrealEngine #gameaudio
Our game is finally released today!
The Siege and The Sandfox is a 2D #metroidvania with gorgeous pixelart; stealth-based gameplay; and lots of dynamic music and game audio by meee.
4pm GMT on Steam, Epic & GoG for PC
store.steampowered.com/app/653060/T...
#indiedev #gameaudio #unrealengine
The Siege and The Sandfox is a 2D #metroidvania with gorgeous pixelart; stealth-based gameplay; and lots of dynamic music and game audio by meee.
4pm GMT on Steam, Epic & GoG for PC
store.steampowered.com/app/653060/T...
#indiedev #gameaudio #unrealengine
May 20, 2025 at 9:11 AM
Our game is finally released today!
The Siege and The Sandfox is a 2D #metroidvania with gorgeous pixelart; stealth-based gameplay; and lots of dynamic music and game audio by meee.
4pm GMT on Steam, Epic & GoG for PC
store.steampowered.com/app/653060/T...
#indiedev #gameaudio #unrealengine
The Siege and The Sandfox is a 2D #metroidvania with gorgeous pixelart; stealth-based gameplay; and lots of dynamic music and game audio by meee.
4pm GMT on Steam, Epic & GoG for PC
store.steampowered.com/app/653060/T...
#indiedev #gameaudio #unrealengine
More aggressive optimisations for my #UnrealEngine FM synth, which now has this beast of a LUT-based waveform blending LFO that can be cheaply mapped to per-operator params. It's 'only' 4-op, but all ops have feedback, multiple waveforms and can optionally use phase distortion
borp clang fart plarp
borp clang fart plarp
May 12, 2025 at 1:03 PM
More aggressive optimisations for my #UnrealEngine FM synth, which now has this beast of a LUT-based waveform blending LFO that can be cheaply mapped to per-operator params. It's 'only' 4-op, but all ops have feedback, multiple waveforms and can optionally use phase distortion
borp clang fart plarp
borp clang fart plarp
Wrote a custom LFO for my #UnrealEngine FM/phase distortion hybrid synth. It precalcs lookup tables to keep it cheap, and can blend two waveforms. This is triangle vs interpolated noise and looks nice and hairy on the scope. It’s just very slightly modulating the pitch of one operator. #gameaudio
April 28, 2025 at 7:50 PM
Wrote a custom LFO for my #UnrealEngine FM/phase distortion hybrid synth. It precalcs lookup tables to keep it cheap, and can blend two waveforms. This is triangle vs interpolated noise and looks nice and hairy on the scope. It’s just very slightly modulating the pitch of one operator. #gameaudio
The FM Synth in my #UnrealEngine tracker DAW plugin hasn't had much love for a while, so I added a phase distortion synthesis option to each FM operator. Sort of a hybrid of Yamaha-style FM via PM and Casio-style PD via...trial and error. Sounds ok! Just needs some modulation hookups.
#gameaudio
#gameaudio
April 26, 2025 at 6:35 PM
The FM Synth in my #UnrealEngine tracker DAW plugin hasn't had much love for a while, so I added a phase distortion synthesis option to each FM operator. Sort of a hybrid of Yamaha-style FM via PM and Casio-style PD via...trial and error. Sounds ok! Just needs some modulation hookups.
#gameaudio
#gameaudio
I wrote this effect for the NTS-3 Kaoss Pad using Korg’s open source Logue SDK. Cool, you’re thinking, they made it easy so everyone can get involved? No, of course they made it a total pain in the arse! But if you know some C and don't mind faffing about with weird toolchains it's fun.
April 6, 2025 at 5:09 PM
I wrote this effect for the NTS-3 Kaoss Pad using Korg’s open source Logue SDK. Cool, you’re thinking, they made it easy so everyone can get involved? No, of course they made it a total pain in the arse! But if you know some C and don't mind faffing about with weird toolchains it's fun.
I added an allpass filter to my #UnrealEngine Karplus-Strong synth with a random coefficient per note. It's everything I hoped for and more.
#gameaudio
#gameaudio
March 22, 2025 at 4:08 PM
I added an allpass filter to my #UnrealEngine Karplus-Strong synth with a random coefficient per note. It's everything I hoped for and more.
#gameaudio
#gameaudio
I wrote a #Reaper script that explodes multichannel BWF items from my Sound Devices 633 to child tracks while preserving the metadata (it's discarded by default), muting the source, and appending item names with track names and circled state from SD's iXML tags. Niche but ninja. #locationsound
February 4, 2025 at 1:47 PM
I wrote a #Reaper script that explodes multichannel BWF items from my Sound Devices 633 to child tracks while preserving the metadata (it's discarded by default), muting the source, and appending item names with track names and circled state from SD's iXML tags. Niche but ninja. #locationsound
Introducing my IWIAB (irritated wasp in a box) physics model. You can shoo it away with a gesture and lure it towards an attractor, but ultimately it's an irritated wasp in a box and your control of the situation is illusory. Finally got what I want: an XYZ pad but weird.
#gamedev #sounddesign
#gamedev #sounddesign
January 22, 2025 at 11:21 PM
Introducing my IWIAB (irritated wasp in a box) physics model. You can shoo it away with a gesture and lure it towards an attractor, but ultimately it's an irritated wasp in a box and your control of the situation is illusory. Finally got what I want: an XYZ pad but weird.
#gamedev #sounddesign
#gamedev #sounddesign
Added a janky physics model to my #Roli Lightpad app. It already had spring lerp per axis, but now you can stott the thingy off the edges like a DVD player logo, in case you’re too famous and important to modulate your own parameters
#gameaudio #sounddesign
#gameaudio #sounddesign
January 22, 2025 at 10:15 AM
Added a janky physics model to my #Roli Lightpad app. It already had spring lerp per axis, but now you can stott the thingy off the edges like a DVD player logo, in case you’re too famous and important to modulate your own parameters
#gameaudio #sounddesign
#gameaudio #sounddesign
Added a minimalist transport mode to my 3XYZ app for #Roli Lightpad - record, play/stop and jog/scrub via MIDI. Ideal for when #Reaper hasn't got focus, or mouse and keyboard are out of arms' reach while playing instruments. The scrub strip measures gesture speed for short or continuous action.
January 21, 2025 at 9:58 AM
And - hey, but what if you want everything in one track on multiple fixed lanes? Just repeat after me: 'Arrange items in track sequentially on separate Lanes with optional time offset'! Both let you set custom offset and fades, so you can very quickly assemble (as in this case) a crossfaded demoreel
January 14, 2025 at 4:14 PM
And - hey, but what if you want everything in one track on multiple fixed lanes? Just repeat after me: 'Arrange items in track sequentially on separate Lanes with optional time offset'! Both let you set custom offset and fades, so you can very quickly assemble (as in this case) a crossfaded demoreel
I wrote two #Reaper scripts that do extremely niche things exactly the way I want. Way faster and more satisfying than the nightmare of writing python remote scripts for Ableton Live. First is the elegantly named 'Arrange items sequentially in time by ascending track count', with custom offset/fades
January 14, 2025 at 4:14 PM
I wrote two #Reaper scripts that do extremely niche things exactly the way I want. Way faster and more satisfying than the nightmare of writing python remote scripts for Ableton Live. First is the elegantly named 'Arrange items sequentially in time by ascending track count', with custom offset/fades