Softwares

Faust

Faust (Functional Audio Stream) is a functional programming language for sound synthesis and audio processing with a strong focus on the design of synthesizers, musical instruments, audio effects, etc. Faust targets high-performance signal processing applications and audio plug-ins for a variety of platforms and standards.

The core component of Faust is its compiler. It allows to “translate” any Faust digital signal processing (DSP) specification to a wide range of non-domain specific languages such as C++, C, LLVM bit code, WebAssembly, Rust, etc. In this regard, Faust can be seen as an alternative to C++ but is much simpler and intuitive to learn.

Thanks to a wrapping system called “architectures,” codes generated by Faust can be easily compiled into a wide variety of objects ranging from audio plug-ins to standalone applications or smartphone and web apps, etc.

More about Faust

FloPoCo

FloPoCo is a generator of arithmetic cores (Floating-Point Cores, but not only) for FPGAs (but not only).

The first motto of FloPoCo is that arithmetic on FPGAs should not mimick processor arithmetic. By designing radically new operators, one may obtain more accurate results with less hardware in less time. This thesis was first detailed in this document.

The second motto of FloPoCo is to enable computing just right. All FloPoCo operators are

  1. fully parameterized in precision, so that your application may use just the precision it needs, and
  2. accurate to the last bit, so that your wires don’t carry meaningless noise.

Internally, FloPoCo operators are carefully designed to ensure that no bit is computed that is not useful to the final result.

FloPoCo is not a library of operators, but a generator of operators written in C++. It inputs operator specifications, and outputs synthesizable VHDL.

More about FloPoCo

Comments are closed.