Join Us For ADC23 - London - 13-15 November 2023
More Info: https://audio.dev/
@audiodevcon
Using Faust in JUCE Projects - Julius Smith - ADCx SF
Faust (Functional AUdio STream) is a domain-specific functional programming language for sound synthesis and audio processing (https://faustdoc.grame.fr). Faust development is routinely an order of magnitude faster to write and debug than C++, and the run-time performance is usually within a factor of two. Development is further facilitated by the large Faust Libraries collection of signal-processing functions (https://faustlibraries.grame.fr). Since Faust compiles to C++, it is natural to integrate C++ header files generated by the Faust compiler into a JUCE project or the like. A limitation encountered is that Faust's powerful pattern-matching facility requires its "macro arguments" to be bound at compile time, i.e., not signals or controller parameters. An example is the filter order in Faust's filter-design functions. When these arguments need to change at run time, it can make more sense to translate Faust to C++, so that the recursive pattern-matching in Faust is replaced by recursive C++ functions. Experience using ChatGPT-3.5 and ChatGPT-4 for this purpose and others will be summarized.
_
Julius Smith
Professor Emeritus of Music and by courtesy Electrical Engineering, Stanford University, based at the Center for Computer Research in Music and Acoustics (CCRMA). Activities include teaching courses in signal processing and music technology, graduate student advising, and research in signal processing applied to music and audio. https://ccrma.stanford.edu/~jos/
Edited by Digital Medium Ltd - online.digital-medium.co.uk
_
Organized and produced by JUCE: https://juce.com/
_
Special thanks to the ADC Team:
Sophie Carus
Derek Heimlich
Andrew Kirk
Bobby Lombardi
Tom Poole
Ralph Richbourg
Jim Roper
Jonathan Roper
#audiodevcon #audiodev #midi