Abstract : Faust is a functional programming language dedicated to the specification of executable monorate synchronous mu- sical applications. To extend Faust capabilities to domains such as spectral processing, we introduce here a multi- rate extension of the core Faust language. The key idea is to link rate changes to data structure manipulation op- erations: creating a vector-valued output signal divides the rate of input signals by the vector size, while serializing vectors multiplies rates accordingly. This interplay be- tween vectors and rates is made possible in the language static semantics by the introduction of dependent types. We present a typing semantics, a denotational semantics and a correctness theorem that show that this extension preserves the language synchonous characteristics. This new design is under implementation in the Faust compiler.
Pierre Jouvelot, Yann Orlarey. Dependent Vector Types for Multirate Faust. Proceedings of the Sound and Music Computing Conference, 2010, SMC'10 2010, pp.Pages 345--352. ⟨hal-00628600⟩