FSVR
Formant Synthesizer Virtual Rack, the Yamaha FS1R rebuilt from its firmware
The 1998 Yamaha FS1R as a plugin and a standalone, its firmware logic rewritten in C++: four parts, 32 channels, the filter, both LFOs, the effects, the factory banks and Fseq playback, with an editor for every parameter the unit has.
James Hansen
Zhiyuan Wan
Wouter van Nifterick
v0.8.0free and open sourceWindows, macOS, LinuxVST3, CLAP, VST2, AU or standalone
downloads. v0.8.0
v0.8.0 on GitHub, with checksums and older versions →what it has.
- All 88 algorithmsEvery FM algorithm from the hardware, with the voiced and unvoiced operators the FS1R is known for.
- The real effects and filterBoth VOP3 DSPs run the firmware's own microcode on an emulated YSS236, compiled to native code: 17 reverbs, 29 variations, 41 insertion effects, the master EQ and the per-voice filter, as the unit runs them rather than approximations of them.
- The factory banks built in1408 voices, 384 performances and 90 formant sequences read out of the ROM, so the patch browser needs no dump of your own.
- Fseq playbackThe formant sequences that made the FS1R sound like nothing else, with every loop mode, the start delay and MIDI clock sync.
- An editor for every parameterEvery parameter the unit has, on pages rather than a two-line display, with a bank manager for your own .syx libraries and Import Audio, which turns a recording into an Fseq.
- An installer for every formatWindows, macOS and Linux, built on every push. The installer puts VST3, CLAP, VST2, the 32-bit VST2 with its DXi, AU and the standalone in place, and keeps them up to date through musica.studio.
why it exists.
I have always loved the sound of FM synthesis. It defined the SEGA Genesis/Mega Drive, one of my favourite gaming consoles. I first saw an FS1R in musictrackjp's demo and review in 2010 and have wanted one since. It was made for two years, its YMP706 tone generator was never documented and went into exactly two products, and a working one now costs more than most people want to spend on a box with a two-line display.
In 2025 Zhiyuan Wan (rgwan) started taking a real FS1R apart, reading the SH7044's 256 KB internal flash out through a hooked UART, dumping the 2 MB EPROM and the PLG150-DX ROM, capturing the board's own UART traffic, and publishing all of it as rgwan/fs1r_firmware_RE, with a Ghidra project that already had the boot, loader, flash and LCD code named. Progress went up along the way on the yamahamusicians.com forum. None of this exists without that work.
I found it just over a year later, in September 2026, and started reading the decompiled firmware to see whether the CPU side could be rewritten rather than emulated. It could, so I built FSVR on top of rgwan's material. We are working on it together now: Zhiyuan runs a patched firmware on the unit to poke memory and read registers back, and records the measurements the engine is calibrated against, and Wouter van Nifterick (WouterVanNifterick) built the emulated VOP3 core the filter and effects run on. Hardware analysis is still running.
It is a rewrite, not an emulation of the board. The note-on path, the 192.3 Hz tick pipeline, the parameter conversion tables and the 88-algorithm routing table are read straight out of the decompiled firmware and ported to C++. Nobody has register documentation for the YMP706 tone generator, so it stays a model, and every constant behind it sits in one namespace in the source where calibrating against a recording of a real unit is a single table edit. The two VOP3 DSPs, the filter and the effects, are the exception: since 0.8.0 they run the firmware's own microcode on an emulated YSS236, its instruction set measured on Zhiyuan's unit, and compiled to native code at run time.
The tooling is a large part of why this is possible at all. The first working recreation was written with Claude Fable 5.1, and the analysis has carried on with each frontier model since, reading decompiled 1998 firmware at something close to source level. Anyone working on the project can use the same tools through the Discord.
Next is rewriting the effects in C++, each one checked against the emulation, which stays the exact reference. Until then FSVR ships the emulation itself, compiled with AsmJit to x86-64 or arm64, which runs both chips in about a fifth of one x86-64 core.
the community.
There is a FSVR channel on the musica.studio Discord. Bug reports, feature requests, questions, and screenshots of what you made with it all go there, and it is the fastest way to reach me about this project.
good to know.
An installer for Windows, macOS and Linux, or each format as its own zip, with no dependencies. The installer uninstalls from Settings > Apps on Windows, and its updater only ever reads musica.studio.
Free and open source under the GPLv3. No Yamaha firmware or ROM image ships in the repository, and the tools that regenerate every extracted table from a dump you make yourself are in it.
Yamaha and FS1R are trademarks of Yamaha Corporation. This project is not affiliated with, endorsed by, or connected to Yamaha in any way.