One of our favorite rabbit holes lately has nothing to do with shipping and everything to do with curiosity: take a modern digital sound effect and ask, what would this have sounded like if it were born on a 1990 sound chip? Not resampled and played back — actually re-synthesized on the chip's own terms, using only the voices that hardware had.

The trick is to stop thinking about waveforms and start thinking about spectra. We run the source through a short-time Fourier transform, track the strongest partials frame by frame, and then ask each target chip: with the handful of voices you own, what is the closest thing you can make to this shape right now? The output is a sequence of note and register events, not audio — a little score the chip performs.

Match the spectrum, not the samples

Sample playback is easy and boring; every chip with a DAC can do it. The fun constraint is synthesis: reproduce the perceived timbre using square waves, FM operators, triangles, and noise. So the pipeline is roughly — analyze the spectrum, reduce each frame to a few dominant frequencies plus a broadband/noise estimate, quantize those to what the chip can actually voice, and emit the events. Broadband or percussive energy gets routed to a noise channel; tonal energy gets mapped onto the pitched voices; everything is clamped to the chip's channel count and resolution.

Four very different voices

  • PC speaker — one bit, one channel. We track the single most important frequency per frame and drive the beeper, leaning on fast pitch changes and PWM-style duty tricks to fake a hint of timbre. Brutally lossy, unmistakably itself.
  • Sound Blaster 16 (OPL FM) — Yamaha OPL-style FM synthesis. Here we fit FM operator pairs to the harmonic stack instead of stacking raw squares, which gets us far closer to bells, stabs, and vowel-ish tones than the beeper ever could.
  • Sega Genesis (YM2612 + PSG) — six channels of FM plus the SN76489 square/noise PSG. The extra voices let us split a sound into an FM “body” and PSG “edges,” which is where reconstructions start to feel like a real arrangement rather than a single bleep.
  • NES (2A03 APU) — two pulse channels with selectable duty, one triangle, one noise. We hand the two loudest partials to the pulse channels, use the triangle for low-end fundamentals, and let the noise channel carry hiss and transients. Tight, punchy, and full of that NES personality.

The best part is that the loss is the point. Each chip forces the sound through its own tiny bottleneck, and what survives carries that hardware's accent. The same source effect comes out four different ways — and every one sounds like where it came from.

Where we want to take it

This is early and firmly in the “because it's fun” column, but the thread connects to work we care about. Spectral reconstruction — deciding what a signal is and rebuilding it from a different set of parts — is the same muscle behind the high-frequency restoration idea we floated for chainDRiVE. We'd love to keep pushing on:

  • Better partial tracking — psychoacoustically weighted analysis so the voices we keep are the ones ears actually notice.
  • More targets — Game Boy, C64 SID, and Atari POKEY each have a voice worth chasing.
  • Additive resynthesis — rebuilding a sound from measured partials as a general tool, retro chip or not.
  • Analysis as a feature — spectrograms and reconstruction diffs that make “how close did we get?” something you can see, not just hear.

To be clear: this is a Lab experiment, not a product announcement. No ship date, no promises — just a direction we find genuinely fun and want to keep exploring out loud.

Related listening from the same corner of the Lab: Faking AM & FM in Web Audio, chainDRiVE's Format Support Grows Up, and Codec Depth, chainDRiVE, and CHAiNAMP.