Audio temps réel avec Web Audio et AudioWorklet
Séparation des responsabilités
- Le thread principal pilote l'interface, les commandes et le graphe audio.
AudioWorkletProcessorexécute uniquement le traitement audio temps réel sur le thread de rendu audio.- Un Worker prépare analyse, forme d'onde, import/export et autres calculs non temps réel.
- Les fichiers, caches et états de projet restent hors de la boucle audio.
Contraintes temps réel
Le callback audio ne doit ni bloquer, ni attendre le réseau, ni créer de pression mémoire imprévisible. Préallouer les buffers utiles, éviter journalisation et allocations répétées, transmettre seulement les paramètres nécessaires et lisser les changements susceptibles de produire des clics.
Démarrage et compatibilité
AudioWorklet requiert un contexte sécurisé. Le navigateur peut suspendre l'AudioContext jusqu'à une interaction utilisateur : prévoir un démarrage explicite et un état UI fidèle. Mesurer la latence sur le périphérique réel ; elle dépend aussi du système, du pilote, du Bluetooth et de la taille des buffers.
Gate
- Aucun drop ou crépitement pendant les interactions UI lourdes prévues.
- Test de changement de périphérique, mise en veille, reprise, casque Bluetooth et onglet en arrière-plan.
- Mesure de la charge du worklet et stratégie de dégradation du nombre d'effets/pistes.
ScriptProcessorNoden'est pas retenu pour un nouveau traitement temps réel.