Re: [linux-audio-dev] VST plug-ins for Linux?

New Message Reply About this list Date view Thread view Subject view Author view Other groups

Subject: Re: [linux-audio-dev] VST plug-ins for Linux?
From: Paul Davis (pbd_AT_Op.Net)
Date: Fri Sep 07 2001 - 17:46:12 EEST


A few corrections and additions:

>There are other similar API's, like DirectX (DirectMusic or what's it
>precisely?) and then Emagic, www.emagic.de, a rival of Steinberg's
>probably has an API of their own. IMHO VST and DX are the widest
>spread.

Emagic uses VST as well.

>In practice, the VST plug-ins would probably be wrapped behind the
>LADSPA API on Linux side, because there isn't a single VST host app
>for Linux. Also most likely porting the plug-in GUIs will be
>problematic, but initially this can be circumvented since the VST API
>has a means for controlling the plug-ins directly without having to
>open the GUI.

Well, yes and no. What *some* VST hosts provide is an automated
"editor" GUI if the plugin doesn't provide one. However, I don't know
of *any* VST plugins of any interest at all that don't provide their
own GUI. Moreover, most of the plugins authors have put a lot of work
into the GUI, and when used with the default editor, the plugin would
basically be a pain in the ass to use.

What is required to support VST plugins on Linux/x86 is twofold:

     1) a way of executing a dynamically linked object that was
         built for Windows/x86.
     2) a library that implements the libvstgui API

1) appears to have been partly solved by the Buzz/Soundtracker folks.

2) is a moderate amount of work, most of it grunt work. there's
   nothing terribly difficult here.

One key problem, however, is that VST is a C++ API, and the name
mangling in C++ compilers is compiler-specific. For example, if
libvstgui includes "void CBitmap::draw(void), that might be mangled to
F_CBitmap_draw_vv by one compiler and f2vvdrawCBITMAP by another. Thus,
its rather difficult to take a binary compiled by, say MSVC++, and get
it to successfully access a library compiled by g++.

I personally have no idea how this could be solved.
  
                If you want to try this out, which I definitely hope,
>it would be easiest to try to use a freeware VST plug-in with source
>(such as A0 Neosweep), and perhaps modify my plugin~ LADSPA/VST host
>to run as a VST host on Linux (actually this particular combination
>won't work since Neosweep is VST 2.0 and my host only supports VST 1.0).

If we have the source to VST plugins, (1) is easy. But the most
compelling plugins (i.e. the commercial ones) are unlikely to have
source available, and so the problem here is much harder.

There is also the problem of the VST SDK not being ready to be used
under Linux, and of it being impossible for us to redistribute a
version that is. Hopefully, since the ASIO SDK now contains #ifdef
LINUX, we can expect that the VST one will soon as well.

Finally, there *are* VST hosts for Linux. We just can't distribute the
source code for them since that involves redistributing the VST SDK,
which is illegal.

--p


New Message Reply About this list Date view Thread view Subject view Author view Other groups

This archive was generated by hypermail 2b28 : Fri Sep 07 2001 - 17:45:53 EEST