faust2[...] Tools

While in its most primitive form, Faust is distributed as a command-line compiler, a wide range of tools have been developed around it in the course of the past few years. Their variety and their function might be hard to grab at first. This description provides an overview of their role and will hopefully help you decide which one is better suited for your personal use.

The Faust tools is a set of scripts that take a dsp file as input to generate various output for a lot of architectures and platforms. All the tools names are in the form faust2xx where xx is the target architecture.

Use -h or -help to get more information on each specific script options, the supported platforms and possibly the required packages. Additional Faust compiler options (like -vec -lv 0 -I /path/to/lib) can be given. For scripts that combines Faust and the C++ compiler, you can possibly use the CXXFLAGS environment variable to give additional options to the C++ compiler.

Note that some of the tools are somewhat meta tools when they are based on a framework that itself can generate several formats later on. This is the case of the faust2juce script for instance.

Note that using -inj <f> option allows to inject a pre-existing C++ file (instead of compiling a dsp file) into the architecture files machinery. Assuming that the C++ file implements a subclass of the base dsp class, the faust2xx scripts can possibly be used to produce a ready-to-use application or plugin that can take profit of all already existing UI and audio architectures.

The template-llvm.cpp file that uses libfaust + LLVM backend to dynamically compile a foo.dsp file is an example of this approach. It has be used with the -inj option in faust2xx tools like:

  • faust2cagtk -inj template-llvm.cpp faust2cagtk-llvm.dsp (a dummy DSP) to generate a monophonic faust2cagtk-llvm application.

or:

  • faust2cagtk -inj template-llvm.cpp -midi -nvoices 8 faust2cagtk-llvm.dsp to generate a polyphonic (8 voices), MIDI controllable faust2cagtk-llvm application.

Note that libfaust and LLVM libraries still have to be added at the link stage, so a -dyn : create libfaust + LLVM backend dynamic version option has been added to the faust2cagtk tool and some others.

faust2alqt

Usage: faust2alqt [options] [Faust options] <file.dsp>
Target platform: Linux
Require: Alsa, QT
Compiles Faust programs to ALSA and QT
Options:
   -httpd : activates HTTP control
   -osc : activates OSC control
   -midi : activates MIDI control
   -qrcode : activates QR code generation
   -poly : produces a polyphonic DSP, ready to be used with MIDI events
   Faust options : any option (e.g. -vec -vs 8...). See the Faust compiler documentation.

faust2alsa

Usage: faust2alsa [options] [Faust options] <file.dsp>
Target platform: Linux
Require: Alsa
Compiles Faust programs to ALSA and GTK
Options:
   -httpd : activates HTTP control
   -osc : activates OSC control
   -midi : activates MIDI control
   -qrcode : activates QR code generation
   -poly : produces a polyphonic DSP, ready to be used with MIDI events
   Faust options : any option (e.g. -vec -vs 8...). See the Faust compiler documentation.

faust2alsaconsole

Usage: faust2alsaconsole [options] [Faust options] <file.dsp>
Target platform: Linux
Require: Alsa
Compiles Faust programs to CLI and ALSA
Options:
   -httpd : activates HTTP control
   -osc : activates OSC control
   -midi : activates MIDI control
   -nvoices <num> : produces a polyphonic DSP with <num> voices, ready to be used with MIDI events
   -arch32 : compiles a 32 bits binary
   -arch64 : compiles a 64 bits binary
   Faust options : any option (e.g. -vec -vs 8...). See the Faust compiler documentation.

faust2android

Usage: faust2android [options] [Faust options] <file.dsp>
Target platform: Android
Require: Android SDK
Compile a Faust program to an Android app (see https://github.com/grame-cncm/faust/tree/master-dev/architecture/android)
Options:
   -osc : activates OSC control
   -source : creates an eclipse project of the app in the current directory.
   -swig : regenerates the C++ and the JAVA interface for the native portion of the app.
   -faust : only carries out the Faust compilation and install the generated C++ file in the JNI folder.
   -reuse : preserves build directory and reuse it to speedup compilation.
   -soundfile : when compiling a DSP using the 'soundfile' primitive, add required resources
   -install : once compilation is over, installs the generated apk on the Android device connected to the computer
   -debug : activates verbose output
   Faust options : any option (e.g. -vec -vs 8...). See the Faust compiler documentation.

faust2androidunity

Usage: faust2androidunity [options] [Faust options] <file1.dsp> [<file2.dsp>]
Target platform: Android Unity
Require: Android SDK Make sure the ANDROID_HOME environment variable is set to the sdk folder.
Creates android libraries (armeabi-v7a and x86) for faust unity plugin.
If you need other android architectures, open architecture/unity/Android/Application.mk and modify APP_ABI.
See architecture/unity/README.md for more info (also available from the compile folder)
Options:
   -nvoices <num> : produces a polyphonic DSP with <num> voices, ready to be used with MIDI events
   -android : creates also the c# and JSON files
   Faust options : any option (e.g. -vec -vs 8...). See the Faust compiler documentation.

faust2api

Usage: faust2api [options] [Faust options] <file.dsp>
faust2api can be used to generate Faust based dsp objects for various platforms (see https://github.com/grame-cncm/faust/tree/master-dev/architecture/api):

Output options:
   -ios : generates an iOS API
   -android : generates an Android API
   -coreaudio : generates an OSX CoreAudio API
   -alsa : generates an ALSA API
   -jack : generates a JACK API
   -portaudio : generates a PortAudio API
   -rtaudio : generates an RTAudio API
   -of : generates an openFrameworks API
   -juce : generates a JUCE API
   -dummy : generates a dummy audio API
   -teensy : generates a Teensy API
   -esp32 : generates a ESP32 API

Global options:
   -opt native|generic : activates the best compilation options for the native or generic CPU
   -nvoices <num> : creates a polyphonic object with <num> voices
   -effect <effect.dsp> : adds an effect to the polyphonic synth (ignored if -nvoices is not specified)
   -effect auto : adds an effect (extracted automatically from the dsp file) to the polyphonic synth (ignored if -nvoices is not specified)
   -nodoc : prevents documentation from being generated
   -nozip : prevents generated files to be put in a zip file
   -target <target> : sets a name of the target folder or the zip file. Defaults to "dsp-faust"
   Faust options : any option (e.g. -vec -vs 8...). See the Faust compiler documentation.

Android specific options:
   -package : set the JAVA package name (e.g. '-package mypackage' will change the JAVA package name to 'mypackage.DspFaust'). The default package name is 'com.DspFaust.'
   -soundfile : add built-in Soundfile support to the API

Options supported by iOS, CoreAudio, ALSA, JACK, PortAudio, openFrameworks and JUCE
   -midi : add built-in RtMidi support to the API
   -osc : add built-in OSC support to the API
   -soundfile : add built-in Soundfile support to the API

JACK specific options
   -build : build a ready to test binary
   -dynamic : add libfaust/LLVM dynamic DSP compilation mode

faust2bela

Usage: faust2bela [options] [Faust options] <file.dsp>
Target platform: Bela
Compiles Faust programs to the BELA board
Options:
   -osc : activates OSC control
   -midi : activates MIDI control
   -soundfile : when compiling a DSP using the 'soundfile' primitive, add required resources
   -nvoices <num> : produces a polyphonic DSP with <num> voices, ready to be used with MIDI events
Polyphonic mode means MIDI instrument with at least 1 voice. Use no arguments for a simple effect.
   -gui : activates a self-hosted GUI interface. Requires to have libmicrohttpd and libHTTPDFaust installed.
   -effect <effect.dsp> : generates a polyphonic DSP connected to a global output effect, ready to be used with MIDI
   -effect auto : generates a polyphonic DSP connected to a global output effect defined as 'effect' in <file.dsp>, ready to be used with MIDI
   -tobela : to send C++ file into bela, and to run it
   Faust options : any option (e.g. -vec -vs 8...). See the Faust compiler documentation.

faust2bench

Usage: faust2bench [Faust options] <file.dsp>
Compiles Faust programs to a benchmark executable
   Faust options : any option (e.g. -vec -vs 8...). See the Faust compiler documentation.

faust2caconsole

Usage: faust2caconsole [options] [Faust options] <file.dsp>
Target platform: MacOS
Compiles Faust programs to CLI and CoreAudio
Options:
   -httpd : activates HTTP control
   -osc : activates OSC control
   -midi : activates MIDI control
   -soundfile : when compiling a DSP using the 'soundfile' primitive, add required resources
   -dyn : create libfaust + LLVM backend dynamic version
   -resample : to resample soundfiles to the audio driver sample rate.
   -nvoices <num> : produces a polyphonic DSP with <num> voices, ready to be used with MIDI events
   -effect <effect.dsp> : generates a polyphonic DSP connected to a global output effect, ready to be used with MIDI or OSC
   -effect auto : generates a polyphonic DSP connected to a global output effect defined as 'effect' in <file.dsp>, ready to be used with MIDI or OSC
   -preset <directory> : add a preset manager on top of GUI and save the preset files in the given directory
   -preset auto : add a preset manager on top of GUI and save the preset files in a system temporary directory
   Faust options : any option (e.g. -vec -vs 8...). See the Faust compiler documentation.

faust2cagtk

Usage: faust2cagtk [options] [Faust options] <file.dsp>
Target platform: MacOS
Require: GTK
Compiles Faust programs to CoreAudio and GTK
Options:
   -httpd : activates HTTP control
   -osc : activates OSC control
   -midi : activates MIDI control
   -soundfile : when compiling a DSP using the 'soundfile' primitive, add required resources
   -dyn : create libfaust + LLVM backend dynamic version
   -resample : to resample soundfiles to the audio driver sample rate.
   -nvoices <num> : produces a polyphonic DSP with <num> voices, ready to be used with MIDI events
   -effect <effect.dsp> : generates a polyphonic DSP connected to a global output effect, ready to be used with MIDI or OSC
   -effect auto : generates a polyphonic DSP connected to a global output effect defined as 'effect' in <file.dsp>, ready to be used with MIDI or OSC
   -preset <directory> : add a preset manager on top of GUI and save the preset files in the given directory
   -preset auto : add a preset manager on top of GUI and save the preset files in a system temporary directory
   Faust options : any option (e.g. -vec -vs 8...). See the Faust compiler documentation.

faust2caqt

Usage: faust2caqt [options] [Faust options] <file.dsp>
Target platform: MacOS
Require: QT
Compiles Faust programs to CoreAudio and QT
Options:
   -httpd : activates HTTP control
   -osc : activates OSC control
   -midi : activates MIDI control
   -qrcode : activates QR code generation
   -soundfile : when compiling a DSP using the 'soundfile' primitive, add required resources
   -opt native' to activate the best compilation options for the native CPU : 
   -opt generic' to activate the best compilation options for a generic CPU : 
   -nvoices <num> : produces a polyphonic DSP with <num> voices, ready to be used with MIDI events
   -resample : to resample soundfiles to the audio driver sample rate
   -effect <effect.dsp> : generates a polyphonic DSP connected to a global output effect, ready to be used with MIDI or OSC
   -effect auto : generates a polyphonic DSP connected to a global output effect defined as 'effect' in <file.dsp>, ready to be used with MIDI or OSC
   -preset <directory> : add a preset manager on top of GUI and save the preset files in the given directory
   -preset auto : add a preset manager on top of GUI and save the preset files in a system temporary directory
   -me : to catch math computation exceptions (floating point exceptions and integer div-by-zero or overflow)
   -debug : to print all the build steps
   -nodeploy : skip self-contained application generation (using 'macdeployqt')
   -I include-path : add an include-directory to the generated Qt project for finding ffunction headers and such
   Faust options : any option (e.g. -vec -vs 8...). See the Faust compiler documentation.

faust2cmajor

Usage: faust2cmajor [options] [Faust options] <file.dsp>
Compiles Faust programs to Cmajor (see https://github.com/grame-cncm/faust/tree/master-dev/architecture/cmajor)
Options:
   -midi : activates MIDI control
   -nvoices <num> : produces a polyphonic DSP with <num> voices, ready to be used with MIDI events
   -effect <effect.dsp> : generates a polyphonic DSP connected to a global output effect, ready to be used with MIDI or OSC
   -effect auto : generates a polyphonic DSP connected to a global output effect defined as 'effect' in <file.dsp>, ready to be used with MIDI or OSC
   -juce : to create a JUCE project
   -dsp : to create a 'dsp' compatible subclass
   -test : to test the resulting patch with 'cmaj render'
   -play : to start the 'cmaj' runtime with the generated Cmajor file
   Faust options : any option (e.g. -vec -vs 8...). See the Faust compiler documentation.

faust2comparator

Usage: faust2comparator [options] [Faust options] <file.dsp>

faust2csound

Usage: faust2csound [options] [Faust options] <file.dsp>
Target platform: any
Require: CSound Dev Kit
Compiles a Faust program into a Csound opcode
Options:
   -arch32 : generates a 32 bit architecture.
   -arch64 : generates a 64 bit architecture.
   Faust options : any option (e.g. -vec -vs 8...). See the Faust compiler documentation.

faust2csvplot

Usage: faust2csvplot [options] [Faust options] <file.dsp>
Compiles Faust programs to plotters, additional control parameters depend of the DSP, the following 5 options are given at runtime:
   -dyn : create libfaust + LLVM backend dynamic version
   -s <n> : start at the sample number <n> (default is 0)
   -n <n> : render <n> samples (default is 16)
   -r <rate> : change the sample rate (default is 44100 Hz)
   -bs <buffer> : change the buffer size (default is 512 frames)
Options:
   -arch32 : generates a 32 bit architecture.
   -arch64 : generates a 64 bit architecture.
   -double : generates code with samples of type 'double'.
   -soundfile : when compiling a DSP using the 'soundfile' primitive, add required resources
   Faust options : any option (e.g. -vec -vs 8...). See the Faust compiler documentation.

faust2daisy

faust2daisy [-patch] [-midi] [-nvoices <num>] [-sr <num>] [-bs <num>] [-source] [Faust options (-vec -vs 8...)] <file.dsp>
Compiles Faust programs to Daisy boards (see https://github.com/grame-cncm/faust/tree/master-dev/architecture/daisy)
Options:
   -patch : to compile for 4 ins/outs Patch (knob[1,2,3,4])
   -pod : to compile for 2 ins/outs Pod (knob[1,3])
   -patchsm : to compile for the Pod.init eurorack module
   -midi : activates MIDI control
   -nvoices <num> : produces a polyphonic DSP with <num> voices, ready to be used with MIDI events
   -sr <num> : to specify sample rate
   -bs <num> : to specify buffer size
   -source : to only create the source folder
   Faust options : any option (e.g. -vec -vs 8...). See the Faust compiler documentation.

faust2dplug

Usage: faust2dplug [options] [Faust options] <file.dsp>
Require: Dplug
Compiles Faust programs to Dplug plugins
Options:
   -vendor <My Company Name> : 
   -vendorid <FaUs> : 
   -pluginid <PlUg> : 
   -homepage <https://faust.grame.fr/> : 
   -effectType <effectDynamics> : 
   Faust options : any option (e.g. -vec -vs 8...). See the Faust compiler documentation.

faust2dssi

Usage: faust2dssi [options] [Faust options] <file.dsp>
Compiles Faust programs to dssi plugins
Options:
   -osc : activates OSC control
   -arch32 : generates a 32 bit architecture.
   -arch64 : generates a 64 bit architecture.
   Faust options : any option (e.g. -vec -vs 8...). See the Faust compiler documentation.

faust2esp32

Usage: faust2esp32 [options] [Faust options] <file.dsp> <file.dsp>
faust2esp32 can be used to fully program the ESP32 microncontroller and to generate DSP objects
that can be integrated into any ESP32 project (see https://github.com/grame-cncm/faust/tree/master-dev/architecture/esp32)
Options:
   -gramophone : generates for GRAME Gramophone
   -multi : generate for GRAME Gramophone in multi DSP mode
   -lib : generates a package containing an object compatible with any ESP32 project
   -midi : activates MIDI control
   -soundfile : when compiling a DSP using the 'soundfile' primitive, add required resources
   -main : add a 'main' entry point
   -nvoices <num> : produces a polyphonic DSP with <num> voices, ready to be used with MIDI events
   -wm8978, -es8388 or -ac101 : to choose codec driver
   Faust options : any option (e.g. -vec -vs 8...). See the Faust compiler documentation.

faust2faustvst

Usage: faust2faustvst [options ...] <file.dsp>
Require: VST SDK
Compiles Faust programs to VST plugins
Options:
   -gui : build the plugin GUI.
   -keep : retain the build directory.
   -nometa : ignore metadata (author information etc.) from the Faust source
   -nomidicc : plugin doesn't process MIDI control data.
   -notuning : disable the tuning control (instruments only).
   -novoicectrls : no extra polyphony/tuning controls on GUI (instruments only)
   -nvoices N : number of synth voices (instruments only; arg must be an integer)
   -qt4, -qt5 : select the GUI toolkit (requires Qt4/5; implies -gui).
   -style S :   select the stylesheet (arg must be Default, Blue, Grey or Salmon).
Environment variables:
  FAUSTINC: specify the location of the Faust include directory
    Default: /usr/local/include
  FAUSTARCH: specify the location of the Faust VST library files
    Default: /usr/local/share/faust
  QMAKE: specify the location of the qmake binary
    Default: qmake
  SDK: specify the location of the VST SDK
    Default: /usr/local/src/vstsdk
  SDKSRC: specify the location of the VST SDK sources
    Default: /usr/local/src/vstsdk/public.sdk/source/vst2.x

faust2feh

Usage: faust2feh <file.dsp>
Compiles Faust programs to SVG and opens them with feh

faust2gen

Usage: faust2gen [options] <file.dsp>
Require: Max/MSP SDK
Compiles Faust programs to a fausgen~ patch
Options:
   -nvoices <num> : produces a polyphonic DSP with <num> voices, ready to be used with MIDI events

faust2ios

Usage: faust2ios [options] [Faust options] <file.dsp>
Target platform: iOS
Compiles Faust programs to iOS applications
Options:
   -midi : activates MIDI control
   -osc : activates OSC control
   -soundfile : when compiling a DSP using the 'soundfile' primitive, add required resources
   -nvoices <num> : produces a polyphonic DSP with <num> voices, ready to be used with MIDI events
   -effect <effect.dsp> : generates a polyphonic DSP connected to a global output effect, ready to be used with MIDI or OSC
   -effect auto : generates a polyphonic DSP connected to a global output effect defined as 'effect' in <file.dsp>, ready to be used with MIDI or OSC
   -xcode : to compile and keep the intermediate Xcode project
   -xcodeproj : to produce the intermediate Xcode project
   -archive : to generate the archive for Apple Store
   -32bits : to compile 32 bits only binary
   -noagc : to deactivate audio automatic gain control
   Faust options : any option (e.g. -vec -vs 8...). See the Faust compiler documentation.

faust2jack

Usage: faust2jack [options] [Faust options] <file.dsp>
Target platform: Linux
Require: Jack
Compiles Faust programs to JACK and GTK
Options:
   -httpd : activates HTTP control
   -osc : activates OSC control
   -midi : activates MIDI control
   -soundfile : when compiling a DSP using the 'soundfile' primitive, add required resources
   -dyn : create libfaust + LLVM backend dynamic version
   -resample : to resample soundfiles to the audio driver sample rate.
   -nvoices <num> : produces a polyphonic DSP with <num> voices, ready to be used with MIDI events
   -effect <effect.dsp> : generates a polyphonic DSP connected to a global output effect, ready to be used with MIDI or OSC
   -effect auto : generates a polyphonic DSP connected to a global output effect defined as 'effect' in <file.dsp>, ready to be used with MIDI or OSC
   -preset <directory> : add a preset manager on top of GUI and save the preset files in the given directory
   -preset auto : add a preset manager on top of GUI and save the preset files in a system temporary directory
   Faust options : any option (e.g. -vec -vs 8...). See the Faust compiler documentation.

faust2jackconsole

Usage: faust2jackconsole [options] [Faust options] <file.dsp>
Require: Jack
Compiles Faust programs to CLI and JACK
Options:
   -httpd : activates HTTP control
   -osc : activates OSC control
   -midi : activates MIDI control
   -soundfile : when compiling a DSP using the 'soundfile' primitive, add required resources
   -nvoices <num> : produces a polyphonic DSP with <num> voices, ready to be used with MIDI events
   -effect <effect.dsp> : generates a polyphonic DSP connected to a global output effect, ready to be used with MIDI or OSC
   -effect auto : generates a polyphonic DSP connected to a global output effect defined as 'effect' in <file.dsp>, ready to be used with MIDI or OSC
   Faust options : any option (e.g. -vec -vs 8...). See the Faust compiler documentation.

faust2jackrust

Usage: faust2jackrust [-source] [Faust options] <file.dsp>
Compiles Faust programs to JACK and Rust binary
Options:
   -source : only generates the source project.
   Faust options : any option (e.g. -vec -vs 8...). See the Faust compiler documentation.

faust2jackserver

Usage: faust2jackserver [options] [Faust options] <file.dsp>
Require: Jack, QT
Compiles Faust programs to JACK and QT (server mode)
Options:
   -httpd : activates HTTP control
   -osc : activates OSC control
   -qrcode : activates QR code generation
   Faust options : any option (e.g. -vec -vs 8...). See the Faust compiler documentation.

faust2jaqt

Usage: faust2jaqt [options] [Faust options] <file.dsp>
Require: Jack, QT
Compiles Faust programs to JACK and QT
Options:
   -httpd : activates HTTP control
   -osc : activates OSC control
   -midi : activates MIDI control
   -soundfile : when compiling a DSP using the 'soundfile' primitive, add required resources
   -qrcode : activates QR code generation
   -nvoices <num> : produces a polyphonic DSP with <num> voices, ready to be used with MIDI events
   -effect <effect.dsp> : generates a polyphonic DSP connected to a global output effect, ready to be used with MIDI or OSC
   -effect auto : generates a polyphonic DSP connected to a global output effect defined as 'effect' in <file.dsp>, ready to be used with MIDI or OSC
   -preset <directory> : add a preset manager on top of GUI and save the preset files in the given directory
   -preset auto : add a preset manager on top of GUI and save the preset files in a system temporary directory
   -resample : to resample soundfiles to the audio driver sample rate.
   Faust options : any option (e.g. -vec -vs 8...). See the Faust compiler documentation.

faust2jaqtchain

Usage: faust2jaqtchain [options] [Faust options] <file.dsp>
Require: Jack, QT
Compiles several Faust programs to JACK and QT
Options:
   -httpd : activates HTTP control
   -osc : activates OSC control
   Faust options : any option (e.g. -vec -vs 8...). See the Faust compiler documentation.

faust2juce

Usage: faust2juce [options] [Faust options] <file.dsp>
Require: Juce
Compiles Faust programs to JUCE standalones or plugins (see https://github.com/grame-cncm/faust/tree/master-dev/architecture/juce)
Options:
   -osc : activates OSC control
   -midi : activates MIDI control
   -soundfile : when compiling a DSP using the 'soundfile' primitive, add required resources
   -nvoices <num> : produces a polyphonic DSP with <num> voices, ready to be used with MIDI events
   -effect <effect.dsp> : generates a polyphonic DSP connected to a global output effect, ready to be used with MIDI or OSC
   -effect auto : generates a polyphonic DSP connected to a global output effect defined as 'effect' in <file.dsp>, ready to be used with MIDI or OSC
   -standalone : to produce a standalone project, otherwise a plugin project is generated
   -vst2sdkdir <folder> : to set directory to VST 2 SDK.
   -jucemodulesdir <folder> : to set JUCE modules directory to <folder>, such as ~/JUCE/modules
   -disable-splash-screen : to disable the JUCE splash screen (license is required).
   -jsynth : to use JUCE polyphonic Synthesizer instead of Faust polyphonic code
   -llvm : to use the LLVM compilation chain (OSX and Linux for now)
   -magic : to generate a project using the PluginGuiMagic GUI builder
   Faust options : any option (e.g. -vec -vs 8...). See the Faust compiler documentation.

faust2ladspa

Usage: faust2ladspa [options] [Faust options] <file.dsp>
Target platform: Linux
Compiles Faust programs to LADSPA plugins
Options:
   -arch32 : generates a 32 bit architecture.
   -arch64 : generates a 64 bit architecture.
   Faust options : any option (e.g. -vec -vs 8...). See the Faust compiler documentation.

faust2linuxunity

Usage: faust2linuxunity [options] [Faust options] <file.dsp>
Target platform: Linux
Require: Jack, Unity
Compiles Faust programs to Linux x86_64 libraries suitable for the Unity environment
Options:
   -nvoices <num> : produces a polyphonic DSP with <num> voices, ready to be used with MIDI events
   Faust options : any option (e.g. -vec -vs 8...). See the Faust compiler documentation.

faust2lv2

-std=c++11 -fvisibility=hidden -O3
Usage: faust2lv2 [options ...] <file.dsp>
Require: QT
Compiles Faust programs to lv2 plugins
Options:
   -dyn-manifest : use dynamic manifests (requires LV2 host support).
   -gui : build the plugin GUI (requires LV2 UI host support).
   -keep : retain the build directory.
   -nometa : ignore metadata (author information etc.) from the Faust source
   -nomidicc : plugin doesn't process MIDI control data.
   -notuning : disable the tuning control (instruments only).
   -novoicectrls : no extra polyphony/tuning controls on GUI (instruments only)
   -nvoices N : number of synth voices (instruments only; arg must be an integer)
   -osx : -osx to compile on OSX
   -qt4, -qt5 : select the GUI toolkit (requires Qt4/5; implies -gui)
   -style S : select the stylesheet (arg must be Default, Blue, Grey or Salmon).
Environment variables:
  FAUSTINC: specify the location of the Faust include directory
    Default: /usr/local/include/faust
  FAUSTLIB: specify the location of the Faust LV2 library files
    Default: /usr/local/share/faust
  QMAKE: specify the location of the qmake binary
    Default: qmake

faust2mathdoc

Usage: faust2mathdoc [options] <file.dsp>
Require: svg2pdf pdflatex breqn
Generate a full Faust documentation in a '*-mdoc' top directory
Options:
   -l LANG : LANG is usually a 2-lowercase-letters language name, like en, fr, or it.
   -utf8 : force file.dsp to be recoded in UTF-8 before being processed

faust2max6

Usage: faust2max6 [options] [Faust options] <file.dsp>
Require: Max/MSP SDK
Compiles Faust programs to Max6 externals using double precision samples (see https://github.com/grame-cncm/faust/tree/master-dev/architecture/max-msp)
Options:
   -osc : activates OSC control
   -midi : activates MIDI control
   -soundfile : when compiling a DSP using the 'soundfile' primitive, add required resources
   -soundfile-dynamic : similar to -soundfile, but using the installed libsndfile (so possibly using dynamic link).
   -opt native|generic : activates the best compilation options for the native or generic CPU.
   -nvoices <num> : produces a polyphonic DSP with <num> voices, ready to be used with MIDI events
   -us <factor> : upsample the DSP by a factor
   -ds <factor> : downsample the DSP by a factor
   -filter <filter> : use a filter for upsampling or downsampling [0..4]
   -effect <effect.dsp> : generates a polyphonic DSP connected to a global output effect, ready to be used with MIDI or OSC
   -mc : to activate multi-channels model
   -native : to compile for the native CPU (otherwise the 'generic' mode is used by default)
   -universal : to generate a universal (arm/intel) external
   -nopatch : to deactivate patch generation
   -nopost : to disable Faust messages to Max console
   Faust options : any option (e.g. -vec -vs 8...). See the Faust compiler documentation.

faust2minimal

Usage: faust2minimal [options] [Faust options] <file.dsp>
Compiles Faust programs to a minimal executable
   Faust options : any option (e.g. -vec -vs 8...). See the Faust compiler documentation.

faust2netjackconsole

Usage: faust2netjackconsole [options] [Faust options] <file.dsp>
Require: Jack
Compiles Faust programs to NetJack
Options:
   -httpd : activates HTTP control
   -osc : activates OSC control
   -midi : activates MIDI control
   -nvoices <num> : produces a polyphonic DSP with <num> voices, ready to be used with MIDI events
   -effect <effect.dsp> : generates a polyphonic DSP connected to a global output effect, ready to be used with MIDI or OSC
   -effect auto : generates a polyphonic DSP connected to a global output effect defined as 'effect' in <file.dsp>, ready to be used with MIDI or OSC
   Faust options : any option (e.g. -vec -vs 8...). See the Faust compiler documentation.

faust2netjackqt

Usage: faust2netjackqt [options] [Faust options] <file.dsp>
Require: Jack, QT
Compiles Faust programs to NetJack and QT
Options:
   -httpd : activates HTTP control
   -osc : activates OSC control
   -midi : activates MIDI control
   -nvoices <num> : produces a polyphonic DSP with <num> voices, ready to be used with MIDI events
   -effect <effect.dsp> : generates a polyphonic DSP connected to a global output effect, ready to be used with MIDI or OSC
   -effect auto : generates a polyphonic DSP connected to a global output effect defined as 'effect' in <file.dsp>, ready to be used with MIDI or OSC
   Faust options : any option (e.g. -vec -vs 8...). See the Faust compiler documentation.

faust2nodejs

Usage: faust2nodejs [driver] [Faust options] <file.dsp>
Generate Faust-based nodejs native addons. The generated addons can embed most of the audio engines supported by Faust: ALSA, JACK, CoreAudio, RtAudio, PortAudio, etc. Since faust2nodejs essentially acts as a wrapper to faust2api, it offers the same features than this system (MIDI and OSC support, polyphony, separate effect file, etc.).

The following drivers are available: -coreaudio // -alsa // -jack // -portaudio // -rtaudio // -dummy. For example, to create a native nodejs addon with a JACK audio engine, run: faust2nodjs -jack faustFile.dsp

The following options are inherited directly from faust2api and can be used with faust2nodejs:
Options:
   -osc : activates OSC control
   -midi : activates MIDI control
   -soundfile : when compiling a DSP using the 'soundfile' primitive, add required resources
   -nvoices <num> : produces a polyphonic DSP with <num> voices, ready to be used with MIDI events
   -effect <effect.dsp> : generates a polyphonic DSP connected to a global output effect, ready to be used with MIDI or OSC
   -source : generates the source of the addon without compiling it
   -electronv <VERSION> : allows to specify the current version of electron if generating an addon for this framework
   -debug : prints compilation output
   Faust options : any option (e.g. -vec -vs 8...). See the Faust compiler documentation.

faust2osxiosunity

Usage: faust2osxiosunity [options] [Faust options] <file.dsp>
Target platform: MacOSX
Require: Unity
Compiles Faust programs to OSX/iOS libraries suitable for the Unity environment
Options:
   -nvoices <num> : produces a polyphonic DSP with <num> voices, ready to be used with MIDI events
   -ios :       create an iOS static library
   -universal : generate a 64/32 bits external
   Faust options : any option (e.g. -vec -vs 8...). See the Faust compiler documentation.
See architecture/unity/README.md for more info.

faust2paconsole

Usage: faust2paconsole [options] [Faust options] <file.dsp>
Require: PortAudio
Compiles Faust programs to PortAudio
Options:
   -httpd : activates HTTP control
   -osc : activates OSC control
   -midi : activates MIDI control
   -nvoices <num> : produces a polyphonic DSP with <num> voices, ready to be used with MIDI events
   -effect <effect.dsp> : generates a polyphonic DSP connected to a global output effect, ready to be used with MIDI or OSC
   -effect auto : generates a polyphonic DSP connected to a global output effect defined as 'effect' in <file.dsp>, ready to be used with MIDI or OSC
   Faust options : any option (e.g. -vec -vs 8...). See the Faust compiler documentation.

faust2paqt

Usage: faust2paqt [options] [Faust options] <file.dsp>
Require: PortAudio, QT
Compiles Faust programs to PortAudio and QT
Options:
   -httpd : activates HTTP control
   -osc : activates OSC control
   -midi : activates MIDI control
   -qrcode : activates QR code generation
   -nvoices <num> : produces a polyphonic DSP with <num> voices, ready to be used with MIDI events
   -effect <effect.dsp> : generates a polyphonic DSP connected to a global output effect, ready to be used with MIDI or OSC
   -effect auto : generates a polyphonic DSP connected to a global output effect defined as 'effect' in <file.dsp>, ready to be used with MIDI or OSC
   -nodeploy : skip self-contained application generation (using 'macdeployqt')
   Faust options : any option (e.g. -vec -vs 8...). See the Faust compiler documentation.

faust2plot

Usage: faust2plot [options] [Faust options] <file.dsp>
Compiles Faust programs to plotters, additional control parameters depend of the DSP, the following 4 options are given at runtime:
   -dyn : create libfaust + LLVM backend dynamic version
   -s <n> : start at the sample number <n> (default is 0)
   -n <n> : render <n> samples (default is 16)
   -r <rate> : change the sample rate (default is 44100 Hz)
   Faust options : any option (e.g. -vec -vs 8...). See the Faust compiler documentation.

faust2portaudiojulia

Usage: faust2portaudiojulia [options] [Faust options] <file.dsp>
Require: PortAudio
Compiles Faust programs to PortAudio and Julia binary
   -osc : to activate OSC control on 5000 and 5001 ports
   -play <num> : to start the 'Julia' runtime with <num> threads and the generated file.jl
   Faust options : any option (e.g. -vec -vs 8...). See the Faust compiler documentation.

faust2portaudiorust

Usage: faust2portaudiorust [-source] [Faust options] <file.dsp>
Require: PortAudio
Compiles Faust programs to PortAudio and Rust binary
Options:
   -source : only generates the source project.
   Faust options : any option (e.g. -vec -vs 8...). See the Faust compiler documentation.

faust2raqt

Usage: faust2raqt [options] [Faust options] <file.dsp>
Require: QT
Compiles Faust programs to RtAudio and QT
Options:
   -httpd : activates HTTP control
   -osc : activates OSC control
   -midi : activates MIDI control
   -qrcode : activates QR code generation
   -poly : produces a polyphonic DSP, ready to be used with MIDI events
   -nodeploy : skip self-contained application generation (using 'macdeployqt')
   Faust options : any option (e.g. -vec -vs 8...). See the Faust compiler documentation.

faust2rnbo

Usage: faust2rnbo [options] [Faust options] <file.dsp>
Compiles Faust programs to RNBO patches
Options:
   -midi : activates MIDI control
   -nvoices <num> : produces a polyphonic DSP with <num> voices, ready to be used with MIDI events
   -effect <effect.dsp> : generates a polyphonic DSP connected to a global output effect, ready to be used with MIDI or OSC
   -effect auto : generates a polyphonic DSP connected to a global output effect defined as 'effect' in <file.dsp>, ready to be used with MIDI or OSC
   -compile : to trigger C++ compilation at load time
   -test : to generate special 'RB_XX' prefix for parameters (for testing)
   -sp : to generate codebox subpatcher as a file.rnbopat file
   -cpp_path <path> : to set C++ export folder
   -cpp_filename <filename> : to set C++ export filename
   Faust options : any option (e.g. -vec -vs 8...). See the Faust compiler documentation.

faust2rpialsaconsole

Usage: faust2rpialsaconsole [options] [Faust options] <file.dsp>
Target platform: RaspberryPi
Require: Alsa
Compiles Faust programs to RaspberryPi - alsa console architecture
Options:
   -osc : activates OSC control
   -httpd : activates HTTP control
   -arch32 : generates a 32 bit architecture.
   -arch64 : generates a 64 bit architecture.
   Faust options : any option (e.g. -vec -vs 8...). See the Faust compiler documentation.

faust2rpinetjackconsole

Usage: faust2rpialsaconsole [options] [Faust options] <file.dsp>
Target platform: RaspberryPi
Require: NetJack
Compiles Faust programs to RaspberryPi - netjack-console architecture
Options:
   -osc : activates OSC control
   -httpd : activates HTTP control
   Faust options : any option (e.g. -vec -vs 8...). See the Faust compiler documentation.

faust2sam

Usage: faust2sam [options] [Faust options] <file.dsp>
Target platform: ADI SHARC Audio Module board
Generates inline Faust objects for the ADI SHARC Audio Module board
Options:
   -midi : activates MIDI control
   -nvoices <num> : produces a polyphonic DSP with <num> voices, ready to be used with MIDI events
   -effect <effect.dsp> : generates a polyphonic DSP connected to a global output effect, ready to be used with MIDI or OSC
   Faust options : any option (e.g. -vec -vs 8...). See the Faust compiler documentation.

faust2smartkeyb

FAUST2SMARTKEYB - MUSICAL MOBILE APP GENERATOR

faust2smartkeyb takes a Faust code as its main argument and convert it into a ready-to-use app for Android or iOS. The only two required arguments of faust2smartkeyb are a Faust file and the target platform (-android or -ios):

Usage: faust2smartkeyb [options] [Faust options] <file.dsp>
Target platform: iOS, Android
Options:
   -android : generates an Android app
   -ios : generates an iOS app
   -osc : activates OSC control
   -debug : activate debug mode
   -effect : allow to specify an effect Faust file (e.g., -effect myEffect.dsp)
   -install : install the app on the connected device (Android only)
   -nvoices : specify the max number of voices
   -reuse : reuse the same project source
   -source : only generate the source (no compilation)
   Faust options : any option (e.g. -vec -vs 8...). See the Faust compiler documentation.
More information and tutorials at: https://ccrma.stanford.edu/~rmichon/smartKeyboard

faust2sndfile

Usage: faust2sndfile [Faust options] <file.dsp>
Require: libsndfile
Process audio files with Faust DSP
   Faust options : any option (e.g. -vec -vs 8...). See the Faust compiler documentation.

faust2stratus

Usage: faust2stratus [options] [Faust options] <file.dsp> ... [<file.cpp> ...]
Target platform: Chaos Audio Stratus pedal
Compiles Faust programs for the Chaos Audio Stratus pedal
  with optional c++ compile for, and effect install to, the pedal

Unlike most other faust2xxx scripts, this can also be used to compile
  effect c++ code that has been constructed elsewhere, or has been modified 
  after being generated by the Faust compiler (e.g. where the algorithm c++ code
  has been 'tweaked' after generation)

The script can be used to build and install multiple different effects in one go

Running this script with no options except input files will result in effect libraries
  built for the platform upon which the script is executed, not for the pedal

Options:
   -nocppc : Do not compile the generated c++ source files
   -nodocker : Do not use docker for pedal builds even if it is available
   -stratusbuild : Generates the c++ code locally, then builds the effect library for the Stratus pedal
   -stratusinstall : Generates the c++ code locally, then builds and installs the effect library for the Stratus pedal

   Faust options : any option (e.g. -vec -vs 8...). See the Faust compiler documentation.
     the script automatically uses '-i -scn FaustDSP -light -nvi'
     -O and/or -o can be used, otherwise all output is in the same folder as the corresponding input

faust2teensy

faust2teensy [-lib] [-midi] [-nvoices <num>] [Faust options (-vec -vs 8...)] <file.dsp>
Options:
   -lib : generates a package containing an object compatible with the Teensy audio library (see https://github.com/grame-cncm/faust/tree/master-dev/architecture/teensy)
   -midi : activates MIDI control
   -nvoices <num> : produces a polyphonic DSP with <num> voices, ready to be used with MIDI events
   Faust options : any option (e.g. -vec -vs 8...). See the Faust compiler documentation.

faust2unity

Usage: faust2unity [options] [Faust options] <file.dsp>
Target platform: Android, Linux, MacOSX, iOS, Windows
Require: Unity
Generates a unity package (compressed .unitypackage folder) with all available architecture libraries for faust unity plugin and the C# files required. Use arguments to generate specific architectures (see https://github.com/grame-cncm/faust/tree/master-dev/architecture/unity)
Options:
   -w32 : generates a Windows 32 bits library
   -w64 : generates a Windows 64 bits library
   -osx : generates a macOS library
   -ios : generates an iOS library
   -android : generates Android libraries (armeabi-v7a and x86).
   -linux : generates a Linux library
   -nvoices <num> : produces a polyphonic DSP with <num> voices, ready to be used with MIDI events
   -source : generates the source files (uncompressed folder)
   -unpacked : generates an unpacked folder with files organized like the Unity Asset hierarchy. Use this options to add specific files in the unity package (in the Assets folder, then use 'encoderunitypackage <folder>' to compress and pack it.
   Faust options : any option (e.g. -vec -vs 8...). See the Faust compiler documentation.
See architecture/unity/README.md for more info.

faust2vcvrack

faust2vcvrack [-soundfile] [-source] [-nvoices <num>] [Faust options] <file.dsp>
Compiles Faust programs to VCV Rack modules (see https://github.com/grame-cncm/faust/tree/master-dev/architecture/vcvrack)
   -soundfile : when compiling a DSP using the 'soundfile' primitive, add required resources
   -source : to only create the source folder
   -nvoices <num> : produces a polyphonic DSP with <num> voices, ready to be used with MIDI events
   -version <1|2> : to set the plugin version, 2 by default
   Faust options : any option (e.g. -vec -vs 8...). See the Faust compiler documentation.