.\" Automatically generated by Pandoc 2.19.2 .\" .\" Define V font for inline verbatim, using C font in formats .\" that render this, and otherwise B font. .ie "\f[CB]x\f[]"x" \{\ . ftr V B . ftr VI BI . ftr VB B . ftr VBI BI .\} .el \{\ . ftr V CR . ftr VI CI . ftr VB CB . ftr VBI CBI .\} .TH "man" "1" "" "Version 2.54.9 (09-December-2022)" "Faust man page" .hy .SH NAME .PP Faust - DSP to C/C++, CSharp, DLang, Interpreter, Java, LLVM IR, Rust, SOUL, and WebAssembly (wast/wasm) .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 libraries 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, cpp (default), cmajor, csharp, dlang, fir, interp, java, jax, julia, llvm, ocpp, rust or wast/wasm. .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]-fx\f[R] \f[B]\[en]fixed-point\f[R] use fixed-point 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]-nvi\f[R] \f[B]\[en]no-virtual\f[R] when compiled with the C++ backend, does not add the `virtual' keyword. .PP \f[B]-fp\f[R] \f[B]\[en]full-parentheses\f[R] always add parentheses around binops \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 (same as -os0). .PP \f[B]-os0\f[R] \f[B]\[en]one-sample0\f[R] generate one sample computation (0 = separated control). .PP \f[B]-os1\f[R] \f[B]\[en]one-sample1\f[R] generate one sample computation (1 = separated control and DSP struct). .PP \f[B]-os2\f[R] \f[B]\[en]one-sample2\f[R] generate one sample computation (2 = separated control and DSP struct. Separation in short and long delay lines). .PP \f[B]-os3\f[R] \f[B]\[en]one-sample3\f[R] generate one sample computation (3 = like 2 but with external memory pointers kept in the DSP struct). .PP \f[B]-cm\f[R] \f[B]\[en]compute-mix\f[R] mix in outputs buffers. .PP \f[B]-ct\f[R] \f[B]\[en]check-table\f[R] check rtable/rwtable index range and generate safe access code (0/1: 1 by default). .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-manager\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 constraint 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 (default). .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 . .PP \f[B]-vhdl\f[R] \f[B]\[en]vhdl\f[R] output vhdl file. .PP \f[B]-vhdl\f[R]-trace \f[B]\[en]vhdl-trace\f[R] activate trace. .PP \f[B]-vhdl\f[R]-type 0|1 \f[B]\[en]vhdl-type\f[R] 0|1 sample format 0 = sfixed (default), 1 = float. .PP \f[B]-vhdl\f[R]-msb \f[B]\[en]vhdl-msb\f[R] MSB number of bits. .PP \f[B]-vhdl\f[R]-lsb \f[B]\[en]vhdl-lsb\f[R] LSB number of bits. .PP \f[B]-wi\f[R] \f[B]\[en]widening-iterations\f[R] number of iterations before widening in signal bounding. .PP \f[B]-ni\f[R] \f[B]\[en]narrowing-iterations\f[R] number of iterations before stopping narrowing in signal bounding. .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). .PP \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]-me\f[R] \f[B]\[en]math-exceptions\f[R] check / for 0 as denominator and remainder, fmod, sqrt, log10, log, acos, asin functions domain. .PP \f[B]-sts\f[R] \f[B]\[en]strict-select\f[R] generate strict code for `selectX' even for stateless branches (both are computed). .PP \f[B]-wall\f[R] \f[B]\[en]warning-all\f[R] print all warnings. .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-2022, GRAME - Centre National de Creation Musicale. All rights reserved.