Voir et mesurer le son — épisode 5/10. Deux passages peuvent atteindre des crêtes proches et occuper l’espace sonore très différemment. Pour comprendre cette différence, nous allons mesurer le RMS et le facteur de crête sur Dnb movement vocal uk radio edit, de Dmc Mystic. L’objectif est de relier maximum, niveau quadratique moyen et durée d’observation.

Écouter le MP3 utilisé

Ouvrir le fichier original. Écoutez 0:00–0:20, puis 1:00–1:20, au même volume de lecture. Les tableaux ci-dessous correspondent exactement à ces deux fenêtres du PCM décodé. Ils ne constituent pas une reconnaissance automatique des instruments.

1. Le RMS : mettre au carré, moyenner, puis prendre la racine

Pour N échantillons d’un canal, le RMS se définit par R = √[(1/N) Σx[n]²]. La mise au carré évite l’annulation entre alternances positives et négatives. Sur une sinusoïde complète, la moyenne arithmétique simple peut être nulle alors que le RMS est positif.

Le carré du RMS représente la moyenne des amplitudes numériques au carré. Pour une tension mesurée aux bornes d’une résistance connue, cette grandeur permet de calculer la puissance moyenne. Dans un fichier audio normalisé, elle ne donne pas directement des watts acoustiques ou électriques : il manque notamment les paramètres de conversion et de charge.

Une fois le RMS obtenu, nous employons LRMS = 20 log10(R), avec l’amplitude numérique 1 comme référence. Il n’y a ici ni pondération fréquentielle ni gating. Les silences sont inclus dans l’intervalle mesuré.

2. Attention à la référence RMS d’un logiciel

Dans la convention de cet article, une sinusoïde de crête 1 a un RMS de 1/√2, soit −3,0103 dBFS RMS. Un affichage utilisant une référence sinusoïdale peut lui attribuer 0 dBFS RMS en ajoutant 3,0103 dB aux valeurs présentées ici. Il faut donc vérifier la convention avant de comparer des logiciels.

La fréquence de la sinusoïde ne change pas cette relation lorsque la mesure couvre un nombre entier de périodes. La durée et les points de coupe peuvent en revanche modifier un calcul effectué sur une fraction de période.

3. Le facteur de crête : comparer maximum et RMS

La crête absolue du même intervalle est P = max(|x[n]|). Le facteur de crête linéaire vaut C = P / R. En décibels : CdB = 20 log10(P/R) = Lcrête − LRMS.

Une sinusoïde idéale mesurée sur des périodes complètes présente un facteur de crête de 3,0103 dB. Un signal carré idéal de valeurs +A et −A a P = R = A, donc 0 dB. Ces signaux servent à vérifier le calcul ; ils ne sont pas des objectifs esthétiques pour de la musique.

Si le RMS est nul, le rapport n’est pas défini. Un outil doit afficher une valeur absente pour un silence total, plutôt que d’inventer un facteur de crête de zéro. De plus, la crête et le RMS doivent porter sur le même canal, le même intervalle et le même signal traité.

4. Méthode et identité du cas pratique

Le MP3 fourni contient un flux stéréo à 48 000 Hz, avec un débit audio indiqué par FFprobe d’environ 275,3 kbit/s. Les tags identifient l’album Groove anomaly et la piste 3/20.

Le décodage a été réalisé avec FFmpeg 6.1.1, en flottant 32 bits, sans égalisation, normalisation ou rééchantillonnage ajouté. Le PCM obtenu contient 13 079 963 échantillons par canal, soit 272,499229 secondes. La durée indiquée par FFprobe est 272,544 secondes : durée déclarée et durée utile décodée ne sont pas systématiquement identiques.

La copie émet un avertissement sur un commentaire ID3 mal formé, ignoré à la lecture. Le décodage audio complet a réussi. Les mesures suivantes décrivent la sortie du décodeur, pas le master avant compression MP3.

5. Résultats sur le morceau entier

Mesures globales, sans exclusion de silence
Grandeur Gauche Droite
Crête échantillon +0,370 dBFS +0,071 dBFS
RMS global, référence amplitude 1 −12,028 dBFS −11,971 dBFS
Facteur de crête global 12,398 dB 12,042 dB

Les crêtes légèrement supérieures à 0 dBFS peuvent être conservées dans le décodage flottant. Les supprimer avant le calcul changerait les maxima et donc le facteur de crête. Ces valeurs ne sont pas des mesures True Peak et ne démontrent pas, seules, une distorsion audible ou un écrêtage du master.

Le facteur global associe la crête maximale de tout le fichier à son RMS global. Il ne dit pas que chaque instant possède ce rapport. L’ajout d’un long silence réduit le RMS global sans réduire la crête, et augmente donc ce facteur : c’est une raison de préciser les fenêtres.

6. Exercice sur deux passages de vingt secondes

Comparaison à durée égale, canal par canal
Intervalle / canal Crête dBFS RMS dBFS Facteur de crête dB
0:00–0:20 / gauche −0,297 −14,772 14,475
0:00–0:20 / droite −1,132 −14,671 13,539
1:00–1:20 / gauche −0,612 −12,091 11,479
1:00–1:20 / droite −0,531 −11,955 11,425

Sur le canal gauche, le deuxième passage présente un RMS plus élevé d’environ 2,68 dB, alors que sa crête est plus basse d’environ 0,32 dB. Le facteur de crête baisse d’environ 3,00 dB. Un indicateur de crête seul ne montre donc pas toute l’évolution du niveau moyen.

Cette différence est compatible avec une présence relative plus importante d’énergie soutenue dans la seconde fenêtre. Elle ne prouve pas quel traitement a produit le résultat. L’arrangement, les attaques, les silences, les basses et une éventuelle compression peuvent tous influencer les valeurs.

7. Observer le RMS et les crêtes par blocs de 300 ms

Crêtes et RMS gauche droite, puis facteur de crête sur le MP3, calculés par blocs de trois cents millisecondes
Chaque bloc contient 14 400 échantillons par canal, sans chevauchement ; le dernier est plus court. Crête et RMS sont calculés sur le même bloc, puis leur différence est tracée en dessous. Les courbes relient les centres des blocs. Les panneaux de niveau sont bornés à −40 dBFS ; certaines valeurs faibles sont hors cadre.

Une fenêtre courte suit davantage les événements locaux. Une fenêtre longue les regroupe et réagit autrement aux pauses et aux changements de structure. Ce RMS par blocs de 300 ms n’est ni un VU normalisé ni une mesure de sonie momentanée EBU R128 : des durées proches ne rendent pas les algorithmes équivalents.

Le facteur de crête global du tableau et les valeurs locales du graphique ne sont pas interchangeables. On ne retrouve pas le premier en faisant simplement la moyenne des seconds.

8. Reproduire l’analyse

Placez une copie locale sous le nom dnb-movement.mp3. Ces commandes ne modifient pas le fichier d’origine.

Décodage flottant et contrôle global

ffmpeg -v warning -i dnb-movement.mp3 -map 0:a:0 -c:a pcm_f32le -f f32le dnb-movement.f32
ffmpeg -hide_banner -i dnb-movement.mp3 -map 0:a:0 -af astats=metadata=0:reset=0 -c:a pcm_f32le -f null -

astats affiche notamment les lignes Peak level dB, RMS level dB et Crest factor. Dans ce filtre, le facteur de crête est un rapport linéaire : appliquez 20 log10 au rapport pour le convertir en dB. Ne soustrayez pas une valeur en dB d’un rapport sans unité.

Calcul indépendant du tableau d’écoute

import numpy as np

fs = 48000
x = np.fromfile("dnb-movement.f32", dtype="<f4").reshape(-1, 2)
for debut, fin in [(0, 20), (60, 80)]:
    z = x[debut * fs:fin * fs].astype(np.float64)
    p = np.max(np.abs(z), axis=0)
    r = np.sqrt(np.mean(z ** 2, axis=0))
    with np.errstate(divide="ignore", invalid="ignore"):
        pic_db = 20 * np.log10(p)
        rms_db = 20 * np.log10(r)
        facteur_db = np.where(r > 0, 20 * np.log10(p / r), np.nan)
    print(debut, fin, "crête", pic_db, "RMS", rms_db, "facteur", facteur_db)

Ce script utilise NumPy et les valeurs flottantes stéréo entrelacées du fichier brut. Il imprime les trois grandeurs pour les deux fenêtres, avec la même convention de référence que les tableaux. Le fichier brut n’a pas d’en-tête : la fréquence et le nombre de canaux doivent être connus.

9. Comparer en stéréo et traiter les niveaux

Pour un RMS commun aux deux canaux, une convention possible est Rstéréo = √[(ΣxL² + ΣxR²)/(2N)]. Elle moyenne les énergies sans additionner les ondes. Un calcul sur le signal mono (L+R)/2 répond à une autre question et peut produire des annulations. Les tableaux de cet article gardent les canaux séparés pour éviter cette ambiguïté.

Un gain linéaire constant décale crête et RMS du même nombre de décibels, donc conserve le facteur de crête, tant qu’aucun écrêtage ou autre traitement n’intervient. Une normalisation de gain seule ne modifie donc pas ce rapport. Une compression ou une limitation peut le modifier, mais son évolution ne décrit pas toute la dynamique musicale.

RMS, LUFS, Loudness Range et facteurs de crête évaluent des propriétés différentes. Il n’existe pas de conversion universelle entre ces chiffres, ni un facteur de crête idéal applicable à tous les styles.

Références et vérification

Les chiffres et la figure proviennent du MP3 fourni. Les calculs NumPy ont été comparés aux résultats globaux d’astats. Les formules ont aussi été vérifiées sur une sinusoïde et un signal carré synthétiques. La couverture est illustrative.

Prochain épisode : les PPM et la réponse quasi-crête, pour comprendre pourquoi deux indicateurs ne suivent pas les mêmes attaques.