Aller au contenu

← Jonathan Dubois

Station audio collaborative en ligne — séparation de pistes par IA, tempo variable

Creative technologist et rigueur à la fois : audio temps réel dans le navigateur, GPU local, 1 256 tests et des mutations pour les prouver.

Contexte

Un groupe de trois personnes compose à distance et voulait un outil que les services grand public ne réunissent pas : séparer un morceau en pistes, travailler avec un tempo qui change en cours de morceau, cloisonner les espaces de chacun tout en partageant. Il fallait aussi que ça tourne sur un iPad, avec sa mémoire limitée.

Ce que j'ai construit

Dépôt du morceau Demucs sur GPU Quatre pistes nommées Carte de tempo Lecture par tranches Partage d'espace

Preuves

Le studio (accès sur invitation) ↗

Un incident réel, et comment je l'ai réglé

Le détecteur de tempo livré volontairement muet

Constat
Le détecteur automatique de tempo, testé et mesuré sur 250 boucles de batterie réelles, donnait 40 % de résultats justes et 52 % de faux — et deux justes sur treize dans la tranche rapide, celle qui compte pour ce groupe.
Cause
Structurel, pas du bruit : la famille ternaire (× 4/3, × 3/4, × 3/2) manquait aux candidats, et un shuffle lu comme du binaire pèse à lui seul un cinquième des erreurs. Un second détecteur — le nombre de mesures d'une boucle — plafonnait à 6 % de justes : après le filtre de plage, les candidats survivants sont des octaves, qu'un alignement d'attaques ne sait pas séparer.
Correctif
Le code reste, testé, mais débranché : la fonction rend une valeur vide tant que la mesure ne dépasse pas le hasard. L'utilisateur choisit le nombre de mesures dans une liste qui affiche le tempo correspondant, et vérifie à l'oreille. Mesurer, puis dire non, plutôt que livrer un chiffre faux une fois sur deux.

Stack

Python · Web Audio API · canvas · Demucs / PyTorch · ffmpeg · Cloudflare Access · pytest · Playwright

← Toutes les réalisations