0. Principes
0.1 Objet et vue d'ensemble
La page « Répartition spatiale de l'énergie » de sooeep.com dit, pour un point d'écoute et une enceinte, quelle part de l'énergie reçue arrive directement de l'enceinte, quelle part par les premières réflexions et quelle part par le champ diffus, et d'où vient le son direct. Elle répond à une question d'électroacoustique : l'auditeur est-il dans le champ direct de l'enceinte ou dans le champ réverbéré de la salle ?
Le résultat repose sur une seule mesure : un sweep émis par l'enceinte et enregistré par un microphone ambisonique à quatre capsules. Toute la suite est du traitement du signal, fait sur le serveur.
Chaque étape du schéma fait l'objet d'une section ci-dessous ; la section 0.9 explique comment lire la page, la section 0.10 ses limites.
0.2 La mesure : sweep exponentiel et microphone ambisonique
La salle est excitée par un sinus glissant exponentiel (méthode de Farina), enregistré par un microphone à quatre capsules dont les signaux sont convertis au format ambisonique B d'ordre 1.
Le sweep sinus exponentiel
La fréquence instantanée croît exponentiellement de f1 à f2 pendant la durée T : chaque octave reçoit la même durée, donc la même énergie par octave (spectre rose).
Réglages utilisés sur sooeep.com : 20 Hz → 20 kHz en 5 s, 48 kHz, 32 bits flottants, 2 s de silence avant (pour mesurer le bruit de fond) et 6 s après (pour laisser la réverbération s'éteindre). Ces paramètres sont inscrits dans le fichier wav lui-même (bloc de métadonnées SWPI), ce qui permet de reconstruire exactement le filtre inverse lors de l'analyse.
Deux avantages expliquent ce choix : un excellent rapport signal/bruit, et la séparation de la distorsion harmonique de l'enceinte, qui se retrouve rejetée avant la réponse impulsionnelle utile (section 0.3).
Le microphone ambisonique
Le microphone (Sennheiser Ambeo VR) porte quatre capsules cardioïdes aux sommets d'un tétraèdre : c'est le format A. Une matrice de conversion donne le format B, soit une composante omnidirectionnelle et trois figures en huit orientées selon les axes.
FLU = avant-gauche-haut, FRD = avant-droite-bas, BLD = arrière-gauche-bas, BRU = arrière-droite-haut. En pratique la conversion est faite dans Nuendo par le greffon AMBEO A-B Format Converter, qui ajoute des filtres de correction compensant l'écartement des capsules ; on règle la position du micro pendant la mesure (debout, à l'envers, endfire) et la sortie ambiX.
La convention ambiX
Le format de sortie est ambiX : ordre des canaux ACN et normalisation SN3D. Pour une onde plane de pression p venant de la direction u = (ux, uy, uz), les quatre canaux valent :
| Canal | Position dans le fichier | Valeur pour une onde plane | Directivité |
|---|---|---|---|
| W | 1 | p | omnidirectionnelle |
| Y | 2 | p · uy (vers la gauche) | figure en huit gauche-droite |
| Z | 3 | p · uz (vers le haut) | figure en huit haut-bas |
| X | 4 | p · ux (vers l'avant) | figure en huit avant-arrière |
Le repère est celui du micro : x vers l'avant (le logo), y vers la gauche, z vers le haut. L'azimut est donc compté positivement vers la gauche. Une erreur fréquente est d'inverser ambiX (W, Y, Z, X) et l'ancien format FuMa (W, X, Y, Z, avec W atténué de 3 dB) : les formules de la section 0.4 ne sont justes qu'en ambiX.
0.3 Déconvolution : quatre réponses impulsionnelles
La réponse impulsionnelle de chaque canal s'obtient en convoluant l'enregistrement avec le filtre inverse du sweep ; le même filtre est appliqué aux quatre canaux, ce qui conserve leurs relations de phase et donc l'information de direction.
Le filtre inverse de Farina est le sweep retourné dans le temps, pondéré par une enveloppe décroissante qui compense le spectre rose du sweep (−3 dB par octave en puissance) :
La convolution est calculée par transformée de Fourier rapide (fonction fftconvolve de SciPy). Le pic de |W| marque l'arrivée du son direct ; on conserve 50 ms avant ce pic et 1,5 s après.
Propriété utile du sweep exponentiel : la distorsion harmonique d'ordre k de l'enceinte ressort avant la réponse linéaire, avec une avance Δtk = T · ln(k) / ln(f2/f1). Pour 20 Hz → 20 kHz en 5 s, l'harmonique 2 arrive 0,50 s avant le pic, bien en dehors de la fenêtre analysée.
L'amplitude absolue de la réponse impulsionnelle dépend de la normalisation du filtre inverse ; seules les proportions d'énergie en sont tirées. Les niveaux absolus, eux, sont mesurés sur l'enregistrement brut (section 0.8).
0.4 Intensimétrie à partir du format B
W mesure la pression et X, Y, Z sont proportionnels aux trois composantes de la vitesse particulaire : leur produit donne l'intensité acoustique, donc le sens du flux d'énergie et la direction de la source.
Pression, vitesse et figures en huit
En acoustique linéaire, la vitesse particulaire v dérive du gradient de pression (équation d'Euler). Pour une onde plane, elle est alignée sur la direction de propagation et vaut p / (ρ0 c). Une capsule en figure en huit égalisée à plat mesure donc une grandeur proportionnelle à la vitesse, pas au gradient brut (qui monterait de 6 dB par octave).
Le signe moins vient de la convention du format B : X, Y, Z pointent vers la source, alors que la vitesse va dans le sens de propagation (n = −u).
Intensité, énergie et direction
L'intensité instantanée est le produit de la pression et de la vitesse ; la densité d'énergie additionne les parts potentielle et cinétique. Exprimées avec les canaux ambiX et sommées sur une fenêtre de temps, elles deviennent :
Pour une onde plane, W² + X² + Y² + Z² = 2p², donc E est proportionnelle à l'énergie reçue, et le vecteur de pseudo-intensité pointe vers la source. On en tire l'azimut et l'élévation :
La direction affichée est celle du son direct : la fenêtre va de 0,5 ms avant le pic à max(1 ms, une période de la bande) après. La même quantité calculée sur des fenêtres glissantes plus tardives donne la direction des réflexions (représentation en « hérisson », extension envisagée).
Pour aller plus loin : la diffusivité
Le rapport entre la norme de l'intensité et la densité d'énergie (multipliée par c) vaut 1 pour une onde plane et tend vers 0 en champ diffus. Ce critère, proposé par Hurtado-Huyssen et Polack (2005) et formalisé dans la méthode DirAC de Pulkki (diffusivité ψ), n'est pas utilisé pour les chiffres de la page, qui séparent les champs par le temps (section 0.7) ; il a servi à valider le choix de la limite tC.
0.5 Filtrage par octave et domaine de validité
Toutes les grandeurs sont calculées dans cinq bandes d'octave, de 250 Hz à 4 kHz, parce qu'en dessous et au-dessus la physique ou le microphone ne permettent plus une lecture fiable.
Le filtre
Chaque bande va de fc/√2 à fc·√2. Le filtre est un Butterworth d'ordre 4 appliqué deux fois, une fois dans chaque sens (sosfiltfilt de SciPy) : la réponse est à phase nulle, le son direct reste en place dans le temps et les quatre canaux sont filtrés de façon strictement identique, condition indispensable pour ne pas fausser les directions. La vue « Global » utilise la bande 354 Hz – 5,66 kHz pour l'ETC et les niveaux ; ses proportions d'énergie sont la moyenne des octaves valides de 500 Hz à 4 kHz, chaque octave pesant autant.
Pourquoi 250 Hz – 4 kHz
| Limite | Cause | Conséquence |
|---|---|---|
| Basses fréquences (125 Hz et moins) | Sous la fréquence de Schroeder, le champ est modal : ondes stationnaires, intensité surtout réactive, pas de champ diffus au sens statistique | Bande exclue |
| 250 Hz | Une période dure 4 ms : la fenêtre du son direct englobe les toutes premières réflexions | Part directe légèrement surestimée |
| Hautes fréquences (8 kHz et plus) | Repliement spatial : l'écartement des capsules devient comparable à la longueur d'onde | Direction du son direct fausse, bande exclue |
| Toute bande | Rapport signal/bruit inférieur au seuil choisi sur la page de validation | Bande barrée et grisée, exclue de la moyenne globale |
La fréquence de Schroeder s'estime à partir du temps de réverbération T (s) et du volume V (m³) :
Pour une pièce de 120 m³ avec T ≈ 0,4 s, fS ≈ 115 Hz : l'octave 125 Hz est à la limite, celle de 250 Hz déjà au-dessus.
0.6 Temps utile et temps de réverbération
Les énergies ne sont intégrées que jusqu'au temps utile, instant où la décroissance de la salle rejoint le bruit de fond ; au-delà, on n'additionnerait que du bruit. Le but est l'analyse des données mesurées, pas la fabrication d'une réponse destinée à la convolution audio (qui, elle, utilise un fondu).
Le temps utile (méthode de Lundeby simplifiée)
- L'énergie de la bande est lissée sur des blocs de max(10 ms, 10 périodes) et convertie en dB.
- Le niveau de bruit est estimé sur les 10 % finaux de la réponse.
- Une droite est ajustée entre le maximum et le point où la courbe passe à 10 dB au-dessus du bruit.
- Le temps utile est l'intersection de cette droite avec le niveau de bruit.
- Le bruit est réestimé après ce point (avec une marge de 5 dB de décroissance) et les étapes 3 à 5 sont répétées cinq fois.
Le bruit présent avant le temps utile n'est pas soustrait ; il est compté dans le champ diffus, ce qui reste négligeable lorsque le bruit de fond est bas (de l'ordre de −80 dB sous le pic).
T20, T30 et EDT (intégration de Schroeder)
La courbe de décroissance est obtenue en intégrant à rebours l'énergie de pression W², du temps utile vers le pic :
Une droite est ajustée sur une plage de cette courbe, puis extrapolée à 60 dB de décroissance :
| Grandeur | Plage de la régression | Ce qu'elle décrit |
|---|---|---|
| EDT | 0 à −10 dB | Début de la décroissance, proche de la réverbération perçue |
| T20 | −5 à −25 dB | Décroissance principale, peu sensible au bruit |
| T30 | −5 à −35 dB | Décroissance principale, plage plus longue |
0.7 Décomposition direct / réflexions / diffus
La réponse impulsionnelle est découpée en trois fenêtres de temps successives ; l'énergie de chacune, rapportée à l'énergie totale, donne les trois pourcentages de la page, dont la somme vaut toujours 100 %.
Les trois fenêtres
| Composante | Début | Fin | Couleur sur la page |
|---|---|---|---|
| Direct | 0,5 ms avant le pic | td = max(1 ms, une période de la bande) après le pic | bleu |
| Réflexions | td | tC (20, 30, 50 ou 80 ms) | orange |
| Champ diffus | tC | temps utile tu | turquoise |
Chaque énergie est une somme sur sa propre fenêtre (et non une moyenne) : le diffus, moins intense, dure bien plus longtemps que les réflexions. C'est la même convention que pour les indices de clarté de la norme ISO 3382-1.
Les rapports affichés
- C20 à C80 : clarté pour la limite choisie, calculée sur l'énergie ambisonique.
- DRR (direct / tout le reste) : négatif dès que l'écoute se fait au-delà de la distance critique de l'enceinte.
- Direct / diffus : c'est lui que traduit la sphère turquoise ; positif, le son direct domine le seul champ diffus.
Le choix de la limite tC
La frontière entre réflexions distinctes et champ diffus est le temps de mélange de la salle. La page retient par défaut la valeur de C20, C30, C50 ou C80 la plus proche du temps de mélange estimé par la formule de Lindau, la surface S étant approchée par 6,6·V2/3 :
Pour 120 m³, tmélange ≈ 27 ms, d'où C30 ; sans volume renseigné, C30 est utilisé. Cette limite a été vérifiée par l'intensimétrie : entre 1 et 4 kHz, la part directionnelle de l'énergie chute nettement après 30 ms. C50 et C80 restent disponibles comme indicateurs perceptifs (parole, musique), mais dans une petite pièce ils rangent presque tout dans les réflexions.
Lien avec la distance critique
Dans le modèle de Sabine, le rapport entre énergie réverbérée et énergie directe à la distance r d'une source de facteur de directivité Q est 16πr² / (Q·A), avec A = 0,161·V / T. La distance critique, où DRR = 0 dB, vaut :
Pour une pièce de 120 m³ avec T ≈ 0,4 s, rc ≈ 1 m pour Q = 1 : des enceintes placées à 2,5–3 m de l'auditeur sont vues depuis le champ réverbéré.
0.8 Niveaux en dBFS
Les niveaux direct et réverbéré sont des niveaux enregistrés, en dB par rapport à la pleine échelle numérique : ils comparent des mesures faites avec les mêmes réglages, mais ne sont pas des dB SPL.
- On prend le canal W (la pression) de l'enregistrement brut, filtré dans la bande.
- On calcule sa valeur efficace pendant le sweep, de l'arrivée du son direct jusqu'à la fin du sweep plus le temps utile.
- Convention : un sinus d'amplitude pleine échelle (1,0 en 32 bits flottants) vaut 0 dBFS, d'où le terme +3,01 dB.
- Ce niveau total est réparti selon les proportions de la section 0.7.
Ces niveaux dépendent du gain du préamplificateur et du niveau d'émission du sweep. Pour obtenir des dB SPL, il faudrait enregistrer dans la même session un calibreur (94 dB à 1 kHz) devant la voie W.
0.9 Lire la page
La sphère se lit d'un coup d'œil : si la pointe du trait bleu sort de la sphère turquoise, le son direct l'emporte sur le champ diffus ; sinon, c'est le diffus qui domine.
Les éléments
| Élément | Ce qu'il représente |
|---|---|
| Trait bleu | Énergie directe (longueur) et direction du son direct (azimut, élévation), dans le repère du micro |
| Arcs gris | Valeurs de l'azimut (dans le plan horizontal) et de l'élévation |
| Sphère orange | Énergie des réflexions (rayon) |
| Sphère turquoise | Énergie du champ diffus seul (rayon) |
| Boutons de bande | Global (500 Hz–4 kHz) ou une octave ; une bande barrée n'atteint pas le seuil de signal/bruit |
| Limite C20–C80 | Position de tC, donc partage entre réflexions et diffus |
| Échelle Énergie | Longueurs proportionnelles aux parts d'énergie |
| Échelle Pression efficace | Longueurs proportionnelles à leur racine carrée (amplitude) ; même verdict, lecture plus facile des petites parts |
| ETC | Énergie lissée sur 0,5 ms en dB, segments aux couleurs des sphères, repères tC et temps utile ; vues 100 ms ou complète |
| T20, T30, EDT | Temps de réverbération de la bande (section 0.6) |
| Niveaux | Bargraphs verticaux en dBFS par octave : direct (bleu), réverbéré (dégradé), total (pointillé) |
Les trois grandeurs sont sur la même échelle linéaire : 18 % d'énergie directe donnent un trait de longueur 0,18. Quand les réflexions pèsent plus que le diffus, la sphère orange englobe la turquoise ; la page éclaircit alors l'orange pour laisser voir l'intérieur.
0.10 Limites et précautions d'interprétation
Les résultats sont fiables pour ce qu'ils mesurent, à condition de garder en tête les conventions et les limites suivantes.
- Une direction à la fois. Un microphone d'ordre 1 ne distingue qu'une direction par fenêtre et par bande : deux arrivées simultanées donnent une direction moyenne.
- Le découpage est temporel. Une réflexion spéculaire tardive est comptée dans le diffus, un début de champ déjà mélangé dans les réflexions. Le choix de tC change la part du diffus, donc le verdict direct / diffus : à citer avec la limite utilisée.
- Basses fréquences. À 250 Hz, la fenêtre du son direct (4 ms) contient déjà les premières réflexions ; sous la fréquence de Schroeder, la notion de champ diffus ne s'applique plus.
- Repère du micro. Les angles sont donnés par rapport à l'axe du micro : il faut noter son orientation pendant la mesure.
- Temps absolus. Deux enregistrements ne sont pas calés entre eux ; sans voie de référence en boucle, on ne peut pas en déduire les distances ni les retards entre enceintes.
- Niveaux relatifs. Les dBFS dépendent des gains ; le bruit présent avant le temps utile n'est pas soustrait.
- Vue globale. C'est une moyenne arithmétique des octaves valides (pondération « rose »), pas une mesure large bande.
0.11 Technologies logicielles et architecture
Le calcul est écrit en Python scientifique (NumPy, SciPy), isolé dans un module indépendant du site ; le site Django lance ce calcul en tâche de fond et affiche le résultat avec three.js et du SVG.
| Brique | Technologie | Rôle |
|---|---|---|
| Prise de son | Nuendo + greffon AMBEO A-B Format Converter | Enregistrement format A, conversion en ambiX 4 canaux, wav 48 kHz 32 bits flottants |
| Générateur de sweep | Web Audio API (dans le navigateur) | Synthèse du sweep et écriture des métadonnées SWPI |
| Calcul | Python, NumPy, SciPy (wavfile, fftconvolve, butter, sosfiltfilt) |
Module core/spatial.py, sans dépendance à Django, testé par 8 tests automatiques |
| Site | Django | Pages, formulaires, comptes et unités |
| Tâches de fond | Celery + Redis | Exécution des calculs hors de la requête web, progression enregistrée étape par étape |
| Base de données | PostgreSQL | Mesures, résultats au format JSON versionné |
| Serveur | Ubuntu, Docker Compose, Caddy | Conteneurs, HTTPS automatique (Let's Encrypt) |
| Affichage 3D | three.js (WebGL) | Sphères, trait, arcs, rotation à la souris |
| Graphiques | SVG généré en JavaScript | ETC et bargraphs de niveaux |
| Suivi de versions | Git, GitHub | Une branche par évolution (ici feature/spatial-energy) |
Déroulement d'une mesure
La page mono des réponses impulsionnelles est inchangée : elle analyse le canal W, et un lien « Répartition spatiale de l'énergie » y apparaît quand le calcul spatial existe. Les deux pages peuvent ainsi évoluer séparément.
0.12 Références et pistes
Les références ci-dessous sont les textes fondateurs des méthodes employées ; elles sont citées de mémoire, sans pagination, et sont à vérifier avant toute citation dans un travail.
| Sujet | Référence |
|---|---|
| Sweep exponentiel et déconvolution | A. Farina, « Simultaneous measurement of impulse response and distortion with a swept-sine technique », 108e convention AES, Paris, 2000 |
| Intégration à rebours | M. R. Schroeder, « New method of measuring reverberation time », J. Acoust. Soc. Am. 37, 1965 |
| Temps utile et bruit de fond | A. Lundeby, T. E. Vigran, H. Bietz, M. Vorländer, « Uncertainties of measurements in room acoustics », Acustica 81, 1995 |
| Critères de salle (EDT, T20, T30, clartés) | ISO 3382-1:2009, Acoustique — Mesurage des paramètres acoustiques des salles, partie 1 |
| Ambisonie | M. A. Gerzon, « Periphony: with-height sound reproduction », J. Audio Eng. Soc. 21, 1973 |
| Format ambiX | C. Nachbar, F. Zotter, E. Deleflie, A. Sontacchi, « AMBIX – a suggested ambisonics format », Ambisonics Symposium, 2011 |
| Intensité et diffusivité | A. Hurtado-Huyssen, J.-D. Polack, « Acoustic intensity in multichannel rendering systems », 119e convention AES, New York, 2005, preprint 6548 |
| Réponses impulsionnelles spatiales | J. Merimaa, V. Pulkki, « Spatial impulse response rendering I », J. Audio Eng. Soc. 53, 2005 |
| DirAC, diffusivité ψ | V. Pulkki, « Spatial sound reproduction with directional audio coding », J. Audio Eng. Soc. 55, 2007 |
| Temps de mélange | A. Lindau, L. Kosanke, S. Weinzierl, « Perceptual evaluation of model- and signal-based predictors of the mixing time in binaural room impulse responses », J. Audio Eng. Soc. 60, 2012 |
Pistes pour aller plus loin
- Remplacer la sphère orange par un « ballon » déformé selon la direction réelle des réflexions (hérisson des premières 80 ms).
- Mesurer le temps de mélange au lieu de l'estimer : instant où la diffusivité ψ atteint son plateau tardif.
- Ajouter une voie de référence en boucle pour obtenir distances et retards absolus entre enceintes.
- Calibrer la voie W pour passer des dBFS aux dB SPL.