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.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
vst3 framework used by carla, ardour, qtractor, ..
Moderators: MattKingUSA, khz
- 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, ..
- 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, ..
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?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.
- tor-helge
- 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, ..
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.skei wrote: ↑Fri Aug 20, 2021 10:53 amyeah.. 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?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.
- tor-helge
-
- 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, ..
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.skei wrote: ↑Thu Aug 19, 2021 5:02 pmi emailed them yesterday about this, and they replied: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)
"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
- 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, ..
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
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
-
- 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, ..
Your bus information is incomplete (and because the object has not been initialized, the fields you forgot to set may be filled with garbage).
- 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, ..
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!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).
thanks for pointing me in the right direction.. now i just need to get the lv2 gui working too..
- tor-helge
- 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, ..
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.
- 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, ..
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..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.
thanks for all replies and comments, all..
- th
- 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, ..
thread is getting off-topic...
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:
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..
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:
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..