Vstserver v0.2.0

Kjetil S. Matheussen k.s.matheussen at notam02.no
Wed Dec 4 11:13:07 CST 2002


VSTServer V0.2.0.
	GRM tools 1 runs with the 25.11.2002 release of wine.


	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.

	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.

	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.

	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

	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.)


	- "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.

	-Make a DX-plugin server. (would be fun running pi-warp under
	-Add gui to the plugins not providing gui themselves. (help
	 wanted, windows programming)

	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.

	vstserver and vstlib are made by Kjetil S. Matheussen / Notam.
	k.s.matheussen at notam02.no

	Some programming hints is gathered by looking at the pd vst-object
	plugin~ source and the jack soundserver source.


More information about the wine-devel mailing list