Skip to content
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

Multiple declaration of UIMessageController #3

Closed
KottV opened this issue Sep 21, 2020 · 11 comments
Closed

Multiple declaration of UIMessageController #3

KottV opened this issue Sep 21, 2020 · 11 comments
Labels

Comments

@KottV
Copy link

KottV commented Sep 21, 2020

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
Copy link

shivpalkang commented Sep 22, 2020

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 igorski added the Linux label Sep 25, 2020
@igorski
Copy link
Owner

igorski commented Sep 25, 2020

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
Copy link
Author

KottV commented Sep 25, 2020

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

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

@KottV
Copy link
Author

KottV commented Sep 25, 2020

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
Copy link

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
Copy link

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
Copy link
Author

KottV commented Sep 25, 2020

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
Copy link

shivpalkang commented Sep 26, 2020

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
Copy link
Author

KottV commented Sep 26, 2020

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
Copy link

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!

@igorski igorski closed this as completed Nov 3, 2020
@dromer
Copy link

dromer commented Feb 21, 2021

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants