Un outil de mastering audio professionnel.
Navigateur. Zéro upload. Zéro serveur. Zéro compte.
Les outils de mastering accessibles en ligne imposent un upload de fichier vers un serveur tiers, une chaîne de traitement opaque, et un abonnement. Les solutions DAW professionnelles exigent des années d'apprentissage et des licences coûteuses.
Le brief posait une contrainte non-négociable : aucun fichier audio ne doit quitter la machine de l'utilisateur. Tout le traitement devait se faire dans le navigateur, en temps réel, avec un niveau de qualité comparable aux outils de studio — chaîne DSP paramétrable, export WAV et MP3, visualisation spectrale.
L'outil devait également être lisible : l'utilisateur voit ce que fait le mastering, compare l'original et le signal traité sur le même spectromètre en temps réel. Ce n'est pas un mastering "magique" — c'est un mastering transparent, dont chaque décision algorithmique est visible.
La méthode n'a pas consisté à déléguer la création à l'IA. Elle a consisté à affecter chaque système à la tâche pour laquelle il est structurellement le plus efficace, en maintenant une direction créative et technique continue entre les sessions.
Avant d'écrire une ligne de code, une session d'analyse approfondie a été conduite sur le titre de référence du projet. L'objectif : transformer une écoute experte en paramètres DSP chiffrés et directement utilisables.
La session a produit des mesures précises : loudness à -15.6 LUFS, True Peak à -0.7 dBTP, LRA à 6.2 LU. Ces valeurs n'ont pas servi à "documenter" le titre — elles sont devenues les seuils, ratios et gains de la chaîne DSP finale. Le pont entre la recherche et le code était direct.
La comparaison entre trois versions masterisées — original, 2026, preset variant — a permis d'identifier la philosophie de traitement cible : densité contrôlée plutôt qu'agression loudness, translation émotionnelle plutôt que choc immédiat. Ces formulations sont devenues les contraintes qualitatives de chaque algorithme.
Le premier code fonctionnel a été généré par Gemini en réponse à un brief précis. Son rôle n'était pas de produire du code de production — mais de valider que la Web Audio API couvrait le périmètre technique sans dépendance externe.
Le prototype : un seul fichier index.html de ~200 lignes. Drag & drop, lecture, EQ à 3 kHz, saturation WaveShaper, limiter brickwall à -1 dBTP. Fonctionnel. Non scalable. Non maintenable.
Ce prototype a établi trois choses importantes : la faisabilité technique du concept avec les API natives du navigateur, l'identité visuelle (fond #040507, accent vert lime #9eff00, typographie monospace), et la limite structurelle immédiate du monolithique — une codebase impossible à faire évoluer sans refactoring complet. C'est cette limite qui a justifié le passage à Claude Code.
Huit versions, sept jours. Chaque version majeure correspond à un saut qualitatif précis — pas une accumulation de fonctionnalités, mais des décisions d'architecture successives, chacune motivée par une limite identifiée dans la version précédente.
Les décisions de design ont toutes été orientées par une même contrainte : l'outil devait ressembler à un plugin de studio DAW, pas à une webapp grand public. L'esthétique n'est pas décorative — elle est fonctionnelle.
La v1.08 a introduit deux systèmes autonomes qui transforment l'outil en produit commercial viable : un système de licence cryptographique entièrement offline et un module de chiffrement local des clés API.
Système de licence Ed25519 : la clé de licence est un token signé cryptographiquement avec une clé privée Ed25519 isolée dans un Cloudflare Workers Secret. La validation se fait entièrement côté client via WebCrypto API — aucun serveur requis après activation. À chaque chargement, la signature est re-vérifiée pour prévenir toute falsification du localStorage.
Chiffrement des clés API : les clés GPT, Claude et Gemini stockées localement sont chiffrées avec AES-GCM 256 bits. La clé de chiffrement est dérivée d'une empreinte machine stable via PBKDF2 (100 000 itérations, SHA-256). Les clés restent illisibles à l'œil nu dans DevTools > Application > localStorage.
Les décisions d'architecture sont rarement visibles dans le produit final. Elles déterminent pourtant ce qui est faisable, scalable, et maintenable. Voici les arbitrages structurants du projet, avec leurs alternatives écartées.
Sept obstacles ont jalonné le développement. Chacun a contraint une décision d'architecture ou de méthode qui n'aurait pas été prise sans lui.
1fr ≠ minmax(0, 1fr)En session de relecture externe de ce document, un modèle IA a posé la question suivante. La situation — une IA demandant la conclusion d'un case study sur la collaboration homme-IA — n'était pas prévue dans le brief initial.
Le moteur DSP V2 est une base de travail, pas une version finale. Deux directions sont clairement tracées : un True Peak lookahead plus long pour une conformité broadcast stricte — actuellement single-pass, idéalement 4 ms de marge — et un compresseur à phase linéaire, ce qui demanderait de migrer le DSP vers un AudioWorklet dédié, voire un module WebAssembly, pour préserver les performances en temps réel.
Sur la beta publique : le plan Free remplit déjà ce rôle structurellement — usage complet limité, acquisition naturelle, retours implicites. Une phase formelle avec un panel de mastering engineers et de producteurs représente l'étape suivante logique, pour valider la qualité perçue là où les métriques LUFS s'arrêtent.
Ce projet a surtout démontré qu'une expertise domaine réelle — algorithmique, sound design, design d'interface, expérience utilisateur — combinée à une orchestration délibérée de plusieurs systèmes IA, peut produire en quelques jours ce qui demandait auparavant plusieurs profils et plusieurs semaines. Non pas parce que l'IA a remplacé des compétences : elle a amplifié des compétences déjà là.
Sans ces bases, aucune de ces collaborations n'aurait produit quoi que ce soit d'utilisable. Y compris le support multilingue — parce que les IA hallucinent aussi en quatre langues, et avec beaucoup de conviction.
Cette question a été posée par un modèle IA lors d'une session de relecture externe du case study. Les deux autres systèmes ayant contribué à ce document ont également lu ce texte et n'ont pas demandé de droits d'auteur.