Skip to Main content Skip to Navigation
Journal articles

Dependent vector types for data structuring in multirate Faust

Abstract : Faust is a functional programming language dedicated to the specification of ex- ecutable monorate synchronous musical applications. To extend Faust capabil- ities to important domains such as FFT-based spectral processing, we introduce here a multirate extension of the core Faust language. The novel idea is to link rate changes to data structure manipulation operations. Creating a vector-valued output signal divides the rate of input signals by the vector size, while serializ- ing vectors multiplies rates accordingly. As duals to vectors, we also introduce record-like data structures, which are used to gather data but do not change sig- nal rates. This interplay between data structures 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 correctness theorems that show that this data structuring/multirate extension preserves the language synchronous characteristics. This new design is under implementation in the Faust compiler.
Complete list of metadatas
Contributor : Claire Medrala <>
Submitted on : Monday, October 3, 2011 - 4:05:49 PM
Last modification on : Saturday, January 9, 2021 - 5:51:16 PM



Pierre Jouvelot, Yann Orlarey. Dependent vector types for data structuring in multirate Faust. Computer Languages, Systems and Structures, Elsevier, 2011, Volume 37 (Issue 3), pp.113-131. ⟨10.1016/⟩. ⟨hal-00628564⟩



Record views