vst3 framework used by carla, ardour, qtractor, ..

Programming applications for making music on Linux.

Moderators: MattKingUSA, khz

User avatar
skei
Established Member
Posts: 343
Joined: Sun May 18, 2014 4:24 pm
Has thanked: 8 times
Been thanked: 58 times
Contact:

vst3 framework used by carla, ardour, qtractor, ..

Post by skei »

hi!

does anybody know if the vst3 plugin support in qtractor, carla and ardour is based on the same code, possibly the juce source code, or if they use the steinberg sdk directly?

they all have the same issue, telling me my own plugins doesn't have any audio inputs/outputs, or gui, while they work flawlessly in both bitwig and reaper..

- tor-helge
User avatar
SpotlightKid
Established Member
Posts: 260
Joined: Sun Jul 02, 2017 1:24 pm
Has thanked: 57 times
Been thanked: 61 times

Re: vst3 framework used by carla, ardour, qtractor, ..

Post by SpotlightKid »

Accoding to falktx (Carla's author) on IRC:

"all those 3 have different implementations. carla uses the juce hosting code. qtractor and ardour implement their own way"
User avatar
TAERSH
Established Member
Posts: 455
Joined: Mon Feb 03, 2020 6:48 pm
Has thanked: 27 times
Been thanked: 21 times

Re: vst3 framework used by carla, ardour, qtractor, ..

Post by TAERSH »

I'm a regular user of Qtractor.

All plugins like DSSI, LV2 and VST are used directly.
Only for the VST3 plugins I'm using Carla as the plugin host in Qtractor.
No problems so far.

However, I couldn't get VST3 plugins to work directly in Qtractor.
User avatar
skei
Established Member
Posts: 343
Joined: Sun May 18, 2014 4:24 pm
Has thanked: 8 times
Been thanked: 58 times
Contact:

Re: vst3 framework used by carla, ardour, qtractor, ..

Post by skei »

hmmm.. ok.. thanks for the info.. if they all used the same "wrapper", i could start digging into that code and see what's going on..
but since my plugins work in all the daws/hosts i use myself, i might assume the "opensource people" got it wrong :D

btw, i'm not using the official steinberg sdk for my vst3 plugins, but my own re-implementation of the low level (com-like) api/interface only.. works like a charm, and none of that messy steinberg layers-upon-layers of abstractions and confusion.. and resulting in smaller binaries..
User avatar
skei
Established Member
Posts: 343
Joined: Sun May 18, 2014 4:24 pm
Has thanked: 8 times
Been thanked: 58 times
Contact:

Re: vst3 framework used by carla, ardour, qtractor, ..

Post by skei »

skei wrote: Tue Aug 17, 2021 2:01 pmi might assume the "opensource people" got it wrong :D
i should probably take that back.. testing again, and i see now that there's something weird going on in bitwig too (no number of audio inputs/outputs shown in plugin browser), but the plugins still work.. so, need to do some debugging and testing.. there's something happening with the buses or ports that bitwig/reaper accepts, but the other hosts doesn't..

- th

[edit]
a quick update:

* ardour shows all my plugins as having 0 audio inputs and outputs, but i can still instantiate the plugins, and they seem to work, and after instantiating them, ardour shows the plugin as having 2 inputs/outputs.. and the two plugins with gui works..

* qtractor shows the same.. 0 inputs/outputs, but they're disabled in the plugin browser, so i can't instantiate them.. correctly shows that two of my plugins have a gui..

* carla shows, 0 in/outputs, but crashes when i try to instantiate the plugin.. the two plugins that have a gui shows as "no gui"..

* renoise is anal about where it searches for plugins.. i could add a symlink or something, but i don't really care..

so.. generally, they work in bitwig, reaper and ardour.. gui and all.. even if ardour shows some wrong info in the plugin browser..
User avatar
rncbc
Established Member
Posts: 1068
Joined: Mon Apr 19, 2010 12:20 pm
Has thanked: 45 times
Been thanked: 269 times
Contact:

Re: vst3 framework used by carla, ardour, qtractor, ..

Post by rncbc »

skei wrote: Tue Aug 17, 2021 2:09 pm * qtractor shows the same.. 0 inputs/outputs, but they're disabled in the plugin browser, so i can't instantiate them.. correctly shows that two of my plugins have a gui..
qtractor won't allow you to instantiate a plugin that has no declared inputs and outputs, sorry.
maybe you shall investigate why your plugins do so to the scan process? maybe you're not connecting the Vst::IComponent properly or else not reporting audio channel/buses (getBusCount()) and their respective flags (getBusInfo()) correctly? or all or some of that only after process activation?

cheers
User avatar
skei
Established Member
Posts: 343
Joined: Sun May 18, 2014 4:24 pm
Has thanked: 8 times
Been thanked: 58 times
Contact:

Re: vst3 framework used by carla, ardour, qtractor, ..

Post by skei »

rncbc wrote: Tue Aug 17, 2021 4:59 pm qtractor won't allow you to instantiate a plugin that has no declared inputs and outputs, sorry.
maybe you shall investigate why your plugins do so to the scan process? maybe you're not connecting the Vst::IComponent properly or else not reporting audio channel/buses (getBusCount()) and their respective flags (getBusInfo()) correctly? or all or some of that only after process activation?

cheers
yeah..
i thought i had done everything according to the specs, regarding buses, channels, etc.. especially since both bitwig and reaper handled the plugins without problems.. gui and parameters and state and everything.. but probably not.. i need to dive a bit deeper into this.. will report back if i find something..

in any case, if anybody wants to have a look, the vst3 specific stuff is here:
https://github.com/skei/kode2/tree/mast ... lugin/vst3

- tor-helge
robbert-vdh
Established Member
Posts: 219
Joined: Mon Mar 01, 2021 10:56 pm
Has thanked: 51 times
Been thanked: 92 times
Contact:

Re: vst3 framework used by carla, ardour, qtractor, ..

Post by robbert-vdh »

skei wrote: Tue Aug 17, 2021 5:09 pm
rncbc wrote: Tue Aug 17, 2021 4:59 pm qtractor won't allow you to instantiate a plugin that has no declared inputs and outputs, sorry.
maybe you shall investigate why your plugins do so to the scan process? maybe you're not connecting the Vst::IComponent properly or else not reporting audio channel/buses (getBusCount()) and their respective flags (getBusInfo()) correctly? or all or some of that only after process activation?

cheers
yeah..
i thought i had done everything according to the specs, regarding buses, channels, etc.. especially since both bitwig and reaper handled the plugins without problems.. gui and parameters and state and everything.. but probably not.. i need to dive a bit deeper into this.. will report back if i find something..

in any case, if anybody wants to have a look, the vst3 specific stuff is here:
https://github.com/skei/kode2/tree/mast ... lugin/vst3

- tor-helge
Your IAudioProcessor::GetBusArrangement() and IAudioProcessor::SetBusArrangements() implementations are incorrect. I haven't looked any further than that, but fixing those would be a start.
User avatar
skei
Established Member
Posts: 343
Joined: Sun May 18, 2014 4:24 pm
Has thanked: 8 times
Been thanked: 58 times
Contact:

Re: vst3 framework used by carla, ardour, qtractor, ..

Post by skei »

robbert-vdh wrote: Tue Aug 17, 2021 5:17 pm Your IAudioProcessor::GetBusArrangement() and IAudioProcessor::SetBusArrangements() implementations are incorrect. I haven't looked any further than that, but fixing those would be a start.
aahhh... thanks a lot!!
i remember now that i was a bit uncertain about some of the bus/channel negotiation stuff during the early days of making the vst3 layer..
i will dive right into it!!

- tor-helge
robbert-vdh
Established Member
Posts: 219
Joined: Mon Mar 01, 2021 10:56 pm
Has thanked: 51 times
Been thanked: 92 times
Contact:

Re: vst3 framework used by carla, ardour, qtractor, ..

Post by robbert-vdh »

skei wrote: Tue Aug 17, 2021 5:26 pm
robbert-vdh wrote: Tue Aug 17, 2021 5:17 pm Your IAudioProcessor::GetBusArrangement() and IAudioProcessor::SetBusArrangements() implementations are incorrect. I haven't looked any further than that, but fixing those would be a start.
aahhh... thanks a lot!!
i remember now that i was a bit uncertain about some of the bus/channel negotiation stuff during the early days of making the vst3 layer..
i will dive right into it!!

- tor-helge
Bitwig actually uses those wrong (it will just use whatever default arrangements you returned, sent them an email about it, hopefully they'll fix it at one point), and REAPER is the only DAW on Linux at the moment that actually uses the bus arrangement system correctly (maybe Waveform also does it correctly since JUCE now also has decent support for bus arrangements). That may also be good to be aware of!
User avatar
skei
Established Member
Posts: 343
Joined: Sun May 18, 2014 4:24 pm
Has thanked: 8 times
Been thanked: 58 times
Contact:

Re: vst3 framework used by carla, ardour, qtractor, ..

Post by skei »

some progress...

* qtractor say 2 audio in/outs, but crashes (in process()) when i try to instantiate the plugin
* carla says 0 in/outs, can load plugin and show editor, but crashes when i close it (no crash dump)
* ardour says o in/outs, can open plugin & gui, but also crashes (in IAudioprocessor::set_frame) when closing it
* works as before in reaper and bitwig

so, still bugs, but looks like i'm on the right path..

- th
User avatar
skei
Established Member
Posts: 343
Joined: Sun May 18, 2014 4:24 pm
Has thanked: 8 times
Been thanked: 58 times
Contact:

Re: vst3 framework used by carla, ardour, qtractor, ..

Post by skei »

robbert-vdh wrote: Tue Aug 17, 2021 5:29 pmBitwig actually uses those wrong (it will just use whatever default arrangements you returned, sent them an email about it, hopefully they'll fix it at one point)
i emailed them yesterday about this, and they replied:
"yes, the IAudioProcessor::GetBusArrangement and IAudioProcessor::SetBusArrangements changes are already filed as improvement suggestion, but we can't say yet if or when they will happen."

- th
User avatar
Linuxmusician01
Established Member
Posts: 1542
Joined: Mon Feb 23, 2015 2:38 pm
Location: Holland
Has thanked: 772 times
Been thanked: 142 times

Re: vst3 framework used by carla, ardour, qtractor, ..

Post by Linuxmusician01 »

For my information: are y'all talking about Windows native VST3's or Linux native VST3's? As far as I know a VST needs to be compiled specifically for one of the three platforms: Windows, Linux or Apple. Am I right?

Windows VST's can be "bridged" to Linux which makes 'm show up as a native VST. Am I right?

BTW @skei: make sure you've got the latest version of Qtractor and Carla to test (native) VST3 compatibility. I've had a very good discussion recently about VST3 with @robbert-vdh (the dev of YAbridge, thanks again). I confused bridged VST3's with native VST3's in Qtractor and Carla.

Good luck with developing your VST3! :)
User avatar
skei
Established Member
Posts: 343
Joined: Sun May 18, 2014 4:24 pm
Has thanked: 8 times
Been thanked: 58 times
Contact:

Re: vst3 framework used by carla, ardour, qtractor, ..

Post by skei »

Linuxmusician01 wrote: Fri Aug 20, 2021 9:50 amFor my information: are y'all talking about Windows native VST3's or Linux native VST3's?
linux native
Linuxmusician01 wrote: Fri Aug 20, 2021 9:50 amGood luck with developing your VST3! :)
thanks!

- tor-helge
User avatar
skei
Established Member
Posts: 343
Joined: Sun May 18, 2014 4:24 pm
Has thanked: 8 times
Been thanked: 58 times
Contact:

Re: vst3 framework used by carla, ardour, qtractor, ..

Post by skei »

btw, gui-less lv2's is working.. i'll try to dig up some motivation to try to get a gui up and running too.. i have vst2 (using vestige, fst, or steinbers sdk), ladspa and dssi formats working too, but i don't think these are very useful anymore.. and windows support.. but, i'll work a little more on all of this, and will rather start a dedicated thread for the framework/library as soon as i decide to "go public".. and maybe a different for the plugins (binaries) themselves?
- tor-helge
Post Reply