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... Lire la suite

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... Lire la suite

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

Programmation événementielle de partitions musicales interactives

Journées d'Informatique Musicale, May 2013, Paris, France. pp.91-95

INSCORE est un environnement pour la conception de partitions musicales interactives qui intègre un système original d'interaction basé sur des événements et sur un langage de script permettant d'associer des messages arbitraires à ces événements. Initialement conçu pour être piloté via OSC, la version textuelle des messages OSC s'est rapidement constituée en format de stockage, puis étendue en un langage de script permettant une plus grande souplesse dans la d... Lire la suite

INSCORE est un environnement pour la conception de partitions musicales interactives qui intègre un système original d'interaction basé sur des événements et sur un langage de script permettant d'associer des messages arbitraires à ces événements. Initialement conçu pour être piloté via OSC, la version textuelle des messages OSC s'est rapidement constituée en format de stockage, puis étendue en un langage de script permettant une plus grande souplesse dans la description des partitions et des interactions avec ces partitions. Cet article présente ce langage de script et illustre notamment ses capacités à décrire des interactions sous forme événementielle, tout en restant dans l'espace temporel.

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

Dominique Fober, Yann Orlarey, Stéphane Letz

Mots-clés :
Partitions musicales, Interaction, Programmation

Ce rapport présente une étude préliminaire réalisée dans le cadre du projet ANR INEDIT. L'objectif est de définir les éléments de caractérisation des processus musicaux et la manière de les représenter, pouvant servir notamment à une représentation des processus musicaux au sein de la partition musicale.

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

Dominique Fober

Mots-clés :
Processus musical, Interaction, Représentation, Partition musicale

Etudier et jouer une oeuvre musicale en manipulant des objets.

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

Cet article présente trois expériences musicales et pédagogiques menées à l'Atelier des Feuillantines. Elles s'inscrivent dans le cadre de divers projets nationaux comme « Interlude » ou « Musique Lab 2 ». Certains de ces projets visent à préfigurer ce que pourrait être l'écoute d'une oeuvre au moyen de technologies de suivi de geste, dans des contextes allant de la pédagogie musicale aux installations grand public, d'autres sont explicitement axés sur le dével... Lire la suite

Cet article présente trois expériences musicales et pédagogiques menées à l'Atelier des Feuillantines. Elles s'inscrivent dans le cadre de divers projets nationaux comme « Interlude » ou « Musique Lab 2 ». Certains de ces projets visent à préfigurer ce que pourrait être l'écoute d'une oeuvre au moyen de technologies de suivi de geste, dans des contextes allant de la pédagogie musicale aux installations grand public, d'autres sont explicitement axés sur le développement de nouveaux outils croisant pédagogie et création. Les trois expériences décrites dans cet article appartiennent à deux grandes catégories. La première concerne l'utilisation d'un outil associant des gestes, une partition et un enregistrement, la seconde consiste à jouer une oeuvre, en l'occurrence ici le canon par tons de l'Offrande Musicale de Bach, et une partie de la Rousserolle Effarvatte d'Olivier Messiaen à partir de leurs constituants de base matérialisés par des objets dont la manipulation coïncide avec des traitements reproduisant le « mouvement » de la composition.

Fabrice Guedy, Frédéric Bevilacqua, Dominique Fober, Loïc Robert

Mots-clés :
Interaction, Musique, Pédagogie

In the field of music system programming, the T-calculus is a proposal for combining space modeling and time programming into a single programming feature: spatiotemporal tiled programming. Based on a solid algebraic model, it aims at decomposing every operation on musical objects into the sequence of a synchronization operation that describes how objects are positioned one with respect the other, and a fusion operation that describes how their values are then... Lire la suite

In the field of music system programming, the T-calculus is a proposal for combining space modeling and time programming into a single programming feature: spatiotemporal tiled programming. Based on a solid algebraic model, it aims at decomposing every operation on musical objects into the sequence of a synchronization operation that describes how objects are positioned one with respect the other, and a fusion operation that describes how their values are then combined. A first simple version of such a tiled calculus is presented and studied in this paper. 1 Introduction

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

David Janin, Florent Berthaut, Myriam Desainte-Catherine, Yann Orlarey, Sylvain Salvati

Mots-clés :
Interactive music, Synchronous programing, Event based programing, Tiled programing

2012

Les recherches décrites ici abordent la problématique de la préservation à long terme du processus temps réel dans la création contemporaine utilisant le numérique. En effet, nous avons développé une stratégie d' abstraction, laquelle consiste à générer automatiquement une documentation mathématique qui explicite la sémantique d'un processus, représentée uniquement à l'aide de la notation mathématique et du langage naturel. L'objectif et lénjeu de cette approch... Lire la suite

Les recherches décrites ici abordent la problématique de la préservation à long terme du processus temps réel dans la création contemporaine utilisant le numérique. En effet, nous avons développé une stratégie d' abstraction, laquelle consiste à générer automatiquement une documentation mathématique qui explicite la sémantique d'un processus, représentée uniquement à l'aide de la notation mathématique et du langage naturel. L'objectif et lénjeu de cette approche sont à situer dans le statut auto-suffisant de cette documentation, en tant que support autonome pour la réimplémentation.

FAUST est un langage de programmation fonctionnel pour le traitement du signal et la synthèse de sons en temps réel. Grâce à un système de fichiers d’architectures, un seul et unique programme FAUST peut être utilisé pour générer du code pour un ensemble de types d’applications et de plug-ins. Le compilateur en ligne de FAUST ici présenté est une application Web écrite en PHP et en JavaScript offrant un environnement de développement multiplateforme et multipro... Lire la suite

FAUST est un langage de programmation fonctionnel pour le traitement du signal et la synthèse de sons en temps réel. Grâce à un système de fichiers d’architectures, un seul et unique programme FAUST peut être utilisé pour générer du code pour un ensemble de types d’applications et de plug-ins. Le compilateur en ligne de FAUST ici présenté est une application Web écrite en PHP et en JavaScript offrant un environnement de développement multiplateforme et multiprocesseur pour le langage FAUST. Cet outil rend possible l’utilisation de la plupart des fonctionnalités de FAUST dans un navigateur Web et intègre un catalogue d’exemples évolutif faisant de lui une plate-forme pour utiliser et échanger facilement tout objet FAUST. Le fonctionnement du compilateur en ligne de FAUST est présenté en détail dans cet article. Les possibilités offertes par cet outil sont discutées et une brève ouverture sur les enjeux de l’utilisation des technologies Web pour l’informatique musicale est faite.

Romain Michon, Yann Orlarey

Mots-clés :
DSP, FAUST, Programming, Web

SCORES LEVEL COMPOSITION BASED ON THE GUIDO MUSIC NOTATION

International Computer Music Conference, 2012, Ljubljana, Slovenia. pp.383-386

Based on the Guido Music Notation format, we have developed tools for music score ”composition”, i.e. operators that take scores both as target and arguments of high level transformations, applicable for example to the time domain (e.g. cutting the head or the tail of a score) or to the structural domains (e.g. putting scores in sequence or in parallel). Providing these operations at score level is particularly convenient to express music ideas and to compose t... Lire la suite

Based on the Guido Music Notation format, we have developed tools for music score ”composition”, i.e. operators that take scores both as target and arguments of high level transformations, applicable for example to the time domain (e.g. cutting the head or the tail of a score) or to the structural domains (e.g. putting scores in sequence or in parallel). Providing these operations at score level is particularly convenient to express music ideas and to compose these ideas in an homogeneous representation space. However, scores level composition gives raise to a set of issues related to the music notation consistency. This paper introduces the GUIDO Music Notation format, presents the score com- position operations, the notation issues and a proposal to solve them.

Dominique Fober, Yann Orlarey, Stéphane Letz

Mots-clés :
Composition, Music score

Composition de partitions musicales

Journées d'Informatique Musicale, 2012, Mons, Belgique. pp.263-267

Basé sur le format de notation musicale Guido , nous avons développé un ensemble d'outils pour la composition de partitions musicales. Il s'agit d'opérations de transformation de haut niveau, prenant des partitions en entrée pour en générer de nouvelles en sortie. Ces opérations peuvent par exemple s'appliquer au domaine temporel (e.g. couper le début ou la fin d'une partition) ou concerner la structure de la partition (mise en séquence, en parallèle).

Dominique Fober, Yann Orlarey, Stéphane Letz

Mots-clés :
Processing, Score

INScore - An Environment for the Design of Live Music Scores

Linux Audio Conference, 2012, Stanford, United States. pp.47-54

INScore is an open source framework for the design of interactive, augmented, live music scores. Augmented music scores are graphic spaces providing representation, composition and manipulation of heterogeneous and arbitrary music objects (music scores but also images, text, signals...), both in the graphic and time domains. INScore includes also a dynamic system for the representation of the music performance, considered as a specific sound or gesture instance... Lire la suite

INScore is an open source framework for the design of interactive, augmented, live music scores. Augmented music scores are graphic spaces providing representation, composition and manipulation of heterogeneous and arbitrary music objects (music scores but also images, text, signals...), both in the graphic and time domains. INScore includes also a dynamic system for the representation of the music performance, considered as a specific sound or gesture instance of the score, and viewed as signals. It integrates an event based interaction mechanism that opens the door to original uses and designs, transforming a score as a user interface or allowing a score self-modification based on temporal events. This paper presents the system features, the underlying formalisms, and introduces the OSC based scripting language.

Dominique Fober, Yann Orlarey, Stéphane Letz

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

The Faust Online Compiler is a PHP/JavaScript based web application that provides a cross-platform and cross-processor programming environment for the Faust language. It allows to use most of Faust features directly in a web browser and it integrates an editable catalog of examples making it a platform to easily share and use Faust objects.

We present a general theoretical framework to describe segments and the different possible mapping that can be established between them. Each segment can be related to different music representations, graphical scores, music signals or gesture signals. This theoretical formalism is general and is compatible with large number of problems found in sound and gesture computing. We describe some examples we developed in interactive score representation, superposed w... Lire la suite

We present a general theoretical framework to describe segments and the different possible mapping that can be established between them. Each segment can be related to different music representations, graphical scores, music signals or gesture signals. This theoretical formalism is general and is compatible with large number of problems found in sound and gesture computing. We describe some examples we developed in interactive score representation, superposed with signal representation, and the description of synchronization between gesture and sound signals.

Dominique Fober, Frédéric Bevilacqua, Roland Assous

Mots-clés :
Synchronization, Gesture, Music, Music score

This paper describes tools designed and experiments conducted in the context of MIROR, a European project investigating adaptive systems for early childhood music education based on the paradigm of reflexive interaction. In MIROR, music notation is used as the trace of both the user and the system activity, produced from MIDI instruments. The task of displaying such raw MIDI inputs and outputs is difficult as no a priori information is known concerning the unde... Lire la suite

This paper describes tools designed and experiments conducted in the context of MIROR, a European project investigating adaptive systems for early childhood music education based on the paradigm of reflexive interaction. In MIROR, music notation is used as the trace of both the user and the system activity, produced from MIDI instruments. The task of displaying such raw MIDI inputs and outputs is difficult as no a priori information is known concerning the underlying tempo or metrical structure. We describe here a completely automatic processing chain from the raw MIDI input to a fully-fledge music notation. The low level music description is first converted in a score level description and then automatically rendered as a graphic score. The whole process is operating in real-time. The paper describes the various conversion steps and issues, including extensions to support score annotations. The process is validated using about 30,000 musical sequences gathered from MIROR experiments and made available for public use.

Dominique Fober, François Pachet, Jürgen Kilian

Mots-clés :
MIDI, Music score, Real-time

2011

Dependent vector types for data structuring in multirate Faust

Computer Languages, Systems and Structures, 2011, Volume 37 (Issue 3), pp.113-131. ⟨10.1016/j.cl.2011.03.001⟩

Faust is a functional programming language dedicated to the specification of ex- ecutable monorate synchronous musical applications. To extend Faust capabil- ities to important domains such as FFT-based spectral processing, we introduce here a multirate extension of the core Faust language. The novel idea is to link rate changes to data structure manipulation operations. Creating a vector-valued output signal divides the rate of input signals by the vector size... Lire la suite

Faust is a functional programming language dedicated to the specification of ex- ecutable monorate synchronous musical applications. To extend Faust capabil- ities to important domains such as FFT-based spectral processing, we introduce here a multirate extension of the core Faust language. The novel idea is to link rate changes to data structure manipulation operations. Creating a vector-valued output signal divides the rate of input signals by the vector size, while serializ- ing vectors multiplies rates accordingly. As duals to vectors, we also introduce record-like data structures, which are used to gather data but do not change sig- nal rates. This interplay between data structures and rates is made possible in the language static semantics by the introduction of dependent types. We present a typing semantics, a denotational semantics and correctness theorems that show that this data structuring/multirate extension preserves the language synchronous characteristics. This new design is under implementation in the Faust compiler.

FAUST Architectures Design and OSC Support.

International Conference on Digital Audio Effects, 2011, Paris, France. pp.231-216

FAUST [Functional Audio Stream] is a functional programming language specifically designed for real-time signal processing and synthesis. It consists in a compiler that translates a FAUST program into an equivalent C++ program, taking care of generating the most efficient code. The FAUST environment also includes various architecture files, providing the glue between the FAUST C++ output and the host audio and GUI environments. The combination of architecture f... Lire la suite

FAUST [Functional Audio Stream] is a functional programming language specifically designed for real-time signal processing and synthesis. It consists in a compiler that translates a FAUST program into an equivalent C++ program, taking care of generating the most efficient code. The FAUST environment also includes various architecture files, providing the glue between the FAUST C++ output and the host audio and GUI environments. The combination of architecture files and FAUST output gives ready to run applications or plugins for various systems, which makes a single FAUST specification available on different platforms and environments without additional cost. This article presents the overall design of the architecture files and gives more details on the recent OSC architecture.

Dominique Fober, Yann Orlarey, Stéphane Letz

Mots-clés :
Architecture, FAUST

Auto-documentation mathématique pour le traitement du signal avec Faust

Journées d'Informatique Musicale, 2011, Saint-Etienne, France

L'article aborde le problème de la préservation à long terme des processus numériques temps réel utilisés dans la création musicale contemporaine. Nous présentons une stratégie de préservation par abstraction mathématique. Elle consiste à générer automatiquement une documentation mathématique qui décrit de manière précise la sémantique complète de tels processus.

Karim Barkati, Yann Orlarey

Mots-clés :
DSP, FAUST, Heritage, Preservation, Programming

INScore scripting API version 0.96. INScore is a system for the design of live music scores. It is basically driven by OSC messages. This document describes the set of OSC messages supported by the system.

Dominique Fober

Mots-clés :
Inscore, Reference

2010

Automatic Parallelization of Audio Applications with Faust

10ème Congrès Français d'Acoustique, Apr 2010, Lyon, France

FAUST est un langage de programmation fonctionnel spécifiquement conçu pour la synthèse et le traitement du signal en temps réel. L'une des particularités du langage est de concilier une syntaxe textuelle avec une approche par composition algébrique de bloc-diagrammes. Une autre particularité de FAUST est de pouvoir être compilé de manière très efficace. Le code C++ produit par le compilateur Faust peut généralement rivaliser avec du code écrit à la main par un... Lire la suite

FAUST est un langage de programmation fonctionnel spécifiquement conçu pour la synthèse et le traitement du signal en temps réel. L'une des particularités du langage est de concilier une syntaxe textuelle avec une approche par composition algébrique de bloc-diagrammes. Une autre particularité de FAUST est de pouvoir être compilé de manière très efficace. Le code C++ produit par le compilateur Faust peut généralement rivaliser avec du code écrit à la main par un développeur expérimenté. Faust offre une alternative de haut niveau au C pour l'écriture de plugins, de bibliothèques et d'applications audio sans pour autant sacrifier les performances. En outre, grâce à son système d'architectures, le code Faust peut être facilement déployé sur plus d'une dizaine de plateformes audio (VST, MAX/MSP, PD, SC, CSOUND, JACK, etc.). Nous avons récemment étendu le compilateur avec de nouvelles options permettant de générer automatiquement du code parallelisé. L'objectif de l'exposé sera de présenter ces techniques de génération de code et les gains de performances que l'on peut espérer sur les machines multicore actuelles. La présentation sera accompagnée de démonstrations et d'exemples concrets. Signalons que le projet est accessible sur sourceforge (\url{http://sourceforge.net/projects/faudiostream/}). Il est également possible d'utiliser le compilateur FAUST en ligne, à l'adresse suivante : \url{http://faust.grame.fr}.

Yann Orlarey, Stéphane Letz, Dominique Fober

Mots-clés :
Langage de programmation, Compilateur, Parallélisme, Programmation fonctionnelle

Time Synchronization in Graphic Domain - A new paradigm for Augmented Music Scores

International Computer Music Conference, 2010, New York, United States. pp.458-461

We propose a simple method for synchronization of arbitrary graphic objects, based on their time relations. This method relies on segmentation and mappings that are relations between segmentations. The paper gives a formal description of segmentations and mappings and presents Interlude, a framework that implements the proposed method under the form of an augmented music score viewer, opening a new space to music notation.

Dominique Fober, Christophe Daudin, Yann Orlarey, Stéphane Letz

Mots-clés :
Music, Notation, Synchronization

First Steps Towards an Organology Of Virtual Instruments In Computer Music

International Computer Music Conference, 2010, New York, United States. pp.369-372

In this paper, we will first take assess of 25 years of interactive real-time music, and introduce the problem of preservation of this music for the future generations, that is to say its ability to be re-performed, and not only to preserve the recordings. We present the state of the art in the field of active preservation of real-time works. We then give an overview of the solutions developed by IRCAM and its partners Grame, Armines ParisTech and CIEREC, in th... Lire la suite

In this paper, we will first take assess of 25 years of interactive real-time music, and introduce the problem of preservation of this music for the future generations, that is to say its ability to be re-performed, and not only to preserve the recordings. We present the state of the art in the field of active preservation of real-time works. We then give an overview of the solutions developed by IRCAM and its partners Grame, Armines ParisTech and CIEREC, in the framework of the ASTREE project, and explain the possibilities envisioned in a case study that is En Echo by Philippe Manoury.

Jérôme Barthélemy, Alain Bonardi, Yann Orlarey, Serge Lemouton, Raffaele Ciavarella, Karim Barkati

Mots-clés :
FAUST

Automatic Paralllelization of Audio Applications with Faust

Congrès Français d'Acoustique, 2010, Lyon, France

Faust (Functional AUdio STreams) [1] stands for both a programming language and its compiler. Being fully compiled allows Faust to be used as an alternative to C/C++ to develop high-performance audio signal processing applications, DSP libraries and plug-ins for a variety of audio platforms and standards.

Yann Orlarey, Stéphane Letz, Dominique Fober

Mots-clés :
Compiler, Dataflow, Functional, Processing, Programming, Real-time, Signal

Dependent Vector Types for Multirate Faust

Proceedings of the Sound and Music Computing Conference, 2010, SMC'10 2010, pp.Pages 345--352

Faust is a functional programming language dedicated to the specification of executable monorate synchronous mu- sical applications. To extend Faust capabilities to domains such as spectral processing, we introduce here a multi- rate extension of the core Faust language. The key idea is to link rate changes to data structure manipulation op- erations: creating a vector-valued output signal divides the rate of input signals by the vector size, while serializing... Lire la suite

Faust is a functional programming language dedicated to the specification of executable monorate synchronous mu- sical applications. To extend Faust capabilities to domains such as spectral processing, we introduce here a multi- rate extension of the core Faust language. The key idea is to link rate changes to data structure manipulation op- erations: creating a vector-valued output signal divides the rate of input signals by the vector size, while serializing vectors multiplies rates accordingly. This interplay be- tween vectors and rates is made possible in the language static semantics by the introduction of dependent types. We present a typing semantics, a denotational semantics and a correctness theorem that show that this extension preserves the language synchonous characteristics. This new design is under implementation in the Faust compiler.

Pierre Jouvelot, Yann Orlarey

Partitions musicales augmentées

Journées d'Informatique Musicale, 2010, Rennes, France. pp.97-103

Une partition musicale augmentée est une partition mettant en relation un objet musical symbolique avec différentes représentations de son interprétation. La partition musicale est à considérer au sens large, comme un objet graphique permettant de représenter un objet temporel. L'interprétation représente une instance sonore ou gestuelle particulière de la partition. Nous présenterons les fondements théoriques qui sous-tendent la partition augmentée, ainsi qu'u... Lire la suite

Une partition musicale augmentée est une partition mettant en relation un objet musical symbolique avec différentes représentations de son interprétation. La partition musicale est à considérer au sens large, comme un objet graphique permettant de représenter un objet temporel. L'interprétation représente une instance sonore ou gestuelle particulière de la partition. Nous présenterons les fondements théoriques qui sous-tendent la partition augmentée, ainsi qu'une application sous forme d'afficheur mettant en oeuvre les solutions proposées.

Dominique Fober, Christophe Daudin, Stéphane Letz, Yann Orlarey

Mots-clés :
Graphique, Interprétation, Musicale, Partition, Signal, Synchronization

INTERLUDE - A FRAMEWORK FOR AUGMENTED MUSIC SCORES

Sound and Music Computing Conference, 2010, Barcelona, Spain. pp.233-240

An Augmented Music Score is a graphic space providing the representation, composition and manipulation of het- erogeneous music objects (music scores but also images, text, signals...), both in the graphic and time domains. In addition, it supports the representation of the music perfor- mance, considered as a specific sound or gestural instance of the score. This paper presents the theoretical foundation of the augmented music score as well as an application -... Lire la suite

An Augmented Music Score is a graphic space providing the representation, composition and manipulation of het- erogeneous music objects (music scores but also images, text, signals...), both in the graphic and time domains. In addition, it supports the representation of the music perfor- mance, considered as a specific sound or gestural instance of the score. This paper presents the theoretical foundation of the augmented music score as well as an application - an augmented score viewer - that implements the proposed solutions.

Dominique Fober, Christophe Daudin, Yann Orlarey, Stéphane Letz

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

Work Stealing Scheduler for Automatic Parallelization in Faust

Linux Audio Conference, 2010, Utrecht, Netherlands

Faust 0.9.10 introduces an alternative to OpenMP based parallel code generation using a Work Steal- ing Scheduler and explicit management of worker threads. This paper explains the new option and presents some benchmarks.

Stéphane Letz, Yann Orlarey, Dominique Fober

Mots-clés :
Compiler, Dataflow, Functional, Processing, Programming, Real-time, Signal

2009

PARALLELIZATION OF AUDIO APPLICATIONS WITH FAUST

Proceedings of the SMC 2009 - 6th Sound and Music Computing Conférence, Jul 2009, Porto, Portugal. pp.99-112

Faust 0.9.9.6 introduces new compilation options to automatically parallelize audio applications. This paper explains how the automatic parallelization is done and presents some benchmarks.

Yann Orlarey, Dominique Fober, Stephane Letz

La librairie GUIDO - Une boite à outils pour le rendu de partitions musicales.

Journées d'Informatique Musicale, 2009, Grenoble, France. pp.59-64

Le format GUIDO Music Notation (GMN) est un langage textuel et lisible de représentation de partitions musicales. Basée sur ce format, la GUIDOLib est une librairie multi-plateformes offrant une API de rendu graphique de partitions musicales. Cet article présente le format GMN et le moteur de rendu GUIDO. Un exemple d'application, le GUIDO Scene Composer, est ensuite décrit.

Christophe Daudin, Dominique Fober, Stéphane Letz, Yann Orlarey

Mots-clés :
Musicale, Notation

FAUST : an Efficient Functional Approach to DSP Programming

Editions DELATOUR FRANCE. NEW COMPUTATIONAL PARADIGMS FOR COMPUTER MUSIC, pp.65-96, 2009

FAUST is a programming language that provides a purely functional approach to signal processing while offering a high level of performance. FAUST aims at being complementary to existing audio languages by offering a viable and efficient alternative to C/C++ to develop signal processing libraries, audio plug-ins or standalone applications. The language is based on a simple and well defined formal semantics. A FAUST program denotes a signal processor, a mathemati... Lire la suite

FAUST is a programming language that provides a purely functional approach to signal processing while offering a high level of performance. FAUST aims at being complementary to existing audio languages by offering a viable and efficient alternative to C/C++ to develop signal processing libraries, audio plug-ins or standalone applications. The language is based on a simple and well defined formal semantics. A FAUST program denotes a signal processor, a mathematical function that transforms input signals into output signals. Being able to know precisely what a program computes is important not only for programmers, but also for compilers needing to generate the best possible code. Moreover these semantics questions are crucial for the long term preservation of music programs. The following paragraphs will give an overview of the language as well as a description of the compiler, including the generation of parallel code.

Yann Orlarey, Dominique Fober, Stéphane Letz

Mots-clés :
Compiler, Dataflow, Functional, Processing, Programming, Real-time, Signal