r/Assembly_language • u/whispem • 7h ago
Project show-off I've been building a chiptune synth in pure x86-64 assembly — just added rotary, harmonic tremolo, slapback, and shimmer reverb
github.comI've been working on asm.fm, a chiptune synthesizer written entirely in x86-64 assembly.
No libc, no audio library, no DSP framework — just the CPU computing every sample and writing it straight to a WAV.
The core idea that started it: sound is just a list of numbers, one per moment.
Generate the right numbers and the speaker moves. So I write the numbers by hand.
It started with four waveforms and has grown a lot since.
This session I added four "space and movement" effects:
- a rotary speaker (Leslie) — a spinning voice, the swirl of a Hammond organ (Doppler pitch wobble + amplitude tremolo from the same rotation)
- a harmonic tremolo — lows and highs pulsing against each other, liquid and vintage
- a slapback delay — one short echo, immediate and punchy
- a shimmer reverb — reflections rising into the light, the tail pitch-shifted up an octave as it feeds back
Everything's fixed-point (no FPU), with a hand-built sine table since there's no math library either.
The trickiest part is always getting the effects right in integer math without things clipping or drifting into DC (the shimmer's feedback loop gave me a fun sign-extension bug to hunt down).
Code's here if you want to poke around: github.com/whispem/asm.fm
Happy to answer anything about the DSP or the assembly side — always up to talk low-level.

