Mots clés
audio communication compiler composition dataflow Domain Specific Language DSP ecosystem Elody FAUST functional graphic inscore interaction language lock-free MIDI MidiShare music music score musicale musique operating processing programming real-time score signal synchronization systems
2011 |
Jouvelot, Pierre; Orlarey, Yann Dependent vector types for data structuring in multirate Faust (Journal Article) 2011. (Abstract | Links | BibTeX | Étiquettes: computing, Denotational, Dependent, Domainspecificlanguages, multirate, semantics, Static, Synchronoussignalprocessing, systems, type) @article{ Jouv11 ,
title = {Dependent vector types for data structuring in multirate Faust}, author = {Pierre Jouvelot and Yann Orlarey}, editor = {Elsevier}, url = {faust-elsevier2011.pdf}, year = {2011}, date = {2011-01-01}, booktitle = {Computer Languages, Systems & Structures}, 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.}, keywords = {computing, Denotational, Dependent, Domainspecificlanguages, multirate, semantics, Static, Synchronoussignalprocessing, systems, type}, pubstate = {published}, tppubtype = {article} } 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.
|