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

Programming applications for making music on Linux.

Moderators: MattKingUSA, khz

User avatar
Linuxmusician01
Established Member
Posts: 1523
Joined: Mon Feb 23, 2015 2:38 pm
Location: Holland
Has thanked: 756 times
Been thanked: 134 times

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

Post by Linuxmusician01 »

skei wrote: Fri Aug 20, 2021 10:17 am 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
As far as I know LASDPA is still quite well supported in Linux. DSSI is on the way out I think... ? LV2 is also well supported.
User avatar
skei
Established Member
Posts: 337
Joined: Sun May 18, 2014 4:24 pm
Has thanked: 8 times
Been thanked: 57 times
Contact:

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

Post by skei »

Linuxmusician01 wrote: Fri Aug 20, 2021 10:41 amAs far as I know LASDPA is still quite well supported in Linux. DSSI is on the way out I think... ? LV2 is also well supported.
yeah.. but supported by hosts is one thing, useful is another.. and there's so many features in my framework that would need a lot of special treatment, or is simply not possible with ladspa (or dssi).. which 'proper' daws/hosts doesn't supprt either lv2 or vst2/3?

- tor-helge
User avatar
Linuxmusician01
Established Member
Posts: 1523
Joined: Mon Feb 23, 2015 2:38 pm
Location: Holland
Has thanked: 756 times
Been thanked: 134 times

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

Post by Linuxmusician01 »

skei wrote: Fri Aug 20, 2021 10:53 am
Linuxmusician01 wrote: Fri Aug 20, 2021 10:41 amAs far as I know LASDPA is still quite well supported in Linux. DSSI is on the way out I think... ? LV2 is also well supported.
yeah.. but supported by hosts is one thing, useful is another.. and there's so many features in my framework that would need a lot of special treatment, or is simply not possible with ladspa (or dssi).. which 'proper' daws/hosts doesn't supprt either lv2 or vst2/3?

- tor-helge
Oh, you're absolutely right. For a developer LADSPA ain't a thing anymore. I forgot that this is a developer's topic. For us humble plugin users it's very nice that LADSPA is still supported by DAW's and such. :)
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: Thu Aug 19, 2021 5:02 pm
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
Oh, awesome. Yeah their current implementation is just incorrect. It will work for most plugins (since most plugins default to stereo), but plugins that default to 0 or 1 channel bus arrangements and expect the host to just implement the spec correctly will always be mono-only in Bitwig.
User avatar
skei
Established Member
Posts: 337
Joined: Sun May 18, 2014 4:24 pm
Has thanked: 8 times
Been thanked: 57 times
Contact:

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

Post by skei »

i did a full overlaul of the bus/channel system in my plugin framework.. and read everything i could find related to that in the official sdk/docs, steinberg forum and from google searches.. and then i added some VERY extensive logging, printing out all sorts of information for all vst3 calls my plugins receive..
then i tried the plugin in various hosts (bitwig, reaper, carla, ardour, qtractor).. and the printouts are quite interesting! i can see pretty big differences how the hosts treat vst3 plugins..

but.. the plugins still doesn't work properly in qtracktor and ardour..

it doesn't seem ardour and qtractor calls Vst::IAudioProcessor::setBusArrangements() in my plugins, but reaper, bitwig and carla do..
ardour and qtractor thinks my plugin has 0 audio inputs and outputs, even if i tell them i have 1 bus with 2 channels (stereo) for both..

see here about setBusArrangements:
https://developer.steinberg.help/displa ... +Sequences
and here:
https://developer.steinberg.help/displa ... ntsettings

"After instantiation of the plug-in, the host calls Vst::IAudioProcessor::setBusArrangements with a default configuration (depending on the current channel configuration), if the plug-in accepts it (by returning kResultOK), it will continue with this configuration.
If not (by returning kResultFalse), the host asks the plug-in for its wanted configuration by calling Vst::IAudioProcessor::getBusArrangement (for Input and Output) and then recall Vst::IAudioProcessor::setBusArrangements with the final wanted configuration."

not going to spend much more time on this,..

- tor-helge

source code on github, as always:
https://github.com/skei/kode2/tree/mast ... lugin/vst3
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 »

Your bus information is incomplete (and because the object has not been initialized, the fields you forgot to set may be filled with garbage).
User avatar
skei
Established Member
Posts: 337
Joined: Sun May 18, 2014 4:24 pm
Has thanked: 8 times
Been thanked: 57 times
Contact:

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

Post by skei »

robbert-vdh wrote: Wed Aug 25, 2021 2:48 pmYour bus information is incomplete (and because the object has not been initialized, the fields you forgot to set may be filled with garbage).
ouch... this made me look into the BusInfo struct again, and, you're right.. so i added the missing flags and busType, and the plugins started working!
thanks for pointing me in the right direction.. now i just need to get the lv2 gui working too.. :-)
- tor-helge
User avatar
rncbc
Established Member
Posts: 1060
Joined: Mon Apr 19, 2010 12:20 pm
Has thanked: 45 times
Been thanked: 256 times
Contact:

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

Post by rncbc »

skei wrote: Wed Aug 25, 2021 1:04 pm it doesn't seem ardour and qtractor calls Vst::IAudioProcessor::setBusArrangements() in my plugins...
at least on qtractor, the Vst::IAudioProcessor interface is only instantiated when the component is ready and setup immediately before actual runtime processing; the scan process (which reports 0 ins and outs in your case) won't do any of that so the critical issue is more about what you and your plugins do report via Vst::IComponent::getBusInfo() instead. I'm sure I've already hinted on this before in this thread.
User avatar
skei
Established Member
Posts: 337
Joined: Sun May 18, 2014 4:24 pm
Has thanked: 8 times
Been thanked: 57 times
Contact:

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

Post by skei »

rncbc wrote: Wed Aug 25, 2021 5:23 pmat least on qtractor, the Vst::IAudioProcessor interface is only instantiated when the component is ready and setup immediately before actual runtime processing; the scan process (which reports 0 ins and outs in your case) won't do any of that so the critical issue is more about what you and your plugins do report via Vst::IComponent::getBusInfo() instead. I'm sure I've already hinted on this before in this thread.
yeah, you did, but i didn't 'catch it' earlier.. :? i guess ardour does the same thing, since i had the same symptoms there.. while other hosts were more forgiving.. but i fixed it, and it seems to work in the hosts i'm trying now.. haven't tested renoise or tracktion/waveform yet..

thanks for all replies and comments, all..


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

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

Post by skei »

thread is getting off-topic... :shock:

but, well, well.. vst3 with gui works in bitwig, reaper, carla, qtractor, ardour.. (not using the steinberg's sdk).. gui-less lv2 seems to work in reaper, but haven't tested it much (not a high priority)..

xlib/xcb gui, working on widgets:

Image

doesn't look like much, but there's a bunch of non-visible things going on there.. hierarchial/layered widget system with automatic alignment, sizing, stretching, etc, and events going up and down the hierarchy.. procedural generation of bitmaps.. ram/vram blitting and painting.. resizable editor.. mouse cursor control.. everything optional and configurable.. tiny binaries.. no bloat.. no tricky build system setup.. no (or very few) external libray dependencies.. i will set up a page on my site (torhelgeskei.com) soon, with more info..

- th

the framework just needs a little bit more polish now..
and i can make a new plugin in seconds, when inspiration hits..
Post Reply