AudioMovers ListenTo
Défi
Créer un plugin de streaming audio de qualité professionnelle permettant aux producteurs de musique et ingénieurs audio de diffuser de l'audio haute qualité depuis leur DAW vers des clients n'importe où dans le monde. Support nécessaire pour jusqu'à 128 canaux audio sans perte avec une latence minimale.
Solution
Nous avons développé un plugin multiplateforme (VST, AU, AAX) avec streaming à débit adaptatif, supportant du AAC compressé au PCM sans perte 32 bits à 192kHz. Applications récepteur construites pour web, iOS et Android.
Résultat
Outil standard de l'industrie utilisé par les professionnels audio et studios dans le monde entier.
Contexte
AudioMovers devait résoudre un problème concret de la production audio professionnelle : comment permettre aux producteurs de musique, ingénieurs de mixage et professionnels du mastering de partager de l'audio haute fidélité avec leurs clients et collaborateurs partout dans le monde, directement depuis leur station de travail audionumérique (DAW). Les solutions existantes soit compressaient l'audio au point de le rendre inutile pour l'écoute critique, soit nécessitaient des configurations réseau complexes qui perturbaient le flux créatif.
ListenTo devait fonctionner comme plugin natif dans chaque DAW majeur : Pro Tools, Logic Pro, Ableton Live, Cubase et d'autres. Il devait supporter jusqu'à 128 canaux audio à des fréquences d'échantillonnage allant jusqu'à 192kHz. Le récepteur devait être accessible sur tout appareil sans installation de logiciel, faisant des navigateurs web le point d'écoute principal. Des applications natives iOS et Android complétaient le dispositif avec une flexibilité supplémentaire pour l'écoute mobile.
Approche technique
Le plugin a été développé en C++ avec le framework JUCE, qui assurait la compatibilité multiplateforme macOS et Windows tout en supportant tous les formats majeurs de plugin : VST3, Audio Unit (AU) et AAX. JUCE gérait le pipeline de traitement audio bas niveau avec un overhead CPU minimal.
WebRTC constituait la couche de transport en temps réel, adaptée pour répondre aux exigences audio professionnelles qui vont bien au-delà de la communication voix ou vidéo classique. Nous avons implémenté une négociation de codec personnalisée capable de basculer entre AAC compressé pour le monitoring à faible bande passante et PCM sans perte 32 bits pour les sessions d'écoute critique. Le système de débit adaptatif surveillait en permanence les conditions réseau et ajustait la qualité sans artefacts audibles.
React alimentait l'application récepteur web. Le récepteur se connectait au flux du plugin via WebRTC, avec un repli sur un transport WebSocket lorsque les connexions peer-to-peer n'étaient pas possibles.
Détails d'implémentation
Le défi principal était d'atteindre une latence ultra-faible tout en préservant l'intégrité audio. Nous avons conçu un tampon de gigue personnalisé qui équilibrait latence et coupures, avec des réglages configurables permettant aux utilisateurs de choisir entre un délai minimal pour la collaboration en temps réel et des tampons plus grands pour une écoute stable sur des connexions peu fiables. Le système atteignait systématiquement moins de 200ms de latence bout à bout sur des connexions haut débit standard.
Le support multicanal nécessitait une gestion mémoire minutieuse dans le plugin C++. Le streaming de 128 canaux audio 32 bits à 192kHz génère un débit de données considérable. Nous avons implémenté un pooling de tampons efficace et un routage audio sans copie au sein du plugin pour maintenir l'utilisation CPU sous 5 % même au nombre maximal de canaux. C'est important car le plugin fonctionne aux côtés de chaînes de traitement audio exigeantes.
Le récepteur web utilisait l'API Web Audio pour un timing de lecture précis et la mesure des niveaux. Nous avons construit un décodeur audio personnalisé gérant le changement de codec transparent lorsque l'expéditeur modifiait les paramètres de qualité en cours de session. Un système de gestion de sessions permettait aux expéditeurs de partager des liens d'écoute uniques, avec protection par mot de passe optionnelle et limite du nombre d'auditeurs pour les contenus confidentiels.
Pour les applications iOS et Android, nous avons utilisé les API audio natives des plateformes (Core Audio et AAudio respectivement) pour contourner la latence plus élevée des frameworks multiplateformes. Les apps supportaient l'écoute en arrière-plan, le routage AirPlay et Bluetooth, et affichaient des visualisations de forme d'onde synchronisées avec le flux audio entrant.
Résultats
ListenTo est devenu un outil de référence dans l'industrie, adopté par des producteurs lauréats de Grammy, de grands studios d'enregistrement et des installations de diffusion à travers le monde. Le plugin traite des millions de minutes de streaming chaque mois. La capacité de streaming sans perte a notamment comblé un vide qu'aucun produit concurrent n'adressait.