Browser tool WaveSmith composes SNES music and exports playable ROMs
A new browser-based studio compiles original songs to a real SPC700 sound engine and exports a standalone SNES ROM, no assembler required.
AI-drafted from 2 sources. This story was written with AI from the outside reporting listed under Sources, and checked by automated tools before it went up. The originals have the full detail.
A developer has released WaveSmith, a browser-based music studio that lets you write original SNES compositions and export them as a working .sfc ROM, complete with a custom sound engine running on the console's actual audio chip. It appeared on the r/retrogamedev thread, posted by the tool's creator, and the software itself is live at wavesmith.online.
The SNES handles sound with a dedicated co-processor called the SPC700, fed by a tiny 64 kilobyte pool of audio RAM known as ARAM. Getting music onto real hardware normally means writing a driver from scratch: encoding samples into the console's compressed BRR format, building a sample directory table, handling voice allocation and ADSR (attack, decay, sustain, release, the envelope shape of a note), then squeezing an echo buffer with FIR filtering into whatever ARAM is left. According to the original post, that is “a fairly steep hill if you just want to put original music in a homebrew project”, which is the gap WaveSmith is aimed at.
What the compiler actually does
The pipeline described in the thread runs entirely client-side in WebAssembly. WAV files are resampled to 32kHz and encoded to BRR in the browser, with loop point editing, zero-crossing snapping and what the developer calls loop quality analysis, presumably a check for audible clicks at the loop seam. You can also lift BRR samples and echo settings straight out of existing SPC files, which means borrowing timbres or reverb settings from other tracks rather than building instruments from raw samples every time.
The music itself is composed in a browser DAW, then compiled down to an SPC700 engine assembled with WLA-DX, a well-known 6502-family assembler used across retro homebrew. That engine handles voice allocation, ADSR, pitch modulation, noise and per-voice echo routing. The compiler packs instrument tables, step tables and song data into an ARAM image, deduplicates samples by content hash to save space, and warns you when you are running out of the 64 kilobyte budget. It is, in effect, a full authoring chain from waveform to cartridge-ready binary, sitting behind a web page rather than a command line.
Emulator-tested, not hardware-tested
The developer is upfront that WaveSmith's ROM output has only been checked in emulators so far. There is no flash cart to hand for testing on original SNES hardware, and the post asks anyone with the means to try it and report back. That is a meaningful caveat: emulator audio cores do not always model the SPC700's DSP, echo buffer and FIR filter with total accuracy, so a track that sounds right in an emulator is not guaranteed to sound identical on a real console until someone actually checks. Nothing in the thread confirms hardware testing has happened yet.
There is a working demo baked into the tool. Opening the menu and choosing “Load from Code” with the code FCFCFE loads a short pre-built project with instruments and a loop, according to the post, which is presumably the fastest way to see what the exported ROM sounds like without composing anything yourself.
Why it matters for homebrew audio
SNES homebrew has generally relied on hand-rolled drivers or existing trackers aimed at people already comfortable with assembly and BRR tooling. A browser-based front end that outputs a runnable ROM lowers that barrier considerably, assuming the engine holds up once someone tries it on a flash cart or an FPGA-based clone console. What is still open is licensing for the exported engine and ROMs, how the sharing codes and small server-side API are meant to be used at scale, and whether the emulator-only testing throws up surprises once real SPC700 hardware gets involved. The developer says they are happy to answer questions about the engine, the BRR encoding or the ARAM layout, which suggests more detail will surface as the thread continues.
Sources
- I built a browser-based SNES music studio that compiles songs to a real SPC700 engine and exports a .sfc ROM (wavesmith.online)
- Discussion: I built a browser-based SNES music studio that compiles songs to a real SPC700 engine and exports a .sfc ROM (Reddit)
Image: Illustration: AI-generated for Gaming World