Recherche
Rencontre

PyPHS : une librairie python open-source

Dans le cadre des journées Recherche Musicale
lun 4 décembre,
15h30- 18h00
Ircam

Réservation

PyPHS : une librairie python open-source dédiée à la génération de code de simulation à passivité garantie de systèmes multiphysiques audios

Mots-clefs : Modélisation mutli-physique - Acoustique et Audio - Simulation à bilan de puissance équilibré - Générateur de code et temps réel (C++, FAUST, JUCE) - Plugins temps réel - Librairie Open-Source en Pyhton

La synthèse sonore par modèle physique s’attache à simuler des systèmes producteurs (instruments de musique, voix, haut-parleurs) ou transformateurs de sons (pédales d’effet électronique), existants ou imaginaires, qui mettent en jeux des principes mécaniques, acoustiques, électroniques, magnétiques et thermiques. L’intérêt est de récupérer le timbre naturel de ces systèmes multiphyiques, par la résolution numérique des équations modèles qui leurs sont associées. Une première difficulté (D1) est de garantir la stabilité de ces simulations. Dans un second temps, il apparaît intéressant de construire des systèmes complets par connection de sous-systèmes (étages d’un circuit électronique, organes d’un instrument de musique, etc). Dans cette approche modulaire apparaît une autre difficulté (D2): garantir la stabilité de l’ensemble. Or, tous ces systèmes physiques partagent une propriété très forte: en dehors des excitateurs, ils sont passifs (ils ne créent pas d’énergie).

Séminaire et tutoriel présentés par Antoine Falaize de l'équipe Méthodes Mathématiques et Numériques du Laboratoire des Sciences de l'Ingénieur pour l'Environnement (M2N, LaSIE, UMR CNRS 7356, Université de la Rochelle) 

Organisation : Equipe S3AM - Systèmes et Signaux Sonores : Audio/Acoustique, instruMents (STMS - CNRS/IRCAM/UPMC) et l'équipe Interfaces recherche/création (IRC)

 

Programme

15h30 - 16h30 : Séminaire à l'Ircam, salle Stravinsky
entrée libre et diffusé en streaming

16h45 - 18h : Tutoriel / "Hands on"à l'Ircam, Studio 5
25 places, gratuit sur réservation
(venir avec son ordinateur, son casque et suivre les indications du téléchargement ci-dessous)


Séminaire

Nous présentons dans ce travail PyPHS, une librairie python open-source dédiée à la génération de code de simulation à passivité garantie de systèmes multiphysiques, en particulier de systèmes audio. Nous utilisons dans ce travail le formalisme des systèmes hamiltoniens à ports (SHP) [1, 2], introduits en automatique et théorie des systèmes au début des années 1990, et pour lequel les recherches actuelles sont très actives [3, 4]. Dans ce formalisme, un système est décomposé en (i) un ensemble de composants rassemblés dans un dictionnaire qui stockent ou dissipent de l’énergie et (ii) un graph d’interconnexion conservative. Ceci garantit la passivité du système et la stabilité des simulations pour une méthode numérique spécialement développée [5], ce qui répond à la difficulté (D1). Finalement, la connexion de deux SHP est encore un SHP, ce qui répond à la difficulté (D2).

La donnée d’entrée de PyPHS est la description du graphe d'un système par une « netlist » (list de composants avec connections et paramètres). Ce graphe est automatiquement analysé pour produire formellement les équations allégro-différentielles qui régissent le système, dans le formalisme des SHP [6]. Les équations de mise à jour associées à la méthode numérique sont automatiquement produites, toujours formellement. Ceci permet d’optimiser le calcul, et de proposer plusieurs formats de sortie :
- Du code LaTeX qui décrit les équations du système (documentation automatique)
- Un objet Python et un un objet C++ pour la mise en oeuvre de la méthode numérique (code généré automatiquement)
- Du code FAUST et JUCE (pour la génération de plugins audio)

Présentation donnée en français. Support de présentation en anglais.


Tutoriel Hands on PyPHS

Ce tutoriel vise à introduire les objets et concepts basiques dans l’utilisation de PyPHS au travers d’applications audio :
- Oscillateurs linéaire et non-linéaire (Structure SHP, méthode numérique, simulation en Python)
- Filtre passif (netlist, graphe, paramètres de contrôle)
- Piano électromécanique (interconnexion)
- Ajout de composants au dictionnaire

Merci aux participants de :
A) Télécharger l'archive qui contient 5 dossiers :
A1. procédure d’installation
A2. quatre parties du tutoriel
B) IMPORTANT : installer la VERSION 0.2 PyPHS (cf. la procédure d’installation dans l’archive ou bien sur le site)


[1] Duindam, V., Macchelli, A., Stramigioli, S., & Bruyninckx, H. (Eds.). (2009). Modeling and control of complex physical systems: the port-Hamiltonian approach. Springer Science & Business Media.
[2] Falaize, A. (2016). Modélisation, simulation, génération de code et correction de systèmes multi-physiques audios: approche par réseau de composants et formulation Hamiltonienne à Ports (Doctoral dissertation, Université Pierre & Marie Curie-Paris 6).
[3] https://websites.isae-supaero.fr/infidhem/
[4] http://s3am.ircam.fr/
[5] Lopes, N., Hélie, T., & Falaize, A. (2015). Explicit second-order accurate method for the passive guaranteed simulation of port-Hamiltonian systems. IFAC-PapersOnLine, 48(13), 223-228.
[6Falaize, A., & Hélie, T. (2016). Passive guaranteed simulation of analog audio circuits: A port-Hamiltonian approach. Applied Sciences, 6(10), 273.

  • PyPHS  © Antoine Falaize
    PyPHS © Antoine Falaize
  • Antoine Falaize de l'équipe Méthodes Mathématiques et Numériques du Laboratoire des Sciences de l'Ingénieur pour l'Environnement (M2N, LaSIE, UMR CNRS 7356, Université de la Rochelle)
    Antoine Falaize de l'équipe Méthodes Mathématiques et Numériques du Laboratoire des Sciences de l'Ingénieur pour l'Environnement (M2N, LaSIE, UMR CNRS 7356, Université de la Rochelle)