-
Notifications
You must be signed in to change notification settings - Fork 322
Home
Albert Graef answer (01/27/2018)
faustvst and faus2faustvst use two different architectures. The former is Yan Michalevsy’s older vst.cpp architecture which IIRC doesn’t require any extra dependencies except the VST SDK. This is also what the online compiler uses on OSX right now.
The latter uses my own faustvst.cpp architecture (https://bitbucket.org/agraef/faust-vst) which has some extra features (most notably: multi-channel and MIDI tuning standard support), but requires a header file from the C++ Boost libraries (http://www.boost.org/), which can be installed from MacPorts (https://www.macports.org/, “boost” package). If you don’t need those extra features and Yan’s architecture works for you then just go with it, as it doesn’t require Boost.
In either case you’ll need the VST SDK, which you can find at https://www.steinberg.net/en/company/developers.html. Yan’s faust2vst expects the header files to be installed specifically under /usr/local/include/vstsdk2.4
, whereas faust2faustvst will search in various different common locations. Specifically, you’ll need the header files under VST_SDK/VST2_SDK/public.sdk/source/vst2.x/
as well as the entire VST_SDK/VST2_SDK/pluginterfaces
directory in the vstsdk source zip, which should then go into the /usr/local/include/vstsdk2.4
directory.
You need to be careful to copy the right files to the right location. The SDK sources are a mess of different header and source files from various different generations of the SDK, and Yan’s architecture expects them in that specific place, so your /usr/local/include/vstsdk2.4
directory should look like this:
$ ls -R /usr/local/include/vstsdk2.4/
/usr/local/include/vstsdk2.4/:
aeffeditor.h audioeffect.h audioeffectx.h vstplugmain.cpp
audioeffect.cpp audioeffectx.cpp pluginterfaces
/usr/local/include/vstsdk2.4/pluginterfaces:
vst2.x
/usr/local/include/vstsdk2.4/pluginterfaces/vst2.x:
aeffect.h aeffectx.h vstfxstore.h
If you put them elsewhere then you’ll have to edit the faust2vst script accordingly.
When using my faustvst.cpp architecture, you can just copy the entire VST_SDK/VST2_SDK folder from the SDK zip to, e.g., /usr/local/include
and be done with it.
I’m not clear whether I’m supposed to get LLVM & clang from Developer Tools or from MacPorts, or which compiler versions are required. Can this be done entirely on the command line, or do I need to involve XCode?
All on the command line, but you’ll need to install Xcode and the command line tools to make all of that work. The LLVM that comes with Xcode should probably be all right, but I haven’t tried it so I cannot attest to it. Personally I’m still using LLVM 3.5 from MacPorts on the Mac, but Faust should be compatible with any LLVM version 3.5+ including the most recent 5.x versions.
Installation instructions for Faust itself can be found in its README. Basically, you clone the git repo, populate the libraries submodule and then run make and make install:
git clone https://github.com/grame-cncm/faust.git
cd faust
git submodule update --init
make
sudo make install
That requires Xcode and its command line utilities of course, but I guess that you have these up and running already. If not then you can find some instructions on the MacPorts website: https://guide.macports.org/#installing.xcode
I hope I’m not presuming too much when I expect this to be possible. Sure it’s possible, it just needs some setting up. We even have a version of Faust in MacPorts, but it’s outdated at this point (mea culpa, I hope that I get around updating it over the weekend).