I, Mykle be presenting a workshop on FAUST, the digital signal
processing language, this July 10th. Some of you have already
expressed interest in learning more about this exciting new source
of bleeps and bloops!
Faust is a functional language for describing signal-processing networks.
It has obvious applications in audio, but also has great potential for
software-defined radio, subatomic physics, or any other situation where
one might want to efficiently analyze streams of information.
Faust uses a floating-point paradigm that avoids many of the pitfalls of
digitization; it operates on streams of floating point or integer values.
Normalization and digital headroom issues can usually be ignored until
the final output stage.
The Faust compiler is mathematically deep; it employs Lambda calculus
to analyze and reduce Faust code, producing well-optimized output in
a variety of languages including C, C++ and the LLVM compiler suite.
Researchers at Stanford University’s reaped huge gains in the performance
of their Synthesis Toolkit libraries after translating them from
hand-optimized C++ to simpler, high-level Faust!
Because the entire Stanford Synthesis Toolkit is ported to Faust, there’s
a cornucopia of easy to use processors and signal generators available:
oscillators, compressors, filters, translators, delays, simulations of
analog circuits and vacuum tubes, and more.
I plan to demonstrate Faust in the context of its companion app,
FaustLive, which is an IDE for Faust. If there’s interest, we could
get into how to cross-compile Faust to any of the many different
audio environments it supports: PD, VST, CoreAudio, WebAudio, et
I decided to teach this workshop in order to give myself an excuse
to dive deeper into the language. I still am by no means an expert
Faust programmer, nor am I a very deep mathematician, or well-schooled
in the higher arts of digital signal processing. But if I can bring
you all quickly up to my level, I’m hoping you can all take it
from there. =) Together we will learn how to construct useful
networks of signal processing components using a functional,
concise and curious text-based language, instead of having to draw
giant diagrams of interconnected black boxes — although we will get
diagrams too, for free!
Attendees should bring a laptop with FaustLive installed; I’ll provide
installation instructions. If you’re interested, please let me know
your target operating system so I can be sure it’s covered.
I also encourage you to bring decent computer speakers if possible,
the better to hear what Faust can do.