By: skinny

2016-07-06 10:19:43


Instructor: Mykle Hansen
Sunday, July 10th, 1-5pm at
Ctrl-H, 7608 N. Interstate, Portland, OR 97217
All ages! Free! (Donate a bit to Ctrl-H if you can)
Bring a laptop, headphones, and ideally a pre-installed copy of FaustLive. /faust_2016

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 cetera.

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.

Back to archive index