http://www.notam02.no/arkiv/src/
VSTServer V0.2.0.
-----------------
GRM tools 1 runs with the 25.11.2002 release of wine.
ABOUT
Vstserver is a program that must be running when using programs
using vstlib.
Vstlib is a library that can be used by programs to run windows
vst audio plugins under linux/freebsd/i386solaris/etc.
RUNNING
First you should set the "VST_PATH" environment variable pointing
to the directory where your VST dll files are placed.
Then to run the vstserver program, you have to cd into the directory
where the "vstservant.so" file is placed (and thats most probably the
directory where this README file is placed), and then run the
"vstserver" program.
DEVELOPMENT
Vstserver is released under the GPL, and vstlib under LGPL.
If there comes many source-contributions, I will probably make it
a sourceforge project.
To use vstlib in a program, look at the tests/exampleclient
program, and various vst plug-in documentation.
The interface to the vstlib consists only of two functions
(new/delete), the rest is like you would do when programming for
windows, macos(X), beos, irix, etc.
You do currently not have access to the audioMaster callback
function from a client. If you need access to it, please contact
me, and I'll extend the library and the vstservant program.
CURRENT STATUS
Vstserver seems to be very stable. Very few vst plug-ins and
instruments wont run, and I am not able to hear any latency. And
plug-ins does not seem to cause more cpu-power than under
windows.
BUGS
1. When loading a lot of plugins simultaniously, the X server
crashes (!).
I manage to do that when running the ladspa "listplugins" program
_many_ times in a row like this: "listplugins &". I dont know the
cause of it.
(running redhat 7.2, with latest XFree rpm updates installed)
2. Shared memory handlig might be faulty. I suspect that it doesnt
free resources because clients sometime complains about not getting
shared memory. (see server/shmhandler.c)
3. The graphics code to support gui is just hacked together by
looking at the winemine source-code included with the wine
distribution. I have no windows programming experience or
documentation about the windows API, so if someone that have
windows programming experience would have a look at the code and
check that its fine/not fine, that would be, eh,
fine. (The code I'm unsure about is server/win/winwin.c and
server/win/main.c, about 200 lines of code.)
NOT WORKING DLLS
- "SimSynth VSTi demo.dll" - The standalone version wont even run under wine,
so theres currently not much hope for this one.
Please send me dlls that wont work.
FUTURE
-Make a DX-plugin server. (would be fun running pi-warp under
linux).
-Add gui to the plugins not providing gui themselves. (help
wanted, windows programming)
HISTORY
0.1.1 -> 0.2.0:
-When upgrading my wine installation from the 31.10.2002 version
to the 25.11.2002 version, the
"err:local:LOCAL_GetBlock not enough space in GDI heap 01f7 for
24 bytes" problem got much worse. So I changed the vstserver
program to be a normal unix program that starts a winelib program
called "vstservant.so" for each new request
it gets. This seems to have solved the GDI heap problem totally.
-Extended the audioMaster function yet more by copying a lot of
opcode handlings from the vst~ pd external by Mark Williamson. I
didn't ask before doing this,
but according to the pdf file, he used some code from the plugin~
external, which then should automaticly make vst~ GPL. The
positive result is that more
plugins works. The negative result is that you now need to patch
the steinberg "vst/aeffectx.h" file before compiling, as there
are some strange things in it.
-Some smaller fixes here and there.
0.1.0 -> 0.1.1:
-Replaced the old audioMaster function in the server with the one
coming from the plugin~ source by Jarno Seppänen. Result is that GRM tools 2
now works. (I thought there were a different reason it didnt work
before, without going into further detail...)
Seems like vst instruments works better now too. The mousedrag
problem seems to have dissapeared.
-Removed some debug printings.
0.0.2 -> 0.1.0:
-Added graphics support to the plug-ins. (effEditOpen/effEditClose
dispatch opcodes works.)
-Fixed the makefile a bit.
0.0.1 -> 0.0.2:
-Fixed the process function in vstlib.
-Fixed the problem with processreplace could fail if sampleframes
was to high.
-Added processreplace simulation to vstlib, in case plugin doesnt
implement processreplace itself.
CREDITS
vstserver and vstlib are made by Kjetil S. Matheussen / Notam.
k.s.matheussen(a)notam02.no
Some programming hints is gathered by looking at the pd vst-object
plugin~ source and the jack soundserver source.
--