Skip to content
Albert Graef edited this page Jan 30, 2018 · 19 revisions

Welcome to the Faust FAQ

How do I report bugs?

Faust's bug tracker is here: https://github.com/grame-cncm/faust/issues

Note that for a bug report to be useful, you'll have to describe very precisely what the problem is and the "baby steps" the developers need to follow in order to reproduce your problem. Also important is a minimal example (e.g., Faust dsp file) showing the problem, as well as information on your system (which OS, which Faust version, chosen architecture or faust2xxx script, etc.). Stick to what the facts are; blind guesses at what the root cause of a bug might be usually won't be helpful, unless you're a fairly proficient developer yourself and know the Faust sources pretty well.

This may sound tedious (it is), but a good bug report goes a long way towards solving the bug. If you don't provide enough detail, then someone from the developer team will often ask for it (at least if the bug seems interesting or important enough), so be prepared to answer their questions.

Reporting and resolving bugs is one of the most important corner stones of any open source project. If you're new to all this and haven't communicated with open source developers before, then it pays off to familiarize yourself with this rather technical form of communication so that you can use it effectively. One classical introduction is Eric S. Raymond's How To Ask Questions The Smart Way which isn't about bug reports per se, but discusses at length how to properly ask technical questions of all sorts and thus is applicable in this context.

How to compile faust to vst2 on OS X?

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

How do I ?

Clone this wiki locally