Programming languages for computer music synthesis, performance, and composition
ACM Computing Surveys (CSUR)
Statecharts: A visual formalism for complex systems
Science of Computer Programming
SIGNAL: A declarative language for synchronous programming of real-time systems
Proc. of a conference on Functional programming languages and computer architecture
LUSTRE: a declarative language for real-time programming
POPL '87 Proceedings of the 14th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Reactive C: an extension of C to program reactive systems
Software—Practice & Experience
Temporal verification of reactive systems: safety
Temporal verification of reactive systems: safety
Proceedings of the first ACM SIGPLAN international conference on Functional programming
Hardware-software co-design of embedded systems: the POLIS approach
Hardware-software co-design of embedded systems: the POLIS approach
Lava: hardware design in Haskell
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
The sugarCubes tool box: a reactive Java framework
Software—Practice & Experience
ECL: a specification environment for system-level design
Proceedings of the 36th annual ACM/IEEE Design Automation Conference
Concurrent programming in ML
Domain-specific languages: an annotated bibliography
ACM SIGPLAN Notices
Synchronous Programming of Reactive Systems
Synchronous Programming of Reactive Systems
A Calculus of Communicating Systems
A Calculus of Communicating Systems
The Verilog Hardware Description Language, 5th Edition
The Verilog Hardware Description Language, 5th Edition
OpenMP: An Industry-Standard API for Shared-Memory Programming
IEEE Computational Science & Engineering
IEEE Transactions on Software Engineering
Translation Validation for Synchronous Languages
ICALP '98 Proceedings of the 25th International Colloquium on Automata, Languages and Programming
The ESTEREL Synchronous Programming Language and its Mathematical Semantics
Seminar on Concurrency, Carnegie-Mellon University
Proceedings of the International Workshop on Automatic Verification Methods for Finite State Systems
A Verified Hardware Synthesis of Esterel Programs
DIPES '00 Proceedings of the IFIP WG10.3/WG10.4/WG10.5 International Workshop on Distributed and Parallel Embedded Systems: Architecture and Design of Distributed Embedded Systems
StreamIt: A Language for Streaming Applications
CC '02 Proceedings of the 11th International Conference on Compiler Construction
From simulink to SCADE/lustre to TTA: a layered approach for distributed embedded applications
Proceedings of the 2003 ACM SIGPLAN conference on Language, compiler, and tool for embedded systems
Verification of Reactive Systems: Formal Methods and Algorithms
Verification of Reactive Systems: Formal Methods and Algorithms
The SndObj Sound Object Library
Organised Sound
Syntactical and semantical aspects of Faust
Soft Computing - A Fusion of Foundations, Methodologies and Applications
ReactiveML: a reactive extension to ML
PPDP '05 Proceedings of the 7th ACM SIGPLAN international conference on Principles and practice of declarative programming
jMax: An Environment for Real-Time Musical Applications
Computer Music Journal
Computer-Assisted Composition at IRCAM: From PatchWork to OpenMusic
Computer Music Journal
SAOL: The MPEG-4 Structured Audio Orchestra Language
Computer Music Journal
When and how to develop domain-specific languages
ACM Computing Surveys (CSUR)
CLAM: a framework for efficient and rapid development of cross-platform audio applications
MULTIMEDIA '06 Proceedings of the 14th annual ACM international conference on Multimedia
The Technology of Computer Music
The Technology of Computer Music
Aspect-oriented programming for reactive systems: Larissa, a proposal in the synchronous framework
Science of Computer Programming - Special issue: Foundations of aspect-oriented programming
Computer Music Journal
NIME '07 Proceedings of the 7th international conference on New interfaces for musical expression
A Survey and Taxonomy of GALS Design Styles
IEEE Design & Test
A synchronous language at work: the story of Lustre
MEMOCODE '05 Proceedings of the 2nd ACM/IEEE International Conference on Formal Methods and Models for Co-Design
An overview of pwgl, a visual programming environment for music
Computer Music Journal
The Theory and Technique of Electronic Music
The Theory and Technique of Electronic Music
On the Semantics of UML/MARTE Clock Constraints
ISORC '09 Proceedings of the 2009 IEEE International Symposium on Object/Component/Service-Oriented Real-Time Distributed Computing
Visual Lisp/CLOS programming in OpenMusic
Higher-Order and Symbolic Computation
Designing Embedded Systems with the SIGNAL Programming Language: Synchronous, Reactive Specification
Designing Embedded Systems with the SIGNAL Programming Language: Synchronous, Reactive Specification
A stream-computing extension to OpenMP
Proceedings of the 6th International Conference on High Performance and Embedded Architectures and Compilers
Dependent vector types for data structuring in multirate Faust
Computer Languages, Systems and Structures
Multi-task Implementation of Multi-periodic Synchronous Programs
Discrete Event Dynamic Systems
The SuperCollider Book
Hi-index | 0.00 |
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 article, we address a particular version of this issue by comparing the adequacy of general-purpose synchronous programming languages to more Domain-Specific Languages (DSLs) 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.