Antescollider: Control and Signal Processing in the Same Score José Miguel Fernandez, Jean-Louis Giavitto, Pierre Donat-Bouillud
Total Page:16
File Type:pdf, Size:1020Kb
AntesCollider: Control and Signal Processing in the Same Score José Miguel Fernandez, Jean-Louis Giavitto, Pierre Donat-Bouillud To cite this version: José Miguel Fernandez, Jean-Louis Giavitto, Pierre Donat-Bouillud. AntesCollider: Control and Signal Processing in the Same Score. ICMC 2019 - International Computer Music Conference, Jun 2019, New York, United States. hal-02159629 HAL Id: hal-02159629 https://hal.inria.fr/hal-02159629 Submitted on 18 Jun 2019 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. AntesCollider: Control and Signal Processing in the Same Score José Miguel Fernandez Jean-Louis Giavitto Pierre Donat-Bouillud Sorbonne Université∗ CNRS∗ Sorbonne Université∗ ∗ STMS – IRCAM, Sorbonne Université, CNRS, Ministère de la culture [email protected] [email protected] [email protected] ABSTRACT GUI. Section4 presents the use of the system in the devel- opment of Curvatura II, a real time electroacoustic piece We present AntesCollider, an environment harnessing An- using an HOA spatialization system developed by one of tescofo, a score following system extended with a real- the authors. time synchronous programming language, and SuperCol- lider, a client-server programming environment for real- 2. BACKGROUND time audio synthesis. The environment enables the def- inition of a centralized executable score specifying com- 2.1 SuperCollider plex timelines driving sophisticated controls, audio synthe- sis and their synchronization with a performer. The audio SuperCollider [1,2] is a real-time audio synthesis and al- processing information is distributed to the SuperCollider gorithmic composition environment and programming lan- servers using the OSC protocol under the supervision of guage. It is divided into two components, as shown on the Antescofo scheduler taking care of the synchronizations Fig.1: a server, scynth, and a client, sclang, which com- with external events. Audio processing can be distributed municate using the OSC protocol [3]. The client translates over several SuperCollider servers to maximize CPU effi- the high level object oriented and functional language of ciency. We showcase the system on a new piece, Curvatura SuperCollider (see Code1) into OSC messages sent to the II for live electroacoustics. server. SuperCollider processes audio through an ordered tree of unit generators for analysis, synthesis and process- ing. It can use any number of input and output channels. 1. INTRODUCTION Unit generators are typically grouped statically in a higher AntesCollider is a library programmed in the Antescofo level processing unit, called a synth. Another server for language to provide higher level and expressive control on SuperCollider, Supernova [4], exploits multicore and mul- the SuperCollider scsynth server. The library is organized tiprocessor architectures by providing a new instruction, around a set of concurrent objects to easily create dynami- ParGroup, that parallelizes the unit generators. Super- cally audio processes and to implement them using scsynth Collider provides ways to plan and to schedule events, but servers. The motivation is to use the Antescofo language’s only refering to physical time or to a fixed musical time expressiveness to write complex electronic musical pro- that does not follow the dynamic tempo of the interpreta- cesses and synchronize them relying on the score follower tion. The specification of complex temporal relationships, capabilities of the Antescofo meta sequencer and taking especially in an interactive setting where the dynamic tim- advantages of the optimized and versatile audio synthesis ing of external events must be taken into account (synchro- dynamic capabilities of scsynth. nization), remains difficult. These shortcomings motivate The library has already been used for the production of the coupling with the Antescofo system. several electroacoustic, mixed and multimedia works, in- audio output cluding sensors, lights and video in real time. Compared to OSC sclang scynth the usual approach where the Antescofo score controls au- audio input dio processes implemented in Max (or PureData) through Figure 1. SuperCollider is split into two components: the client, sclang, messages, the resulting systems are more robust and more using a object oriented and functional language, and the server, scynth, CPU efficient. which processes the audio. Both communicate using the OSC protocol. The paper is organized as follows. Section2 gives some background information on SuperCollider and Antescofo { SinOsc.ar(440, 0, 0.1) + WhiteNoise. and its object system. Section3 is devoted to the dynamic ar(0.01) }.play; organization of audio chains, the communication between Antescofo and scsynth, the expressive control of the syn- Code 1. A simple program sclang that generates a sine at 440 Hz with thesis, some strategies to achieve load balancing, and the phase 0 and an amplitude of 0.1, and white noise at the audio rate (i.e. real time monitoring of the system through a dedicated ar), adds them, and plays them. Sclang implements the evaluation of this expression by sending OSC messages to the scsynth server. Copyright: ©2018 José Miguel Fernandez et al. This is an open-access 2.2 Antescofo article distributed under the terms of the Creative Commons Attribution License 3.0 Unported, which permits unrestricted use, distribution, and Antescofo [5] is a score following system combining a reproduction in any medium, provided the original author and source are listening machine with a synchronous reactive program- credited. ming language. Antescofo is embedded into Max/MSP [6] or Puredata [7] as an external. An Antescofo program is form computations that last over time. A method can also an augmented score using the dedicated programming lan- be simultaneously executed on all instances of a given ac- guage to define the musical events to follow, the electronic tor (e.g., for synchronization purposes), to trigger arbitrary reactions to the events, and the synchronization between reactions when some logical expression becomes true, or computed actions and human performers. In the following to kill an instance (which may trigger some instance han- excerpt of Antescofo code, the first line defines a musical dler). All actor’s computations are subject to synchroniza- event, a note with pitch C4 and duration of half a beat. tion with the musician or on a variable, they can be per- The following lines are actions that are launched when the formed on a given tempo, etc. The concurrency between event is recognized: rcvr1... is a message sent to re- method, process, synchronization, reaction and handler in- ceiver rcvr1 in Max or Puredata, followed after a delay vocations, is managed implicitly and efficiently by the An- of half a beat (relative to the tempo of the performer) by a tescofo run-time system [12]. message to the receiver print. Audio in Antescofo. Antescofo is usually used in conjunc- NOTE C4 1/2 tion with Max/MSP or Puredata for the audio synthesis part rcvr1 harm1 60 87 0.5 and is directly embedded into it. Compared to Max/MSP 1/2 p r i n t HELLO and Puredata, Supercollider can easily modify the audio The system decodes an input audio stream to retrieve the graph during execution which is a requirement of our tar- musical events specified in the augmented score but may get applications. Composers have also used Csound [13] also process sensors input data (e.g., accelerometers, kinect, with Antescofo and have created a shallow layer in the midi input). Beside audio processing, it has been used to Antescofo language to control it [14]. Csound is a well control video displays, light, and mechatronics, using Max known audio processing language but Supercollider pro- messages or OSC messages [3]. Antescofo is used at Ir- vides a more modern implementation, especially with Su- cam and elsewhere for the realization of various mixed perNova, which is able to exploit hardware parallelism. music pieces. The underlying technology is also used in In [15, 16], the Faust language [17] as well as custom C++ Metronaut, 1 an automatic accompaniment system for the audio effects are natively embedded into Antescofo and au- general audience. dio processing graphs can be created and modified on the Antescofo handles complex timelines with musical time spot. Further developments are required to make this ex- (in beats) and physical time (in seconds). Control of au- tension more robust and usable at a large scale. dio synthesis can be expressed using curves (piecewise de- fined functions) that adapt to the tempo. The way the sys- 3. BRIDGING ANTESCOFO AND tem synchronizes with the human performer is explicitly SUPERCOLLIDER: ANTESCOLLIDER specified by synchronization strategies [8]. For instance, in the loose synchronization strategy, the scheduling of the AntesCollider uses Antescofo to describe the synchroniza- actions follows the real-time changes of the tempo of the tion strategies and the timeline for a musical piece, and musician, whereas in the tight synchronization strategy, ac- SuperCollider, for the audio synthesis and processing, as tions are triggered taking into account the occurrence of the shown on Fig.2. The audio processing routing is defined nearest event in the past. The choice of a relevant synchro- in the Antescofo score and sent directly to scynth using nization depends on the musical context. OSC. audio output OSC Actors in Antescofo. The notion of object is now wide- audio input Antescofo scynth spread in programming. This concept is used to organize audio input code by gathering values together into a state and mak- score: ing the possible interactions with this state explicit through the notion of methods.