Pourquoi Votre Image de Forme d’Onde N’a Pas de Batterie

14 septembre 2026 · 8 min de lecture

Dessiner une forme d’onde est un problème de réduction : plusieurs millions de nombres doivent devenir quelques centaines de colonnes de pixels. Presque tous les outils y répondent de la même façon, en une ligne, et cette ligne est fausse d’une manière que l’on peut mesurer exactement.

Voici l’arithmétique qui en fait un problème. Un morceau de trois minutes en 44,1 kHz, c’est 7 938 000 échantillons. Dessiné en 800 px de large, chaque colonne de pixels doit représenter 9 922,5 d’entre eux. Quelque chose doit décider de ce que signifie la hauteur d’une colonne.

La réponse courante consiste à prendre un échantillon dans chaque colonne et à dessiner sa hauteur. Cela lit 800 échantillons sur 7 938 000 — 0,0101 % du fichier. Ce n’est pas un résumé de la colonne. C’est un échantillonnage ponctuel de celle-ci, à une cadence des milliers de fois inférieure à celle du signal, ce qui est le cas d’école du repliement de spectre.

Un son à pleine échelle dessiné en ligne plate

La façon la plus nette de le voir est de dessiner un audio dont vous connaissez déjà le dessin correct. Nous avons généré 180 secondes d’un son constant à amplitude 1,0 — pleine échelle du premier au dernier échantillon. Le vrai dessin est un bloc plein de hauteur 1,000, à chaque colonne, sans discussion possible.

Voici ce que renvoie un échantillon par colonne, quand la seule chose qui change est la fréquence :

SonUn échantillon par colonneChaque échantillon (crête)
100 Hz0,00361,0000
220 Hz0,00781,0000
261,63 Hz0,63611,0000
440 Hz0,01571,0000
441 Hz0,63521,0000
1000 Hz0,03561,0000
2000 Hz0,07101,0000
5000 Hz0,17441,0000

Audio identique, au même volume, et les réponses vont de 0,0036 à 0,6361. Cent quatre-vingts secondes d’un son qui ne quitte jamais la pleine échelle se dessinent en ligne plate à 440 Hz — et à 441 Hz, un hertz plus loin, en une onde à 64 % de hauteur.

Rien de tout cela n’est une propriété de l’audio. C’est une propriété de la façon dont la période du son se divise dans le pas des colonnes : 440 Hz en 44,1 kHz, cela fait 100,227 échantillons par cycle, et 9 922,5 échantillons par colonne font 99,0 de ces cycles — colonne après colonne, on retombe donc presque sur la même phase. Le portrait est celui de l’arithmétique, pas celui du son.

Redimensionnez l’image et l’onde change de forme

C’est le signe que beaucoup ont déjà vu sans savoir le nommer. Prenez ce même fichier de 440 Hz et redessinez-le à différentes largeurs, sans rien changer d’autre :

LargeurÉchantillons par colonneUn échantillon par colonneChaque échantillon
600 px13 230,00,00001,0000
700 px11 340,00,62591,0000
800 px9 922,50,01571,0000
900 px8 820,00,00001,0000
1000 px7 938,00,61551,0000
1200 px6 615,00,00001,0000
1920 px4 134,40,51141,0000

Un fichier, un son, sept dessins — trois d’entre eux vides. Si vous avez déjà exporté une onde en deux tailles et trouvé la seconde bizarre, vous aviez raison, et c’est pour cela. Un dessin qui change quand vous changez la toile ne décrit pas l’audio.

Une piste de batterie sans batterie

Le cas des fréquences est une démonstration propre, mais le cas qui coûte du vrai travail, ce sont les transitoires. Une impulsion de 2 ms en 44,1 kHz, c’est 88 échantillons — 0,89 % d’une colonne de 9 922 échantillons. Lire un échantillon par colonne tombe dessus environ 0,89 % du temps.

Nous avons construit une piste de clics : 360 impulsions à pleine échelle, une toutes les 500 ms, sur trois minutes. Puis nous l’avons dessinée des deux façons.

MesureUn échantillon par colonneChaque échantillon (crête)
Colonnes montrant une impulsion0 sur 800360 sur 800
Colonne la plus haute0,00000,8973
Échantillon unique à pleine échelle trouvé (200 positions au hasard)0 / 200200 / 200
Impulsion de 2 ms trouvée (200 positions au hasard)3 / 200200 / 200

Zéro. Pas une batterie plus faible — aucune batterie. Chacune des 360 frappes à pleine échelle est tombée entre les échantillons regardés, et le dessin est revenu en ligne plate. En cachant un unique échantillon à pleine échelle dans un fichier calme et en le déplaçant à 200 positions au hasard, le raccourci l’a trouvé aucune des 200 fois ; élargi à une impulsion de 2 ms, il en a trouvé trois.

Pourquoi personne ne le remarque

Parce que cela n’échoue jamais bruyamment. Une onde 65 % trop basse, ou privée de ses transitoires, ou d’une autre forme à une autre taille, ressemble toujours à une onde. Elle a des crêtes et des creux, elle commence où l’audio commence et finit où il finit, et elle est globalement plus haute dans les passages forts. Aucune erreur, aucun avertissement, et rien à quoi la comparer — c’est exactement la forme des autres défauts que nous continuons de trouver dans les petits outils créatifs : un anneau dessiné à la moitié de la largeur demandée se lit comme un anneau plus fin, pas comme un bogue, et une tranche de carrousel décalée d’un demi-pixel se lit comme une photo un peu molle.

La raison de s’en soucier n’est pas esthétique. Si vous coupez d’après l’onde, si vous alignez un sous-titre sur un temps, ou si vous retirez du silence à l’œil, vous décidez à partir d’un dessin qui a jeté 99,99 % des preuves.

Le correctif, et ce qu’il coûte

Gardez le minimum et le maximum de chaque colonne. C’est tout. Il ne peut pas rater un échantillon puisqu’il les lit tous, il est stable au redimensionnement parce qu’il ne dépend pas des échantillons regardés par hasard, et il attrape une transitoire de 88 échantillons pour la même raison.

Le coût : réduire les 7 938 000 échantillons à 800 colonnes a pris 4,70 ms, meilleur de cinq essais, dans un navigateur ordinaire. Le raccourci a pris 0,00 ms. C’est toute l’économie défendue, et elle achète un dessin qui n’est pas celui de votre audio.

Le RMS est une autre question, pas une mauvaise réponse

Il existe une troisième option qui mérite d’être nommée, parce que les outils la mélangent en silence. Le RMS est l’énergie moyenne de la colonne plutôt que son échantillon le plus fort. Pour une sinusoïde, le RMS vaut 0,7071 contre une crête de 1,0000 — une onde en RMS est 29,29 % plus basse qu’une onde en crête du même audio.

Aucune des deux n’est fausse. La crête montre les transitoires ; le RMS suit le volume perçu et paraît plus lisse. Ce qui est faux, c’est de ne pas savoir laquelle vous regardez, ou un outil qui utilise l’une pour l’aperçu et l’autre pour l’export.

Confirmé sur un vrai fichier, après la mise en ligne de l’outil

Les signaux synthétiques prouvent le mécanisme ; un vrai fichier prouve qu’il survit au contact d’un audio réel. Nous avons déposé un extrait de parole de 20 secondes — 960 000 échantillons, mono, 48 kHz — dans le générateur d’image de forme d’onde terminé, et lu les chiffres dans la page elle-même plutôt que dans une réimplémentation.

LargeurCrête réelle (tous les échantillons)Crête trouvée par un échantillon
600 px0,29640,2387
800 px0,29640,2172
1000 px0,29640,1886
1200 px0,29640,2387
1920 px0,29640,2343

La crête réelle est de 0,2964 à toutes les largeurs, parce que c’est un fait sur le fichier. La réponse du raccourci erre entre 0,1886 et 0,2387 selon uniquement la largeur demandée pour l’image. Sur le même extrait, 88 des 480 colonnes atteignent la moitié de la crête réelle ; la lecture à un échantillon en trouve 10. Son dessin est 65,42 % plus bas en moyenne.

L’outil dessine votre fichier des deux façons, côte à côte, et affiche ces chiffres pour ce que vous lui donnez — la comparaison est donc quelque chose que vous exécutez, pas quelque chose que vous croyez sur parole.

Questions fréquentes

Est-ce un vrai défaut ou une plainte de puriste ?

C’est un défaut chiffré. Sur une piste de clics synthétique, le raccourci a dessiné 0 frappe sur 360 et renvoyé une colonne la plus haute de 0,0000 pour un audio qui atteint la pleine échelle à répétition. Sur un vrai extrait de parole de 20 secondes, il a annoncé la crête entre 0,1886 et 0,2387 selon uniquement la largeur de l’image, contre une crête réelle de 0,2964. Rien de tout cela n’est affaire de goût.

Pourquoi lirait-on un seul échantillon par colonne ?

Parce que c’est gratuit et que le résultat a l’air correct. Réduire 7 938 000 échantillons proprement a pris 4,70 ms dans un navigateur ; le raccourci a pris 0,00 ms. Et la sortie ressemble toujours à une forme d’onde, donc rien ne proteste — il n’y a ni erreur ni point de comparaison évident.

Cela touche-t-il aussi les fichiers courts ?

Beaucoup moins. Les dégâts augmentent avec le nombre d’échantillons qu’une colonne doit représenter. Un fichier de 10 secondes en 800 px fait 551 échantillons par colonne, un fichier de 10 minutes en fait 33 075. Les extraits courts dessinés larges sont le cas le plus sûr ; les fichiers longs dessinés étroits, le pire.

Et si je fais la moyenne de la colonne ?

La moyenne des échantillons signés est pire que les deux — une onde symétrique tend vers zéro, donc un audio fort se dessine en ligne plate pour une autre raison. La moyenne des valeurs absolues ou le RMS se défendent, mais les deux sont plus bas que la crête par construction : le RMS d’une sinusoïde vaut 0,7071 contre une crête de 1,0000.

Lire chaque échantillon ralentit-il la page ?

Non. 4,70 ms pour un morceau de trois minutes est imperceptible, et cela se produit à chaque redessin, pas en continu. Le coût dominant dans le navigateur est le décodage du fichier compressé en échantillons, que toute approche doit faire de toute façon.

Où puis-je essayer la comparaison sur mon propre audio ?

Le générateur d’image de forme d’onde dessine votre fichier des deux façons sur la même page et indique la crête réelle, la crête trouvée par le raccourci, combien de colonnes chaque méthode montre au-dessus de la moitié de la crête réelle, et de combien le dessin du raccourci est plus bas. Rien n’est envoyé — le décodage et le dessin se font dans votre navigateur.