2019

The slow but steady shift away from printed text into digital media has not yet modified the working habits of chamber music practitioners. If most instrumentalists still heavily rely on printed scores, audiences increasingly access notated music online, with printed scores synced to an audio recording on youtube for instance. This paper proposes to guide the listener and/or the performer with a cursor scrolling on the page with INScore, in order to examine the... Lire la suite…

The slow but steady shift away from printed text into digital media has not yet modified the working habits of chamber music practitioners. If most instrumentalists still heavily rely on printed scores, audiences increasingly access notated music online, with printed scores synced to an audio recording on youtube for instance. This paper proposes to guide the listener and/or the performer with a cursor scrolling on the page with INScore, in order to examine the consequences of representing time in this way as opposed to traditional bars and beats notation. In addition to its score following interest for pedagogy and analysis, the networking possibilities of today's ubiquitous technologies reveal interesting potentials for works in which the presence of a conductor is required for synchronization between performers and/or with fixed media (film or tape). A Raspberry Pi-embedded prototype for animated/distributed notation is presented here as a score player (such as the Decibel ScorePlayer, or SmartVox), in order to send and synchronize mp4 scores to any browser capable device connected to the same WIFI network. The corpus will concern pieces edited at BabelScores, an online library for contemporary classical music. The BabelScores pdf works, composed in standard engraving softwares, will be animated using INScore and video editors, in order to find strategies for animation or dynamic display of the unfolding of time, originally represented statically on the page.. L'abandon lent mais certain du texte imprimé au profit des médias numériques n'a pas encore modifié les habitudes de travail des instrumentistes en musique de chambre. Si la plupart s'appuie encore fortement sur les partitions imprimées, le public a de plus en plus accès aux partitions en ligne, synchronisées sur un enregistrement audio sur youtube par exemple. Cet article propose de guider l'auditeur et/ou l'interprète à l'aide d'un curseur défilant sur la page (avec INScore), afin d'examiner ce qu'implique de représenter le temps de cette manière, par opposition à la notation traditionnelle des mesures rythmiques du solfège. Outre son intérêt pour la pédagogie et l'analyse, les possibilités de mise en réseau des technologies omniprésentes d'aujourd'hui révèlent des potentiels intéressants pour des œuvres dans lesquelles la présence d'un chef d'orchestre est requise pour la synchronisation entre interprètes et/ou avec des supports fixes (film ou bande). Un prototype pour la notation animée/distribuée intégré sur Raspberry Pi est présenté ici comme lecteur de partition (tel que le Decibel ScorePlayer ou SmartVox), afin d’envoyer et de synchroniser les partitions mp4 à n’importe quel appareil compatible avec un navigateur connecté au même réseau WIFI. Le corpus concernera des pièces éditées sur BabelScores, une bibliothèque en ligne de musique classique contemporaine. Les œuvres pdf de BabelScores, composées de logiciels de gravure standard, seront animées à l'aide d'éditeurs INScore et vidéo, afin de trouver des stratégies d'animation ou d'affichage dynamique du déroulement du temps, initialement représentées de manière statique sur la page.

Jonathan Bell, Dominique Fober, Daniel Fígols-Cuevas, Pedro Garcia-Velasquez

Mots-clés :
Networked music performance, Music publishing, Embedded system, Distributed scores, Animated notation

Un langage basé sur des arbres pour la description de partitions musicales.

Journées d'Informatique Musicale - JIM'19, 2019, Bayonne, France

Le travail présenté s’inscrit dans le projet INScore, un environnement pour la conception de partition interactives augmentées, tourné vers des usages non conventionnels de la notation et de la représentation de la musique, sans exclure pour autant les approches classiques. Cet environnement est entièrement pilotable par des messages Open Sound Control [OSC]. Un langage de script, basé sur une version textuelle étendue de ces messages permet de concevoi... Lire la suite…

Le travail présenté s’inscrit dans le projet INScore, un environnement pour la conception de partition interactives augmentées, tourné vers des usages non conventionnels de la notation et de la représentation de la musique, sans exclure pour autant les approches classiques. Cet environnement est entièrement pilotable par des messages Open Sound Control [OSC]. Un langage de script, basé sur une version textuelle étendue de ces messages permet de concevoir des partitions sous forme modulaire et incrémentale. Cet article présente une révision majeure de ce langage de script, fondée sur la description et la manipulation d’arbres.

Dominique Fober, Yann Orlarey, Stéphane Letz, Romain Michon

Mots-clés :
INScore, Partition, Musique, Langage, OSC

2018

WAP: Ideas for a Web Audio Plug-in Standard

Web Audio Conf, Sep 2018, Berlin, France

Several native audio plug-in formats are popular today including Steinberg's VST, Apple's Audio Units, Avid's AAX and the Linux audio community's LV2. Although the APIs are different, all exist to achieve more or less the same thing-represent an instrument or audio effect and allow it to be loaded by a host application. In the Web Audio API such a high-level audio plug-in entity does not exist. With the emergence of web-based audio software such as digital audi... Lire la suite…

Several native audio plug-in formats are popular today including Steinberg's VST, Apple's Audio Units, Avid's AAX and the Linux audio community's LV2. Although the APIs are different, all exist to achieve more or less the same thing-represent an instrument or audio effect and allow it to be loaded by a host application. In the Web Audio API such a high-level audio plug-in entity does not exist. With the emergence of web-based audio software such as digital audio workstations (DAWs), it is desirable to have a standard in order to make Web Audio instruments and effects interoperable. Since there are many ways of developing for Web Audio, such a standard should be flexible enough to support different approaches, including using a variety of programming languages. New functionality that is enabled by the web platform should be available to plug-ins written in different ways. To this end, several groups of developers came together to make their work compatible, and this paper presents the work achieved so far. This includes the development of a draft API specification, a small preliminary SDK, online plug-in validators and a set of examples written in JavaScript. These simple, proof of concept examples show how to discover plug-ins from repositories, how to instantiate a plug-in and how to connect plug-ins together. A more ambitious host has also been developed to validate the WAP standard: a virtual guitar "pedal board" that discovers plug-ins from multiple remote repositories, and allows the musician to chain pedals and control them via MIDI.

Web Audio et Web Sémantique agrégées dans le navigateur pour de l'indexation

Michel Buffa, Jerome Lebrun, Jari Kleimola, Oliver Larkin, Guillaume Pellerin, Stéphane Letz

Towards an open Web Audio plug-in standard

WWW2018 - TheWebConf 2018 : The Web Conference, 27th International World Wide Web Conference, Mar 2018, Lyon, France. ⟨10.1145/3184558.3188737⟩

Web Audio is a recent W3C API that brings the world of computer music applications to the browser. Although developers have been actively using it since the first beta implementations in 2012, the number of web apps built using Web Audio API cannot yet compare to the number of commercial and open source audio software tools available on native platforms. Many of the sites using this new technology are of an experimental nature or are very limited in their scope... Lire la suite…

Web Audio is a recent W3C API that brings the world of computer music applications to the browser. Although developers have been actively using it since the first beta implementations in 2012, the number of web apps built using Web Audio API cannot yet compare to the number of commercial and open source audio software tools available on native platforms. Many of the sites using this new technology are of an experimental nature or are very limited in their scope. While JavaScript and Web standards are increasingly flexible and powerful, C and C++ are the languages most often used for real-time audio applications and domain specific languages such as FAUST facilitate rapid development with high performance. Our work aims to create a continuum between native and browser based audio app development and to appeal to programmers from both worlds. This paper presents our proposal including guidelines and proof of concept implementations for an open Web Audio plug-in standard-essentially the infrastructure to support high level audio plug-ins for the browser.

Michel Buffa, Jerome Lebrun, Jari Kleimola, Oliver Larkin, Stephane Letz

Mots-clés :
Web Standards, WebAudio, Audio Effects and Instruments, Plug-in Architecture

This paper introduces the FAUST Physical Modeling Library, an environment to create physical models of musical instruments in a modular way in the FAUST programming language. Low and high level elements can be combined to implement existing or completely novel instruments. Various examples of physical models are provided. The combined use of mesh2faust, a tool to generate FAUST physical models from 3D drawings, and of the FAUST Physical Modeling Library is also... Lire la suite…

This paper introduces the FAUST Physical Modeling Library, an environment to create physical models of musical instruments in a modular way in the FAUST programming language. Low and high level elements can be combined to implement existing or completely novel instruments. Various examples of physical models are provided. The combined use of mesh2faust, a tool to generate FAUST physical models from 3D drawings, and of the FAUST Physical Modeling Library is also demonstrated through the implementation of a marimba physical model.

Romain Michon, Julius Smith, Chris Chafe, Ge Wang, Matthew Wright

Mots-clés :
FAUST, Ecosystem, DSP

This paper demonstrates how FAUST, a functional programming language for sound synthesis and audio processing, can be used to develop efficient audio code for the Web. After a brief overview of the language, its compiler and the architecture system allowing to deploy the same program as a variety of targets, the generation of WebAssembly code and the deployment of specialized WebAudio nodes will be explained. Several use cases will be presented. Extensive bench... Lire la suite…

This paper demonstrates how FAUST, a functional programming language for sound synthesis and audio processing, can be used to develop efficient audio code for the Web. After a brief overview of the language, its compiler and the architecture system allowing to deploy the same program as a variety of targets, the generation of WebAssembly code and the deployment of specialized WebAudio nodes will be explained. Several use cases will be presented. Extensive benchmarks to compare the performance of native and WebAssembly versions of the same set of DSP have be done and will be commented

Stéphane Letz, Yann Orlarey, Dominique Fober

Mots-clés :
Audio, Compilation, Domain Specific Language, DSP, FAUST, Signal processing, Webassembly, Webaudio

An Overview of the FAUST Developer Ecosystem

International Faust Conference, 2018, Mainz, Germany

The FAUST language has been designed to provide developers an alternative to C/C++ code, to easily develop and deploy DSP algorithms, effects, instruments etc. The ecosystem is composed of the language and its compiler, as well as different components that help test, benchmark and optimize, and run the resulting code on a large variety of platforms. In this paper we present various architectures files, optimization and testing tools, that have been developed ov... Lire la suite…

The FAUST language has been designed to provide developers an alternative to C/C++ code, to easily develop and deploy DSP algorithms, effects, instruments etc. The ecosystem is composed of the language and its compiler, as well as different components that help test, benchmark and optimize, and run the resulting code on a large variety of platforms. In this paper we present various architectures files, optimization and testing tools, that have been developed over the years as part of the FAUST ecosystem, in order to expand the use of the compiler on various targets, and help developers optimize their DSP code. Some of them were publicly announced and can help when deploying DSPs, some are more experimental to be tested by more adventurous developers.

Stéphane Letz, Yann Orlarey, Dominique Fober

Mots-clés :
Faust, Ecosystem, DSP

Blender2faust: from drawn 3d objects to physically based sound models

Sound and Music Computing Conference, 2018, Limassol, Cyprus

Finite Element Analyses (FEA) was used to predict the resonant modes of the Tsar Kolokol, a 200 ton fractured bell that sits outside the Kremlin in Moscow. Frequency and displacement data informed a physical model implemented in the Faust programming language (Functional Audio Stream). The authors hosted a concert for Tsar bell and Carillon with the generous support of Meyer Sound and a University of Michigan bicentennial grant. In the concert, the simulated Ts... Lire la suite…

Finite Element Analyses (FEA) was used to predict the resonant modes of the Tsar Kolokol, a 200 ton fractured bell that sits outside the Kremlin in Moscow. Frequency and displacement data informed a physical model implemented in the Faust programming language (Functional Audio Stream). The authors hosted a concert for Tsar bell and Carillon with the generous support of Meyer Sound and a University of Michigan bicentennial grant. In the concert, the simulated Tsar bell was triggered by the keyboard and perceptually fused with the bourdon of the Baird Carillon on the University of Michigan campus in Ann Arbor.

Smilen Dimitrov, Romain Michon, Stefania Serafin

Mots-clés :
3D, FAUST, Physical modeling

Building Faust with CMake

International Faust Conference, 2018, Mainz, Germany

This paper describes the new Faust building system that is now based on CMake. This new building system preserves the previous Makefile approach as much as possible while offering far more flexibility and above all, a platform independent solution for compiling the various faust components. The paper gives practical information to address basic uses of the building system as well as for advanced and custom settings.

Dominique Fober, Yann Orlarey, Stéphane Letz

Mots-clés :
DSP, Ecosystem, FAUST

MENDING BELLS AND CLOSING BELFRIES WITH FAUST

International Faust Conference, 2018, Mainz, Germany

Finite Element Analyses (FEA) was used to predict the resonant modes of the Tsar Kolokol, a 200 ton fractured bell that sits outside the Kremlin in Moscow. Frequency and displacement data informed a physical model implemented in the Faust programming language (Functional Audio Stream). The authors hosted a concert for Tsar bell and Carillon with the generous support of Meyer Sound and a University of Michigan bicentennial grant. In the concert, the simulated Ts... Lire la suite…

Finite Element Analyses (FEA) was used to predict the resonant modes of the Tsar Kolokol, a 200 ton fractured bell that sits outside the Kremlin in Moscow. Frequency and displacement data informed a physical model implemented in the Faust programming language (Functional Audio Stream). The authors hosted a concert for Tsar bell and Carillon with the generous support of Meyer Sound and a University of Michigan bicentennial grant. In the concert, the simulated Tsar bell was triggered by the keyboard and perceptually fused with the bourdon of the Baird Carillon on the University of Michigan campus in Ann Arbor.

John Granzow, Tiffany Ng, Chris Chafe, Romain Michon

Mots-clés :
DSP, Ecosystem, FAUST

3D Printing and Physical Modeling of Musical Instruments: Casting the Net

Sound and Music Computing Conference, 2018, Limassol, Cyprus

Predicting the acoustics of objects from computational models is of interest to instrument designers who increasingly use Computer Assisted Design. We examine techniques to carry out these estimates using a database of impulse responses from 3D printed models and a custom algorithm for mode interpolation within a geometrical matrix. Test geometries are organized as a function of their physical characteristics and placed into a multidimensional space/matrix whos... Lire la suite…

Predicting the acoustics of objects from computational models is of interest to instrument designers who increasingly use Computer Assisted Design. We examine techniques to carry out these estimates using a database of impulse responses from 3D printed models and a custom algorithm for mode interpolation within a geometrical matrix. Test geometries are organized as a function of their physical characteristics and placed into a multidimensional space/matrix whose boundaries are defined by the objects at each corner. Finite Element Analyses is integrated into the open-source CAD environment to provide estimates of material vibrations also compared to measurements on the fabricated counterparts. Finally, predicted parameters inform physical models for aural comparisons between fabricated targets and computational estimates. These hybrid methods are reliable for predicting early modes as they covary with changes in scale and shape in our test matrix.

Romain Michon, Chris Chafe, John Granzow

Mots-clés :
3D, FAUST, Physical modeling

In this paper, we present faust2smartkeyb, a tool to create musical apps for Android and iOS using the FAUST programming language. The use of musical instrument physical models in this context through the FAUST Physical Modeling Library is emphasized. We also demonstrate how this system allows for the design of interfaces facilitating skills transfer from existing musical instruments.

Romain Michon, Julius Smith, Chris Chafe, Matthew Wright

Mots-clés :
DSP, Ecosystem, FAUST

Faust, du code pour la scène aux cours de code

CULTURE ET RECHERCHE n° 137 printemps-été 2018, 2018

Conçu et utilisé pour des applications de synthèse et de traitement du son ou de lutherie numérique sur scène, le langage de programmation Faust, développé au centre national de création musicale GRAME, est désormais enseigné dans plusieurs universités dans le monde, en particulier au Center for Computer Research in Music and Acoustics de l’université Stanford.

Yann Orlarey

Mots-clés :
Enseignement, FAUST, Teaching

2017

Towards dynamic and animated music notation using INScore

Linux Audio Conference, 2017, Saint-Etienne, France. pp.43-51

INScore is an environment for the design of augmented interactive music scores opened to conventional and non-conventional use of the music notation. The system has been presented at LAC 2012 and has significantly evolved since, with improvements turned to dynamic and animated notation. This paper presents the latest features and notably the dynamic time model, the events system, the scripting language, the symbolic scores composition engine, the network and We... Lire la suite…

INScore is an environment for the design of augmented interactive music scores opened to conventional and non-conventional use of the music notation. The system has been presented at LAC 2012 and has significantly evolved since, with improvements turned to dynamic and animated notation. This paper presents the latest features and notably the dynamic time model, the events system, the scripting language, the symbolic scores composition engine, the network and Web extensions, the interaction processes representation system and the set of sensor objects.

Dominique Fober, Yann Orlarey, Stéphane Letz

Mots-clés :
Dynamic score, Inscore, Interactive score, Score composition, Sensors

Le modèle du temps dans INScore

Journées d'Informatique Musicale, 2017, Paris, France

INScore est un environnement pour la conception de partition interactives augmentées, tourné vers des usages non conventionnels de la notation musicale, sans exclure pour autant les approches classiques. Dans cet environnement, bien que tous les objets de la partition aient une dimension temporelle, le temps reste fixe i.e. que la date (ou la durée) d'un objet ne change pas, sauf à réception d'un message qui ne peut être produit que de manière externe ou événem... Lire la suite…

INScore est un environnement pour la conception de partition interactives augmentées, tourné vers des usages non conventionnels de la notation musicale, sans exclure pour autant les approches classiques. Dans cet environnement, bien que tous les objets de la partition aient une dimension temporelle, le temps reste fixe i.e. que la date (ou la durée) d'un objet ne change pas, sauf à réception d'un message qui ne peut être produit que de manière externe ou événementielle. INScore n'inclut donc pas de gestionnaire du temps au sens classique du terme. A l'origine, ce choix a été dicté par le fait que le système fut conçu pour des usages couplés avec des logiciels de production sonore (e.g. Max/MSP, Pure Data), qui ont des contraintes de temps-réel plus strictes que lénvironnement graphique d'INScore. Toutefois, la nécessité d'introduire un temps dynamique a progressivement émergé, conduisant à un modèle original, à la fois événementiel et continu. Cést ce modèle qui est présenté et ses propriétés dans lénvironnement d'INScore.

Dominique Fober, Yann Orlarey, Stéphane Letz

Mots-clés :
Dynamic score, Inscore, Interactive score

INScore Time Model

International Computer Music Conference, 2017, Shanghai, China. pp.64-68

INScore is an environment for augmented interactive music score design, oriented towards unconventional uses of music notation, without excluding conventional approaches. In this environment, although all the objects of a score have a temporal dimension, the time remains fixed i.e., the date (or duration) of an object does not change, except when a message is received (sent from an external application or resulting from events handling). Thus, INScore does not... Lire la suite…

INScore is an environment for augmented interactive music score design, oriented towards unconventional uses of music notation, without excluding conventional approaches. In this environment, although all the objects of a score have a temporal dimension, the time remains fixed i.e., the date (or duration) of an object does not change, except when a message is received (sent from an external application or resulting from events handling). Thus, INScore does not include a time manager in the classic sense of the term. This choice was based on the fact that the system was originally designed to be used with sound production software (e.g., Max/MSP, Pure Data), that have more strict real-time constraints than INScore's graphical environment. However, the need to introduce dynamic time has gradually emerged, leading to an original model, both continuous and event based. The paper presents this model and its properties in the frame on INScore.

Dominique Fober, Yann Orlarey, Stéphane Letz

Mots-clés :
Dynamic score, Inscore, Music score, Time model

The Faust architecture files ecosystem is regularly enriched with new targets to deploy Digital Signal Processing (DSP) programs. This paper presents re-cently developed techniques to expand the standard one DSP source, one program or plugin model, and to better control parameter changes during the audio computation. Sample accurate control and polyphonic instruments definition have been introduced, and will be explained particularly in the context of MIDI cont... Lire la suite…

The Faust architecture files ecosystem is regularly enriched with new targets to deploy Digital Signal Processing (DSP) programs. This paper presents re-cently developed techniques to expand the standard one DSP source, one program or plugin model, and to better control parameter changes during the audio computation. Sample accurate control and polyphonic instruments definition have been introduced, and will be explained particularly in the context of MIDI control.

Stéphane Letz, Yann Orlarey, Dominique Fober, Romain Michon

Mots-clés :
Audio, DSP programming, FAUST, MIDI

faust2api: a Comprehensive API Generator for Android and iOS

Linux Audio Conference, 2017, Saint-Etienne, France. pp.77-82

We introduce faust2api, a tool to generate custom DSP engines for Android and iOS using the Faust programming language. Faust DSP ob jects can easily be turned into MIDI-controllable polyphonic synthesizers or audio effects with built-in sensors support, etc. The various elements of the DSP engine can be accessed through a high-level API, made uniform across platforms and languages. This paper provides technical details on the implementation of this system as w... Lire la suite…

We introduce faust2api, a tool to generate custom DSP engines for Android and iOS using the Faust programming language. Faust DSP ob jects can easily be turned into MIDI-controllable polyphonic synthesizers or audio effects with built-in sensors support, etc. The various elements of the DSP engine can be accessed through a high-level API, made uniform across platforms and languages. This paper provides technical details on the implementation of this system as well as an evaluation of its various features.

Romain Michon, Julius Smith, Chris Chafe, Stéphane Letz, Yann Orlarey

Mots-clés :
Android, FAUST, IOS, Mobile Instruments

New Signal Processing Libraries for Faust

Linux Audio Conference, 2017, Saint-Etienne, France. pp.83-87

We present a completely re-organized set of signal processing libraries for the Faust programming language. They aim at providing a clearer classification of the different Faust DSP functions, as well as better documentation. After giving an overview of this new system, we provide technical details about its implementation. Finally, we evaluate it and give ideas for future directions.

Romain Michon, Julius Smith, Yann Orlarey

Mots-clés :
FAUST, Digital signal processing, Computer Music Programming Language

Faust audio DSP language for JUCE

Linux Audio Conference, 2017, Saint-Etienne, France. pp.61-68

Faust [Functional Audio Stream] is a functional programming language specifically designed for real- time signal processing and synthesis [1]. It consists of a compiler that translates a Faust program into an equivalent C++ program, taking care of generat- ing the most efficient code. JUCE is an open-source cross-platform C++ application framework devel- oped since 2004, and bought by ROLI1 in Novem- ber 2014, used for the development of desktop and mobile appl... Lire la suite…

Faust [Functional Audio Stream] is a functional programming language specifically designed for real- time signal processing and synthesis [1]. It consists of a compiler that translates a Faust program into an equivalent C++ program, taking care of generat- ing the most efficient code. JUCE is an open-source cross-platform C++ application framework devel- oped since 2004, and bought by ROLI1 in Novem- ber 2014, used for the development of desktop and mobile applications. A new feature to the Faust environnement is the addition of architectures files to provide the glue between the Faust C++ output and the JUCE framework. This article presents the overall design of the architecture files for JUCE.

Adrien Albouy, Stéphane Letz

Mots-clés :
Audio, Domain Specific Language, DSP, FAUST, JUCE, Real-time

2016

Embedding native audio-processing in a score following system with quasi sample accuracy

ICMC 2016 - 42th International Computer Music Conference, Sep 2016, Utrecht, Netherlands

This paper reports on the experimental native embedding of audio processing into the Antescofo system, to leverage timing precision both at the program and system level, to accommodate time-driven (audio processing) and event-driven (control) computations, and to preserve system behaviour on multiple hardware platforms. Here native embedding means that audio computations can be specified using dedicated DSLs (e.g., Faust) compiled on-the-fly and driven by the A... Lire la suite…

This paper reports on the experimental native embedding of audio processing into the Antescofo system, to leverage timing precision both at the program and system level, to accommodate time-driven (audio processing) and event-driven (control) computations, and to preserve system behaviour on multiple hardware platforms. Here native embedding means that audio computations can be specified using dedicated DSLs (e.g., Faust) compiled on-the-fly and driven by the Antescofo scheduler. We showcase results through an example of an interactive piece by composer Pierre Boulez, Anthèmes 2 for violin and live electronics.

INteractivité dans l'Ecriture De l'Interaction et du Temps

Pierre Donat-Bouillud, Jean-Louis Giavitto, Arshia Cont, Nicolas Schmidt, Yann Orlarey

Mots-clés :
Audio, Samplerate, Scheduling, Buffer, Multimedia

Signal Rate Inference for Multi-Dimensional Faust

The 28th symposium on Implementation and Application of Functional Languages (IFL 2016), Aug 2016, Leuven, Belgium. pp.1:1--1:12, ⟨10.1145/3064899.3064902⟩

We introduce a new signal-level, type-and rate-based semantic framework for describing a multi-rate version of the functional , domain-specific Faust language, dedicated to audio signal processing, and here extended to support array-valued samples. If Faust is usually viewed as a formalism for combining signal processors, which are expressions mapping input signals to output signals, we provide here the first formal, lower-level semantics for Faust based on sig... Lire la suite…

We introduce a new signal-level, type-and rate-based semantic framework for describing a multi-rate version of the functional , domain-specific Faust language, dedicated to audio signal processing, and here extended to support array-valued samples. If Faust is usually viewed as a formalism for combining signal processors, which are expressions mapping input signals to output signals, we provide here the first formal, lower-level semantics for Faust based on signals instead. In addition to its interest in understanding the inner workings of the Faust compiler, which uses symbolic evaluation of signal expressions, this approach turns out to be useful when introducing a language extension targeting multi-rate and multi-dimensional (array-valued) processing. More precisely, we provide (1) new syntax and dynamic semantics for (recursive) Faust-based signals, (2) a type and, more interestingly, rational rate static semantics and (3) a new rate inference algorithm, together with its soundness and (relative) completeness theorems. Preliminary experiments in a prototype implementation of this extension in the Faust compiler are underway.

Yann Orlarey, Pierre Jouvelot

Mots-clés :
Type systems, Audio signal processing, Faust

CALCUL D'UNE EXPRESSION FAUST ÉQUIVALENTE À PARTIR D'UN GRAPHE D'APPLICATIONS

Journées d'Informatique Musicale (JIM 2016), AFIM, Mar 2016, Albi, France

Nous proposons une méthode permettant de traduire un graphe de programmes FAUST, en un programme FAUST équivalent. Le programme ainsi obtenu peut être compilé, et donc bénéficier de toutes les optimisations du compilateur FAUST, mais il peut également être exporté vers les différentes plateformes supportées par FAUST (VST, Max/MSP, SuperCollider, Csound, etc.). Nous décrivons l'algorithme qui parcourt le graphe et calcule l'expression FAUST équivalente ainsi qu... Lire la suite…

Nous proposons une méthode permettant de traduire un graphe de programmes FAUST, en un programme FAUST équivalent. Le programme ainsi obtenu peut être compilé, et donc bénéficier de toutes les optimisations du compilateur FAUST, mais il peut également être exporté vers les différentes plateformes supportées par FAUST (VST, Max/MSP, SuperCollider, Csound, etc.). Nous décrivons l'algorithme qui parcourt le graphe et calcule l'expression FAUST équivalente ainsi que les principes de modularité de FAUST qui permettent de combiner les fichiers sources pour réaliser l'opération. De plus, nous présentons une implémentation de l'algorithme dans le cadre de l'application FaustPlayground.

Faust Environment Everyware : une solution ubiquitaire pour le traitement audionumérique portable et multiplateforme

Sarah Denoux, Yann Orlarey, Stéphane Letz, Dominique Fober

Mots-clés :
FAUST, Composition, Web, Programmation DSP

Composition de partitions symboliques dans INScore

Journées d'Informatique Musicale, 2016, Albi, France. pp.54-60

INScore est un environnement pour la conception de partition interactives augmentées, tourné vers des usages non conventionnels de la notation musicale. L’environnement permet d’utiliser et de composer des ressources graphiques arbitraires pour la représentation de la musique aussi bien que de la notation symbolique aux formats GMN (Guido Music Notation) ou MusicXML. INScore a été étendu pour fournir des opérations de composition de partitions en notatio... Lire la suite…

INScore est un environnement pour la conception de partition interactives augmentées, tourné vers des usages non conventionnels de la notation musicale. L’environnement permet d’utiliser et de composer des ressources graphiques arbitraires pour la représentation de la musique aussi bien que de la notation symbolique aux formats GMN (Guido Music Notation) ou MusicXML. INScore a été étendu pour fournir des opérations de composition de partitions en notation symbolique avec un jeu d’opérateurs qui de manière consistante, prennent des partitions en entrée pour produire une partition en sortie. L’API d’INScore inclut des score expressions, aussi bien au niveau OSC que dans son langage de script. Le travail présenté est basé sur une recherche précédente qui a porté sur les problèmes de consistance de la notation musicale à travers des opérations de composition de partitions. Ce sont les aspects langage et stratégies d’évaluation des score expressions qui sont abordés ici.

Gabriel Lepetit-Aimon, Dominique Fober, Yann Orlarey, Stéphane Letz

Mots-clés :
Composition, Interaction, Partition musicale

INScore expressions to compose symbolic scores

International Conference on Technologies for Music Notation and Representation, 2016, Cambridge, United Kingdom. pp.137-143

INScore is an environment for the design of augmented interactive music scores turned to non-conventional use of music notation. The environment allows arbitrary graphic resources to be used and composed for the music representation. It supports symbolic music notation, described us- ing Guido Music Notation or MusicXML formats. The environment has been extended to provided score level com- position using a set of operators that consistently take scores as argu... Lire la suite…

INScore is an environment for the design of augmented interactive music scores turned to non-conventional use of music notation. The environment allows arbitrary graphic resources to be used and composed for the music representation. It supports symbolic music notation, described us- ing Guido Music Notation or MusicXML formats. The environment has been extended to provided score level com- position using a set of operators that consistently take scores as arguments to compute new scores as output. INScore API supports now score expressions both at OSC and at scripting levels. The work is based on a previous research that solved the issues of the notation consistency across scores composition. This paper focuses on the language level and explains the different strategies to evaluate score expressions.

Gabriel Lepetit-Aimon, Dominique Fober, Yann Orlarey, Stéphane Letz

Mots-clés :
Inscore, Interaction, Music score, Score composition

2015

Migration d’INScore pour plateformes mobiles et pour le web

Environnements Informatiques pour l'Apprentissage Humain. 2015

INScore est un environnement pour le design de partitions musicales augmentées. Ces partitions permettent l’extension de la notation à des objets graphiques arbitraires, la description de relations explicites entre les espaces graphiques et temporels, la représentation de l’interprétation au sein de la notation et l’interaction en temps réel. Le portage sur plateformes mobiles et sur le web permet une ouverture à de nouveaux usages. Ces plateformes hétérogènes... Lire la suite…

INScore est un environnement pour le design de partitions musicales augmentées. Ces partitions permettent l’extension de la notation à des objets graphiques arbitraires, la description de relations explicites entre les espaces graphiques et temporels, la représentation de l’interprétation au sein de la notation et l’interaction en temps réel. Le portage sur plateformes mobiles et sur le web permet une ouverture à de nouveaux usages. Ces plateformes hétérogènes soulèvent à la fois des problèmes techniques et des questions de design, tant en terme de présentation que d’interaction avec la partition.. INScore is an environment for the design of Interactive Augmented Music Scores. This score provides a musical notation extension for arbitrary graphic objects, describing explicit relationships between graphic space and time, the representation of interpretation in music notation and real-time interaction. The porting to mobile platforms and the web allows an opening to new uses. These heterogeneous platforms raise both technical problems and questions of design, in terms of presentation as well as interaction with the score.

Distributing Music Scores to Mobile Platforms and to the Internet using INScore

12th Sound and Music Computing Conference (SMC15), Jul 2015, Maynooth, Ireland. pp.229-233

Music notation is facing new musical forms such as electronic and/or interactive music, live coding, hybridizations with dance, design, multimedia. It is also facing the migration of musical instruments to gestural and mobile platforms , which poses the question of new scores usages on devices that mostly lack the necessary graphic space to display the music in a traditional setting and approach. Music scores distributed and shared on the Internet start also to... Lire la suite…

Music notation is facing new musical forms such as electronic and/or interactive music, live coding, hybridizations with dance, design, multimedia. It is also facing the migration of musical instruments to gestural and mobile platforms , which poses the question of new scores usages on devices that mostly lack the necessary graphic space to display the music in a traditional setting and approach. Music scores distributed and shared on the Internet start also to be the support of innovative musical practices, which raises other issues, notably regarding dynamic and collaborative music scores. This paper introduces some of the perspectives opened by the migration of music scores to mobile platforms and to the Internet and it presents the approach adopted with INScore, an environment for the design of augmented, interactive music scores.

INteractivité dans l'Ecriture De l'Interaction et du Temps

Dominique Fober, Guillaume Gouilloux, Yann Orlarey, Stéphane Letz

Mots-clés :
Music score, Internet, Network

Composing a Web of Audio Applications

1st Web Audio Conference, IRCAM, Mozilla Foundation, Jan 2015, Paris, France

The Web offers a great opportunity to share, deploy and use programs without installation difficulties. In this article we explore the idea of freely combining/composing real-time audio applications deployed on the Web using Faust audio DSP language.

Faust Environment Everyware : une solution ubiquitaire pour le traitement audionumérique portable et multiplateforme

Sarah Denoux, Yann Orlarey, Stephane Letz, Dominique Fober

Mots-clés :
Composability, Faust, Web, DSP programming

Faust audio DSP language in the Web

Linux Audio Conference, 2015, Mainz, Germany. pp.29-36

With the advent of both HTML5 and the Web Audio API (a high-level JavaScript API for audio process- ing and synthesis) interesting audio applications can now be developed for the Web. The Web Audio API offers a set of fast predefined audio nodes as well as customizable ScriptProcessor node, allowing developers to add their own javascript audio processing code. Several projects are developing abstractions on top of the Web Audio API to extend its capabilities, a... Lire la suite…

With the advent of both HTML5 and the Web Audio API (a high-level JavaScript API for audio process- ing and synthesis) interesting audio applications can now be developed for the Web. The Web Audio API offers a set of fast predefined audio nodes as well as customizable ScriptProcessor node, allowing developers to add their own javascript audio processing code. Several projects are developing abstractions on top of the Web Audio API to extend its capabilities, and offer more complex unit generators, DSP effects libraries, or adapted syntax. This paper brings an- other approach based on the use of the Faust audio DSP language to develop additional nodes to be used as basic audio DSP blocks in the Web Audio graph. Different methods have been explored: going from an experimental version that embeds the complete Faust native compilation chain (based on libfaust + LLVM) in the browser, to more portable solutions using JavaScript or the much more efficient asm.js version. Embedding the Faust compiler it- self as a pure JavaScript library (produced using Emscripten) will also be described.The advantages and issues of each approach will be discussed and some benchmarks will be given.

Stéphane Letz, Sarah Denoux, Yann Orlarey, Dominique Fober

Mots-clés :
Domain Specific Language, DSP, FAUST, Real-time, Web Audio API

Un modèle relationnel de la gravure musicale.

Journées d'Informatique Musicale, 2015, Montréal, Canada

Cet article a pour objet d'élaborer un modèle relationnel de la gravure musicale. Les bases de données relationnelles, de plus en plus répandues comme solution de stockage de données, permettent de résoudre les problèmes d'indépendance et d'incohérence des données qui entravent la migration vers le web des logiciels de gravure musicale. Cette conception relationnelle de la partition musicale permet également de faire des projections arbitraires des partitions d... Lire la suite…

Cet article a pour objet d'élaborer un modèle relationnel de la gravure musicale. Les bases de données relationnelles, de plus en plus répandues comme solution de stockage de données, permettent de résoudre les problèmes d'indépendance et d'incohérence des données qui entravent la migration vers le web des logiciels de gravure musicale. Cette conception relationnelle de la partition musicale permet également de faire des projections arbitraires des partitions dans plusieurs contextes numériques. Après avoir survolé l'état de l'art de la gravure musicale assistée par ordinateur, l'article propose un modèle relationnel de la gravure avant de conclure avec une discussion sur le lien entre le modèle relationnel et d'autres systèmes déncodage musical.

Mike Solomon, Dominique Fober

Mots-clés :
Music notation, Purcell