21 Avril 2022 - 19h
A Just-in-Time Compiler for Csound
- English version below -
Le système Csound a intégré des moyens d’extension depuis ses premières versions. Traditionnellement, cela nécessitait l'ajout de nouveaux composants au code source du langage C et une reconstruction complète du système. Dans les versions les plus récentes de Csound 4, il était possible d'étendre le système en utilisant du code Python, pour lequel un interpréteur était mis à disposition via une bibliothèque d'opcodes spécialisés. Plus tard dans Csound 5 (2003), des composants ont pu être ajoutés comme bibliothèques dynamiquement chargeables, normalement écrites en C. Il a également été possible d'étendre le système en utilisant le propre langage de Csound, via des opcodes définis par l'utilisateur (UDO). Enfin, en 2013, la prise en charge du compilateur Faust just-in-time (JIT) est ajoutée afin de permettre l’exécution directe du code DSP écrit dans ce langage.
La présentation montrera les premières étapes du développement d’un compilateur JIT, qui exploite la chaîne d’outils CLang et LLVM pour faire la compilation, le lien, et l’exécution des codes C ou C++ dans Csound. Actuellement, il est possible d’ajouter différents types de fonctionnalités en passant par l’API de Csound, incluant notamment l’ajout de nouveaux opcodes. Le but final est de tirer profit de l’analyseur Csound pour compiler « just-in-time » le code UDO en code binaire permettant une exécution parallèle des opcodes pré-compilés.
The sound and music computing system Csound has incorporate means of extension since its early versions. Traditionally, it required new components to be added to the C-language source code and a full re-build of the system. In later versions of Csound 4, it was possible to extend the system using Python code, for which an interpreter was made available through a library of specialised opcodes. Later in Csound 5 (2003), components could be added as dynamically loadable libraries, which would normally be written in C. Additionally, it was also made possible to extend the system using Csound's own language through user-defined opcodes (UDOs). Finally in 2013, support for the Faust just-in-time (JIT) compiler was added to provide direct execution of DSP code written in that language.
This presentation shows the early stages of the development of a JIT compiler that leverages the clang and lLVM toolchain to provide compilation, linking, and running of C or C++ language code inside Csound. Currently, it is possible to add various types of functionality through the access of the Csound API, including in particular the addition of new opcodes. The final goal is to take advantage of the Csound parser to just-in-time compile UDO code into efficient binary code to be run alongside existing pre-compiled opcodes.
Biographie :
- English version below -
Victor Lazzarini est diplômé de l’Universidade Estadual de Campinas (UNICAMP), au Brésil, où il obtient son « Bachelor of Music in Composition ». Il termine son doctorat à l’Université de Nottingham (United-Kingdom), et reçoit une bourse de recherche (Heyman scholarship for research progress), puis le prix Hallward, dans le cadre d’un projet de grande ampleur, Magnificat. Il s’intéresse au traitement du signal musical, la synthèse sonore, les langages informatiques musicaux, ainsi que la composition instrumentale et éléctroacoustique.
Dr Lazzarini reçoit une nouvelle récompense en 2002 (NUI New Researcher Award), puis une nouvelle bourse en 2006 (Ireland Canada University Foundation scholarship). Il est auteur d’une centaine d’articles, destinés à des publications scientifiques, pour des champs de recherche multiples et variés. Il a notamment écrit Aulib, une librairie orientée objet pour le traitement du signal audio, et mène le projet sur le son Csound et les systèmes de programmation musicale.
Également en lien avec l’Industrie, il propose conseils et aide à la recherche aux entreprises Irlandaises (du secteur MAO) bénéficiant d’un financement Enterprise-Ireland pour la commercialisation d’un projet.
De plus, Victor Lazzarini est compositeur de musique. Il remporte le prix de la composition internationale AIC/IMRO en 2006. Son œuvre est régulièrement diffusée en Irlande et à l’étranger (cf. FarPoint Recordings).
Pour finir, quelques publications récentes mentionnant des instruments pour musique assistée par ordinateur : Foundations, Design and Applications (Springer, 2017), Computer Music Instruments II: Realtime and Object-Oriented Audio (Springer, 2019), and ‘Parallel Computation of Time-Varying Convolution’ (Journal of New Music Research 2020). He recently completed Ubiquitous Music Ecologies (with D. Keller, N. Otero, and L. Turchet, 2020), ainsi qu’un tout nouveau papier pour Oxford University Press, Spectral Music Design: A Computational Approach (2021).
Victor Lazzarini is a graduate of the Universidade Estadual de Campinas (UNICAMP) in Brazil, where he was awarded a Bachelor of Music in Composition. He completed his doctorate at the University of Nottingham, UK, where he received the Heyman scholarship for research progress and the Hallward composition prize for a large-scale work, Magnificat. His interests include musical signal processing and sound synthesis; computer music languages; electroacoustic and instrumental composition. Dr Lazzarini received the NUI New Researcher Award in 2002 and the Ireland Canada University Foundation scholarship in 2006. He has authored over one hundred articles in peer-reviewed publications in his various specialist research areas. He is the author of Aulib, an object-oriented library for audio signal processing, and is one of the project leaders for the Csound sound and music programming system.
Prof. Lazzarini has forged links with Industry, providing consultancy and research support to Irish companies in the area of computer music and running an Enterprise-Ireland funded commercialisation project. In addition to these activities, he is active as a composer of computer and instrumental music, having won the AIC/IMRO International Composition prize in 2006. His music is regularly performed in Ireland and abroad, and has been released on CD by FarPoint Recordings. Recent publications include Computer Music Instruments: Foundations, Design and Applications (Springer, 2017), Computer Music Instruments II: Realtime and Object-Oriented Audio (Springer, 2019), and ‘Parallel Computation of Time-Varying Convolution’ (Journal of New Music Research 2020). He recently completed Ubiquitous Music Ecologies (with D. Keller, N. Otero, and L. Turchet, 2020), as well a new research monograph for Oxford University Press, Spectral Music Design: A Computational Approach (2021).
Salle Hémicyclia du LaBRI (Bât. A30) - Université de Bordeaux, 351 cours de la Libération, 33400 TALENCE