A synchronous embedding of Antescofo, a domain-specific language for interactive mixed music

Antescofo is recently developed software for musical score following and mixed music: it automatically, and in real-time, synchronizes electronic instruments with a musician playing on a classical instrument. Therefore, it faces some of the same major challenges as embedded systems. The system provides a programming language used by composers to specify musical pieces that mix interacting electronic and classical instruments. This language is developed with and for musicians and it continues to evolve according to their needs. Yet its semantics has only recently been formally defined. This paper presents a synchronous semantics for the core language of Antescofo and an alternative implementation based on an embedding inside an existing synchronous language, namely ReactiveML. The semantics reduces to a few rules, is mathematically precise and leads to an interpretor of only a few hundred lines. The efficiency of this interpretor compares well with that of the actual implementation: on all musical pieces we have tested, response times have been less than the reaction time of the human ear. Moreover, this embedding permitted the prototyping of several new programming constructs, some of which are described in this paper.

[1]  James McCartney,et al.  Rethinking the Computer Music Language: SuperCollider , 2002, Computer Music Journal.

[2]  William M. Hartmann,et al.  Psychoacoustics: Facts and Models , 2001 .

[3]  Marc Pouzet,et al.  A modular memory optimization for synchronous data-flow languages: application to arrays in a lustre compiler , 2012, LCTES 2012.

[4]  Stephen A. Edwards,et al.  The synchronous languages 12 years later , 2003, Proc. IEEE.

[5]  Louis Mandel,et al.  Interactive Programming of Reactive Systems , 2009, Electron. Notes Theor. Comput. Sci..

[6]  Hugo Fastl,et al.  Psychoacoustics: Facts and Models , 1990 .

[7]  Jean-Louis Giavitto,et al.  Operational semantics of a domain specific language for real time musician–computer interaction , 2013, Discret. Event Dyn. Syst..

[8]  F. Jacquemard,et al.  Formalisation des relations temporelles entre une partition et une performance musicale dans un contexte d’accompagnement automatique , 2011 .

[9]  Gérard Berry,et al.  The Esterel Synchronous Programming Language: Design, Semantics, Implementation , 1992, Sci. Comput. Program..

[10]  Perry R. Cook,et al.  ChucK: a programming language for on-the-fly, real-time audio synthesis and multimedia , 2004, MULTIMEDIA '04.

[11]  Paul Hudak,et al.  Functional reactive animation , 1997, ICFP '97.

[12]  Marc Pouzet,et al.  ReactiveML: a reactive extension to ML , 2005, PPDP.

[13]  Miller S. Puckette,et al.  Combining Event and Signal Processing in the MAX Graphical Programming Environment , 1991 .

[14]  Arshia Cont,et al.  Antescofo: Anticipatory Synchronization and control of Interactive parameters in Computer Music , 2008, ICMC.

[15]  Edward A. Lee,et al.  Execution Strategies for PTIDES, a Programming Model for Distributed Embedded Systems , 2009, 2009 15th IEEE Real-Time and Embedded Technology and Applications Symposium.