jatinchowdhury18 / KlonCentaur

Digital emulation of the Klon Centaur guitar pedal using RNNs, Wave Digital Filters, and more
BSD 3-Clause "New" or "Revised" License
324 stars 24 forks source link

Additional feature: LV2 plugin #28

Open Rezzonics opened 3 years ago

Rezzonics commented 3 years ago

This is a great job, congratulations. Would it be possible to have an LV2 plugin version of this pedal?

jatinchowdhury18 commented 3 years ago

Thank you! LV2 builds are already available on Linux. You can either build from source, or try the Linux installer on the nightly builds page.

dromer commented 3 years ago

What about LV2 builds for windows and mac?

For MOD (arm64) we had to modify the toolchain, but have ChowCentaur working here: https://github.com/moddevices/mod-plugin-builder/compare/juce-tests AnalogTapemodel is still in todo.

jatinchowdhury18 commented 3 years ago

What about LV2 builds for windows and mac?

Took a look at it this morning. There is a now an lv2 branch, which contains a CMake build flag to enable LV2 builds on Windows/Mac (LV2 builds are still enabled by default on Linux). So to use this flag, you can run your CMake configuration step as:

cmake -Bbuild -G<My Generator> -DBUILD_LV2_TARGET=ON

That said, I've had some difficulty getting builds that I can test. On Windows, MSVC has trouble with the lv2_ttl_generator, since the generator code uses variable length arrays in a couple spots. Compiling with MINGW will probably work, but I haven't tried it yet.

On Mac, the CMake configuration step fails, since JUCE uses the "juceaide" tool to generate a plist, and juceaide does not recognize LV2 plugin targets, leading to a false assertion.

Anyway, I'll keep experimenting, and see if I can get something to work!

Thanks, Jatin

dromer commented 3 years ago

I really feel like juceaide is a huge curse. Nearly every project that uses juce is largely busy pulling in juce code and building juceaide ..

jatinchowdhury18 commented 3 years ago

Yeah, it's definitely not the best, but I do feel that it's an improvement over the Projucer of old, both in terms of ease of use and build time. If the Projucer eventually goes away, then the time needed to pull JUCE from GitHub would go down considerably as well, since a large part of JUCE's memory footprint is taken up by the Visual Studio and Xcode projects needed for the Projucer.