Closed fractalf closed 2 years ago
No. Cardinal does not load external modules.
This is against the targets of the project. There are big side-effects from being able to load such external modules, for example (this has already been reported on the VCV forums a few times) some users on Linux cannot use Rack Pro when their GPU drivers use libarchive with zstd, because of conflicting function symbols.
For being able to load external modules, the entire Rack SDK/API needs to be available as public interface and symbols (and also all of jansson, speexdsp, irffft, curl and other libs, as used by modules and provided as part of Rack APIs). This is a terrible idea for audio plugins that are typically all loaded within the same process.
It is also very inconvenient for an opensource project, because VCV only officially supports 3 builds (linux, mac and windows 64bit). Meanwhile Cardinal works for at least i686, x64 (regular 64bit) and ARM, with some linux distributions packaging for PowerPC as well, maybe others. And it runs on Linux, macOS and Windows plus BSD, Haiku (core only, no gui yet) and Web-assembly. In theory it could run on any POSIX-compatible system.
So even if adding such functionality, only a percent of Cardinal users would be able to use it. That breaks the entire idea and setup of people sharing patches and expecting them to work as-is. Some modules, being proprietary, are simply not possible for us to make it work on more than what authors decide to support. No thanks.
OK, get it. Thank you very much for a detailed answer!
Would it be possible to let Cardinal load modules from a
.vcvplugin
downloaded through VCV Rack?While I ofc understand you cannot include all VCV modules in Cardinal due to licencing, it would be cool if we could use modules that are on disk (downloaded from VCV)