Skip to content

Commit

Permalink
* Introduce Javier Serrano Polo's VeSTige compatibility header
Browse files Browse the repository at this point in the history
* Make compatible with VSTSDK 2.4r2
  • Loading branch information
cannam committed Dec 11, 2007
1 parent 546727c commit 019c54c
Show file tree
Hide file tree
Showing 6 changed files with 353 additions and 33 deletions.
4 changes: 4 additions & 0 deletions COPYING
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,10 @@ of dssi-vst. This offer does not imply any exemption to the GPL for
the liblo code itself or the remainder of dssi-vst, nor to any other
derived work that may use liblo.

*** NOTE: If you build dssi-vst using the VeSTige VST compatibility
*** header instead of the official VST SDK, then the original GNU
*** General Public License applies, and the above exception is not
*** available to you.

*** Please see the dssi-vst README for more information about these terms.
*** The following is the standard GPL, as referred to in the above.
Expand Down
10 changes: 8 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,7 +1,13 @@

DSSIDIR = /usr/local/lib/dssi
BINDIR = /usr/local/bin
CXXFLAGS = -I./vstsdk2.4/pluginterfaces/vst2.x -Wall

# To compile with the VeSTige compatibility header:
CXXFLAGS = -Ivestige -Wall

# To compile with the official VST SDK v2.4r2:
#CXXFLAGS = -I./vstsdk2.4/pluginterfaces/vst2.x -Wall

LDFLAGS =

TARGETS = dssi-vst-server.exe.so \
Expand Down Expand Up @@ -39,7 +45,7 @@ distclean: clean
rm -f $(TARGETS) dssi-vst-scanner dssi-vst-server *~ *.bak

%.exe.so: %.cpp libremoteplugin.a $(HEADERS)
wineg++ $(CXXFLAGS) $< -o $* $(LDFLAGS) -L. -lremoteplugin
wineg++ $(CXXFLAGS) $< -o $* $(LDFLAGS) -L. -lremoteplugin -lpthread

libremoteplugin.a: remotepluginclient.o remotepluginserver.o rdwrops.o paths.o
ar r $@ $^
Expand Down
82 changes: 56 additions & 26 deletions README
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,32 @@ dssi-vst: a DSSI plugin wrapper for VST plugins
===============================================

This is a DSSI plugin wrapper for VST effects and instruments with GUI
support. Copyright (c) 2004-2006 Chris Cannam, Fervent Software Ltd.
support.

This is the 0.4 release of dssi-vst.
Copyright (c) 2004-2007 Chris Cannam, [email protected].

The main change since the 0.3.1 release is that dssi-vst now builds
with newer versions of the Wine tools (Wine 0.9.5 or newer is
required). This release also builds with version 2.4 of the VST SDK,
although it should still work with the older 2.3 as well.
This is the 0.5 release of dssi-vst.

This release is the first to officially support the VeSTige
VST-compatibility header from Javier Serrano Polo (see
vestige/aeffectx.h). With this header, you no longer need to obtain
the official VST SDK in order to build dssi-vst. Many thanks to
Javier for publishing this fine piece of work.

** IMPORTANT: The author of dssi-vst has no connection with the
** author of the VeSTige VST-compatibility header, has had no
** involvement in its creation, and has not modified it in any way.
** The VeSTige header is included in this package in the good-faith
** belief that it has been cleanly and legally reverse engineered
** without reference to the official VST SDK and without its
** developer(s) having agreed to the VST SDK license agreement.
** If you have any reason to believe that this is not the case,
** please contact the author of dssi-vst.

Please also read the "Licence" section further down this document.

This release is also compatible with version 2.4r2 of the official VST
SDK. It may also compile with version 2.3.


Build etc
Expand All @@ -20,16 +38,23 @@ To build dssi-vst, you will need:

* The DSSI header.

* Wine 0.9.5 or newer -- http://www.winehq.com/
* Wine 0.9.5 or newer and its development tools -- http://www.winehq.com/

* Steve Harris's liblo "Lite OSC" library -- http://liblo.sf.net/ --
version 0.9 or newer.

* The VST SDK headers -- http://www.steinberg.de/Steinberg/Developers8b99.html
* OPTIONALLY the VST SDK headers. The URL for downloading these seems
to change every week, but at the time of writing it is:

http://www.steinberg.de/331+M54a708de802.html

These are free to download, but you need to agree to Steinberg's
licensing terms and you may not redistribute them. Unzip the SDK
into the current directory (creating a subdirectory called vstsdk2.4).

If you wish to use the official VST SDK, please edit the Makefile
as directed in its comments.

Once you have all of the above, you should be able to build and
install by running "make" then "make install".

Expand Down Expand Up @@ -134,13 +159,22 @@ Bad points:
Licence
-------

My usual preference would be to offer dssi-vst under the GNU GPL.
However, it is my personal opinion (and I am not a lawyer and have not
consulted one) that GPL'd code that makes use of the Steinberg VST SDK
header files, either directly or via a library, cannot be redistributed
without violating either the GPL or at least one of the copyright or
licensing terms for the Steinberg header files. So I am offering this
code under the following terms:
dssi-vst is offered under two alternative licensing schemes: the GNU
General Public License (GPL), or the GPL with a special exception for
the VST SDK headers.

* GPL. If you choose to compile with the VeSTige VST compatibility
header, then you may distribute and/or modify dssi-vst under the
terms of the GNU General Public License as published by the Free
Software Foundation; either version 2 of the License, or (at your
option) any later version. Note that in order to accept this
license, you must not have included any part of the official VST
SDK in your dssi-vst build. Provided that this is the case, please
ignore the remainder of this Licence section.

* GPL-with-exception. If you compile dssi-vst with the official VST
SDK headers, you may distribute the results under the following
licence terms:

"You may distribute and/or modify dssi-vst under the terms of version 2
of the GNU General Public License as published by the Free Software
Expand All @@ -152,17 +186,13 @@ to apply to all of the remaining source code for dssi-vst.

Chris Cannam, [email protected]"

What does this mean in practice? The main thing is it means dssi-vst
is not Free Software in the terms of e.g. the Debian Free Software
Guidelines. You can redistribute a compiled dssi-vst plugin legally
so long as you follow the GPL's terms with respect to the source code
for dssi-vst and liblo (see below), but you cannot redistribute the
whole of the source code required to build dssi-vst. Since dssi-vst
exists solely to provide compatibility with proprietary code in the
form of VST plugins, I don't see this as a great moral hardship. If
it troubles you, don't use proprietary plugins.

You _can_ use dssi-vst as a plugin with a GPL'd DSSI host.
Note that these two licensing schemes are exclusive. If you accept
the GPL-with-exception option, you may not distribute the VeSTige
header code with or in dssi-vst. If you accept the GPL option, you
may not distribute binaries of dssi-vst built with the official VST
SDK. The default for dssi-vst is to build using the VeSTige headers,
and therefore the result is covered by the GPL without any additional
exception.


Licence for liblo
Expand Down
4 changes: 2 additions & 2 deletions dssi-vst-scanner.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ hostCallback(AEffect *plugin, long opcode, long index,
return 2300;

case audioMasterGetVendorString:
strcpy((char *)ptr, "Fervent Software");
strcpy((char *)ptr, "Chris Cannam");
break;

case audioMasterGetProductString:
Expand Down Expand Up @@ -129,7 +129,7 @@ WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR cmdline, int cmdshow)
char *destFile = 0;

cout << "DSSI VST plugin scanner v0.3" << endl;
cout << "Copyright (c) 2004-2006 Chris Cannam - Fervent Software" << endl;
cout << "Copyright (c) 2004-2007 Chris Cannam" << endl;

if (cmdline && cmdline[0]) destFile = strdup(cmdline);

Expand Down
6 changes: 3 additions & 3 deletions dssi-vst-server.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -736,7 +736,7 @@ hostCallback(AEffect *plugin, long opcode, long index,
plugin->dispatcher(plugin, effEditIdle, 0, 0, 0, 0);
break;

case audioMasterPinConnected:
case DEPRECATED_VST_SYMBOL(audioMasterPinConnected):
if (debugLevel > 1)
cerr << "dssi-vst-server[2]: audioMasterPinConnected requested" << endl;
break;
Expand Down Expand Up @@ -917,7 +917,7 @@ hostCallback(AEffect *plugin, long opcode, long index,
case audioMasterGetVendorString:
if (debugLevel > 1)
cerr << "dssi-vst-server[2]: audioMasterGetVendorString requested" << endl;
strcpy((char *)ptr, "Fervent Software");
strcpy((char *)ptr, "Chris Cannam");
break;

case audioMasterGetProductString:
Expand Down Expand Up @@ -1133,7 +1133,7 @@ WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR cmdline, int cmdshow)
bool tryGui = false, haveGui = true;

cout << "DSSI VST plugin server v" << RemotePluginVersion << endl;
cout << "Copyright (c) 2004-2006 Chris Cannam - Fervent Software" << endl;
cout << "Copyright (c) 2004-2006 Chris Cannam" << endl;

char *home = getenv("HOME");

Expand Down
Loading

0 comments on commit 019c54c

Please sign in to comment.