Présentation du projet

FM-1 Workbench est un environnement de développement destiné aux appareils FM-1 de M‑VAVE. Le code source de l’application est publié sous la licence GPLv3, enrichie d’une exception de liaison spécifique au SDK FM‑1. Cette combinaison autorise le lien du code propriétaire du moteur avec le code GPL sans imposer la diffusion du code propriétaire, ce qui répond aux exigences de conformité des projets embarqués.

Architecture du SDK et composants tiers

Le SDK regroupe plusieurs bibliothèques tierces, chacune conservant son propre régime de licence : Open303 (MIT) gère le pilote FM‑1 et le traitement MIDI, DaisySP (MIT) fournit les modèles de percussions et de cordes, stmlib (MIT) implémente un filtre à taux fixe, et emu2149 (MIT) assure l’émulation du PSG avec correction de sortie ultrasonique. Le modèle FM provient de MSFA (Apache‑2.0) et Dexed msfa (Apache‑2.0), tandis que le codec SEA (MIT) encode et décode le format SEA. Le runtime C natif utilise Newlib, et le runtime du compilateur repose sur des routines MIT/University of Illinois‑NCSA. Chaque composant est intégré sous forme binaire, conservant les mentions de licence d’origine dans le fichier THIRD_PARTY.md.

Modalités de licence et redistribution

Les fichiers de démarrage (uboot.boot, ota.bin, cfg_tool.bin, boot-config.bin) ainsi que le firmware de récupération FM‑1 V15 (FM-1_015.fwsc) sont distribués sous Apache‑2.0, autorisant modification et redistribution commerciale à condition de conserver les avis de droit d’auteur et le texte de licence. Le moteur propriétaire encapsulé dans libfm1_engine.a bénéficie d’une autorisation non exclusive, sans redevance, qui permet le téléchargement, la copie, le lien avec l’APP et la redistribution binaire du moteur, uniquement sur du matériel FM‑1. Aucun code source du moteur n’est fourni, et les obligations de GPLv3 ne s’appliquent pas à ces binaires.

Implications pour les développeurs

Les développeurs peuvent assembler un firmware complet en combinant le code GPLv3 de l’APP, les bibliothèques MIT/Apache‑2.0 et le moteur propriétaire sous les conditions décrites. La présence de l’exception de liaison évite la contagion de la GPL aux composants binaires, mais impose la diffusion du code source de l’APP et de toute modification apportée à celui‑ci. La coexistence de licences multiples impose une gestion rigoureuse des notices de droit d’auteur dans chaque redistribution, notamment lors de la création de packages commerciaux. Le modèle de licence choisi reflète un compromis entre ouverture du code applicatif et protection du moteur propriétaire, offrant aux intégrateurs une voie claire pour le déploiement sur les appareils FM‑1.