-
-
Notifications
You must be signed in to change notification settings - Fork 1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Initial support for CLAP plugins #7199
base: master
Are you sure you want to change the base?
Conversation
- Fix crash due to double free - Implement the host's thread check CLAP extension - Fix bug when a directory in the CLAP search path ends with ".clap" - Set input audio buffers' constant_mask when unused - Better audio port issue checking - Add some thread checks
Base64 strings cannot be concatenated then decoded
Thanks to baconpaul for the fix
Conflicts: - include/ConfigManager.h - include/lmms_math.h - src/CMakeLists.txt - src/core/CMakeLists.txt - src/core/ConfigManager.cpp
Hi, I rebased this PR to head and tried to build it, but ran into build errors with u8path and u8string. It might by caused by std::filesystem::u8path being obsoleted in c++20. There are a few error messages below. I got the build to succeed by removing every 'u8' in this PR, though I don't know if this has any unintended side effects.
|
@TimovVeen Yeah, C++20 made some breaking changes to |
Builds available here
This has been in the works for over a year now, so I'm really excited to share it.
There are a number of known issues (listed below) that I'd like to fix before it's ready to merge, which is why I'm marking this as a draft for now.
I've decided to create this draft PR because until now I've only been running this on Linux Mint, so I need people who can test it on Mac and Windows. Don't expect a finished product yet - there will be bugs and even crashes! - though many of the free CLAP plugins listed on https://clapdb.tech/ should run without major issues. On Linux at least.
Other than the parameter and events code, I don't see much significant refactoring needed, and I'm pretty satisfied with the current design. Because of this, feel free to leave code reviews if you'd like. Fortunately most of the code is isolated from the rest of the LMMS codebase, so that will make things a bit easier, though it's still quite a bit for one PR.
Features
WindowEmbed
class and used it to improve some other parts of LMMS, though maybe that work should be moved to a separate PRCLAP_PATH
LMMS_CLAP_PATH
export LMMS_CLAP_PATH=
effectively disables CLAP support at startupLMMS_CLAP_DEBUG=1
Known Issues
Plugins with known issues
TODO for this PR
TODO for future PRs
I don't plan for this PR to be the end of my contributions to CLAP support in LMMS.
In the future I'd like to add more features:
My goal is for CLAP support in LMMS to far outclass our VST support so that we have little reason to use VSTs again.
Testing
This branch has not been tested on any OS other than Linux Mint, so I'd appreciate testing on Windows and Mac.
If you find any bugs not listed above, please let me know either here or on Discord. Thanks!
Special thanks to