Woah!
Tack Kjetil!
I've been meaning to construct something like this for a veery long
time, I'm sincerely happy that you managed to pull it of!
Sometime in the near/distant/close/far future I'll be able to test this
(I'm not holding my breath), I can't wait!
So...next step would be VST synths, any chance you would pursue that? :)
Thanks again,
Robert
(now I can concentrate my -100% freetime on my other 101 projects ;-)
Kjetil S. Matheussen wrote:
VSTServer V0.0.1.
-----------------
First release. Beta, but usable.
ABOUT
Vstserver is a wine 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
Vstserver is started like this: "wine vstserver.so".
You probably want to set the "VST_PATH" environment variable pointing
to your plugins first.
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.
CURRENT STATUS
Vstserver seems to be very stable. I have not found any plug-ins
that 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.
No GUI or graphics-support yet.
BUGS
1. When running the ladspa "listplugins" program many times in a row,
I get the following errors before the server freeze:
err:local:LOCAL_GetBlock not enough space in GDI heap 01f7 for 24 bytes
err:region:CombineRgn Invalid rgn=0000
err:local:LOCAL_GetBlock not enough space in GDI heap 01f7 for 24 bytes
err:region:CombineRgn Invalid rgn=0000
err:local:LOCAL_GetBlock not enough space in GDI heap 01f7 for 24 bytes
err:region:CombineRgn Invalid rgn=0000
err:local:LOCAL_GetBlock not enough space in GDI heap 01f7 for 24 bytes
err:local:LOCAL_GetBlock not enough space in GDI heap 01f7 for 24 bytes
err:local:LOCAL_GetBlock not enough space in GDI heap 01f7 for 24 bytes
err:local:LOCAL_GetBlock not enough space in GDI heap 01f7 for 24 bytes
err:local:LOCAL_GetBlock not enough space in GDI heap 01f7 for 24 bytes
err:clipping:CLIPPING_UpdateGCRegion hVisRgn is zero. Please report
this.
I dont know what this is. Its not errors coming from the vstserver
program.
It seems to be related to X, allthough no graphics is
used in the
vstserver.
I hope its just the buggy libXrender.so library that
wine shouts
about each
time it starts.
2. Shared memory handlig might be faulty. I suspect that it doesnt free
resources. (see server/shmhandler.c)
3. I havent read the vst plug-in documentation yet, and dont know
everything
about it. This especially goes for the
"AudioMasterCallback"
function, which
for now just returns 1. I guess some more work needs
to be done in
this area,
and for the various dispatch opcodes too.
4. The processReplacing function in vstlib should perhaps be made
just by calling
the
process fuction. But I dont understand the difference
between
processReplacing
and processing.
FUTURE
Add GUI and graphics support to the server (help wanted). And maybe
make a
DX-plugin server. (would be fun running pi-warp under
linux).
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.
vst ladspa plugin v0.0.1 - alpha
---------------------------------
Makes vst plugins located in $VST_PATH
appear as ladspa plugins.
I'm not sure how well this one actually works.
The northpole plugin seems to work, but others
don't. Oh well, its alpha for now.
k_vst~, a Pd tilde object for hosting VST plug-ins.
---------------------------------------------------
This is really just the plugin~ source made by Jarno Seppänen,
but with a few lines changed (very few that is) to make it
work with vst-plugins using the vstlib.
The name was changed from plugin~ to k_vst~ to avoid nameclash
with the plugin~ object running ladspa plugins.
This object is for i386 non-windows (ie. linux/freebsd) only.
This one works very well!
-------------------------
vstserver, ladspavst and k_vst~ are open-source programs made at Notam /
Oslo, and can be downloaded from from
http://www.notam02.no/arkiv/src/