Mots clés
2018 |
Letz, St’ephane; Orlarey, Yann; Fober, Dominique FAUST Domain Specific Audio DSP Language Compiled to WebAssembly (Inproceeding) Companion Proceedings of the The Web Conference 2018, pp. 701–709, International World Wide Web Conferences Steering Committee, Lyon, France, 2018, ISBN: 978-1-4503-5640-4. (Abstract | Links | BibTeX | Étiquettes: audio, compilation, Domain Specific Language, DSP, FAUST, keywords{signal processing, webassembly, webaudio}) @inproceedings{Letz:2018:FDS:3184558.3185970,
title = {FAUST Domain Specific Audio DSP Language Compiled to WebAssembly}, author = {Letz, St’ephane and Orlarey, Yann and Fober, Dominique}, url = {faust-thewebconf2018.pdf}, doi = {10.1145/3184558.3185970}, isbn = {978-1-4503-5640-4}, year = {2018}, date = {2018-01-01}, booktitle = {Companion Proceedings of the The Web Conference 2018}, pages = {701–709}, publisher = {International World Wide Web Conferences Steering Committee}, address = {Lyon, France}, series = {WWW ’18}, abstract = {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 WebAssembly code and the deployment of specialized WebAudio nodes will be explained. Several use cases will be presented. Extensive benchmarks to compare the performance of native and WebAssembly versions of the same set of DSP have be done and will be commented}, keywords = {audio, compilation, Domain Specific Language, DSP, FAUST, keywords{signal processing, webassembly, webaudio}}, pubstate = {published}, tppubtype = {inproceedings} } 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 WebAssembly code and the deployment of specialized WebAudio nodes will be explained. Several use cases will be presented. Extensive benchmarks to compare the performance of native and WebAssembly versions of the same set of DSP have be done and will be commented
|
2017 |
Albouy, Adrien; Letz, Stéphane Faust audio DSP language for JUCE (Inproceeding) Ciciliato, Vincent; Orlarey, Yann; Pottier, Laurent (Ed.): Proceedings of the Linux Audio Conference — LAC 2017, pp. 61–68, CIEREC, Saint Etienne, 2017. (Abstract | Links | BibTeX | Étiquettes: audio, Domain Specific Language, DSP, FAUST, JUCE, real-time) @inproceedings{albouy17,
title = {Faust audio DSP language for JUCE}, author = {Adrien Albouy and Stéphane Letz}, editor = {Vincent Ciciliato and Yann Orlarey and Laurent Pottier}, url = {08_C_B_137208.pdf}, year = {2017}, date = {2017-01-01}, booktitle = {Proceedings of the Linux Audio Conference — LAC 2017}, pages = {61–68}, publisher = {CIEREC}, address = {Saint Etienne}, abstract = {Faust [Functional Audio Stream] is a functional programming language specifically designed for real- time signal processing and synthesis [1]. It consists of a compiler that translates a Faust program into an equivalent C++ program, taking care of generat- ing the most efficient code. JUCE is an open-source cross-platform C++ application framework devel- oped since 2004, and bought by ROLI1 in Novem- ber 2014, used for the development of desktop and mobile applications. A new feature to the Faust environnement is the addition of architectures files to provide the glue between the Faust C++ output and the JUCE framework. This article presents the overall design of the architecture files for JUCE.}, keywords = {audio, Domain Specific Language, DSP, FAUST, JUCE, real-time}, pubstate = {published}, tppubtype = {inproceedings} } Faust [Functional Audio Stream] is a functional programming language specifically designed for real- time signal processing and synthesis [1]. It consists of a compiler that translates a Faust program into an equivalent C++ program, taking care of generat- ing the most efficient code. JUCE is an open-source cross-platform C++ application framework devel- oped since 2004, and bought by ROLI1 in Novem- ber 2014, used for the development of desktop and mobile applications. A new feature to the Faust environnement is the addition of architectures files to provide the glue between the Faust C++ output and the JUCE framework. This article presents the overall design of the architecture files for JUCE.
|
Letz, Stéphane; Orlarey, Yann; Fober, Dominique; Michon, Romain Polyphony, sample-accurate control and MIDI support for FAUST DSP using combinable architecture files (Inproceeding) Ciciliato, Vincent; Orlarey, Yann; Pottier, Laurent (Ed.): Proceedings of the Linux Audio Conference — LAC 2017, pp. 69–75, CIEREC, Saint Etienne, 2017. (Abstract | Links | BibTeX | Étiquettes: audio, DSP programming, FAUST, MIDI) @inproceedings{letz17a,
title = {Polyphony, sample-accurate control and MIDI support for FAUST DSP using combinable architecture files}, author = {Stéphane Letz and Yann Orlarey and Dominique Fober and Romain Michon}, editor = {Vincent Ciciliato and Yann Orlarey and Laurent Pottier}, url = {09_C_B_137724.pdf}, year = {2017}, date = {2017-01-01}, booktitle = {Proceedings of the Linux Audio Conference — LAC 2017}, pages = {69–75}, publisher = {CIEREC}, address = {Saint Etienne}, abstract = {The Faust architecture files ecosystem is regularly enriched with new targets to deploy Digital Signal Processing (DSP) programs. This paper presents re-cently developed techniques to expand the standard one DSP source, one program or plugin model, and to better control parameter changes during the audio computation. Sample accurate control and polyphonic instruments definition have been introduced, and will be explained particularly in the context of MIDI control.}, keywords = {audio, DSP programming, FAUST, MIDI}, pubstate = {published}, tppubtype = {inproceedings} } The Faust architecture files ecosystem is regularly enriched with new targets to deploy Digital Signal Processing (DSP) programs. This paper presents re-cently developed techniques to expand the standard one DSP source, one program or plugin model, and to better control parameter changes during the audio computation. Sample accurate control and polyphonic instruments definition have been introduced, and will be explained particularly in the context of MIDI control.
|
2014 |
Letz, Stéphane; Denoux, Sarah; Orlarey, Yann Audio Rendering/Processing and Control Ubiquity ? a Solution Built Using the Faust Dynamic Compiler and JACK/NetJack (Inproceeding) Proceedings of the ICMC/SMC 2014, pp. 1518–1523, 2014. (Abstract | Links | BibTeX | Étiquettes: audio, Domain Specific Language, DSP, FAUST, real-time) @inproceedings{letz14b,
title = {Audio Rendering/Processing and Control Ubiquity ? a Solution Built Using the Faust Dynamic Compiler and JACK/NetJack}, author = {Stéphane Letz and Sarah Denoux and Yann Orlarey}, url = {Faust-icmc.pdf}, year = {2014}, date = {2014-09-17}, booktitle = {Proceedings of the ICMC/SMC 2014}, pages = {1518–1523}, abstract = {We usually think of an audio application as a self-contained executable that will compute audio, allow user interface control, and render sound in a single process, on a unique machine. With the appearance of fast network and sophisticated, light and wireless control devices (such as tablets, smart- phones…) the three different parts (that are audio computation, interface control and sound rendering) can naturally be decoupled to run on different processes on a given machine, or even on different machines (on a LAN or WAN network). We describe a solution to run and control audio DSP on different machines based on FAUST audio DSP language and JACK/NetJack network audio real-time layer.}, keywords = {audio, Domain Specific Language, DSP, FAUST, real-time}, pubstate = {published}, tppubtype = {inproceedings} } We usually think of an audio application as a self-contained executable that will compute audio, allow user interface control, and render sound in a single process, on a unique machine. With the appearance of fast network and sophisticated, light and wireless control devices (such as tablets, smart- phones…) the three different parts (that are audio computation, interface control and sound rendering) can naturally be decoupled to run on different processes on a given machine, or even on different machines (on a LAN or WAN network). We describe a solution to run and control audio DSP on different machines based on FAUST audio DSP language and JACK/NetJack network audio real-time layer.
|
Denoux, Sarah; Letz, Stéphane; Orlarey, Yann; Fober, Dominique FaustLive : Un compilateur à la volée pour Faust… et bien plus encore (Inproceeding) Actes des Journées de l’informatique Musicale, 2014. (Abstract | Links | BibTeX | Étiquettes: audio, contrôle et calculs à distance, FAUST, Programmation de DSP) @inproceedings{FaustLive-JIM,
title = {FaustLive : Un compilateur à la volée pour Faust… et bien plus encore}, author = {Sarah Denoux and Stéphane Letz and Yann Orlarey and Dominique Fober}, url = {FaustLive-JIM.pdf}, year = {2014}, date = {2014-05-24}, booktitle = {Actes des Journées de l’informatique Musicale}, journal = {Actes des Journées de l’informatique Musicale 2014}, abstract = {FaustLive est une application qui, grâce à son compilateur Faust embarqué, se propose de réunir le confort d\’un langage interprété avec l\’efficacité d\’un langage compilé. Basée sur libfaust, une librairie qui offre une chaîne de compilation complète en mémoire, FaustLive ne requiert aucun outil externe (compilateur, éditeur de lien, …) pour traduire du code FAUST en code machine exécutable. Par l\’intermédiaire de cette technologie, FaustLive offre de multiples fonctionnalités. Par exemple, il est possible de glisser un nouveau fichier DSP sur une application FAUST en fonctionnement pour remplacer son comportement et ce, sans interruption du son. Il est aussi possible de transférer une application qui fonctionne en local, sur une autre machine, même si celle-ci utilise un système d\’exploitation différent.}, keywords = {audio, contrôle et calculs à distance, FAUST, Programmation de DSP}, pubstate = {published}, tppubtype = {inproceedings} } FaustLive est une application qui, grâce à son compilateur Faust embarqué, se propose de réunir le confort d’un langage interprété avec l’efficacité d’un langage compilé. Basée sur libfaust, une librairie qui offre une chaîne de compilation complète en mémoire, FaustLive ne requiert aucun outil externe (compilateur, éditeur de lien, …) pour traduire du code FAUST en code machine exécutable. Par l’intermédiaire de cette technologie, FaustLive offre de multiples fonctionnalités. Par exemple, il est possible de glisser un nouveau fichier DSP sur une application FAUST en fonctionnement pour remplacer son comportement et ce, sans interruption du son. Il est aussi possible de transférer une application qui fonctionne en local, sur une autre machine, même si celle-ci utilise un système d’exploitation différent.
|
Denoux, Sarah; Letz, Stéphane; Orlarey, Yann; Fober, Dominique FaustLive: Just-In-Time Faust Compiler… and much more (Inproceeding) Proceedings of the Linux Audio Conference, GRAME 2014. (Abstract | Links | BibTeX | Étiquettes: audio, DSP programming, FAUST, remote processing and interfacing) @inproceedings{FaustLive,
title = {FaustLive: Just-In-Time Faust Compiler… and much more}, author = {Sarah Denoux and Stéphane Letz and Yann Orlarey and Dominique Fober}, url = {FaustLive-LAC.pdf}, year = {2014}, date = {2014-05-01}, booktitle = {Proceedings of the Linux Audio Conference}, organization = {GRAME}, abstract = {FaustLive is a standalone just-in-time Faust compiler. It tries to bring together the conve- nience of a standalone interpreted language with the efficiency 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 source code into binary ex- ecutable code. Thanks to this technology, FaustLive pro- vides several advanced features. For example it is possible, while a Faust application is run- ning, to modify its behavior on-the-fly without any sound interruption. It is also possible to mi- grate a running application from one machine to another, etc.}, keywords = {audio, DSP programming, FAUST, remote processing and interfacing}, pubstate = {published}, tppubtype = {inproceedings} } FaustLive is a standalone just-in-time Faust compiler. It tries to bring together the conve- nience of a standalone interpreted language with the efficiency 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 source code into binary ex- ecutable code. Thanks to this technology, FaustLive pro- vides several advanced features. For example it is possible, while a Faust application is run- ning, to modify its behavior on-the-fly without any sound interruption. It is also possible to mi- grate a running application from one machine to another, etc.
|
Orlarey, Yann; Letz, Stéphane; Fober, Dominique Version librairie du compilateur Faust. (Technical Report) 2014. (Abstract | Links | BibTeX | Étiquettes: audio, Domain Specific Language, DSP, FAUST, real-time) @techreport{orlarey14a,
title = {Version librairie du compilateur Faust.}, author = {Yann Orlarey and Stéphane Letz and Dominique Fober}, editor = {Grame}, url = {libfaust-INEDIT-2014.pdf}, year = {2014}, date = {2014-02-16}, abstract = {Faust est un langage de programmation de type fonctionnel synchrone conçu spécifiquement pour la synthèse et le traitement du signal audio-numérique en temps-réel. L’objectif de WP3.4 est de développer une version embarquable du compilateur Faust (appelée libfaust) pouvant être intégrée aux différentes applications du projet INEDIT. L’intérêt pour ces applications est de disposer ainsi d’une chaîne de compilation complète, permettant de traduire les traitements synchrones, écrites en Faust, en code binaire exécutable fonctionnant donc à vitesse native. En s’appuyant sur la technologie LLVM cette chaîne de compilation est totalement autonome et ne dépend d’aucun outil de développement extérieur. Ceci facilite grandement le déploiement auprès d’utilisateurs non informaticiens. Elle est en outre très rapide, rendant ainsi dans de nombreux cas la phase de compilation transparente pour l’utilisateur. Le rapport présente la libraire libfaust, l’infrastructure de compilation LLVM, et trois applications de cette technologie : faustgen ̃ un plugin Max/MSP permettant d’éditer, de compiler et d’exécuter du code Faust depuis Max, FaustNode, une extension de la WebAudio API permettant de compiler et d’exécuter du code Faust depuis un navigateur Web et faustcsound, un ensemble de quatre opcodes pour intégrer Faust dans le langage Csound.}, keywords = {audio, Domain Specific Language, DSP, FAUST, real-time}, pubstate = {published}, tppubtype = {techreport} } Faust est un langage de programmation de type fonctionnel synchrone conçu spécifiquement pour la synthèse et le traitement du signal audio-numérique en temps-réel. L’objectif de WP3.4 est de développer une version embarquable du compilateur Faust (appelée libfaust) pouvant être intégrée aux différentes applications du projet INEDIT. L’intérêt pour ces applications est de disposer ainsi d’une chaîne de compilation complète, permettant de traduire les traitements synchrones, écrites en Faust, en code binaire exécutable fonctionnant donc à vitesse native. En s’appuyant sur la technologie LLVM cette chaîne de compilation est totalement autonome et ne dépend d’aucun outil de développement extérieur. Ceci facilite grandement le déploiement auprès d’utilisateurs non informaticiens. Elle est en outre très rapide, rendant ainsi dans de nombreux cas la phase de compilation transparente pour l’utilisateur. Le rapport présente la libraire libfaust, l’infrastructure de compilation LLVM, et trois applications de cette technologie : faustgen ̃ un plugin Max/MSP permettant d’éditer, de compiler et d’exécuter du code Faust depuis Max, FaustNode, une extension de la WebAudio API permettant de compiler et d’exécuter du code Faust depuis un navigateur Web et faustcsound, un ensemble de quatre opcodes pour intégrer Faust dans le langage Csound.
|
2009 |
Letz, Stephane; N.Arnaudov,; R.Moret, What’s new in JACK2? (Inproceeding) LAC, (Ed.): Proceedings of Linux Audio Conference 2009, 2009. (Abstract | Links | BibTeX | Étiquettes: audio, D-Bus, networked, real-time, server) @inproceedings{ Letz:09a ,
title = {What’s new in JACK2?}, author = {Stephane Letz and N.Arnaudov and R.Moret}, editor = {LAC}, url = {JACK2_lac2009.pdf}, year = {2009}, date = {2009-01-01}, booktitle = {Proceedings of Linux Audio Conference 2009}, abstract = {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.}, keywords = {audio, D-Bus, networked, real-time, server}, pubstate = {published}, tppubtype = {inproceedings} } 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.
|
Letz, Stephane; Fober, Dominique; Orlarey, Yann TIMING MEASUREMENTS IN JACK2 (Technical Report) 2009. (Abstract | Links | BibTeX | Étiquettes: audio, profiling, real-time, server, timing) @techreport{ Letz:09b ,
title = {TIMING MEASUREMENTS IN JACK2}, author = {Stephane Letz and Dominique Fober and Yann Orlarey}, editor = {Grame}, url = {Timing.pdf}, year = {2009}, date = {2009-01-01}, abstract = {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.}, keywords = {audio, profiling, real-time, server, timing}, pubstate = {published}, tppubtype = {techreport} } 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.
|
2005 |
Letz, Stephane; Orlarey, Yann; Fober, Dominique jackdmp: Jack server for multi-processor machines (Inproceeding) LAC, (Ed.): pp. 29–36, 2005. (Abstract | Links | BibTeX | Étiquettes: audio, lock-free, multi-processor, Parallelism, real-time) @inproceedings{ letz:05a ,
title = {jackdmp: Jack server for multi-processor machines}, author = {Stephane Letz and Yann Orlarey and Dominique Fober}, editor = {LAC}, url = {Jackdmp-lac2005.pdf}, year = {2005}, date = {2005-01-01}, pages = {29–36}, abstract = {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 current design. The activation system has been changed for a data flow model and lock-free programming techniques for graph access have been used to have a more dynamic and robust system. We present the new design and the implementation for MacOSX.}, keywords = {audio, lock-free, multi-processor, Parallelism, real-time}, pubstate = {published}, tppubtype = {inproceedings} } 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 current design. The activation system has been changed for a data flow model and lock-free programming techniques for graph access have been used to have a more dynamic and robust system. We present the new design and the implementation for MacOSX.
|
Letz, Stephane; Orlarey, Yann; Fober, Dominique Jack audio server for multi-processor machines (Inproceeding) ICMA, (Ed.): Proceedings of the International Computer Music Conference, pp. 1–4, 2005. (Abstract | Links | BibTeX | Étiquettes: audio, lock-free, multi-processor, Parallelism, real-time) @inproceedings{ Letz:05b ,
title = {Jack audio server for multi-processor machines}, author = {Stephane Letz and Yann Orlarey and Dominique Fober}, editor = {ICMA}, url = {Jackdmp-ICMC2005.pdf}, year = {2005}, date = {2005-01-01}, booktitle = {Proceedings of the International Computer Music Conference}, pages = {1–4}, abstract = {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 device, 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 limitations of the current design: the activation system has been changed for a data flow model and lock-free programming techniques for graph access have been used.}, keywords = {audio, lock-free, multi-processor, Parallelism, real-time}, pubstate = {published}, tppubtype = {inproceedings} } 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 device, 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 limitations of the current design: the activation system has been changed for a data flow model and lock-free programming techniques for graph access have been used.
|
2004 |
Letz, Stephane; Fober, Dominique; Orlarey, Yann; P.Davis, Jack Audio Server: MacOSX port and multi-processor version (Inproceeding) IRCAM, (Ed.): Proceedings of the first Sound and Music Computing conference – SMC’04, pp. 177–183, 2004. (Abstract | Links | BibTeX | Étiquettes: architecture, audio, real-time) @inproceedings{ Letz:04b ,
title = {Jack Audio Server: MacOSX port and multi-processor version}, author = {Stephane Letz and Dominique Fober and Yann Orlarey and P.Davis}, editor = {IRCAM}, url = {SMC-2004-033.pdf}, year = {2004}, date = {2004-01-01}, booktitle = {Proceedings of the first Sound and Music Computing conference – SMC’04}, pages = {177–183}, abstract = {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 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.}, keywords = {architecture, audio, real-time}, pubstate = {published}, tppubtype = {inproceedings} } 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 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.
|
2003 |
Scaringella,; Orlarey, Yann; Letz, Stephane; Fober, Dominique Automatic vectorization in Faust (Inproceeding) JIM, (Ed.): Actes des Journées d’Informatique Musicale JIM2003, Montbeliard, 2003. (Abstract | Links | BibTeX | Étiquettes: audio, compiler, processing, signal, vectorization) @inproceedings{ Scaringella:03 ,
title = {Automatic vectorization in Faust}, author = {N. Scaringella and Yann Orlarey and Stephane Letz and Dominique Fober}, editor = {JIM}, url = {JIM2003vect.pdf}, year = {2003}, date = {2003-01-01}, booktitle = {Actes des Journées d’Informatique Musicale JIM2003, Montbeliard}, abstract = {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.}, keywords = {audio, compiler, processing, signal, vectorization}, pubstate = {published}, tppubtype = {inproceedings} } 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.
|
Gaudrain,; Orlarey, Yann A FAUST Tutorial (Technical Manual) Grame, (Ed.): 2003. (Abstract | Links | BibTeX | Étiquettes: audio, block-diagrams, functionnal, processing, programming, real, signal, time) @manual{ Gaudrain:03a ,
title = {A FAUST Tutorial}, author = {E. Gaudrain and Yann Orlarey}, editor = {Grame}, url = {faust_tutorial.pdf}, year = {2003}, date = {2003-01-01}, abstract = {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.}, keywords = {audio, block-diagrams, functionnal, processing, programming, real, signal, time}, pubstate = {published}, tppubtype = {manual} } 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.
|
2002 |
Fober, Dominique Audio Cards Clock Skew Compensation over a Local Network (Technical Report) 2002. (Abstract | Links | BibTeX | Étiquettes: audio, clock, network, real-time, skew) @techreport{ Fober:02a ,
title = {Audio Cards Clock Skew Compensation over a Local Network}, author = {Dominique Fober}, editor = {Grame}, url = {AudioClockSkew.pdf}, year = {2002}, date = {2002-01-01}, booktitle = {Technical Report – 02-04-01}, abstract = {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.}, keywords = {audio, clock, network, real-time, skew}, pubstate = {published}, tppubtype = {techreport} } 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.
|
2001 |
Letz, Stephane Porting PortAudio API on ASIO (Technical Report) 2001. (Abstract | Links | BibTeX | Étiquettes: audio, portability, techniques) @techreport{ Letz:01a ,
title = {Porting PortAudio API on ASIO}, author = {Stephane Letz}, editor = {Grame}, url = {Pa_ASIO.pdf}, year = {2001}, date = {2001-01-01}, booktitle = {Technical Note – 01-11-06}, abstract = {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.}, keywords = {audio, portability, techniques}, pubstate = {published}, tppubtype = {techreport} } 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.
|
Letz, Stephane Callback adaptation techniques (Technical Report) 2001. (Abstract | Links | BibTeX | Étiquettes: audio, techniques) @techreport{ Letz:01b ,
title = {Callback adaptation techniques}, author = {Stephane Letz}, editor = {Grame}, url = {CallbackAdaptation.pdf}, year = {2001}, date = {2001-01-01}, booktitle = {Technical Note – 01-11-07}, abstract = {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.}, keywords = {audio, techniques}, pubstate = {published}, tppubtype = {techreport} } 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.
|