2003

Automatic vectorization in Faust

Journées d'Informatique Musicale, 2003, Montbeliard, France

Faust is a Block-Diagram language for sound signal processing and synthesis. It implements a new algebraic representation of block-diagrams and adopts a functional model of semantics instead of a data flow model. Based on these elements, a compiler able to translate DSP block diagram specification into C code is briefly presented. The code produced proves to be efficient and can compete with a hand written code. The optimization process is even pushed further:... Lire la suite

Faust is a Block-Diagram language for sound signal processing and synthesis. It implements a new algebraic representation of block-diagrams and adopts a functional model of semantics instead of a data flow model. Based on these elements, a compiler able to translate DSP block diagram specification into C code is briefly presented. The code produced proves to be efficient and can compete with a hand written code. The optimization process is even pushed further: the C code produced can be automatically vectorized to address Altivec extension for PowerPC (instruction-motorola) and SSE and SSE2 extensions for Intel architecture (instruction-intel). A method is proposed to determine whether or not a Faust expression can be vectorized by crossing a type information (synthesized during an upward run-around in the syntactic tree to be compiled) and a contextual information (inherited during a downward run-around in the syntactic tree). Thanks to this method, we are able to find expressions that can be vectorized inside recursive expressions that are not supposed to be vectorizable. The quality of the code produced by Faust is evaluated. On one hand, scalar code produced by Faust is compared to vector code produced by Faust, on the other hand, scalar and vector code are compared to code optimized by hand. In the end, we briefly present code transformations to vectorize the expressions classed as non-vectorizable by the previous method so that even better performances can be achieved in the future.

Nicolas Scaringella, Yann Orlarey, Stéphane Letz, Dominique Fober

Mots-clés :
Audio, Compiler, Processing, Signal, Vectorization

Evaluation des performances de 802.11b

[Rapport Technique] GRAME. 2003

L'utilisation de réseaux sans fil dans le domaine musical ouvre des perspectives prometteuses, tant d'un point de vue artistique que technique. Ce domaine d'application impose cependant des contraintes de fiabilité et de temps réel spécifiques. Nous avons donc mesuré les performances de 802.11b en fonction de ces contraintes et nous présentons les résultats correspondants ainsi que leur analyse.

Dominique Fober, Sophie Trebuchon

Mots-clés :
Communication, Network, Real-time, Wireless

This document presents the language FAUST, its syntax and grammar as well as several commented examples. FAUST (the name stands for Functional Audio Streams) is a programming language specifically designed to develop and implement efficient real time digital signal processors.

Etienne Gaudrain, Yann Orlarey

Mots-clés :
Audio, Block-diagrams, Functionnal, Processing, Programming, Real, Signal, Time

2002

An Algebra for Block Diagram Languages

International Computer Music Conference, 2002, Gothenburg, Sweden. pp.542-547

We propose an algebraic approach to block diagram construction as an alternative to the classical graph approach inspired by dataflow models. The proposed algebra is based on three binary operations of construction : sequential, parallel and recursive constructions. These operations can be seen as high level connection schemes that set several connections at once in order to combine two block diagrams to form a new one. Algebraic representations have interestin... Lire la suite

We propose an algebraic approach to block diagram construction as an alternative to the classical graph approach inspired by dataflow models. The proposed algebra is based on three binary operations of construction : sequential, parallel and recursive constructions. These operations can be seen as high level connection schemes that set several connections at once in order to combine two block diagrams to form a new one. Algebraic representations have interesting application for visual languages based on block diagrams and are useful to specify the formal semantic of these languages.

Yann Orlarey, Dominique Fober, Stéphane Letz

Mots-clés :
Algebra, Block-diagram, Dataflow, Denotational, DSP, Graph, Semantic

Lock-Free Techniques for Concurrent Access to Shared Objects

Journées d'Informatique Musicale, 2002, Marseille, France. pp.143-150

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. We present the principle of these lock-free techniques with the simple example of a LIFO stack. Then, based on Mi... Lire la suite

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. We present the principle of these lock-free techniques with the simple example of a LIFO stack. Then, based on Michael-Scott previous work, we propose a new algorithm to implements lock-free FIFO stacks with a simple constraint on the data structure.

Dominique Fober, Yann Orlarey, Stéphane Letz

Mots-clés :
Access, Computation, Concurrent, Lock-free, Parallel, Real-time

An Algebraic approach to Block Diagram Constructions

Journées d'Informatique Musicale, 2002, Marseille, France. pp.151-158

We propose an algebraic approach to block diagram construction as an alternative to the classical graph approach inspired by dataflow models. This block diagram algebra is based on three binary operations : sequential, parallel and recursive constructions. These operations can be seen as high level connection schemes that set several connections at once in order to combine two block diagrams to form a new one. Such algebraic representations have interesting app... Lire la suite

We propose an algebraic approach to block diagram construction as an alternative to the classical graph approach inspired by dataflow models. This block diagram algebra is based on three binary operations : sequential, parallel and recursive constructions. These operations can be seen as high level connection schemes that set several connections at once in order to combine two block diagrams to form a new one. Such algebraic representations have interesting applications for visual languages based on block diagrams. In particular they are very useful to specify the formal semantic of these languages.

Yann Orlarey, Dominique Fober, Stéphane Letz

Mots-clés :
Algebra, Block-diagram, Dataflow, Denotational, DSP, Graph, Semantic

Le programme Elody repose principalement sur les concepts du lambda-calcul, notamment les notions d'abstraction et d'application. L'abstraction classique a été étendue dans [leplatre] afin de permettre des manipulations plus puissantes de lambda-termes. Cette extension reposait sur une relation de généralité définie entre deux termes. Nous étudions ici plus précisément comment définir une relation de généralité entre deux termes, dans un but un peu différent du... Lire la suite

Le programme Elody repose principalement sur les concepts du lambda-calcul, notamment les notions d'abstraction et d'application. L'abstraction classique a été étendue dans [leplatre] afin de permettre des manipulations plus puissantes de lambda-termes. Cette extension reposait sur une relation de généralité définie entre deux termes. Nous étudions ici plus précisément comment définir une relation de généralité entre deux termes, dans un but un peu différent du précédent: nous souhaitons pouvoir représenter des ensembles de termes, avec comme intuition qu'un terme représente lénsemble de tous les termes moins généraux que lui. On cherche donc d'abord à obtenir une définition précise à partir de cette idée intuitive, en envisageant différentes définitions possibles, et on étudie les conséquences du choix qui semble le plus logique. La définition adoptée permet de définir une relation d'ordre et une relation d'équivalence qu'il convient de caractériser. On montre ensuite qu'il est possible de définir la borne supérieure et la borne inférieure d'un ensemble fini de termes, ce qui correspond à l'union et à l'intersection pour les ensembles de termes. On obtient finalement un cadre théorique assez net autour de la notion de généralité, qui permet dénvisager d'autres développements en manipulant des ensembles de termes. A titre déxemple, on présente les algorithmes permettant déffectuer les opérations sur les termes discutées précédemment, et enfin le code source commenté d'une implémentation simple en Caml.

This paper is the continuation of a previous work done on clock skew compensation over a high latency network. It evaluates the efficiency of the EPTMA clock skew detection algorithm applied to real-time audio streaming over a local network. The presented results include real world apparent deviations of audio card clocks and acuracy of the skew detection. It appears that EPMTA is very suitable to measure clocks deviation in the context of audio transport. Fina... Lire la suite

This paper is the continuation of a previous work done on clock skew compensation over a high latency network. It evaluates the efficiency of the EPTMA clock skew detection algorithm applied to real-time audio streaming over a local network. The presented results include real world apparent deviations of audio card clocks and acuracy of the skew detection. It appears that EPMTA is very suitable to measure clocks deviation in the context of audio transport. Finally, a simple method to compensate for the clock skew is presented, mainly to evaluate a complete solution for audio streaming.

Dominique Fober

Mots-clés :
Audio, Clock, Network, Real-time, Skew

Clock Skew Compensation over a High Latency Network

International Computer Music Conference, 2002, Gothenburg, Sweden. pp.548-552

Exchange of time stamped events between different stations raises the problem of the clock frequencies difference as soon as one station try to compensate for the transmission delay and to render the events with a minimum time distortion. We propose a simple, efficient and low cost method to compensate for the clock frequencies difference. This method rely only on regular time stamped packets transmissions and may be used in many cases. It provides good perform... Lire la suite

Exchange of time stamped events between different stations raises the problem of the clock frequencies difference as soon as one station try to compensate for the transmission delay and to render the events with a minimum time distortion. We propose a simple, efficient and low cost method to compensate for the clock frequencies difference. This method rely only on regular time stamped packets transmissions and may be used in many cases. It provides good performances to the receiver station in regard of the sender reference time even on a heavily loaded communication channel. It operates also very efficiently on a low latency local network

Dominique Fober, Stéphane Letz, Yann Orlarey

Mots-clés :
Clock, Communication, Music, Network, Real-time, Synchronization

2001

Un pitchtracker monophonique

Journées d'Informatique Musicale, 2001, Bourges, France. pp.217-223

Nous présentons ici un détecteur de hauteur de note basé sur une amélioration du vocodeur de phase. Cette amélioration, permettant une meilleure précision en temps et en fréquence, est parfaitement adaptée à une utilisation en temps réel. Une attention particulière a été portée sur la possibilité d'intégration de ce détecteur dans différents systèmes.

Dominique Cirotteau, Dominique Fober, Stéphane Letz, Yann Orlarey

Mots-clés :
Analysis, FFT, MIDI, Pitch, Real-time, Sound, To, Tracker

Porting PortAudio API on ASIO

[Technical Report] GRAME. 2001

This document describes a port of the PortAudio API using the ASIO API on Macintosh and Windows. It explains technical choices used, buffer size adaptation techniques that guarantee minimal additional latency, results and limitations.

Stéphane Letz

Mots-clés :
Audio, Portability, Techniques

Optimised Lock-Free FIFO Queue

[Technical Report] GRAME. 2001

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 efficient. We'll present its implementation and it's performances.

Dominique Fober, Yann Orlarey, Stéphane Letz

Mots-clés :
Concurrency, Fifo, Lifo, Lock-free

Real Time Musical Events Streaming over Internet

International Conference on WEB Delivering of Music, 2001, Firenze, Italy. pp.147-154

We present a new protocol to transmit time ordered events in real-time over 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 is particularly suitable to transmit musical events such as MIDI events. The implementation is based on the User Datagra... Lire la suite

We present a new protocol to transmit time ordered events in real-time over 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 is particularly suitable to transmit musical events such as MIDI events. The implementation is based on the User Datagram Protocol (UDP) however, the proposed solution is independant of the underlying network layers.

Dominique Fober, Yann Orlarey, Stéphane Letz

Mots-clés :
Internet, MIDI, Real-time

This paper presents inter processus communication (IPC) real-time performances measured on different operating systems, including GNU/Linux, Windows 98, 2000, NT 4.0 and MacOS X. The adopted point of view is based on a client / server model. The operating systems behavior and message transmission latency times are evaluated in different contexts: with one to ten clients for the server, with systems more or less busy with alternate tasks. As we wanted to measure... Lire la suite

This paper presents inter processus communication (IPC) real-time performances measured on different operating systems, including GNU/Linux, Windows 98, 2000, NT 4.0 and MacOS X. The adopted point of view is based on a client / server model. The operating systems behavior and message transmission latency times are evaluated in different contexts: with one to ten clients for the server, with systems more or less busy with alternate tasks. As we wanted to measure real world performances, the benchmarks have been applied to operating systems running standard default configurations. Each time it was possible, we compared the different systems on the base of local Unix sockets communication way. But above all, we choose the most efficient communication way per system to evaluate the overall best performances that one can expect in a client / server model.

Dominique Fober, Yann Orlarey, Stéphane Letz

Mots-clés :
IPC, Operating, Real-time, Systems

Callback adaptation techniques

[Technical Report] GRAME. 2001

This document describes a callback adaptation technique developed for the PortAudio port on ASIO. This method handle buffers of different sizes and guarantee lowest latency added by buffer size adaptation.

Stéphane Letz

Mots-clés :
Audio, Techniques

Transmission d'événements musicaux en temps réel sur Internet

Journées d'Informatique Musicale, 2001, Bourges, France. pp.225-236

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 également en compte les dérives d'horloges des différentes machines impliquées dans une transmission. Il est particulièrement ad... Lire la suite

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 également en compte les dérives d'horloges des différentes machines impliquées dans une transmission. Il est particulièrement adapté à la transmission d'événements musicaux tels que les messages MIDI.

Dominique Fober, Yann Orlarey, Stéphane Letz

Mots-clés :
MIDI, Real-time, Streaming, UDP

MidiShare is a portable software architecture for musical applications, based on a client/server model. Up to now and along all the supported operating systems (GNU/Linux, MacOS, Windows), it has always been implemented at low level operating system layer. This choice was dictated by efficiency and time constraints. The main drawback of using low level layers is the lack of portability and the complexity of the kernel extensions design. Recent evolutions of ope... Lire la suite

MidiShare is a portable software architecture for musical applications, based on a client/server model. Up to now and along all the supported operating systems (GNU/Linux, MacOS, Windows), it has always been implemented at low level operating system layer. This choice was dictated by efficiency and time constraints. The main drawback of using low level layers is the lack of portability and the complexity of the kernel extensions design. Recent evolutions of operating systems, combined with important technology improvements, have made possible to consider a more portable architecture for MidiShare. This document presents a proposed new architecture, based on a user level design.

Dominique Fober, Yann Orlarey, Stéphane Letz

Mots-clés :
Music, Operating, Real-time, Systems

2000

Real-time Composition in Elody

International Computer Music Conference, 2000, Berlin, Germany. pp.336-339

Elody was initially an environment for musical composition allowing the description and algorithmic manipulation of non real-time musical structures. To allow the definition of real-time transformation processes, we have added a new primitive in the language : the real-time input stream. This object can be manipulated and transformed like non real-time objects even before being known. Evaluating a real-time expression gives as result a command sequence which dr... Lire la suite

Elody was initially an environment for musical composition allowing the description and algorithmic manipulation of non real-time musical structures. To allow the definition of real-time transformation processes, we have added a new primitive in the language : the real-time input stream. This object can be manipulated and transformed like non real-time objects even before being known. Evaluating a real-time expression gives as result a command sequence which drives a transformation engine. This one transforms a real-time input stream in an output stream.

Stéphane Letz, Dominique Fober, Yann Orlarey

Mots-clés :
Composition, Elody, Real-time

Le projet MidiShare / Open Source

Journées d'Informatique Musicale, 2000, Bordeaux, France. pp.7-13

MidiShare est un système d'exploitation musical temps-réel, dédié aux applications MIDI. Originellement conçu en 1989, il a été récompensé depuis du prix Apple Trophy (1989), du prix Paris-Cité (1990) et plus récemment du Max d'Or au concours international du logiciel musical de Bourges (1999). Parmi les éléments remarquables du système figurent sa disponibilité sur les principales plates-formes matérielles, son puissant système de communication inter-applicati... Lire la suite

MidiShare est un système d'exploitation musical temps-réel, dédié aux applications MIDI. Originellement conçu en 1989, il a été récompensé depuis du prix Apple Trophy (1989), du prix Paris-Cité (1990) et plus récemment du Max d'Or au concours international du logiciel musical de Bourges (1999). Parmi les éléments remarquables du système figurent sa disponibilité sur les principales plates-formes matérielles, son puissant système de communication inter-applications ainsi que ses performances temps réel. Il faut également mentionner la simplicité d'utilisation et de programmation de MidiShare qui ont certainement contribué à en faire un système supporté par un nombre grandissant de projets. L'ampleur actuelle du projet ainsi que l'évolution du contexte dans lequel MidiShare est amené à opérer nous ont conduit à en faire un projet 'Open Source' et à repenser l'architecture même du noyau, de telle sorte qu'elle permette une meilleure prise en compte des problèmes de portabilité ainsi qu'une plus grande souplesse dans le design de composants tels que les drivers. Ce sont ces évolutions qui sont présentées, notamment à travers une implémentation récente de MidiShare pour GNU/Linux, réalisée sur la base de cette nouvelle architecture.

Dominique Fober, Yann Orlarey, Stéphane Letz

Mots-clés :
Linux, MidiShare, Open, Source

1999

Modèles de structures tonales dans Elody

Journées d'Informatique Musicale, May 1999, Paris, France

Stephane Letz, Dominique Fober, Yann Orlarey

We developed an asynchronous transfer mode-based environment for distributed musical rehearsals in an immersive teleconference environment. This article describes the technical specifications of the installations and the organization and studio setup of these rehearsals. We present our implementation of the environment and give the results obtained from the organized distributed musical rehearsal trials.

Yann Orlarey, Olivier Carbonel, Dominique Konstantas, Simon Gibbs

Mots-clés :
Distributed system, Music, Real-time

Les logiciels d'aide à la composition musicale

Rencontres Musicales Pluridisciplinaires, 1999, Lyon, France. pp.13-19

Le XXème siècle aura vu le champ d'action du domaine musical prodigieusement élargi, à la fois par l'apparition de nouveaux moyens techniques de production du son, que par l'apparition de nouveaux modes d'investigation de la pensée musicale. Celle-ci s'affranchit des procédés classiques de composition pour explorer une grande variété et une grande richesse de modèles de pensée qui naissent notamment de la confrontation et de l'échange avec des domaines scientif... Lire la suite

Le XXème siècle aura vu le champ d'action du domaine musical prodigieusement élargi, à la fois par l'apparition de nouveaux moyens techniques de production du son, que par l'apparition de nouveaux modes d'investigation de la pensée musicale. Celle-ci s'affranchit des procédés classiques de composition pour explorer une grande variété et une grande richesse de modèles de pensée qui naissent notamment de la confrontation et de l'échange avec des domaines scientifiques eux aussi en pleine mutation. C'est à la fin des années 50 que naîtra l'informatique musicale. Cette discipline créera progressivement des outils qui vont s'inscrire en prolongement de ces évolutions, mais vont surtout leur ouvrir des perspectives beaucoup plus vastes tout en modifiant radicalement les moyens d'action de la pensée musicale. Ce sont ces nouveaux outils, le contexte de leur apparition ainsi que leur lien avec la pensée musicale qui sont présentés avec un point de vue particulier sur les langages formels pour l'écriture musicale.

Dominique Fober, Stéphane Letz

Mots-clés :
Composition, Formel, Langage, Musicale

Musique & Notations

Aleas Editeur, pp.190, 1999

Hugues Genevois, Yann Orlarey

Lambda-Calcul, Programmabilité et Composition Musicale

Hermes. Interfaces homme-machine dans la création musicale, 1999

Yann Orlarey

MidiShare joins the Open Source Softwares

International Computer Music Conference, 1999, Beijing, China. pp.311-313

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 performances are among the significant services provided by the kernel. Freely available on the Internet to developers s... Lire la suite

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 performances are among the significant services provided by the kernel. Freely available on the Internet to developers since several years, MidiShare is now supported by a growing number of projects. Its developers mailing list count 250 members on average. The MidiShare project itself is reaching a state which requires a different management policy: the MidiShare source code is now publicly available to allow collaborative contributions over the Internet. The poster session will present this new project, including changes in the kernel architecture, the source code portability issues and the organization of the collaborative development over the Internet.

Dominique Fober, Yann Orlarey, Stéphane Letz

Mots-clés :
Linux, MidiShare, Open, Source

1998

Cristallisation d'applications musicales par collaboration

Journées d'Informatique Musicale, May 1998, La Londe-les-Maures, France. pp.A2-1, A2-7

Le développement de la communication et de la collaboration inter-applications conduisent à l'élaboration de systèmes de plus en plus modulaires, basés sur des composants élémentaires et spécialisés qui sont amenés à collaborer pour produire des comportements émergents complexes. Dans le domaine musical, MidiShare fournit les fondements à de tels systèmes en prenant en compte les besoins spécifiques des applications musicales. L'étape ultérieure de la collabora... Lire la suite

Le développement de la communication et de la collaboration inter-applications conduisent à l'élaboration de systèmes de plus en plus modulaires, basés sur des composants élémentaires et spécialisés qui sont amenés à collaborer pour produire des comportements émergents complexes. Dans le domaine musical, MidiShare fournit les fondements à de tels systèmes en prenant en compte les besoins spécifiques des applications musicales. L'étape ultérieure de la collaboration entre applications consiste naturellement à fournir des systèmes permettant de la simplifier et de l'automatiser. C'est en ce sens que nous présentons un nouveau concept : la 'cristallisation de programme' qui consiste à assembler dynamiquement des applications séparées.

Dominique Fober, Stéphane Letz, Yann Orlarey, Thierry Carron

Mots-clés :
Collaboration, Architecture, Communication, Logicielle, Temps-reel, MidiShare

Hugues Genevois, Yann Orlarey

The Role of Lambda-Abstraction in Elody

International Computer Music Conference, 1998, Ann Arbor, United States. pp.377-384

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 operation, or by composing and transforming previously defined abstractions. As the paper will show through several examples, this approach leads to a qu... Lire la suite

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 operation, or by composing and transforming previously defined abstractions. As the paper will show through several examples, this approach leads to a quite natural formalization as well as a convenient active notation for many musical notions and compositional techniques.

Stéphane Letz, Dominique Fober, Yann Orlarey

Mots-clés :
Elody, Functional programming, Lambda calculus

le Son & l'Espace

Aleas Editeur, pp.194, 1998

Hugues Genevois, Yann Orlarey

Mots-clés :
Acoustique, Musicologie, Psychoacoustique, Techniques audio, Neurophysiologie

1997

Elody : a Java+MidiShare based Music Composition Environment

International Computer Music Conference, 1997, Thessaloniki, Greece. pp.391-394

This paper introduces Elody, a MidiShare compatible music composition environment developed in Java. The heart of Elody is a visual functional language derived from the G-Calculus. The languages expressions are handled through visual constructors and Drag and Drop actions allowing the user to play in realtime with the language.

Yann Orlarey, Dominique Fober, Stéphane Letz

Mots-clés :
Composition, Elody, Functional programming, Music