Voir et mesurer le son — épisode 1/10. Avant de lire un VU-mètre ou de comparer des valeurs LUFS, apprenons à regarder le signal dans le temps. La forme d’onde, souvent appelée waveform, permet de situer les événements, de comparer les canaux et de préparer un montage. Elle accompagne l’écoute : elle ne mesure pas, à elle seule, la qualité musicale.

Écouter le fichier utilisé dans cet article

Notre cas pratique est Breakbeat piste 1 a, crédité DJ Dmc Mystic, album Break the concrete - Album A. Les informations de titre et d’artiste proviennent des métadonnées du fichier fourni.

Ouvrir le MP3 original. Pour l’exercice, écoutez d’abord de 0:00 à 0:20, puis de 2:00 à 2:20, au même réglage de volume. Comparez ensuite ces régions sur la figure. Les niveaux mesurés sont présentés plus bas ; aucune identification instrumentale n’est déduite de l’image seule.

1. Qu’est-ce qu’une forme d’onde ?

Un signal audio numérique contient une suite d’échantillons. Pour chaque canal, l’axe horizontal représente le temps ; l’axe vertical représente l’amplitude numérique, positive ou négative. Le centre correspond à zéro. Il ne représente pas une pression acoustique mesurée dans la pièce : le niveau réellement entendu dépend aussi du volume de lecture, du convertisseur et des enceintes.

Pour une fréquence d’échantillonnage fs, l’échantillon d’indice n correspond au temps t = n / fs. À 44 100 Hz, deux échantillons successifs sont espacés d’environ 22,68 microsecondes. Une seconde stéréo contient deux séries de 44 100 valeurs.

Un MP3 conserve une représentation compressée avec pertes du son. Pour tracer son waveform, on commence par le décoder en PCM. La courbe décrit donc le signal reconstruit par le décodeur, et non une copie exacte du master avant encodage.

2. Pourquoi un morceau entier ressemble-t-il à une enveloppe ?

Sur plusieurs minutes, les millions d’échantillons ne peuvent pas être affichés individuellement. Il faut les regrouper par intervalles. Ici, chaque colonne conserve le minimum et le maximum d’un bloc, séparément pour chaque canal. Avec 1 600 blocs sur 263,55 secondes, un bloc couvre environ 165 millisecondes, soit plus de 7 000 échantillons par canal. Le navigateur peut encore réduire cette image sur mobile.

Une zone épaisse traduit des excursions d’amplitude importantes dans ces blocs. Elle ne prouve pas que tous les échantillons sont proches du maximum. Une zone mince peut correspondre à un passage faible, à une pause ou à une transition. Pour distinguer ces hypothèses, il faut zoomer, mesurer et écouter.

Forme d’onde mesurée : canal gauche au-dessus et canal droit en dessous, sur environ 264 secondes
Figure calculée à partir du MP3 fourni : enveloppes min/max en amplitude linéaire, sans normalisation séparée des canaux. Les pointillés repèrent −1 et +1 ; l’axe s’étend jusqu’à ±1,15 afin de conserver les dépassements du signal flottant.

3. Carte technique et conditions de mesure

Le fichier a été analysé avec FFmpeg et FFprobe 6.1.1. Le flux audio a été décodé à sa fréquence native, sans gain, normalisation ni effet, en flottant 32 bits. Les résultats concernent cette copie du fichier et cette chaîne de décodage.

Caractéristiques relevées et durée du décodage
Propriété Valeur
Codec audio MP3 — MPEG Audio Layer III
Fréquence d’échantillonnage 44 100 Hz
Canaux 2 — stéréo
Débit indiqué pour le flux audio 192 kbit/s
Durée estimée par FFprobe 263,155 s — environ 4 min 23 s
Durée du PCM effectivement décodé 263,549 s — 11 622 528 échantillons par canal
Taille du fichier 6 469 314 octets
Image intégrée JPEG 600 × 600 pixels, marqué comme pochette

FFmpeg signale que la durée est estimée à partir du débit : la différence d’environ 0,395 seconde avec le comptage des échantillons décodés justifie de préciser la méthode utilisée. Le débit global, proche de 196,7 kbit/s, inclut les données non audio ; il ne remplace pas le débit de 192 kbit/s indiqué pour le flux audio.

Le lecteur signale également un commentaire ID3 mal formé (« Incorrect BOM value »), qu’il ignore. Le décodage audio s’est terminé. Ce message de métadonnées ne constitue pas un diagnostic de défaut audible.

4. Amplitude, dBFS et résultat sur ce MP3

Pour une amplitude normalisée de valeur absolue A, le niveau est L = 20 log10(A), avec la référence A = 1 pour 0 dBFS. Ainsi A = 0,5 donne environ −6,02 dBFS, et A = 0,1 donne −20 dBFS. Le logarithme de zéro tend vers moins l’infini. Cette relation porte sur une amplitude ; une puissance emploie un facteur 10 devant le logarithme.

Mesures sur l’ensemble du signal décodé, silences compris
Mesure Gauche Droite
Crête échantillon +0,509 dBFS +0,743 dBFS
Amplitude absolue maximale 1,060359 1,089313
RMS global −13,660 dBFS −13,754 dBFS
Échantillons dont |x| > 1 36 77

Comment des valeurs supérieures à zéro sont-elles possibles ? Un décodeur MP3 travaillant en virgule flottante peut restituer des échantillons supérieurs à la pleine échelle nominale. Ces valeurs peuvent être conservées dans le calcul. Une conversion vers un format entier sans réduction préalable de niveau peut les écrêter. Cela ne démontre ni un écrêtage du master d’origine, ni une saturation audible de tous les lecteurs.

Il s’agit ici de crêtes échantillon. Ce tableau ne donne pas de True Peak en dBTP, qui nécessite une estimation des maxima du signal reconstruit entre les échantillons. La différence de crête entre gauche et droite ne suffit pas non plus à conclure à un déséquilibre perceptif.

5. Petit exercice d’écoute et de lecture

Sur les vingt premières secondes, le RMS calculé sur les deux canaux vaut environ −20,07 dBFS. Entre 2:00 et 2:20, il vaut environ −13,92 dBFS. La différence est donc d’environ 6,15 dB pour cette mesure d’énergie moyenne, à durée égale.

Ce RMS commun est calculé par R = √[(ΣxL² + ΣxR²) / (2N)], puis converti avec 20 log10(R). Il ne résulte pas d’une sommation mono : des signaux de phase opposée ne s’annulent donc pas dans cette formule. Il ne comporte ni pondération perceptive ni gating.

Écoutez les deux régions à volume de lecture constant et comparez leur occupation graphique. Une différence de RMS n’est pas une différence équivalente en LUFS, ni une prédiction exacte de la sensation de volume. Le contenu fréquentiel, les transitoires et leur répartition temporelle comptent aussi.

6. Reproduire le workflow avec FFprobe et FFmpeg

Placez une copie locale du morceau sous le nom source.mp3. Ces commandes utilisent ce nom ; elles ne modifient pas le fichier d’origine.

Identifier le flux audio

ffprobe -v error -select_streams a:0 -show_streams -show_format -of json source.mp3

La sélection a:0 vise le premier flux audio : la pochette JPEG intégrée ne sera pas prise pour une piste vidéo musicale. FFprobe produit ici des informations de structure ; il ne calcule pas la courbe.

Générer un aperçu statique

ffmpeg -i source.mp3 -filter_complex "[0:a:0]showwavespic=s=1600x500:split_channels=1:scale=lin:filter=peak:colors=0xace7ee|0xdce6f0[v]" -map "[v]" -frames:v 1 waveform.png

Cette commande sélectionne explicitement l’audio et génère une seule image. Les canaux sont séparés, l’échelle est linéaire et le regroupement utilise les crêtes. L’aperçu FFmpeg ne remplace pas le graphique min/max flottant présenté plus haut : leurs algorithmes et formats internes peuvent différer. Pour conserver les dépassements numériques dans une mesure, utilisez les données flottantes.

Examiner vingt secondes avec davantage de détail

ffmpeg -i source.mp3 -filter_complex "[0:a:0]atrim=start=120:end=140,asetpts=PTS-STARTPTS,showwavespic=s=1600x500:split_channels=1:scale=lin:filter=peak[v]" -map "[v]" -frames:v 1 waveform-120-140.png

Le découpage est appliqué après ouverture du fichier. Comparez cette image à l’aperçu global : la résolution temporelle change, donc les détails visibles changent aussi. Ne comparez pas deux captures dont les échelles ou les gains d’affichage sont différents sans le préciser.

Mesurer les amplitudes et conserver le décodage flottant

ffmpeg -hide_banner -i source.mp3 -map 0:a:0 -af astats=metadata=0:reset=0 -f null -
ffmpeg -v error -i source.mp3 -map 0:a:0 -c:a pcm_f32le -f f32le decoded.f32

astats imprime notamment les niveaux de crête et RMS dans le journal. Le fichier brut decoded.f32 contient les valeurs flottantes entrelacées gauche/droite, sans en-tête : sa lecture exige de connaître la fréquence, le nombre de canaux et l’ordre des octets. Les 32 bits décrivent cette sortie de calcul, pas une résolution d’origine de 32 bits du MP3.

7. Ce que le waveform ne permet pas de conclure

  • Identifier une fréquence : un aperçu global n’indique pas où se trouvent les graves ou les aigus. Il faut un spectre ou un spectrogramme.
  • Mesurer la sonie : la hauteur graphique n’est pas une mesure LUFS.
  • Certifier un écrêtage : un aspect compact ou un sommet aplati invite à examiner le signal, sans établir seul l’historique du traitement.
  • Contrôler la compatibilité mono : deux enveloppes similaires ne prouvent pas que les signaux sont en phase.
  • Évaluer un encodage : on ne déduit pas la fidélité d’un MP3 de son seul waveform.

Un VU-mètre suit une réponse temporelle définie ; un crête-mètre surveille des maxima ; un indicateur RMS décrit une moyenne quadratique. Le waveform fournit, lui, une représentation temporelle. Les prochains articles confronteront ces lectures sur d’autres fichiers.

Références et méthode

Les caractéristiques et résultats chiffrés de ce cas pratique ont été mesurés sur le fichier lié dans le lecteur. La figure scientifique est issue du décodage réel ; l’image de couverture est une illustration éditoriale.

Prochain épisode : FFprobe, ou comment établir la carte d’identité technique d’un fichier audio et interpréter ses métadonnées.