Author Topic: a new VST3 Library- Who wants to donate time to make it happen?  (Read 752 times)

BaseHead

  • Posts: 189
Ok so we can't avoid making our program work with VST3 any longer.
We had to disable all VST2's in our program if an ARM64 chip is detected on macOS and have to tell our users to run in Rosetta mode which isn't ideal.
Plus even Steinberg dropped VST2 support recently in all their DAW' so it's time to move on for sure.

Soooo.....I will assign one of my coders to research and help build it a brand new BASS_VST3 library this month.
Anyone else here have the skills to help out and tag team this with us?  It's a complete re-write from the old version FYI so all the help we can get will speed things up as it's a massive task.

If anyone else can help AND are fluent in C++ and making DLL libraries for PC and .dylibs for macOS leave a reply here  ;-)

thx!
Steve


rv

  • Posts: 377
Wow this is really needed !

I have good knowledge on the actual BASS_VST2 but not enough skills to help for BASS_VST3
What I suggest however is to still use the actual bass_vst.dll code, but you add a test
If plugin is VST2.4 then use actual code, then use new code

Falcosoft

  • Posts: 120
I also have some knowledge about VST2 architecture but unfortunately I'm not too enthusiastic about VST3. This is only partly because of Steinberg's attitude. The bigger problem for me is the way VST3 handles (or more precisely cannot handle properly) Midi. And if someone mentions this to them on their forums the answers are rather arrogant. E.g like this:
"Your frustration comes from the misunderstanding that you can build MIDI plug-ins with VST. VST describes an audio plugin API. That you could misuse version 2 for building MIDI plug-ins was not intended."
https://forums.steinberg.net/t/vst3-and-midi-cc-pitfall/201879/15
More info:
https://developer.steinberg.help/display/VST/About+MIDI+in+VST+3

I mainly write VSTi instruments that are essentially wrappers around emulator libraries (Bassmidi VSTi, Munt VSTi, OPL3 GM VSTi). Writing such things in VST3 seems to be a nightmare. Maybe it's not a coincidence that Roland released (not so long ago, in 2017) the best classic Sound Canvas emulator (SC-VA) still only in VST2 form. This was despite the fact that at that time the marketing machine of Steinberg had already declared VST2 to be old/inefficient/deprecated and VST3 to be the only viable solution.

AFAIK the full deprecation/dropping of VST2 has not happened so far in Steinberg's DAWs and the process will be finished no sooner than 2024.
« Last Edit: 18 May '22 - 01:08 by Falcosoft »

rv

  • Posts: 377
I didn't understand what is the problem with VST3 and MIDI, but today, most of VST instruments and hosts are VST3 compatible
How are they doing? Maybe we can start with a basic VST3 support : Loading plugins, sending midi notes ON/OFF and connect few midi cc to their parameters

Falcosoft

  • Posts: 120
I didn't understand what is the problem with VST3 and MIDI, but today, most of VST instruments and hosts are VST3 compatible
The root of problem is that VST3 abstracted Midi away.
E.g. the VST3 SDK does not provide an API for sending raw MIDI program change event from host to plugin.
Steinberg implemented Program Change in such a way that you can only change plugin 'presets' from the host with it but the plugin does not get this data in an event list. (instead it does virtually the same what Bass_VST_SetProgam does in VST2)
(https://steinbergmedia.github.io/vst3_doc/vstinterfaces/structSteinberg_1_1Vst_1_1Event.html)
You don’t get raw MIDI data as in case of VST2, just what the API allows to be exchanged which is only a subset of the MIDI specification.
This can cause big problems in case when you want to emulate real synths that work with real Midi data (uses Bank Select + Program change messages to get individual patches).
https://forums.steinberg.net/t/is-it-true-that-vst3-cant-receive-midi-pc/785275
Moreover what (and what form) Midi related data your plugins get greatly depends on the host. And in this respect VST3 is still a moving target. Features related to legacy Midi CC handling just changed in VST3 3.6/3.7 specification. So you do not get a consistent behavior in different hosts.

Some more reference:
https://forum.juce.com/t/midi-program-change-forwarding-for-vst3/47161
https://forum.cockos.com/showthread.php?t=215735
https://www.kvraudio.com/forum/viewtopic.php?t=582495


« Last Edit: 7 Oct '22 - 22:37 by Falcosoft »

radio42

  • Posts: 4761
And what about VST3 support for normal DSPs...?
Would this be possible?

BaseHead

  • Posts: 189
We haven't look at the VST3 SDK in depth yet. 
Probably in about 2 months we will to see what hell we are in store for.  8(




rv

  • Posts: 377
Yes, so VST3 is more for creating synth plugins than true emulation of hardware MIDI modules (GM XG GS)
Do they have the 16 midi channels? or are they only mono-timbral?

Even if it doesn't have full midi implementation, we can start with what can be done... Loading vst, displaying gui, processing audio buffers for DSP FX and instruments, sending note ON/note OFF


rv

  • Posts: 377
NI KONTAKT 7 is now VST3 only. So major VSTi will no work anymore on our apps...