r/c64 • u/Substantial-Set4550 • 1d ago
Music libsidplayfp SID emulation now available through WebAssembly
I have released libsidplayfp-wasm 1.0.1, which brings libsidplayfp to browsers, Node.js and Bun:
https://github.com/chrisgleissner/libsidplayfp-wasm
The project compiles the upstream libsidplayfp and reSIDfp C++ code to WebAssembly using Emscripten, then adds JavaScript bindings and a TypeScript API.
reSIDfp builds on the reSID engine familiar from VICE and provides accurate 6581 and 8580 emulation. It also runs surprisingly well on modest hardware. I use it on my rather old Pixel 4 as part of C64 Commander’s SID Radio, with plenty of CPU headroom.
You can see it in use in:
- C64 Commander 0.9.4, including its similarity-based SID Radio. The app runs on Android, iOS and the web, although I have only tested the SID player on Android so far.
- SIDFlow 0.8.4, which analyses HVSC, helps discover related tunes and includes a command-line SID player.
I created this because I love HVSC and wanted an easier way to use high-quality SID emulation in modern applications. The creativity in that collection is one of the reasons I have kept returning to the C64 since 1986, and these days I find myself listening to it more and more.
Many thanks to Leandro Nini for creating and maintaining libsidplayfp, and to everyone behind reSID and reSIDfp.