Repository navigation
v0.8.0
Download
| Installer | ||
|---|---|---|
| Windows | FSVR-Windows-Installer.exe | Run it; it asks for admin rights to install into Program Files |
| macOS | FSVR-MacOS-Installer.zip | Unzip and open FSVR-MacOS-Installer; it is not signed, so right-click it and choose Open the first time |
| Linux | FSVR-Linux-Installer | chmod +x FSVR-Linux-Installer, then run it |
The installer puts every format in place (VST3, CLAP, VST2, the 32-bit VST2 with its DXi, AU and the standalone) and can keep FSVR up to date. To install one format by hand instead, take its own zip from the list below, FSVR-<OS>-<format>.zip. FSVR-MacOS-Update is for the updater, not for downloading.
FSVR v0.8.0: both VOP3 chips emulated, running the firmware's own microcode compiled to native code.
This round lands WouterVanNifterick's VOP3 emulation (#36) and answers mkruselj's report on a part's voice and its lamp (#37). The instruction set the emulation runs was measured on rgwan's unit over sessions 8 to 39; the compiler, the operator colours and the About box are jameshansen's.
The effects and the filter run the firmware's own microcode. Both YSS236 chips, the effects (VOP3-2) and the per-voice filter (VOP3-1), now run the programs the firmware uploads to them on an emulated YSS236 core, in place of the Data List effect models and the filter model measured off 15_filter (WouterVanNifterick, #36). The firmware's effect host is ported to C++ in src/fs1r/firmware/vop3host/, and all 87 effect types upload word for word what the firmware does, traced in MAME. The reverbs checked so far match recordings of the unit to within 2 to 12 LSB, where the Data List models read 17 to 29 dB against real impulse responses. The delay, modulation and insertion programs are not yet checked against a recording. Every patch with an effect or a filter in its path sounds different from v0.5.2. Stale effect offsets after CC 121 are fixed as well.
Compiled to native code. Each chip's program is compiled at run time with AsmJit, to x86-64 or arm64 (Apple silicon included), and compiled again only when the program changes; parameter changes do not recompile. On x86-64 the bench (Hall 1, Chorus and an LPF24 voice) runs in 4.4 us per sample against 29.1 interpreted, 21% of a core against 139%; arm64 has not been timed. vop3_jit_check compares the compiled code's whole state with the interpreter's after every pass, 918,400 passes over every reverb, variation, insertion and filter type and random programs, and runs as the vop3_jit ctest on every CI leg. Its first Linux run caught a register that index() clobbers under GCC 12.2 and 13.3, now reloaded in both backends. 32-bit builds, CPUs without SSE4.1 and hosts that refuse executable memory run the interpreter, and FSVR_VOP3_INTERP=1 forces it for A/B listening. AsmJit (zlib licence) is vendored in third_party/asmjit/.
Each operator in its own colour. The eight operators have distinctive colours, 1 blue through 8 violet, everywhere they appear: the operator column, the matrix's boxes and wires, the Algorithm browser's thumbnails, the rows of the Envelopes, All Operators, Key Scaling and Fseq pages, every envelope and key scaling curve, and the Modulation page's Formant and FM Op boxes. Lit small buttons carry white text. The operator keys are new art in the pots' plastic with an inset selected state, the pots are a muted #845444, the Parts page's lamps are the rectangle every other switch has, and the top bar's contents sit 8 px higher. With Keys off the strip under the pages is no longer solid black.
A part's voice and lamp (mkruselj, #37). A click on a part's Voice opens the Browser on that voice, in the bank that holds it. The lamp beside "Part N" turns the part off and on: off is voice bank off, as on the unit, and on brings back the bank it had, kept with the session. The voice's menu is gone.
The standalone's Device Window opens the ASIO driver's control panel on Windows, for its buffer size and clock, and reads the devices again afterwards. Linux and macOS have no such panel.
Checks. build.bat test passes (selftest, check_formant, check_presets), and a fixed render (fsvr_console -n 60 -d 3) hashes the same as at the JIT's commits, SHA-256 d4d98dba. CI passed every leg on the commit before the release commit, which changes only STATUS.md: the engine on Windows, Linux and macOS with vop3_jit on each (arm64 on macOS), check_plugin and check_gui on the Windows, Linux and macOS plug-in legs, and the installers. build.bat plugin was not run locally. tools/regress.py was not run: the emulation moves every case that passes through an effect or the filter, and the tracked reference was already stale. The About box's own window exists on Windows only; on macOS and Linux the editor still grows to hold it.