-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
VST effect plugins #9019
Comments
Commented by: Be-ing VST API documentation is available at https://github.com/steinbergmedia/vst3_doc . Inconveniently it is not hosted online anywhere as far as I can tell, so to read it you need to download that Git repository and view it locally. From a quick glance at the documentation, VST seems much more complex than LV2 and lilv. |
Commented by: daschuer Are there actually many VST3 plug-ins out there? VST2 and VST3 are not compatible. |
Commented by: Be-ing I'm not sure, but I think many VST plugins are distributed in both VST2 and VST3 versions. I have removed this from the 2.3 milestone because I have no intention to work on this feature myself. If anyone else wants to commit to implementing this, please assign yourself to this issue and target it to a milestone. |
Hello! It would be really useful if user could add an effect with VST plugin. For example, there is very good VST plugin for radio broadcasting called "Stereo Tool" from Thimeo (link). It already has compression, AGC and a lot of other things to make sound more clear and much louder, and to make it at the same level. Here you can see the waveform of original audio from Mixxx (it's part of my live broadcasting): |
@daschuer why is it different feature? I suggest not to implement 10+ features separately (like compresssor, limiter, AGC etc.), but implement only one feature instead: new effect for custom VST plugin. So every user of Mixx will be able to install any VST plugin he want and just select it in the Mixxx effects menu. I'm not a painter, but I'll try to explain in pictures. |
We try to collect issues that describe missing features, in terms of use cases. If the VST integration fixes it, fine. But maybe a contributor comes along and adds the feature via another solution. That should also be fine. That's why a bug that describes your requirements is helpful. |
Only somewhat related, but I'd be interested in contributing CLAP plugin support at some point. The API's incredibly simple and robust, and the upcoming remote controls extension will make integration into something with limited space for controls like Mixxx a lot nicer when/if developers start supporting it. Won't get around to doing so anytime soon though. |
It would be nice to have Carla integrated (similar to zrythm), that way we'd get vst2/3, lv2, AU and possibly CLAP for free. |
Ok, I understand your point. I think for radio broadcasting it's important to have at least dual band or multi band compressor, limiter (or clipper), AGC, stereo expander and may be Bass EQ. At the same time any of this features alone seems useless for good audio processing. I can create new issue for AGC feature for example and write some messages in existing issues about compressor and limiter, if it helps. But I still need this features together, not separately. |
"why is it different feature?" Saying it because it has not already been explicetly stated: because you can already do the exact same thing you propose with an LV2 plugin. This issue is just about allowing VST plugins in general in future just like one can with LV2 plugins these days, and the compressor (varient) request has already been made. |
@mxmilkiib I haven't found any LV2 compressor plugin for Windows 10/11, so it seems to me that for now we can't do the exact same thing I propose with LV2 plugin on Windows. Do you know any solution? |
@fonsargo Afaiu, the https://github.com/zrythm/ZPlugins suite for Zrythm DAW is multiplatform given the DAW is. Radium DAW is multiplatform so afaiu https://github.com/kmatheussen/radium_compressor should be multiplatform, tbc. http://xhip.net/effects has a compressor and limiter that apparently is Windows compatible Edit: I guess any FAUST compressor/limiter .dsp can be built to provide a Windows LV2 bundle |
@mxmilkiib Thank you for information! However, I don't see any instructions to install ZPlugins on Windows. The same problem with Radium compressor. It seems like they don't have LV2 plugin for Windows. I also have no idea how to build .dsp plugins into LV2, could you provide some more details please? |
@fonsargo you would have to use the command-line process to compile/build the plugins as noted in their READMEs, after installing [at least] meson, ninja, guile, etc. for ZPlugins. I'm not sure of that process for Windows; Linux distros have packages which makes installing software super simple. For FAUST: https://lac.linuxaudio.org/2013/download/graef_faust-lv2.pdf and https://z-uo.medium.com/make-lv2-plugins-with-faust-ce58601ab3b9 and https://faustlv2.bitbucket.io for more. Edit2: I think I was mistaken about Xhip plugins being LV2. |
@mxmilkiib thank you! I've tried to compile some FAUST plugin to LV2 for Windows with faust online compiler, but unfortunately there isn't such option. In my opinion it isn't so easy, as just compile linux sources for windows, because it just doesn't work this way. I also think, that most of the Windows users of Mixxx don't know how to "compile" anything at all :) Therefore I suggest adding VST support, because there are a lot of VST plugins for Windows, which can be easily installed. |
Just to note here, as noted here, any FAUST .dsp can be built to LV2 on Windows by using the intermediate step of |
@mxmilkiib, finally I've figured out how to convert FAUST .dsp to JUCE project and compile it to LV2 plugin for Windows, however, unfortunately, Mixxx can't load it because "This plugin has features which are not yet supported". I've tried it on 2.3.6 and 2.4-beta with the same result. |
A-ha, interesting! I wonder which LV2 feature the plugin is seeking from the host that Mixxx hasn't implemented yet. Does output when run from the terminal mention? |
Actually I'm not sure that I understand how to run LV2 plugin from the terminal to see it's output. |
@ronso0 yes, of course. Because I couldn't manage to use any 3rd party plugins on Windows (LV2 or any other), I decided to implement built-in compressor effect myself. Here is the code: |
Great, thanks. Looking forward for the PR |
Ah yes, you're a Windows user so maybe my suggestion or phrasing didn't make sense, but, on Linux at least, one can start a GUI application in the terminal and it will launch and open the UI and also print various debug and error messages to the terminal to let one know what is going on behind the scenes. I'm not sure though if, when this is done with Mixxx, that, when that FAUST+JUCE-generated LV2 plugin is seen by Mixxx, that Mixxx will be verbose in the right way to output a line stating exactly what aspect of being an LV2 host Mixxx has not implemented yet that makes the ability to use that plugin fail. (*It wouldn't be too hard for me to check myself, but I'm on my phone!) https://lv2plug.in/pages/host-compatibility.html LV2 plugins each have their .ttl files which state what host features that plugin uses and requires of the host. The host will use this file when it finds what LV2 plugins are available, which is when Mixxx starts. |
Nope, Mixxx will simply mark the plugin invalid as soon as special features are requested. mixxx/src/effects/backends/lv2/lv2manifest.cpp Lines 183 to 187 in 4a91ff3
mixxx/src/effects/backends/lv2/lv2manifest.cpp Lines 207 to 209 in 4a91ff3
I briefly looked into printing debug messages per feature but didn't succeed, yet. I think if that's doable it would need to be restricted to --developer mode because it may spam the log in case you have a large LV2 installed with many incompatible plugins . |
Reported by: Be-ing
Date: 2017-12-28T02:53:04Z
Status: New
Importance: Wishlist
Launchpad Issue: lp1740335
The SDK for version 3 of the popular VST plugin format is available under the GNU GPL v3:
https://github.com/steinbergmedia/vst3sdk/blob/master/LICENSE.txt
Mixxx is currently licensed under the GNU GPL v2 or later, so as far as I understand (and IANAL), we could legally implement VST3 support if we distribute Mixxx as a whole under the GNU GPL v3. I think old code by itself would remain under the GPL v2 or later. Practically I don't think there would be any difference for us except maybe adding some clarification to the LICENSE file. We should consult with a lawyer before doing this to be clear, which is another good reason to join Software Freedom Conservancy.
Related: LV2 plugin support (Bug #1530238)
The text was updated successfully, but these errors were encountered: