Open Synth Descriptors (OSD)
Format ouvert en JSON, complémentaire du MIDI, vérifié par JSON Schema, pour décrire ce que le MIDI ne dit pas : appareils, sons, firmwares, empreintes de reconnaissance.
expérimental dernière modification 29 octobre 2026 licence CC0-1.0
OSD est le format ouvert dans lequel on décrit les appareils MIDI, leurs sons et leurs firmwares ; osc-bridge les fait parler, et SynthHub en tient le catalogue. Il est né de ce catalogue le 27 octobre 2026, détaché en spécification à part et versé au domaine public. Sa limite principale : c’est un brouillon ; jusqu’à la 1.0, une nouvelle version peut renommer ou retirer des champs.
Un format ne s’entend pas : l’exemple de la section suivante tient lieu de démonstration.
Ce que le MIDI laisse de côté
OSD complète les normes MIDI ; il ne les remplace pas. Le MIDI dit comment les messages voyagent, et l’échange de propriétés de MIDI 2.0 permet à un appareil récent de décrire une partie de lui-même. OSD couvre le reste : les milliers d’appareils qui ne le feront jamais, le SysEx propre à chaque fabricant, qui porte l’essentiel d’un synthé, et les sons et firmwares que les gens partagent. Là où une norme MIDI nomme déjà une chose, OSD vise le même nom, pour qu’exporter reste une traduction.
Un descripteur de son, tel qu’il est dans le dépôt (examples/warm-pad.sound.json) :
{
"$schema": "https://synthhub.roomi-fields.com/osd/0.4/sound.schema.json",
"name": "Warm pad",
"kind": "sound",
"device": { "descriptor": "korg/minilogue", "vendor": "KORG", "model": "minilogue" },
"content": {
"settings": { "/amp/attack": [90], "/amp/release": [100], "/filter/cutoff": [64] }
},
"author": { "name": "Example Author", "url": "https://example.org" },
"license": "CC0-1.0",
"category": "pad",
"genres": ["ambient"],
"tips": "Hold chords; the mod wheel opens the filter.",
"version": 1,
"published": "2026-10-27T12:00:00Z"
}
Les réglages sont donnés par adresse lisible (/filter/cutoff) ; c’est le descripteur de l’appareil qui traduit chacune en CC, NRPN, note ou SysEx.
Commencer
Depuis un clone du dépôt :
pip install jsonschema
python3 tools/validate.py sound examples/warm-pad.sound.json
La seconde commande répond 1/1 valid sound descriptors. Essayé tel quel le 28 octobre 2026, au commit 2f0f8c0, avec jsonschema 4.19.2. Le premier argument nomme le type de descripteur ; un dossier se vérifie fichier par fichier. Les schémas sont aussi servis en ligne, à https://synthhub.roomi-fields.com/osd/<version>/<nom>.schema.json.
Ce qu’il décrit
Cinq choses, chacune avec son schéma JSON :
- Appareil : son identité et comment le reconnaître (réponse d’identité, noms de ports, identifiants USB, ce qu’il envoie de lui-même) ; ses réglages en CC, CC sur 14 bits, NRPN, RPN et paramètres SysEx ; ses messages nommés et sommes de contrôle ; ses programmes et banques ; ses sons de batterie ; ce qu’il renvoie.
- Profil de fabricant : ce que partagent les appareils d’une marque ou d’une famille, que chaque appareil étend.
- Son : un son, un kit, un motif, un projet, une banque ou un clip MIDI ; ses données, son appareil et son firmware, son auteur, sa licence, son origine.
- Empreinte : ce qu’une détection a observé d’un appareil branché, et le modèle que la personne a confirmé ; elle reconnaît les appareils qui ne s’identifient pas.
- Firmware : un firmware ou un mod, son auteur, son dépôt, sa licence, ce qu’il change au MIDI, comment l’installer et revenir en arrière. Il renvoie à la publication de l’auteur, sans la contenir.
Chaque descripteur dit d’où viennent ses données et jusqu’où elles ont été vérifiées (_sources). Les champs qui commencent par _ sont des notes pour les personnes ; un programme n’en a jamais besoin.
Qui l’emploie
Le catalogue de SynthHub : chaque pilote y est un descripteur OSD valide, vérifié par les tests du catalogue ; les sons partagés s’exportent en .osd.json ; les empreintes de reconnaissance sont stockées au format OSD.
Où il en est
Brouillon jusqu’à la 1.0. Une version publiée ne change jamais ; une nouvelle s’ajoute à côté, et les précédentes restent publiées. L’historique est dans le journal des versions du dépôt.
Depuis le 29 octobre 2026, OSD a une adresse permanente, w3id.org/osd, qui mène au dépôt. w3id.org est le service d’identifiants permanents du groupe communautaire W3C Permanent Identifier ; il a accepté l’inscription d’OSD (demande n° 7015). Un fichier qui cite cette adresse reste valable si le dépôt ou le site déménagent.
Les contributions passent par une question ou une demande de fusion sur le dépôt, avec un descripteur d’exemple qui montre le besoin.
Dépôt · Adresse permanente · Page du format · SynthHub · osc-bridge
Fabrication. Claude Code (Claude Opus 5.5), à partir du dépôt, de son README et des notes de la session osc-bridge. L’exemple de « Commencer » a été rejoué avec l’outil de validation du dépôt. Méthode