Skip to Main content Skip to Navigation
Journal articles

Synchronous programming in audio processing

Abstract : The adequacy of a programming language to a given software project or application domain is often considered a key factor of success in software development and engineering, even though little theoretical or practical information is readily available to help make an informed decision. In this paper, we address a particular version of this issue by comparing the adequacy of general-purpose synchronous programming languages to more domain-specific languages (DSL) in the field of computer music. More precisely, we implemented and tested the same lookup table oscillator example program, one of the most classical algorithms for sound synthesis, using a selection of significant synchronous programming languages, half of which designed as specific music languages – Csound, Pure Data, SuperCollider, ChucK, Faust – and the other half being general synchronous formalisms – Signal, Lustre, Esterel, Lucid Synchrone and C with the OpenMP Stream Extension (Matlab/Octave is used for the initial specification). The advantages of these two approaches are discussed, providing insights to language designers and possibly software developers of both communities regarding programming languages design for the audio domain.
Complete list of metadata

Cited literature [100 references]  Display  Hide  Download

https://hal-mines-paristech.archives-ouvertes.fr/hal-01540047
Contributor : Claire Medrala Connect in order to contact the contributor
Submitted on : Thursday, June 15, 2017 - 4:32:51 PM
Last modification on : Monday, May 3, 2021 - 8:44:04 AM
Long-term archiving on: : Wednesday, December 13, 2017 - 1:16:22 PM

File

A-554.pdf
Files produced by the author(s)

Identifiers

Citation

Karim Barkati, Pierre Jouvelot. Synchronous programming in audio processing. ACM Computing Surveys, Association for Computing Machinery, 2013, 46 (2), pp.24. ⟨10.1145/2543581.2543591⟩. ⟨hal-01540047⟩

Share

Metrics

Record views

392

Files downloads

777