Scroll to navigation

man(1) Faust man page man(1)

NAME

Faust - DSP to C/C++, Rust, LLVM IR, JAVA, JavaScript, asm.js, WebAssembly (wast/wasm), Interpreter compiler

SYNOPSIS

faust [options] file1 [file2 ...]

DESCRIPTION

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.

OPTIONS

Input options:

-a <file> wrapper architecture file.

-i --inline-architecture-files inline architecture files.

-A <dir> --architecture-dir <dir> add the directory <dir> to the architecture search path.

-I <dir> --import-dir <dir> add the directory <dir> to the import search path.

-L <file> --library <file> link with the LLVM module <file>.

-t <sec> --timeout <sec> abort compilation after <sec> seconds (default 120).

-time --compilation-time display compilation phases timing information.

Output options:

-o <file> the output file.

-e --export-dsp export expanded DSP (all included libraries).

-uim --user-interface-macros add user interface macro definitions to the output code.

-xml generate an XML description file.

-json generate a JSON description file.

-O <dir> --output-dir <dir> specify the relative directory of the generated output code and of additional generated files (SVG, XML...) .

Code generation options:

-lang <lang> --language select output language, 'lang' should be in c, ocpp, cpp (default), rust, java, js, ajs, llvm, cllvm, fir, wast/wasm, interp.

-single --single-precision-floats use single precision floats for internal computations (default).

-double --double-precision-floats use double precision floats for internal computations.

-quad --quad-precision-floats use quad precision floats for internal computations.

-es 1|0 --enable-semantics 1|0 use enable semantics when 1 (default), and simple multiplication otherwise.

-lcc --local-causality-check check causality also at local level.

-flist --file-list use file list used to eval process.

-exp10 --generate-exp10 function call instead of pow(10) function.

-cn <name> --class-name <name> specify the name of the dsp class to be used instead of mydsp.

-scn <name> --super-class-name <name> specify the name of the super class to be used instead of dsp.

-pn <name> --process-name <name> specify the name of the dsp entry-point instead of process.

-lb --left-balanced generate left balanced expressions.

-mb --mid-balanced generate mid balanced expressions (default).

-rb --right-balanced generate right balanced expressions.

-lt --less-temporaries generate less temporaries in compiling delays.

-mcd <n> --max-copy-delay <n> threshold between copy and ring buffer implementation (default 16 samples).

-mem --memory allocate static in global state using a custom memory manager.

-ftz <n> --flush-to-zero <n> code added to recursive signals [0:no (default), 1:fabs based, 2:mask based (fastest)].

-inj <f> --inject <f> inject source file <f> into architecture file instead of compile a dsp file.

-scal --scalar generate non-vectorized code.

-inpl --in-place generates code working when input and output buffers are the same (scalar mode only).

-vec --vectorize generate easier to vectorize code.

-vs <n> --vec-size <n> size of the vector (default 32 samples).

-lv <n> --loop-variant <n> [0:fastest (default), 1:simple].

-omp --openmp generate OpenMP pragmas, activates --vectorize option.

-pl --par-loop generate parallel loops in --openMP mode.

-sch --scheduler generate tasks and use a Work Stealing scheduler, activates --vectorize option.

-ocl --opencl generate tasks with OpenCL (experimental).

-cuda --cuda generate tasks with CUDA (experimental).

-dfs --deep-first-scheduling schedule vector loops in deep first order.

-g --group-tasks group single-threaded sequential tasks together when -omp or -sch is used.

-fun --fun-tasks separate tasks code as separated functions (in -vec, -sch, or -omp mode).

-fm <file> --fast-math <file> use optimized versions of mathematical functions implemented in <file>, use 'faust/dsp/fastmath.cpp' when file is 'def'.

Block diagram options:

-ps --postscript print block-diagram to a postscript file.

-svg --svg print block-diagram to a svg file.

-sd --simplify-diagrams try to further simplify diagrams before drawing.

-f <n> --fold <n> threshold during block-diagram generation (default 25 elements).

-mns <n> --max-name-size <n> threshold during block-diagram generation (default 40 char).

-sn --simple-names use simple names (without arguments) during block-diagram generation.

-blur --shadow-blur add a shadow blur to SVG boxes.

Math doc options:

-mdoc --mathdoc print math documentation of the Faust program in LaTeX format in a -mdoc folder.

-mdlang <l> --mathdoc-lang <l> if translation file exists (<l> = en, fr, ...) .

-stripmdoc --strip-mdoc-tags strip mdoc tags when printing Faust -mdoc listings.

Debug options:

-d --details print compilation details.

-tg --task-graph print the internal task graph in dot format.

-sg --signal-graph print the internal signal graph in dot format.

-norm --normalized-form print signals in normalized form and exit.

Information options:

-h --help print this help message.

-v --version print version information and embedded backends list.

-libdir --libdir print directory containing the faust libraries.

-includedir --includedir print directory containing the faust headers.

-archdir --archdir print directory containing the faust architectures.

-dspdir --dspdir print directory containing the faust dsp libraries.

-pathslist --pathslist print the architectures and dsp library paths.

Example:

faust -a jack-gtk.cpp -o myfx.cpp myfx.dsp

SEE ALSO

Grame Faust site at: <http://faust.grame.fr>

BUGS

Please report bugs to: <https://github.com/grame-cncm/faust/issues>

AUTHOR

Copyright (C) 2002-2018, GRAME - Centre National de Creation Musicale. All rights reserved.
Version 2.12 (7 October 2018)