You are here

Native VST plug-in support

This last week-end has seen a major rewrite of the plug-in infrastructure (qtractor 0.1.0.838+), opening the way for more plug-in types, other than just LADSPA. So, effective today on CVS HEAD, you get native Linux VST support on Qtractor. Audio effects only however. This marks the way for the next working season, which is about having MIDI synth/instrument plug-ins, or DSSI and VSTi support for short.

However, building for VST support is not that easy. At least it does not work out of the box. First off, due to its licensing issues, you'll have to go through the nuisance and download yourself the VST SDK from the Steinberg Media Technologies GmbH site, specifically digging through the 3rd Party Developers section. It doesn't matter much whether you pick the VST 2.3 or VST 2.4 version, but you need to pick one and just one only. Do not ask for the recently announced VST 3.0. It won't work and I won't care :)

Once you have downloaded the VST SDK zip-archive, for which you'll have to accept their license and supply some personal data, you'll have to unpack the pertinent header files, which are found under the respective folder. Just copy those couple of files to somewhere on your system:

  • VST SDK 2.3: vstsdk2.3/source/common/
    aeffectx.h
    AEffect.h
  • VST SDK 2.4: vstsdk2.4/pluginterfaces/vst2.x/
    aeffectx.h
    aeffect.h
  • If you choose to copy those files into some standard include directory (eg. /usr/local/include) all will be handled automagically by the ./configure build step. Otherwise you'll need do supply the path yourself, as in ./configure --with-vst=/path/to/vstsdk2.x/include .

    Next step, once properly built you'll need to grab some native VST plug-ins and tell where those might be found. Currently, you'll need to set the VST_PATH environment variable with the paths where the plug-ins will reside and can be picked up by Qtractor.

    In case you don't know where to get them, some ready made Linux VST plug-ins can be found while browsing in here:

    Ah, almost forgot this one: as an added bonus, you can now drag-and-drop plug-in instances over the mixer strip chains. You can move, drag and drop inside the same strip and over to and from any other. Neat eh?

    Enjoy.
    -
    rncbc aka Rui Nuno Capela

Comments

wowww Rui, COMPLIMENT!!
you are AMAZING FAST.. incredible!
Now we have reaaly FUN!
cheers

what is so incredible about it?

Preset Genetics. Using two presets of your choice, or two random presets, this feature breeds new presets - it's a fun and easy new way to explore all the possibilities of your VST instruments.

Hi Rui,
Wow! Very impressive....VST support. I've been very busy these past few weeks, and haven't done much work with Qtractor, but imagine my surprise when I saw this announcement!

I've not had the chance to play with it any, but I look forward to trying this out tonight. I'd assume Windows VST plugins are supported as well, since you are using the Steinberg SDK.

I hope all is going well for you, and keep up the good work!
Lexridge

P.S. Congratulations on your Linux Format Magazine review!

rncbc's picture

I guess I didn't stress what Native Linux VSTs are. In a nutshell, these are plug-ins for which the source-code is available for building natively on Linux or the original author could make or port it intentionally for Linux. Windows VSTs, when in binary form (win32 .dlls), are not in that league. For that, you'll have to go through wine, fst and/or dssi-vst. Sorry, Qtractor has no integral support for any of these ATM.

There are very few Linux VSTs out there, but as they say, if the hosts are here they will come ;) Some, other impressive hosts for Linux VSTs are energyXT2 (commercial, closed-source, but the one that started it all;) and jost.

Byee
--
rncbc aka Rui Nuno Capela

I use WINE frequently for both audio VST plugins (B4, Guitar Rig), and for Quicken, for my checkbook. If it weren't for these few programs, I would never really need windows apps at all.

Anyway, I was under the impression with DSSI support, that the DSSI-VST plugin would automagically work. In fact, it kinda does with yesterday's build. However, my WINE installation got somewhat hosed by a new program I was trying called WINE-DOORS.

When I first scanned for DSSI plugins, it indeed found the Windows VST plugins. However, it reported errors on both of them (via WINE dialogs). Guitar Rig claimed to be unregistered and refused to run, while B4 had the same problem, it also couldn't find it's own data files. I'm sure this is due to WINE-DOORS again hosing my WINE registry. However, since I actually got these errors, it gave me some hope that eventually I might be able to actually make them work with Qtractor.

What is your take on this?

Thanks,
Lexridge

I have dssi-vst installed, and I have started from scratch on this.

I now have two directories ~/Audio/win_vst for .dll files (win32) and ~/Audio/vst_plugins for native ones. The env var VST_PATH is set to those directories. Next, I downloaded a few free Windows VSTs (very basic VSTs) and put them into ~/Audio/win_vst. Then I cd to ~/.dssi-vst, and delete the contents of it. After running Qtractor, dssi is apparently calling dssi-vst-scanner, because this directory fills up with .cache files. Qtractor exhibits no errors or other problems during this.

My question is, why do these not show up in the qtractor dssi plugin listing? From all the reading I have done on this, I assumed dssi support means automatic dssi-vst support, if available, since it's a wrapper to dssi, and not to the host. Dssi is suppose to hand all the translation to the host program...In other words, the host would never know if it's a real dssi plugin, or the dss-vst wrapper....Am I correct in this?

Also, the .dll vst files run fine using jack-dssi-host dssi-vst.so:TubeBaby.dll for example. Actually, I've very impressed with how WELL they work using dssi-vst. Much better than fst so far. It runs NI's Guitar Rig 1.2 (not free) flawlessly, even at 2ms latency! While it was running, I loaded up some "Spock's Beard" and actually wasted a short amount of time trying to play along with that stuff. ;)

Lexridge

rncbc's picture

Before it worries you too much, DSSI support is still not complete, non-functional, nor even tested. And that applies to native DSSI plugins. That said, having DSSI-VST wrappers working is still a miss in Qtractor. ATM, you only have it on good old LADSPA and these new linux native VSTs, audio effects only.

[UPDATE] Just found a flaw on DSSI plug-in instantiation which was preventing DSSI-VST wrappers to show up. Now fixed and it also sets a new stance on the VST plug-in search path resolution:

- native Linux VST plug-ins (.so) should now be searched under the directories given on the View/Options.../Display/Plugin Paths dialog (defaults to /usr/local/lib/vst and /usr/lib/vst, or in VST_PATH environment variable)

- foreign Windows VST plug-ins (.dll), as wrapped by DSSI-VST through WINE, are found by proxy in the directories given by the VST_PATH environment variable only.

Both rules should apply, starting from todays CVS HEAD (qtractor 0.1.0.848+)

Byee
--
rncbc aka Rui Nuno Capela

Wow. I must say that DSSI-VST appears to now be working very well!! :) TubeBaby and GuitarRig both run flawlessly. Something I've noticed, and I'm sure you know exactly why, I have to have the transport running in order to play through the plugins. Also, I noticed the latest CVS build automatically starts jackd. Way cool!!

Keep up the great work, :)
Lexridge

rncbc's picture

And you know what? That is one thing that you got to see (hear?) it working even before my own testing, ever :)) Congratulations!

Now, saying that it works flawlessly is saying way too much :D I'm sure you'll find something wrong in no time. Ah, now I get it: we're actually in the Carnival season and that just sounds like a prank :D

(:joking:)

Happy Carnival!
--
rncbc aka Rui Nuno Capela

Pages

Add new comment