[linux-audio-user] Interview with EnergyXT Developer

Paul Davis paul at linuxaudiosystems.com
Sat Nov 18 07:58:39 EST 2006


On Sat, 2006-11-18 at 11:55 +0800, Chris McCormick wrote:
> On Fri, Nov 17, 2006 at 08:19:58AM -0500, Paul Davis wrote:
> > what are you talking about? almost every VST plugin has a GUI written
> > using a GUI toolkit that is not available for linux.
> 
> Are you talking about the Windows native GUI toolkit? I beleive it's
> possible to use the WineLib part of Wine 

there is no WineLib API. anybody who says otherwise is lying. how do i
know this? because when torben and i took kjetil's initial work on
running VSTs on linux and tried to do the in-process system we went down
this route (using wine as a library) we even wrote some patches for the
wine people, in collaboration with the Mono project. we were rebuffed,
100% and completely, because the benevolent dictator of Wine was adamant
that Wine is not and will never be a library despite the recurrence of
"WineLib" as a term. they have no interest (at this time) in defining an
interface to Wine support via a library. 

> to recompile Windows apps (and
> presumably dlls like VSTs) to run natively on Linux using the WineLib API
> calls instead of the Windows calls. This is not the same as emulating
> a Windows program under Linux using Wine. The final product is a Linux
> binary that only runs under Linux.

no its not. if you check what actually happens under the hood when you
do this, you will find that you actually get 2 products: a shared object
representing the original windows program and a shell script that uses
Wine to execute the shared object. 

how do i know all this? because we use this in ardour2 (and the current
version of FST) to provide the most robust VST support that we can. how
does it work? we compile the code that normally makes up the executable
for ardour as a shared library, with an special entry point called
ardour_main(). then we compile a tiny win32 app that does nothing but
start up and call ardour_main(). this is compiled using winegcc. the
result is a shell script and a small win32 shared object/.exe file. you
run the shell script, it starts wine, which runs the tiny win32 app,
which is linked against libardourgtk and calls ardour_main(), and
voila ... ardour running inside wine with the best VST support that wine
can offer. note that you can substitute cedega for wine and it works
slightly better ;) baroque? yep. but this how it actually works ...

--p






More information about the Linux-audio-user mailing list