Back To Schedule
Monday, November 15 • 22:00 - 22:50
(Replay) Why the Future of Audio Is Functional

Log in to save this to your schedule, view media, leave feedback and see who's attending!

Please note that the recordings on Zoom are Dual Mono and not Stereo - some pre-recorded sessions have been uploaded to YouTube to preserve the independent dual channel audio, but some sessions may still be affected.

We'll start with a hypothesis that the way we approach writing modern audio software and DSP will significantly change in the near future. In particular, the imperative, object oriented programming model that dominates modern audio software will be replaced by a more declarative, functional programming model.

We'll explore this hypothesis with some common approaches to writing audio DSP using C++, demonstrating what works and what doesn't. We'll note that every digital signal is a function of time, and often must be stateful: we need signals that change over time. Here, the object oriented model in C++ can be quite helpful, but carries with it complexity that limits our ability to compose larger processes from smaller processes, and engages the author with the "how" of the system when only the "what" really matters.

I'll then introduce Elementary, an audio engine, runtime, and framework for writing audio apps in a functional, declarative model with JavaScript. I'll show what it looks like to work with Elementary, and explain how the runtime maps this model onto the underlying audio engine to deliver a fast and intuitive approach to writing and delivering audio applications.


avatar for Nick Thompson

Nick Thompson

Nicholas Thompson
Nick Thompson is an audio software developer, contractor, and consultant. He is the owner of a small audio plugin company, Creative Intent, and the author of Elementary Audio and React-JUCE. Nick's interest lies in tools that enable and promote creativity and simplicity, both in music... Read More →

Monday November 15, 2021 22:00 - 22:50 GMT
Online 2
  Online Only
  • Level Beginner, Intermediate, Advanced