2016
Signal Rate Inference for Multi-Dimensional Faust
We introduce a new signal-level, type-and rate-based semantic framework for describing a multi-rate version of the functional , domain-specific Faust language, dedicated to audio signal processing, and here extended to support array-valued samples. If Faust is usually viewed as a formalism for combining signal processors, which are expressions mapping input signals to output signals, we provide here the first formal, lower-level semantics for Faust based on sig... Lire la suite
We introduce a new signal-level, type-and rate-based semantic framework for describing a multi-rate version of the functional , domain-specific Faust language, dedicated to audio signal processing, and here extended to support array-valued samples. If Faust is usually viewed as a formalism for combining signal processors, which are expressions mapping input signals to output signals, we provide here the first formal, lower-level semantics for Faust based on signals instead. In addition to its interest in understanding the inner workings of the Faust compiler, which uses symbolic evaluation of signal expressions, this approach turns out to be useful when introducing a language extension targeting multi-rate and multi-dimensional (array-valued) processing. More precisely, we provide (1) new syntax and dynamic semantics for (recursive) Faust-based signals, (2) a type and, more interestingly, rational rate static semantics and (3) a new rate inference algorithm, together with its soundness and (relative) completeness theorems. Preliminary experiments in a prototype implementation of this extension in the Faust compiler are underway.
Mots-clés :
Faust, Audio signal processing, Type systems