igorski / transformant

VST plugin that acts as a multi channel formant filter
https://www.igorski.nl/download/transformant
MIT License
40 stars 4 forks source link

Multiple declaration of UIMessageController #3

Closed KottV closed 3 years ago

KottV commented 4 years ago

Hi,

I don't know why it works on other platforms but under Linux compile fails with:

In file included from /home/kv/src/audio/transformant/src/vstentry.cpp:24:
/home/kv/src/audio/transformant/src/ui/controller.h:45:49: error: declaration of ‘typedef class Steinberg::Vst::UIMessageController<Steinberg::Vst::Controller> Steinberg::Vst::Controller::UIMessageController’ changes meaning of ‘UIMessageController’ [-fpermissive]
   45 |         typedef UIMessageController<Controller> UIMessageController;
      |                                                 ^~~~~~~~~~~~~~~~~~~
/home/kv/src/audio/transformant/src/ui/controller.h:37:7: note: ‘UIMessageController’ declared here as ‘class Steinberg::Vst::UIMessageController<Steinberg::Vst::Controller>’
   37 | class UIMessageController;
      |       ^~~~~~~~~~~~~~~~~~~
make[2]: *** [CMakeFiles/transformant.dir/build.make:173: CMakeFiles/transformant.dir/src/vstentry.cpp.o] Ошибка 1
make[1]: *** [CMakeFiles/Makefile2:95: CMakeFiles/transformant.dir/all] Ошибка 2
make: *** [Makefile:149: all] Ошибка 2
shivpalkang commented 4 years ago

Bump. I have the same problem compiling on Linux(Ubuntu Studio 20.04), maybe it's a compiler problem, I'm new to Linux, C++, and Github. It's a great plugin, would love to have it working natively on Linux.

Edit1: I was able to compile it by installing Clang and removing gcc, the *.so file is generated but the plugin isn't being detected by the host(Carla).

Edit2: Well, seems like Carla only has Windows VST3 support, and not Linux native VST3.

igorski commented 3 years ago

Hi there, just to be able to backtrack this, what version of the Steinberg SDK and compilers are you using ? @shivpalkang mentioned using clang resolved the issue, but gcc should technically work just as well.

KottV commented 3 years ago

Yes, it builds with clang. Deleting gcc is overkill, just:

CPP=clang-10 CXX=clang++-10 cmake -DVST3_SDK_ROOT=/path/to/vst3sdk ..

KottV commented 3 years ago

Edit2: Well, seems like Carla only has Windows VST3 support, and not Linux native VST3.

It works for me. What's your version of Carla? It supports VST3 very well since 2.1 if i remember correctly.

shivpalkang commented 3 years ago

CPP=clang-10 CXX=clang++-10 cmake -DVST3_SDK_ROOT=/path/to/vst3sdk ..

Thanks for the tip.

What's your version of Carla?

I'm using Carla version 2.1.0 , it loads the Windows VST3 using carla-wine-bridge, but the dials are missing in the UI (see attached pic). But Carla doesn't detect the natively compiled VST3 at all. I compiled using VST SDK version 3.7.0 build 116, and Clang-10. Any help will be much appriciated

Transformant

shivpalkang commented 3 years ago

but gcc should technically work just as well

I did a quick search and found this -> https://stackoverflow.com/questions/12187549/typedef-changes-meaning So, it's not a problem specific to this source I guess.

KottV commented 3 years ago

I'm using Carla version 2.1.0

Yep.. Carla can work with native VST3 since 2.2.0-RC1 https://kx.studio/News/?action=view&url=carla-22-rc1-is-here Other hosts that can do this: Qtractor, Zrythm, AudioPluginHost from JUCE (6 version) and proprietary: Reaper, Bitwig, Tracktion Waveform beta 11.1.1x

shivpalkang commented 3 years ago

Carla can work with native VST3 since 2.2.0-RC1 https://kx.studio/News/?action=view&url=carla-22-rc1-is-here

The news on the link says that :

Worth noting is that this is not a custom implementation, but leveraging JUCE VST3 host support on Linux.

And when I scan from Carla 2.2.0-RC2, it throws an error:

carla-discovery::error::VST3 support not available

I downloaded JUCE and compiled AudioPluginHost in the extras folder, from the LinuxMakefile. It generated a shared library file but I'm not sure how to use it with Carla. Am I completely missing a point somewhere? I have zero experience in all this right now.

Edit: The compiled AudioPluginHost is running fine as an executable, do I need to link it to Carla somehow?

KottV commented 3 years ago

The compiled AudioPluginHost is running fine as an executable, do I need to link it to Carla somehow?

No, there should be ~/.vst3/transformant.vst3 directory in your home after compiling. Run AudioPluginHost then scan for new plugins then add it on canvas.

shivpalkang commented 3 years ago

Run AudioPluginHost then scan for new plugins then add it on canvas.

Yes, Thanks! It's running perfectly in the AudioPluginHost, and I've raised the Carla VST3 support issue on the Carla github repo page, as I guess it's better to get that sorted out there. Thanks for your help. Cheers!

dromer commented 3 years ago

Yes, it builds with clang. Deleting gcc is overkill, just:

CPP=clang-10 CXX=clang++-10 cmake -DVST3_SDK_ROOT=/path/to/vst3sdk ..

Thnx! in my case I used clang-8. Build completes, but neither carla or element are happy with running the result.