.\" Automatically generated by Pandoc 2.10.1 .\" .TH "man" "1" "" "Version 2.30.5 (06-January-2021)" "Faust man page" .hy .SH NAME .PP Faust - DSP to C/C++, Rust, LLVM IR, JAVA, WebAssembly (wast/wasm), Interpreter, SOUL and D compiler .SH SYNOPSIS .PP \f[B]faust\f[R] [options] file1 [file2 \&...] .SH DESCRIPTION .PP Faust (Functional Audio Stream) is a functional programming language specifically designed for real-time signal processing and synthesis. Faust targets high-performance signal processing applications and audio plug-ins for a variety of platforms and standards. .SH OPTIONS .SS Input options: .PP \f[B]-a\f[R] wrapper architecture file. .PP \f[B]-i\f[R] \f[B]\[en]inline-architecture-files\f[R] inline architecture files. .PP \f[B]-A\f[R] \f[B]\[en]architecture-dir\f[R] add the directory to the architecture search path. .PP \f[B]-I\f[R] \f[B]\[en]import-dir\f[R] add the directory to the import search path. .PP \f[B]-L\f[R] \f[B]\[en]library\f[R] link with the LLVM module . .PP \f[B]-t\f[R] \f[B]\[en]timeout\f[R] abort compilation after seconds (default 120). .SS Output options: .PP \f[B]-o\f[R] the output file. .PP \f[B]-e\f[R] \f[B]\[en]export-dsp\f[R] export expanded DSP (with all included libraries). .PP \f[B]-uim\f[R] \f[B]\[en]user-interface-macros\f[R] add user interface macro definitions to the output code. .PP \f[B]-xml\f[R] generate an XML description file. .PP \f[B]-json\f[R] generate a JSON description file. .PP \f[B]-O\f[R] \f[B]\[en]output-dir\f[R] specify the relative directory of the generated output code and of additional generated files (SVG, XML\&...). .SS Code generation options: .PP \f[B]-lang\f[R] \f[B]\[en]language\f[R] select output language, `lang' should be c, ocpp, cpp (default), rust, java, llvm, fir, wast/wasm, soul, interp or dlang. .PP \f[B]-single\f[R] \f[B]\[en]single-precision-floats\f[R] use single precision floats for internal computations (default). .PP \f[B]-double\f[R] \f[B]\[en]double-precision-floats\f[R] use double precision floats for internal computations. .PP \f[B]-quad\f[R] \f[B]\[en]quad-precision-floats\f[R] use quad precision floats for internal computations. .PP \f[B]-es\f[R] 1|0 \f[B]\[en]enable-semantics\f[R] 1|0 use enable semantics when 1 (default), and simple multiplication otherwise. .PP \f[B]-lcc\f[R] \f[B]\[en]local-causality-check\f[R] check causality also at local level. .PP \f[B]-light\f[R] \f[B]\[en]light-mode\f[R] do not generate the entire DSP API. .PP \f[B]-clang\f[R] \f[B]\[en]clang\f[R] when compiled with clang/clang++, adds specific #pragma for auto-vectorization. .PP \f[B]-exp10\f[R] \f[B]\[en]generate-exp10\f[R] pow(10,x) replaced by possibly faster exp10(x). .PP \f[B]-os\f[R] \f[B]\[en]one-sample\f[R] generate one sample computation. .PP \f[B]-cm\f[R] \f[B]\[en]compute-mix\f[R] mix in outputs buffers. .PP \f[B]-cn\f[R] \f[B]\[en]class-name\f[R] specify the name of the dsp class to be used instead of mydsp. .PP \f[B]-scn\f[R] \f[B]\[en]super-class-name\f[R] specify the name of the super class to be used instead of dsp. .PP \f[B]-pn\f[R] \f[B]\[en]process-name\f[R] specify the name of the dsp entry-point instead of process. .PP \f[B]-mcd\f[R] \f[B]\[en]max-copy-delay\f[R] threshold between copy and ring buffer implementation (default 16 samples). .PP \f[B]-dlt\f[R] \f[B]\[en]delay-line-threshold\f[R] threshold between `mask' and `select' ring buffer implementation (default INT_MAX samples). .PP \f[B]-mem\f[R] \f[B]\[en]memory\f[R] allocate static in global state using a custom memory manager. .PP \f[B]-ftz\f[R] \f[B]\[en]flush-to-zero\f[R] code added to recursive signals [0:no (default), 1:fabs based, 2:mask based (fastest)]. .PP \f[B]-rui\f[R] \f[B]\[en]range-ui\f[R] whether to generate code to limit vslider/hslider/nentry values in [min..max] range. .PP \f[B]-inj\f[R] \f[B]\[en]inject\f[R] inject source file into architecture file instead of compiling a dsp file. .PP \f[B]-scal\f[R] \f[B]\[en]scalar\f[R] generate non-vectorized code. .PP \f[B]-inpl\f[R] \f[B]\[en]in-place\f[R] generates code working when input and output buffers are the same (scalar mode only). .PP \f[B]-vec\f[R] \f[B]\[en]vectorize\f[R] generate easier to vectorize code. .PP \f[B]-vs\f[R] \f[B]\[en]vec-size\f[R] size of the vector (default 32 samples). .PP \f[B]-lv\f[R] \f[B]\[en]loop-variant\f[R] [0:fastest (default), 1:simple]. .PP \f[B]-omp\f[R] \f[B]\[en]openmp\f[R] generate OpenMP pragmas, activates \[en]vectorize option. .PP \f[B]-pl\f[R] \f[B]\[en]par-loop\f[R] generate parallel loops in \[en]openmp mode. .PP \f[B]-sch\f[R] \f[B]\[en]scheduler\f[R] generate tasks and use a Work Stealing scheduler, activates \[en]vectorize option. .PP \f[B]-ocl\f[R] \f[B]\[en]opencl\f[R] generate tasks with OpenCL (experimental). .PP \f[B]-cuda\f[R] \f[B]\[en]cuda\f[R] generate tasks with CUDA (experimental). .PP \f[B]-dfs\f[R] \f[B]\[en]deep-first-scheduling\f[R] schedule vector loops in deep first order. .PP \f[B]-g\f[R] \f[B]\[en]group-tasks\f[R] group single-threaded sequential tasks together when -omp or -sch is used. .PP \f[B]-fun\f[R] \f[B]\[en]fun-tasks\f[R] separate tasks code as separated functions (in -vec, -sch, or -omp mode). .PP \f[B]-fm\f[R] \f[B]\[en]fast-math\f[R] use optimized versions of mathematical functions implemented in , use `faust/dsp/fastmath.cpp' when file is `def'. .PP \f[B]-mapp\f[R] \f[B]\[en]math-approximation\f[R] simpler/faster versions of `floor/ceil/fmod/remainder' functions. .PP \f[B]-ns\f[R] \f[B]\[en]namespace\f[R] generate C++ or D code in a namespace . .SS Block diagram options: .PP \f[B]-ps\f[R] \f[B]\[en]postscript\f[R] print block-diagram to a postscript file. .PP \f[B]-svg\f[R] \f[B]\[en]svg\f[R] print block-diagram to a svg file. .PP \f[B]-sd\f[R] \f[B]\[en]simplify-diagrams\f[R] try to further simplify diagrams before drawing. .PP \f[B]-drf\f[R] \f[B]\[en]draw-route-frame\f[R] draw route frames instead of simple cables. .PP \f[B]-f\f[R] \f[B]\[en]fold\f[R] threshold to activate folding mode during block-diagram generation (default 25 elements). .PP \f[B]-fc\f[R] \f[B]\[en]fold-complexity\f[R] complexity threshold to fold an expression in folding mode (default 2) \f[B]-mns\f[R] \f[B]\[en]max-name-size\f[R] threshold during block-diagram generation (default 40 char). .PP \f[B]-sn\f[R] \f[B]\[en]simple-names\f[R] use simple names (without arguments) during block-diagram generation. .PP \f[B]-blur\f[R] \f[B]\[en]shadow-blur\f[R] add a shadow blur to SVG boxes. .SS Math doc options: .PP \f[B]-mdoc\f[R] \f[B]\[en]mathdoc\f[R] print math documentation of the Faust program in LaTeX format in a -mdoc folder. .PP \f[B]-mdlang\f[R] \f[B]\[en]mathdoc-lang\f[R] if translation file exists ( = en, fr, \&...). .PP \f[B]-stripmdoc\f[R] \f[B]\[en]strip-mdoc-tags\f[R] strip mdoc tags when printing Faust -mdoc listings. .SS Debug options: .PP \f[B]-d\f[R] \f[B]\[en]details\f[R] print compilation details. .PP \f[B]-time\f[R] \f[B]\[en]compilation-time\f[R] display compilation phases timing information. .PP \f[B]-flist\f[R] \f[B]\[en]file-list\f[R] print file list (including libraries) used to eval process. .PP \f[B]-tg\f[R] \f[B]\[en]task-graph\f[R] print the internal task graph in dot format. .PP \f[B]-sg\f[R] \f[B]\[en]signal-graph\f[R] print the internal signal graph in dot format. .PP \f[B]-norm\f[R] \f[B]\[en]normalized-form\f[R] print signals in normalized form and exit. .PP \f[B]-ct\f[R] \f[B]\[en]check-table\f[R] check table index range and exit at first failure. .PP \f[B]-cat\f[R] \f[B]\[en]check-all-table\f[R] check all table index range. .SS Information options: .PP \f[B]-h\f[R] \f[B]\[en]help\f[R] print this help message. .PP \f[B]-v\f[R] \f[B]\[en]version\f[R] print version information and embedded backends list. .PP \f[B]-libdir\f[R] \f[B]\[en]libdir\f[R] print directory containing the Faust libraries. .PP \f[B]-includedir\f[R] \f[B]\[en]includedir\f[R] print directory containing the Faust headers. .PP \f[B]-archdir\f[R] \f[B]\[en]archdir\f[R] print directory containing the Faust architectures. .PP \f[B]-dspdir\f[R] \f[B]\[en]dspdir\f[R] print directory containing the Faust dsp libraries. .PP \f[B]-pathslist\f[R] \f[B]\[en]pathslist\f[R] print the architectures and dsp library paths. .SS Example: .PP faust \f[B]-a\f[R] jack-gtk.cpp -o myfx.cpp myfx.dsp .SH SEE ALSO .PP Grame Faust site at: \f[B]\f[R] .SH BUGS .PP Please report bugs to: \f[B]\f[R] .SH AUTHOR .PP Copyright (C) 2002-2021, GRAME - Centre National de Creation Musicale. All rights reserved.