Albert Graef edited this page Feb 22, 2018 · 3 revisions

Using Pure with Faust

Yann Orlarey's Faust is a functional programming language for real-time sound processing and synthesis developed at Grame and distributed as GPL'ed software. With Faust you can develop signal processing algorithms in a high-level functional language, but still achieve a performance comparable to carefully handcrafted C routines.

Pure provides tight integration with Faust through its built-in Faust interface which can be used both to inline Faust code in Pure scripts and to load external Faust modules in LLVM bitcode format dynamically at runtime.

There's also a separate pure-faust addon module which can be used either with the built-in Faust interface or with external Faust modules available in shared library format.

Getting Faust

To work with Faust you'll need a Faust installation, of course. You basically have the following options there:

  • Use the mainline Faust compiler. This is required to build Faust modules for an abundance of different target environments, including Pure, and to utilize Pure's built-in Faust interface and Faust inlining capabilities.
  • Use FaustLive, Grame's stand-alone graphical frontend to the Faust compiler, which doesn't need any external compiler toolchain and lets you compile and run Faust dsps on the fly. This is a very nice environment for rapid prototyping, but unfortunately it can't export binary dsp modules for direct use with Pure right now.
  • Use Grame's online compiler which can compile Faust dsps to an abundance of different targets, including the pure target which can be used with the pure-faust addon module. (Right now this target only works for Linux, however.)

The sources are available at Grame. We also provide some ready-made packages and ports for Linux, Mac OS X and Windows in the repositories listed below.

  • Arch Linux: Thanks to the work of David Runge, the faust package is available in the standard Arch repositories now. We also offer a few additional packages (faust-git, faustlive-git) in the AUR which are built from current git sources, and are also available in binary form through the Pure AUR repositories at Bitbucket, please check the Pure on Arch Linux wiki page for details.

  • Ubuntu: These packages are included in our Pure PPAs in Launchpad, please check the Pure on Ubuntu wiki page for details.

  • Mac OS X: The faust, faust-devel, and faustlive-devel ports can be installed from MacPorts which also hosts a complete set of Pure packages, please check the Pure on Mac OS X wiki page for details.

  • Windows: Packages for msys2/mingw as well as a corresponding PKGBUILD are available at https://github.com/agraef/faust-msys2. In addition, there is a (32 bit) MSI package ready to be used along our Pure MSI package for Windows, please check the Pure on Windows wiki page for details.

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.