Un développeur a présenté sur une plateforme communautaire Legato, un framework audio temps réel écrit en Rust. L'objectif est de se situer entre PureData ou MaxMSP (routage graphique et visuel) et des outils comme JUCE. Le cœur de Legato est un runtime minimal accompagné d'un langage spécifique au domaine (DSL) pour définir des graphes audio.
Un DSL sans logique, une extension par Rust Le DSL de Legato est volontairement limité : il ne permet ni boucles, ni branchements, ni évaluations complexes. Son unique fonction est de câbler des nœuds entre eux. Pour toute logique de traitement avancée, le développeur doit écrire un nœud personnalisé en Rust, l'enregistrer, puis l'utiliser dans le graphe. Cette approche évite d'avoir à apprendre des langages dédiés comme SuperCollider ou CSound, tout en offrant une extensibilité complète via Rust.
Patches et compositions de nœuds En plus des nœuds écrits en Rust, Legato permet de composer des macros, des templates ou des « patches » de nœuds. Ces patches peuvent être appelés comme des nœuds ordinaires. L'exemple donné montre un patch « voice » avec paramètre d'attaque, qui assemble un oscillateur sinus, un modulateur et une enveloppe ADSR. Les patches sont intégrés dans la même allocation mémoire plate ; ainsi, multiplier un patch pour de la polyphonie (spawn voice * 5) n'augmente pas la complexité de l'organisation mémoire.
Cible matérielle et licences La cible principale de Legato est le matériel embarqué. Le framework est conçu pour permettre la création de plugins VST, de synthétiseurs logiciels ou de grooveboxes, et pour être déployé sur Linux embarqué (Raspberry Pi, etc.) via des images NixOS que l'auteur prépare, bien que cela ne soit pas obligatoire. Le développeur travaille actuellement sur plusieurs grooveboxes qui seront open source, probablement dans le domaine des trackers musicaux. Legato est distribué sous licence AGPLv3, avec un fichier de permissions supplémentaires qui dispense de la divulgation du code source pour la plupart des projets créatifs (VST, synthétiseurs, grooveboxes) à condition qu'ils n'incluent pas de fonctionnalités de station audio-numérique (DAW) ou d'intelligence artificielle.
État d'avancement Le projet est encore jeune (il n'a pas atteint la version 0.1.0), mais des éléments clés fonctionnent déjà : le parseur du DSL, l'exécuteur de graphes, les outils MIDI et un ensemble de nœuds de base. L'auteur recherche des retours, des contributeurs et des utilisateurs souhaitant tester le projet en conditions réelles. Des démonstrations vidéo devraient être publiées dans les semaines à venir, le framework étant déjà jugé « assez amusant pour jouer en direct ». Le code source est accessible sur GitHub et la documentation est disponible en ligne.