Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
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.
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
puretarget 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.
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.