2017

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... read_more

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... read_more

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... read_more

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... read_more

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

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... read_more

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

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... read_more

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

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... read_more

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... read_more

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

Marc Battier, Jean Bresson, Pierre Couprie, Cécile Davy-Rigaux, Dominique Fober, Yann Geslin, Hugues Genevois, François Picard, Alice Tacaille

Mots-clés :
Technology, Notation, Music

Les nouveaux espaces de la notation musicale

Journées d'Informatique Musicale, Faculté de musique de l'Université de Montréal, 2015, Montréal, Canada

La notation de la musique sert les besoins de la représentation, de l'écriture et de la création artistique. Confrontée aux nouvelles formes musicales comme les musiques électroniques, les oeuvres interactives, le live coding, aux phénomènes de migration de l'instrument musical vers des plates-formes gestuelles et mobiles, aux hybridations avec la danse, le design, le multimédia, la partition contemporaine est sou-vent étendue, éclatée sur des supports différen... read_more

La notation de la musique sert les besoins de la représentation, de l'écriture et de la création artistique. Confrontée aux nouvelles formes musicales comme les musiques électroniques, les oeuvres interactives, le live coding, aux phénomènes de migration de l'instrument musical vers des plates-formes gestuelles et mobiles, aux hybridations avec la danse, le design, le multimédia, la partition contemporaine est sou-vent étendue, éclatée sur des supports différents, revisitée à travers de nouvelles formes d'écriture. Cet article fait le point sur les évolutions actuelles de la notation musicale et sur les outils informatiques émergents pour servir ses be-soins.

Dominique Fober, Jean Bresson, Pierre Couprie, Yann Geslin

Mots-clés :
Notation musicale, Informatique

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... read_more

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... read_more

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

2014

Augmented Interactive Scores for Music Creation

Korean Electro-Acoustic Music Society's 2014 Annual Conference, Oct 2014, Seoul, South Korea. pp.85-91

This article addresses music representation issues in the context of the contemporary music creation and performance. It exposes the main challenges in terms of music notation and representation, in regard of the new forms of music and with an emphasis on interactive music issues. It presents INScore, an environment for the design of augmented, interactive music scores that has been developed in response to current artistic evolutions. It gives an overview of t... read_more

This article addresses music representation issues in the context of the contemporary music creation and performance. It exposes the main challenges in terms of music notation and representation, in regard of the new forms of music and with an emphasis on interactive music issues. It presents INScore, an environment for the design of augmented, interactive music scores that has been developed in response to current artistic evolutions. It gives an overview of the system with a presentation of its main features and highlights on the main technologies involved. Concrete examples of use with recent music creations, composers' viewpoint and an electro-acoustic piece modeling will also be given.

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

Dominique Fober, Yann Orlarey, Stéphane Letz

Mots-clés :
Music, Score, Interaction

Representation of Musical Computer Processes

Joint Conference ICMC / SMC 2014, Sep 2014, Athens, Greece. pp.1604-1609

The paper presents a study about the representation of musical computer processes within a music score. The idea is to provide performers with information that could be useful especially in the context of interactive music. The paper starts with a characterization of a musical computer process in order to define the values to be represented. Next it proposes an approach to time representation suitable to asynchronous processes representation.

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

Dominique Fober, Yann Orlarey, Stéphane Letz

Mots-clés :
Interaction, Synchronization, Music, Score, Graphic, Process

Audio Rendering/Processing and Control Ubiquity ? a Solution Built Using the Faust Dynamic Compiler and JACK/NetJack

40th International Computer Music Conference joint with the 11th Sound & Music Computing conference (ICMC/SMC 2014), Jul 2014, Athènes, Greece

We usually think of an audio application as a self-contained executable that will compute audio, allow user interface control, and render sound in a single process, on a unique machine. With the appearance of fast network and sophisticated, light and wireless control devices (such as tablets, smart-phones...) the three different parts (that are audio computation , interface control and sound rendering) can naturally be decoupled to run on different processes on... read_more

We usually think of an audio application as a self-contained executable that will compute audio, allow user interface control, and render sound in a single process, on a unique machine. With the appearance of fast network and sophisticated, light and wireless control devices (such as tablets, smart-phones...) the three different parts (that are audio computation , interface control and sound rendering) can naturally be decoupled to run on different processes on a given machine , or even on different machines (on a LAN or WAN network). We describe a solution to run and control audio DSP on different machines based on: • the FAUST audio DSP language which permits local and remote dynamic compilation, code migration and deployment (using libfaust, libfaustremote and LLVM) • local and remote control capabilities (via OSC and HTTP based control interfaces) • JACK/NetJack network audio real-time layer to handle remote audio processing and rendering.

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

Stephane Letz, Sarah Denoux, Yann Orlarey

Déploiement des services du moteur de rendu de partitions GUIDO sur Internet

Journées d'Informatique Musicale, May 2014, Bourges, France. pp.42-46

La librairie Guido embarque un moteur de rendu de partitions musicales et fournit une API de haut niveau pour un ensemble de services liés au rendu de partition. Cette librairie est désormais embarquée dans un serveur HTTP qui permet d'accéder à son interface par le biais d'identifiants de ressource uni- formes (URI). Après avoir décrit le style d'architec- ture representational state transfer (REST) sur lequel repose le serveur, l'article montre comment... read_more

La librairie Guido embarque un moteur de rendu de partitions musicales et fournit une API de haut niveau pour un ensemble de services liés au rendu de partition. Cette librairie est désormais embarquée dans un serveur HTTP qui permet d'accéder à son interface par le biais d'identifiants de ressource uni- formes (URI). Après avoir décrit le style d'architec- ture representational state transfer (REST) sur lequel repose le serveur, l'article montre comment l'API C/C++ de la librairie est rendue accessible sous forme de requêtes HTTP.

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

Mike Solomon, Dominique Fober, Yann Orlarey, Stéphane Letz

Mots-clés :
Partition musicale, Music notation, Web API, RESTFUL

Extension de Guido aux notations contemporaines

Journées d'Informatique Musicale, May 2014, Bourges, France. pp.17-24

Le projet GUIDO regroupe à la fois un format textuel de description de partitions musicales, un moteur de rendu basé sur ce format, et une librairie qui fournit aux dévelop- peurs d'applications, un support de haut niveau pour l'en- semble des services liés au format GUIDO et à son rendu sous forme graphique. A l'origine, le projet GUIDO traite de la notation traditionnelle de la musique occidentale. Le projet a été récemment étendu, tant du point de v... read_more

Le projet GUIDO regroupe à la fois un format textuel de description de partitions musicales, un moteur de rendu basé sur ce format, et une librairie qui fournit aux dévelop- peurs d'applications, un support de haut niveau pour l'en- semble des services liés au format GUIDO et à son rendu sous forme graphique. A l'origine, le projet GUIDO traite de la notation traditionnelle de la musique occidentale. Le projet a été récemment étendu, tant du point de vue du for- mat que du point de vue du rendu, pour adresser également les besoins les plus courants de la musique contemporaine. Cet article présente ces extensions et montre comment les choix de design fournissent à l'utilisateur une large palette de solutions pour la notation de la musique.

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

Camille Le Roi, Colas Decron, Dominique Fober

Mots-clés :
Music notation, GUIDO, Partition musicale

Providing Music Notation Services over Internet

Linux Audio Conference, May 2014, Karlsruhe, Germany. pp.91-96

The GUIDO project gathers a textual format for music representation, a rendering engine operating on this format, and a library providing a high level support for all the services related to the GUIDO format and it's graphic rendering. The project includes now an HTTP server that allows users to access the musical-score-related functions in the API of the GUIDOEngine library via uniform resource identifiers (URIs). This article resumes the core tenants of the R... read_more

The GUIDO project gathers a textual format for music representation, a rendering engine operating on this format, and a library providing a high level support for all the services related to the GUIDO format and it's graphic rendering. The project includes now an HTTP server that allows users to access the musical-score-related functions in the API of the GUIDOEngine library via uniform resource identifiers (URIs). This article resumes the core tenants of the REST architecture on which the GUIDO server is based, going on to explain how the server ports a C/C++ API to the web. It concludes with several examples as well as a discussion of how the REST architecture is well suited to a web-API that serves as a wrapper for another API.

Mike Solomon, Dominique Fober, Yann Orlarey, Stéphane Letz

Mots-clés :
Guido, Music score, Restful web service

FAUSTLIVE, Just-In-Time Faust Compiler... and much more

Linux Audio Conference, ZKM, May 2014, Karlsruhe, Germany

FaustLive is a standalone just-in-time Faust compiler. It tries to bring together the conve- nience of a standalone interpreted language with the e ciency of a compiled language. Based on libfaust, a library that provides a full in- memory compilation chain, FaustLive doesn't require any external tool (compiler, linker, etc.) to translate Faust source code into binary ex- ecutable code. Thanks to this technology FaustLive provides several advanced features. For... read_more

FaustLive is a standalone just-in-time Faust compiler. It tries to bring together the conve- nience of a standalone interpreted language with the e ciency of a compiled language. Based on libfaust, a library that provides a full in- memory compilation chain, FaustLive doesn't require any external tool (compiler, linker, etc.) to translate Faust source code into binary ex- ecutable code. Thanks to this technology FaustLive provides several advanced features. For example it is possible, while a Faust application is running, to modify its behavior on-the- y without any sound interruption. It is also possible to mi- grate a running application from one machine to another, etc.

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

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

Mots-clés :
DSP programming, Audio, Faust, Remote processing and interfacing

LibAudioStream est un moteur de rendu audionumérique disponible sous forme de librairie, permettant de manipuler des ressources audio à travers le concept de flux. Ce moteur est facilement intégrable dans des applications qui nécessitent de jouer des fichiers son, des montages audio, et d'appliquer des effets et des traitements DSP en temps-réel. Une algèbre de description, de composition et de transformation des flux audio permet de construire des expressions... read_more

LibAudioStream est un moteur de rendu audionumérique disponible sous forme de librairie, permettant de manipuler des ressources audio à travers le concept de flux. Ce moteur est facilement intégrable dans des applications qui nécessitent de jouer des fichiers son, des montages audio, et d'appliquer des effets et des traitements DSP en temps-réel. Une algèbre de description, de composition et de transformation des flux audio permet de construire des expressions complexes, que l'on va pouvoir ordonnancer à des dates précises dans le futur, et dont le rendu sera ensuite exécuté en temps réel le moment venu. L'application a un contrôle à l'échantillon près de ce qui est fait et à quelmoment, tout en étant déchargée des calculs audio temps réel proprement dit. Ce rapport donne une description formelle du langage d'expressions et des fonctionnalités de LibAudioStream.

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

Stéphane Letz

Mots-clés :
Audio, Faust

synthèse et le traitement du signal audio-numérique en temps-réel. L'objectif de WP3.4 est de développer une version embarquable du compilateur Faust (appelée libfaust) pouvant être intégrée aux différentes applications du projet INEDIT. L'intérêt pour ces applications est de disposer ainsi d'une chaîne de compilation complète, permettant de traduire les traitements synchrones, écrites en Faust, en code binaire exécutable fonctionnant donc à vitesse native. En... read_more

synthèse et le traitement du signal audio-numérique en temps-réel. L'objectif de WP3.4 est de développer une version embarquable du compilateur Faust (appelée libfaust) pouvant être intégrée aux différentes applications du projet INEDIT. L'intérêt pour ces applications est de disposer ainsi d'une chaîne de compilation complète, permettant de traduire les traitements synchrones, écrites en Faust, en code binaire exécutable fonctionnant donc à vitesse native. En s'appuyant sur la technologie LLVMcette chaîne de compilation est totalement autonome et ne dépend d'aucun outil de développement extérieur. Ceci facilite grandement le deploiement auprès d'utilisateurs non informaticiens. Elle est en outre très rapide, rendant ainsi dans de nombreux cas la phase de compilation transparente pour l'utilisateur. Le rapport présente la libraire libfaust, l'infrastructure de compilation LLVM, et trois applications de cette technologie : faustgen˜ un plugin Max/MSP permettant d'éditer, de compiler et d'exécuter du code Faust depuis Max, FaustNode, une extension de laWebAudio API permettant de compiler et d'exécuter du code Faust depuis un navigateur Web et faustcsound, un ensemble de quatre opcodes pour intégrer Faust dans le langage Csound.

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

Yann Orlarey

Mots-clés :
Faust, Langage de programmation, Traitement du signal

Technique et Science Informatiques

Lavoisier. France. 33 (7-8), 2014, Revue des Sciences et Technologies de l'Information, 978-2-7462-4686-7

Jean Bresson, Dominique Fober

Mots-clés :
Informatique, Musique

Programmation and Control of Faust Sound Processing in OpenMusic

Joint International Computer Music / Sound and Music Computing Conferences (ICMC-SMC), 2014, Athens, Greece

We introduce OM-Faust, an OpenMusic library including objects and functions to write, compile and control Faust programs. Faust is a domain-specific functional programming language designed for DSP. The integration of Faust in OpenMusic enables composers to program and compile their own audio effects and synthesizers, controllable both in real-time or deferred time contexts. This implementation suggests a more general discussion regarding the relationship betwe... read_more

We introduce OM-Faust, an OpenMusic library including objects and functions to write, compile and control Faust programs. Faust is a domain-specific functional programming language designed for DSP. The integration of Faust in OpenMusic enables composers to program and compile their own audio effects and synthesizers, controllable both in real-time or deferred time contexts. This implementation suggests a more general discussion regarding the relationship between real-time and off-line processing in computer-aided composition.

Extended Framework for "In-time" Computer-Aided Composition

Dimitri Bouche, Jean Bresson, Stéphane Letz

Mots-clés :
Computer-aided composition, Faust, OpenMusic

This project introduces a recently developed prototype for real-time processing and control of complex piano notation through the pianist’s gesture. The tool materializes an embodied cognition-influenced paradigm of interaction of pianists with complex notation (embodied or corporeal navigation), drawing from latest developments in the computer music fields of musical representation (augmented and interactive musical scores via INScore) and of multimodal intera... read_more

This project introduces a recently developed prototype for real-time processing and control of complex piano notation through the pianist’s gesture. The tool materializes an embodied cognition-influenced paradigm of interaction of pianists with complex notation (embodied or corporeal navigation), drawing from latest developments in the computer music fields of musical representation (augmented and interactive musical scores via INScore) and of multimodal interaction (Gesture Follower). Gestural, video, audio and MIDI data are appropriately mapped on the musical score, turning it into a personalized, dynamic, multimodal tablature. This tablature may be used for efficient learning, performance and archiving, with potential applications in pedagogy, composition, improvisation and score following. The underlying metaphor for such a tool is that instrumentalists touch or cut through notational complexity using performative gestures, as much as they touch their own keyboards. Their action on the instrument forms integral part of their understanding, which can be represented as a gestural processing of the notation. Next to the already mentioned applications, new perspectives in piano performance of post-1945 complex notation and in musicology (‘performative turn’), as well as the emerging field of ‘embodied and extended cognition’, are indispensable for this project.

Pavlos Antoniadis, Frédéric Bevilacqua, Dominique Fober

FaustLive : Un compilateur à la volée pour Faust... et bien plus encore

Journées d'Informatique Musicale, 2014, Bourges, France

FaustLive est une application qui, grâce à son compilateur Faust embarqué, se propose de réunir le confort d'un langage interprété avec l\éfficacité d'un langage compilé. Basée sur libfaust, une librairie qui offre une chaîne de compilation complète en mémoire, FaustLive ne requiert aucun outil externe (compilateur, éditeur de lien, ...) pour traduire du code FAUST en code machine exécutable. Par l'intermédiaire de cette technologie, FaustLive offre de multiple... read_more

FaustLive est une application qui, grâce à son compilateur Faust embarqué, se propose de réunir le confort d'un langage interprété avec l\éfficacité d'un langage compilé. Basée sur libfaust, une librairie qui offre une chaîne de compilation complète en mémoire, FaustLive ne requiert aucun outil externe (compilateur, éditeur de lien, ...) pour traduire du code FAUST en code machine exécutable. Par l'intermédiaire de cette technologie, FaustLive offre de multiples fonctionnalités. Par exemple, il est possible de glisser un nouveau fichier DSP sur une application FAUST en fonctionnement pour remplacer son comportement et ce, sans interruption du son. Il est aussi possible de transférer une application qui fonctionne en local, sur une autre machine, même si celle-ci utilise un système d\éxploitation différent.

Sarah Denoux, Stéphane Letz, Yann Orlarey

Mots-clés :
Audio, Contrôle et calculs à distance, FAUST, Programmation de DSP

2013

Programming Interactive Music Scores with INScore

Sound and Music Computing, Jul 2013, Stockholm, Sweden. pp.185-190

INScore is an environment for the design of interactive music scores that includes an original event-based interaction system and a scripting language for associating arbitrary messages to these events. We extended the previous version by supporting scripting languages offering a great flexibility in the description of scores and in the interactions with scores. The textual format is directly derived from the OSC message format that was defined in the original... read_more

INScore is an environment for the design of interactive music scores that includes an original event-based interaction system and a scripting language for associating arbitrary messages to these events. We extended the previous version by supporting scripting languages offering a great flexibility in the description of scores and in the interactions with scores. The textual format is directly derived from the OSC message format that was defined in the original INScore version. This article presents the scripting language and illustrates its ability to describe interactions based on events, while remaining in the temporal space. It also introduces the IRCAM gesture follower and how it is embedded into INScore to provide gestural interaction capabilities.

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

Dominique Fober, Stéphane Letz, Yann Orlarey, Frédéric Bevilacqua

Mots-clés :
Interaction, Synchronization, Music, Score, Graphic, Programming

COMMENT EMBARQUER LE COMPILATEUR FAUST DANS VOS APPLICATIONS ?

Journées d'Informatique Musicale, May 2013, Paris, France. pp.137-140

Le compilateur Faust est désormais disponible sous la forme d'une librairie nommée libfaust. Associée à la technologie LLVM, cette librairie peut être embarquée dans n'importe quelle application ou plugin audio, leur permettant ainsi de compiler et d'exécuter dynamiquement du code Faust de manière native, aussi efficacement que du code compilé traditionnel. L'article présente la libraire libfaust, l'infrastructure de compilation LLVM, et deux applications de ce... read_more

Le compilateur Faust est désormais disponible sous la forme d'une librairie nommée libfaust. Associée à la technologie LLVM, cette librairie peut être embarquée dans n'importe quelle application ou plugin audio, leur permettant ainsi de compiler et d'exécuter dynamiquement du code Faust de manière native, aussi efficacement que du code compilé traditionnel. L'article présente la libraire libfaust, l'infrastructure de compilation LLVM, et deux applications de cette technologie : faustgen un plugin Max/MSP permettant d'éditer, de compiler et d'exécuter du code Faust depuis Max, et FaustNode, une extension de la WebAudio API permettant de compiler et d'exécuter du code Faust depuis un navigateur Web.

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

Stéphane Letz, Dominique Fober, Yann Orlarey