I think that people should understand what this represents, because I think most HN readers (let alone everyone else) won't get it.<p>1. Start from the Community Edition of VCV Rack (GPL licensed)<p>2. Redesign the fundamental architecture to match the way most other audio applications work with respect to interacting with audio hardware<p>3. Implement new modules to replace the most critical ones provided by the non-gratis VCV Rack Pro (plugin version), including sync with the host, exchange audio & MIDI with the host and more.<p>4. Create new GUIs for the Fundamental module collection that comes with VCV Rack, since those designs are not freely licensed, even though the modules are.<p>5. Identify VCV Rack modules licensed under "GPLv3 or later", and add them all to the build system, frequently requiring licensing clarification from module authors since the Rack world has been, uhm, a bit, uh, loosey-goosey with this.<p>6. Find or implement ports of the dependency stack for Rack to WASM<p>7. Port Rack itself to WASM, which requires a completely new audio/MIDI backend to deal with webaudio and webmidi.<p>8. Identify and fix browser-specific issues<p>It is a remarkable effort, and Filipe receives essentially nothing for what he has done.
"Installing new modules on an existing Cardinal binary is not possible at run-time, but we can add new modules to the build."[1]<p>From the original release — being able to select 3rd-party plugins a la carte is probably Rack's most important feature, both for users and developers. Apparently there's a technical reason: "Cardinal is intentionally a fully self-contained plugin, Whatever is contained in the current build is what you can use"[2], but it seems like Rack Pro makes it work so I'm not sure why that's the case.<p>[1]<a href="https://kx.studio/News/?action=view&url=cardinal-2202-is-now-released" rel="nofollow">https://kx.studio/News/?action=view&url=cardinal-2202-is-now...</a>
[2]<a href="https://github.com/DISTRHO/Cardinal/blob/main/docs/FAQ.md">https://github.com/DISTRHO/Cardinal/blob/main/docs/FAQ.md</a>
Stunning work! Just one small issue: changing the size of pages/canvas causes clicks. It may be caused by the absence of SharedArrayBuffer.<p>Solution:<p>--------------- ----------------
| main thread | <--- SharedArrayBuffer ---> | AudioWorklet |
--------------- ---load CPP WASM and postMsg ---> ----------------<p>I used to have that issue in my browser-based live coding env: <a href="https://glicol.org" rel="nofollow">https://glicol.org</a><p>But SAB makes it gone, except on old safari that does not support SAB...
VCV Rack is quite fun and shows how the skeumorphic interface to things like music and synthesis is actually quite useful and understandable. While things like supercollider and pure data exist, it's hard to argue that VCV Rack's interface isn't a lot simpler to get going with.<p>I wish popular DAWs would learn a thing or two from it tbh. Connecting VSTs with the skeumorphic interface is a better experience than something like the otherwise excellent a Reaper does. Only FL Studio (with Patcher) gets this right.
Added it to the big list of Open Audio! <a href="https://github.com/webprofusion/OpenAudio">https://github.com/webprofusion/OpenAudio</a>