2013
Programming Interactive Music Scores with INScore
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
Mots-clés :
Interaction, Synchronization, Music, Score, Graphic, Programming
2012
Abstraction du processus temps réel : une stratégie pour la préservation à long terme
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.
Mots-clés :
DSP, FAUST, Heritage, Preservation, Programming
Le compilateur en ligne de Faust : un IDE en ligne pour le langage de programmation FAUST
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.
Mots-clés :
DSP, FAUST, Programming, Web
The Faust Online Compiler: a Web-Based IDE for the Faust Programming Language
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.
2011
Auto-documentation mathématique pour le traitement du signal avec Faust
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.
Mots-clés :
DSP, FAUST, Heritage, Preservation, Programming
2010
Automatic Paralllelization of Audio Applications with Faust
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.
Mots-clés :
Compiler, Dataflow, Functional, Processing, Programming, Real-time, Signal
Work Stealing Scheduler for Automatic Parallelization in Faust
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.
Mots-clés :
Compiler, Dataflow, Functional, Processing, Programming, Real-time, Signal
2009
FAUST : an Efficient Functional Approach to DSP Programming
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.
Mots-clés :
Compiler, Dataflow, Functional, Processing, Programming, Real-time, Signal
2006
DSP Programming with Faust, Q and SuperCollider
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.
Mots-clés :
Computer, Digital, FAUST, Functional, Language, Music, Processing, Programming, Q, Signal, SuperCollider
Faust 0.9.8 Quick Reference
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.
Mots-clés :
Digital, Functional, Processing, Programming, Signal
2003
A FAUST Tutorial
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.
Mots-clés :
Audio, Block-diagrams, Functionnal, Processing, Programming, Real, Signal, Time
2002
Etude de l'extension de la notion d'abstraction du lambda-calcul.
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.
Mots-clés :
Elody, Lambda-calcul, Language, Music, Programming
1997
Développement d'un opérateur d'abstraction généralisée pour le langage de programmation musicale Elody.
Dans le cadre des recherches réalisées au laboratoire d'informatique musicale de Grame autour des langages homogènes dérivés du lambda-calcul non typé, on se propose d'étudier les possibilités de généralisation de l'abstraction héritée du lambda-calcul. Dans cette optique, on formalise une notion de généralité des expressions du langage. En référence à cette notion, on peut envisager l'abstraction généralisée d'une expression e dans une expression f comme le mo... Lire la suite
Dans le cadre des recherches réalisées au laboratoire d'informatique musicale de Grame autour des langages homogènes dérivés du lambda-calcul non typé, on se propose d'étudier les possibilités de généralisation de l'abstraction héritée du lambda-calcul. Dans cette optique, on formalise une notion de généralité des expressions du langage. En référence à cette notion, on peut envisager l'abstraction généralisée d'une expression e dans une expression f comme le moyen de désigner dans f tous les sous-termes q de f tels que e est plus générale que q. L'opérateur ainsi défini dans un lambda-calcul non typé peut être facilement adapté à un langage de programmation musicale dérivé du lambda-calcul. Dans Elody, un langage de ce type développé à Grame en JAVA, on a remplacé de cette manière, l'opérateur d'abstraction simple implémenté à l'origine, par un opérateur d'abstraction généralisé. Ce qui a pour incidence d'élargir la fonctionnalité du langage.
Mots-clés :
Elody, Lambda-calcul, Language, Music, Programming