• Set Séminaires Recherche & Technologie
  • Saison 2017-2018 - None - None > Antoine FALAIZE : PyPHS: une librairie python open-source dédiée à la génération de code de simulation à passivité garantie de systèmes multiphysiques audios
  • Dec. 4, 2017
  • Ircam, Paris
Participants
  • Antoine Falaize (conférencier)

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

selon le planning suivant :

15h30-16h30: Séminaire en Salle Stravinsky, IRCAM (entrée libre et diffusé en streaming sur http://videos.ircam.fr/ )

16h45-18h00: Tutoriel/"Hands on" en Studio 5, IRCAM (25 places, réservation gratuite : billetterie@ircam.fr , venir avec ordinateur et casque)

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

Résumé :

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).

Nous présentons dans ce travail PyPHS [1], 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) [2, 3], 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 [4, 5]. 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 [6], 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 [7]. 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 [8] et JUCE [9] (pour la génération de plugins audio).

(Présentation donnée en français, Support de présentation en anglais)

[1] https://pyphs.github.io/pyphs/

[2] 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.

[3] 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).

[4] https://websites.isae-supaero.fr/infidhem/

[5] http://s3am.ircam.fr/

[6] 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.

[7] Falaize, A., & Hélie, T. (2016). Passive guaranteed simulation of analog audio circuits: A port-Hamiltonian approach. Applied Sciences, 6(10), 273.

[8] http://faust.grame.fr/

[9] https://www.juce.com/

à 16H30 :
=========================
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.

From the same archive