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

Adding Automatic Parallelization to Faust

Linux Audio Conference, 2009, Parma, Italy

Faust 0.9.9.5 introduces new compilation options to do automatic parallelization of code using OpenMP. This paper explains how the automatic parallelization is done and presents some benchmarks.

Yann Orlarey, Stéphane Letz, Dominique Fober

Mots-clés :
FAUST, OpenMP, Parallelism, Processing, Signal

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

Semantics for multirate Faust

[Technical Report] GRAME. 2009

Faust is a functional programming language dedicated to the specification of executable monorate musical applications. We present here a multirate extension of the core of the Faust language, called MR Faust, together with a typing semantics, a denotational semantics and correctness theorems that link them together.

Pierre Jouvelot, Yann Orlarey

Mots-clés :
FAUST, Multirate, Processing, Signal

What's new in JACK2?

Linux Audio Conference, 2009, Parma, Italy

JACK2 is the future JACK version based on the C++ multi-processors Jackdmp version. This paper presents recent developments: the D-Bus based server control system, NetJack2 the redesigned network components for JACK and profiling tools developed during port on Solaris.

Stéphane Letz, Nedko Arnaudov, Romain Moret

Mots-clés :
Audio, D-Bus, Networked, Real-time, Server

Entre Calcul, Programmation et Création

PU Saint Etienne. Le Calcul de la Musique : Composition, Modèles et Outils, pp.331-365, 2009

L'objectif de ce texte est déssayer de répondre à la question suivante: qu'est-ce qui fait qu'un ordinateur et un langage de programmation deviennent des outils d'aide à la création ?

The Guido Engine - A toolbox for music scores rendering

Linux Audio Conference, 2009, Parma, Italy. pp.105-111

The Guido Music Notation format (GMN) is a general purpose formal language for representing score level music in a platform independent plain text and human readable way. Based on this music representation format, the Guido Lib provides a generic, portable library and API for the graphical rendering of musical scores. This paper gives an introduction to the music notation format and to the Guido graphic score rendering engine. An example of application, the Gui... Lire la suite

The Guido Music Notation format (GMN) is a general purpose formal language for representing score level music in a platform independent plain text and human readable way. Based on this music representation format, the Guido Lib provides a generic, portable library and API for the graphical rendering of musical scores. This paper gives an introduction to the music notation format and to the Guido graphic score rendering engine. An example of application, the GuidoSceneComposer, is next presented.

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

Mots-clés :
GUIDO, Layout, Music, Notation, Score

TIMING MEASUREMENTS IN JACK2

[Technical Report] GRAME. 2009

Timing measurements allow developers to help under- standing the behaviour of their JACK based applications. The server code base now allows to record various tim- ing while the server and clients are running and generate scripts to interpret them.

Stéphane Letz, Dominique Fober, Yann Orlarey

Mots-clés :
Audio, Profiling, Real-time, Server, Timing

2008

Multicore technologies in Jack and Faust

International Computer Music Conference, 2008, Belfast, Ireland

Two ongoing research projects at Grame aim at providing efficient solution for audio applications on many/multi core systems. The first one is Jack- dmp, a C++ version of the Jack low-latency audio server for multi-core machines. The second is Faust, a compiled DSP language with auto parallelization features. This paper will briefly describe these two projects focusing on multi-core related questions.

Yann Orlarey, Stéphane Letz, Dominique Fober

Mots-clés :
Jack

2007

VEMUS - Feedback and Groupware Technologies for Music Instrument Learning

Sound and Music Computing Conference, 2007, Lefkada, Greece. pp.117-123

VEMUS is a european research project that aims at developing and validating an open music tuition framework for popular wind instruments such as the flute, the saxophone, the clarinet and the recorder. The system will address students of beginning to intermediate level. It proposes an innovative approach both at technological and pedagogical levels. This paper presents the project with a specific focus on the feedback technologies developed to extend the instru... Lire la suite

VEMUS is a european research project that aims at developing and validating an open music tuition framework for popular wind instruments such as the flute, the saxophone, the clarinet and the recorder. The system will address students of beginning to intermediate level. It proposes an innovative approach both at technological and pedagogical levels. This paper presents the project with a specific focus on the feedback technologies developed to extend the instrumental and pedagogic practices.

Dominique Fober, Stéphane Letz, Yann Orlarey

Mots-clés :
Feedback, Instrument, Learning, Music, Pedagogy

Visualisation du jeu instrumental

Journées d'Informatique Musicale, 2007, Lyon, France. pp.64-72

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 musicale. Cet article expose les différentes stratégies mises en oeuvre pour exploiter voire amplifier la complémentarité des perceptions visuelles et sonores, avec un point de vue particulier sur les applications dans le domaine de la pédagogie de la pratique ins... Lire la suite

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 musicale. Cet article expose les différentes stratégies mises en oeuvre pour exploiter voire amplifier la complémentarité des perceptions visuelles et sonores, avec un point de vue particulier sur les applications dans le domaine de la pédagogie de la pratique instrumentale.

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

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

VEMUS - Une école de musique européenne virtuelle

Journées d'Informatique Musicale, 2007, Lyon, France. pp.57-63

VEMUS 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 pratique 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 à des étudiants de niveau débutant à intermédiaire. Il propose une démarche innovante, tant d'un point de vue technologique que sur un plan pédagogique. L'article prés... Lire la suite

VEMUS 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 pratique 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 à des étudiants de niveau débutant à intermédiaire. Il propose une démarche innovante, tant d'un point de vue technologique que sur un plan pédagogique. L'article présente le projet avec un accent particulier sur les technologies de feedback mises en oeuvre pour étendre les pratiques instrumentales et pédagogiques.

Dominique Fober, Stéphane Letz, Yann Orlarey

Mots-clés :
Feedback, Musicale, Pédagogie, Pratique

Annotation de partitions musicales dynamiques

Journées d'Informatique Musicale, 2007, Lyon, France. pp.18-27

Cet article traite de l'annotation visuelle à main levée de partitions musicales dynamiques : par dynamique, 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équence. Nous décrivons ici les difficultés rencontrées et les solutions apportées au fil du développement de cet outil.

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

Mots-clés :
Annotation, Musique, Partition

2006

DEMONSTRATION OF FAUST SIGNAL PROCESSING LANGUAGE

International Computer Music Conference (ICMC-2005), Sep 2006, Barcelona, Spain

FAUST is a compiled language designed for real-time audio signal processing. It is a free software published under the terms of the GNU General Public License. Sources and binaries are available at source forge : http://faudiostream.sourceforge.net. The demonstration will give an overview of the main features of the language and the compiler through several simple and practical examples.

Yann Orlarey, Dominique Fober, Stephane Letz

DSP Programming with Faust, Q and SuperCollider

Linux Audio Conference, 2006, Karlsruhe, Germany

Faust is a functional programming language for realtime signal processing and synthesis that targets high-performance signal processing applications and audio plugins. The paper gives a brief introduction to Faust and discusses its interfaces to Q, a general purpose functional programming language, and SuperCollider, an object-oriented sound synthesis language and engine.

Yann Orlarey, Albert Graef, Stefan Kersten

Mots-clés :
Computer, Digital, FAUST, Functional, Language, Music, Processing, Programming, Q, Signal, SuperCollider

This document is a quick-reference to the Faust language (version 0.9.8), a programming language for real-time signal processing and synthesis that targets high-performance signal processing applications and audio plugins.

USING FAUST FOR FPGA PROGRAMMING

International Conference on Digital Audio Effects, 2006, Montreal, Canada. pp.287-290

In this paper we show the possibility of using FAUST (a programming language for function based block oriented programming) to create a fast audio processor in a single chip FPGA environment. The produced VHDL code is embedded in the on-chip processor system and utilizes the FPGA fabric for parallel processing. For the purpose of implementing and testing the code a complete System-On-Chip framework has been created. We use a Digilent board with a XILINX Virtex... Lire la suite

In this paper we show the possibility of using FAUST (a programming language for function based block oriented programming) to create a fast audio processor in a single chip FPGA environment. The produced VHDL code is embedded in the on-chip processor system and utilizes the FPGA fabric for parallel processing. For the purpose of implementing and testing the code a complete System-On-Chip framework has been created. We use a Digilent board with a XILINX Virtex 2 Pro FPGA. The chip has a PowerPC 405 core and the framework uses the on chip peripheral bus to interface the core. The content of this paper presents a proof-of-concept implementation using a simple two pole IIR filter. The produced code is working, although more work has to be done for implementing complex arithmetic operations support.

Robert Trausmuth, Christian Dusek, Yann Orlarey

Mots-clés :
FAUST

Miroirs technologiques pour la pratique instrumentale

Rencontres Musicales Pluridisciplinaires, 2006, Lyon, France. pp.87-92

La pratique d'un instrument de musique, le travail instrumental, son apprentissage, peuvent être vus comme des activités où le feedback joue un rôle prépondérant. Les technologies actuelles permettent d'envisager l'extension des pratiques instrumentales comme une extension du feedback fournit à l'instrumentiste, aussi bien dans les domaines sonores que visuels. Ce sont ces perspectives nouvelles qui sont présentées, avec leurs implications pour le travail instr... Lire la suite

La pratique d'un instrument de musique, le travail instrumental, son apprentissage, peuvent être vus comme des activités où le feedback joue un rôle prépondérant. Les technologies actuelles permettent d'envisager l'extension des pratiques instrumentales comme une extension du feedback fournit à l'instrumentiste, aussi bien dans les domaines sonores que visuels. Ce sont ces perspectives nouvelles qui sont présentées, avec leurs implications pour le travail instrumental et leurs applications dans le domaine pédagogique.

Dominique Fober

Mots-clés :
Feedback, Musicale, Pédagogie, Pratique

2005

Implémentation d'un flot de données MIDI sur RTP

Journées d'Informatique Musicale, Association Française d'Informatique Musicale, Jun 2005, Paris, France. pp.13-19

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 RTP et les outils qui lui sont associés afin de permettre une transmission de ces données MIDI en temps réel. Un tel protocole pourrait être utilisé dans le cadre d'applications inte... Lire la suite

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 RTP et les outils qui lui sont associés afin de permettre une transmission de ces données MIDI en temps réel. Un tel protocole pourrait être utilisé dans le cadre d'applications interactives ou pour le streaming de fichiers. Le format propose également un mécanisme de réparation en cas de pertes de paquets lorsque le flux est transmis à travers un environnement réseau incertain. Après une brève présentation de MIDI et de RTP, l'article présente le domaine et les enjeux de RTP MIDI puis le format des paquets et les mécanismes de réparation décrits dans ce standard ainsi que, pour finir, nos travaux d'implémentation d'une bibliothèque permettant la création et l'analyse de payloads au format RTP MIDI et pouvant s'intégrer au système MidiShare.

Nicolas Falquet, Dominique Fober

Mots-clés :
Communication, MidiShare, Real-time, RTP

IMUTUS - An effective practicing environment for music tuition.

International Computer Music Conference, 2005, Barcelona, Spain. pp.383-386

This paper presents some major results from the IMUTUS project. 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 the automatic analysis and evaluation of student performances along with enhanced interaction schemes to provide an... Lire la suite

This paper presents some major results from the IMUTUS project. 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 the automatic analysis and evaluation of student performances along with enhanced interaction schemes to provide an effective approach to music learning. Testing and validation activities that have been carried out indicate that the IMUTUS approach is appreciated by both students and teacher, and that it clearly has a strong potential.

Spyros Raptis, Aimilios Chalamandaris, Alexandros Baxevanis, Anders Askenfelt, Erwin Schoonderwaldt, Kjetil Falkenberg-Hansen, Dominique Fober, Stéphane Letz, Yann Orlarey

Mots-clés :
Distance, Education, Learning, Music

An RTP payload for MIDI commands is under development. As a part of this draft, a default resiliency mechanism for the transport over lossy networks defines a journalling method called recovery journal. But the theoretical size of this recovery journal can be very large and its format is complex. This report will present an empirical evaluation of the recovery journal size based on a few MidiFiles. We will also propose an alternative solution for the resiliency... Lire la suite

An RTP payload for MIDI commands is under development. As a part of this draft, a default resiliency mechanism for the transport over lossy networks defines a journalling method called recovery journal. But the theoretical size of this recovery journal can be very large and its format is complex. This report will present an empirical evaluation of the recovery journal size based on a few MidiFiles. We will also propose an alternative solution for the resiliency of RTP MIDI streams based on the combined use of redundancy and retransmissions. Our solution is simpler and might be interesting for some scenarios, typically: short grouping times, complex streams or unconventional semantics.

Nicolas Falquet, Dominique Fober

Mots-clés :
Communication, MidiShare, Real-time, RTP