About
80
Publications
16,197
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
581
Citations
Introduction
Publications
Publications (80)
Bien que l’enseignement ne soit pas la vocation première de Faust, c’est un élément fondamental pour son développement et sa diffusion. Cependant, enseigner un langage de programmation, compilé de surcroît, dans un département de musicologie ou à des enfants, pose un certain nombre de problèmes spécifiques. Comme le montre l’article, des stratégies...
The Faust programming language has been playing a role in the mobile music landscape for the past ten years. Multiple tools to facilitate the development of musical smartphone applications for live performance such as faust2ios, faust2android, faust2api, and faust2smartkeyb have been implemented and used in the context of a wide range of large scal...
The development and porting of virtual instruments or audio effects on the Web is a hot topic. Several initiatives are emerging, from industry-driven ones (e.g., Propellerhead Rack Extension running on the Web) to more community-based open-source projects. Most of them aim at adapting existing code bases (usually developed in native languages like...
In 2018, with a group of researchers and developers (some of whom are members of the W3C WebAudio WG) we proposed a WebAudio Plugin standard (WAP) and gave birth to a growing ecosystem for the development of computer music applications in the browser. These plugins can be seen as a transposition of what exists in the native world, adapted to be web...
The development and porting of virtual instruments or audio effects on the Web platform is a hot topic. Several initiatives are emerging, from business enterprise based ones (Propellerhead Rack Extension running on the Web), to more community based open-source projects. Most of them aim to facilitate adapting existing code base (usually developed i...
We propose to demo an online IDE based around the FAUST DSP audio language, that includes a source code editor, embedded compiler and GUI editor allowing to directly test, generate and deploy WebAudio Plugins (WAP). The tool is available online.
\beginabstract 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 WebAsse...
This paper is an introduction to FAUST, a functional programming language for sound synthesis and audio processing. We assume that the reader has some familiarity with functional programming, but no previous knowledge in signal processing. The text describes several examples that the reader will be able to try online using a web browser. These exam...
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 mus...
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 i...
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éveloppeurs 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...
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 interaction...
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 sou...
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 interaction...
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 » [1] ou « Musique Lab 2 » [2][3][4]. Certains de ces projets visent à préfigurer ce que pourrait être l’écoute d’une œuvre au moyen de technologies de suivi de geste,...
Grame-Centre national de création musicale RÉSUMÉ 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 lan-gage de script permettant d'associer des messages arbi-traires à ces événements. Initialement conçu pour être pi-loté via OSC, la v...
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.
Faust 0.9.9.6 introduces new compilation options to automatically parallelize audio applications. This paper explains how the auto-matic parallelization is done and presents some benchmarks.
Grame -Centre national de création musicale RÉSUMÉ Une partition musicale augmentée est une partition met-tant 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 ob-jet graphique permettant de représenter un objet tempo-rel. L'interprétation...
Faust 0.9.10 1 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.
We propose a simple method for synchronization of arbi-trary graphic objects, based on their time relations. This method relies on segmentation and mappings that are rela-tions between segmentations. The paper gives a formal de-scription of segmentations and mappings and presents "In-terlude", a framework that implements the proposed method under t...
An Augmented Music Score is a graphic space providing the representation, composition and manipulation of heterogeneous 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 performance, considered as a specific sound or gestural instance of the...
The Guido Music Notation format (GMN) is a gen-eral purpose formal language for representing score level music in a platform independent plain text and human readable way. Based on this music repre-sentation format, the GuidoLib provides a generic, portable library and API for the graphical render-ing of musical scores. This paper gives an intro-du...
In this paper, the VEMUS platform is presented, as a novel approach for music tuition that focuses on beginner and intermediate students, typically aged from 9 to 15 years. This platform is characterized by an open, highly interactive and networked multilingual music tuition framework that covers a selection of popular wind instruments. The VEMUS e...
This paper introduces two real-time functional programming languages. The first one aims to describe temporal trajectories. The second allows the manipulation of both real-time and deferred time streams. We shall describe the architecture of the real-time reduction machine used for evaluation. We shall also review the expected consequences of this...
Vemus is a european research project that aims at de-veloping and validating an open music tuition frame-work for popular wind instruments such as the flute, the saxophone, the clarinet and the recorder. The system will address students of beginning to inter-mediate level. It proposes an innovative approach both at technological and pedagogical lev...
Grame-Centre national de création musicale R´´R´´R´´ Nous abordons la visualisation du jeu instrumental sous l'angle de la représentation objective du son, avec pour objectif de rendre apparentes des caracté-ristiques du signal en termes d'interprétation musi-cale. Cet article expose les différentes stratégies mises en oeuvre pour exp...
IMUTUS is an IST European project that aims at the de-velopment of an open platform for training students on the recorder. Among the results of the project are two open source libraries for music representation and graphic nota-tion: the MusicXML library, intended to support the Mu-sicXML format and to provide music notation exchange capabilities,...
This paper presents some major results from the IMUTUS project1. IMUTUS was an RTD project that aimed at the development of an open platform for training students on the recorder. The paper focuses on one of the most important and innovative parts of the IMUTUS system, the practicing environment. This environment integrates technological tools for...
jackdmp is a C++ version of the Jack low-latency audio server for multi-processor machines. It is a new implementation of the jack server core features that aims in removing some limitations of the cur- rent design. The activation system has been changed for a data flow model and lock-free programming techniques for graph access have been used to h...
Jack is a low-latency audio server, written for POSIX conformant operating systems such as GNU/Linux. It can connect a number of different applications to an audio de-vice, as well as allowing them to share audio between themselves. We present a new C++ version for multi-processor machines that aims at removing some limita-tions of the current desi...
This paper presents some syntactical and semantical aspects of FAUST (Functional AUdio STreams), a programming language for real-time sound processing and synthesis. The programming model of FAUST combines two approaches: functional programming and block-diagrams composition. It is based on a block-diagram algebra. It as a well defined formal seman...
IMUTUS is a European project that aims at the develop- ment of an open platform for training students on non- MIDI musical instruments, as well as to acquire theoret- ical music knowledge. The project involves many com- ponents oriented towards a new approach of music learn- ing. After a brief overview of the system, the performance evaluation modu...
Le développeur d'une application musicale est souvent confronté à des problèmes difficiles à résoudre, notamment parce qu'ils sont relatifs à la maîtrise du temps. Le manque de support des systèmes déxploitations courants, l'absence de standard, les problèmes de portabilité qui en résultent ne facilitent pas la tâche du programmeur. Nous présentons...
Clock skew is one of the significant issues of real-time networking. We have previously proposed a new algorithm for clock skew detection that operates one a one-way measurement, simply based on time stamped packets. This algorithm was initially targeted to Internet transport context. It has been showed that it is also suitable to low latency trans...
We present a novel protocol to transmit time ordered events in real-time over the Internet and to operate a correct time rendering on the receiver side. This protocol provides solutions to compensate for the network latency, to optimize the bandwidth use and to take account of the clock drift of the different stations involved in a transmission. It...
Concurrent access to shared data in preemptive multi-tasks environment and in multi-processors architecture have been subject to many works. Based on these works, we present a new algorithm to implements lock-free fifo stacks with a minimum constraints on the data structure. Compared to the previous solutions, this algorithm is more simple and more...
MidiShare is a realtime, multi-tasks operating system dedicated to musical MIDI applications. It was awarded the Apple Trophy (1989), the Paris-City price (1990) and more recently, the Max d'Or at the Bourges International Musical Software Competition (1999). Multi-platform support, powerful inter- applications communication, accurate realtime perf...
The Elody music composition environment proposes lambda-abstraction on musical structures as a fundamental mechanism to represent user-defined musical concepts and compositional processes. The user can define new musical concepts either on top of concrete musical objects by generalizing them via an abstraction op-eration, or by composing and transf...
MidiShare is a real-time multi-tasks musical operating system first presented at the ICMC 89. Based on a client/server model, MidiShare offers fast and accurate real-time performances, multi-platform support, powerful inter-application communications, while considerably simplifying the development of complex real-time musical applications. MidiShar...
We propose a way to transmit real-time musical data flow on Ethernet. The presented implementation is based on the software architecture of MidiShare. After some reminders about Ethernet and MidiShare, we shall present an overview of the intended solution. Then we shall examine the chosen protocols, the implementation and its performance. 1 Introdu...
Résumé : Elody est un environnement de composition musicale basé sur un langage de programmation visuel dérivé du lambda-calcul et sur une interface à manipulation directe. Le langage de programmation d'Elody peut être vu comme une notation musicale agissante, construite à partir d'un langage de description du domaine musical étendu avec les concep...
Faust 0.9.9.5 introduces new compilation options to do auto-matic parallelization of code using OpenMP. This paper ex-plains how the automatic parallelization is done and presents some benchmarks.
GRAME Centre national de création musicale fober@grame.fr RÉSUMÉ RTP MIDI est une extension du protocole RTP (Real-Time Transport Protocol) pour la transmission de flux MIDI. Ce standard décrit un format permettant la paquetisation de toute commande pouvant apparaître légalement sur un câble DIN MIDI 1.0. Il utilise le cadre générique fourni par RT...
Résumé Nous présentons un nouveau protocole s'appuyant sur UDP, permettant de transmettre des événements datés en temps réel et fournissant au récepteur, les moyens d'une restitution temporelle correcte. Ce protocole inclus des mécanismes permettant de compenser la latence du réseau et d'optimiser l'utilisation de la bande passante. Il prend égalem...
RESUME Cet court article décrit la présentation qui sera faite du projet Européen Vemus (Virtual European Music School) dans le cadre de l'atelier « Interfaces pour l'annotation et la manipulation d'objets temporels : une comparaison des outils et des paradigmes dans le do-maine musical et cinématographique » MOTS CLES : pratique musicale, pédagogi...
Grame -Centre national de création musicale R Cet article traite de l'annotation visuelle à main le-vée de partitions musicales dynamiques : par dyna-mique, nous entendons la possibilité de recomposer, à la volée, les différents objets graphiques à l'intérieur de la page, ce qui nécessite de représenter les diffé-rentes annotations en conséquenc...
Résumé La pratique d'un instrument de musique, le tra-vail instrumental, son apprentissage, peuvent être vus comme des activités où le feedback joue un rôle prépondérant. Les technologies actuelles per-mettent d'envisager l'extension des pratiques ins-trumentales comme une extension du feedback fournit à l'instrumentiste, aussi bien dans les do-mai...
Concurrent access to shared data in preemptive multi-tasks environment and in multi-processors architecture have been subject of many works. Proposed solutions are commonly based on semaphores which have several drawbacks. For many cases, lock-free techniques constitute an alternate solution and avoid the disadvantages of semaphore based techniques...
RÉSUMÉ Le format GUIDO Music Notation (GMN) est un langage tex-tuel 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...
Grame -Centre national de création musicale R V est un projet de recherche européen qui a pour objectif le développement et la validation d'un système ouvert et interactif d'apprentissage de la pra-tique instrumentale. Il traite d'instruments à vent tels que la flûte traversière, le saxophone, la clarinette et la flûte à bec. Il s'adresse à...
Jack is a low-latency audio server, written for POSIX con-formant operating systems such as GNU/Linux. It can connect a number of different applications to an audio device, as well as allowing them to share audio between themselves. We present the port for Apple's MacOS X, and new developments to take advantage of multi-processor architecture.
We propose an algebraic approach to block diagram construction as an alternative to the classical graph ap- proach inspired by dataflow models. The proposed al- gebra is based on three binary operations of construc- tion : sequential, parallel and recursive constructions. These operations can be seen as high level connection schemes that set severa...
We propose an algebraic approach to block diagram construction as an alternative to the classical graph ap-proach inspired by dataflow models. The proposed al-gebra is based on three binary operations of construc-tion : sequential, parallel and recursive constructions. These operations can be seen as high level connection schemes that set several c...