5 septembre 2026
Un dixième de BPM, et votre montée devenait du plat
Une frontière posée au mauvais endroit doublait la cadence de certains morceaux à 120 BPM. Correction mesurée sur 1 242 morceaux — et le compte rendu honnête d'une piste annoncée en août qui n'a pas abouti.
Le 18 août, nous racontions ici comment le mail d'un instructeur avait déclenché la refonte complète de la détection de tempo. Nous terminions cet article par une promesse : le chantier suivant serait les musiques à métrique ternaire, celles que le moteur compte encore une fois sur trois par trois au lieu de par quatre.
Voici la suite. Elle contient une correction dont nous ne sommes pas fiers, un échec assumé, et une mesure qui a changé notre façon de lire nos propres chiffres.
La frontière posée sur du bruit
Commençons par le défaut, parce qu'il touchait directement le vélo.
RideComposer convertit le tempo d'un morceau en cadence de pédalage. La règle est simple : au-delà de 120 BPM, on pédale un coup sur deux — 140 BPM donnent 70 tours par minute. En dessous, on pédale sur chaque temps — 110 BPM donnent 110 RPM. Il faut bien poser la frontière quelque part, et elle est à 120.
Le problème est que le logiciel comparait à 120 la valeur brute rendue par l'analyse, avec sa décimale. Or, autour de 120 BPM, la résolution de notre mesure est d'environ 0,15 BPM. Un morceau que son éditeur étiquette 120 sort donc très souvent à 119,9. Un dixième de BPM sous la frontière.
Conséquence : ce morceau n'était pas annoncé à 60 RPM, mais à 120 RPM. Un facteur deux sur les jambes de vos participants, décidé par un dixième de BPM.
Ce n'était pas une erreur de mesure — 119,9 pour 120, c'est juste à un dixième près. C'était la frontière qui tranchait sur du bruit. Et ce n'est pas un cas de bord anecdotique : 32,6 % de la bibliothèque de référence est étiquetée entre 114 et 126 BPM, c'est-à-dire collée à cette frontière.
La correction tient en une ligne : la comparaison porte désormais sur le BPM arrondi. 119,9 et 120,0 donnent la même cadence, comme l'oreille les entend.
Mesuré sur notre corpus de référence — 1 242 morceaux dont le BPM est certifié par leur éditeur, joués par le vrai moteur de l'application : la proportion de morceaux dont la cadence correspond à celle de l'étiquette passe de 81,8 % à 83,5 %. Vingt et un morceaux réparés, aucun perdu.
Nous l'avions annoncé avant de l'avoir fait
Il faut ajouter ceci, parce que c'est la partie désagréable.
La version 1.3.0, publiée dans la nuit, annonçait déjà : « 120 BPM = 60 RPM ». Deux morceaux nous avaient été signalés, nous avions rendu la frontière inclusive — 120 pile compte désormais comme une montée — et nous avions considéré le sujet clos.
Sauf que la plupart des morceaux concernés ne sortent pas à 120 pile, mais à 119,9. La promesse n'était donc tenue qu'à moitié dans le binaire livré aux clients. C'est la mesure sur les 1 242 morceaux, faite après coup, qui l'a montré. La version 1.3.1 ne contient rien d'autre que ce correctif.
La leçon, pour nous, est la même que celle d'août : une correction non mesurée n'est pas une correction, c'est une intention.
La promesse d'août : essai, et échec
Le chantier ternaire annoncé le 18 août a été mené. Il n'a pas abouti. Nous préférons le raconter plutôt que de laisser la promesse s'éteindre en silence.
L'idée était bonne sur le papier. Quand un morceau peut se compter à deux vitesses dans un rapport de trois pour quatre, plutôt que de regarder la régularité des frappes — ce qui avait déjà échoué en août —, on demande à chaque candidat de retomber juste sur la mesure (quatre temps) et sur la phrase (huit temps). Un tempo qui ne retombe pas sur la phrase n'est pas le bon.
Le banc d'essai a répondu en quelques minutes, sur les mêmes 1 242 morceaux :
| BPM exact | Même cadence | |
|---|---|---|
| Moteur actuel | 78,3 % | 82,5 % |
| Critère activé, seuil bas | 70,5 % | 17 réparés / 114 cassés |
| Critère activé, seuil haut | 75,0 % | 13 réparés / 54 cassés |
Durcir le critère améliore le rapport sans jamais franchir l'équilibre. Le signal existe pourtant : les mêmes morceaux sont réparés aux deux réglages — la famille reggaeton et afrobeats, en trois-trois-deux, où un morceau annoncé à 137 revient à 103. Mais le même critère crie « ternaire » sur de la dance parfaitement binaire, et casse quatre morceaux pour un réparé.
Nous l'avons donc abandonné, et écrit noir sur blanc dans le code pourquoi, à côté du compte rendu de la tentative d'août. Pour que personne ne recommence dans six mois la même idée en la croyant neuve.
Ce que la campagne a vraiment appris
C'est le résultat le plus utile de la semaine, et il ne concerne pas le ternaire.
Nous citions jusqu'ici un taux global de justesse — 78 % de tempos exacts. Ce chiffre ne veut rien dire, parce qu'il mélange des répertoires qui n'ont rien à voir entre eux. Sur le même corpus, en séparant :
| BPM exact | Même cadence | |
|---|---|---|
| Musique de club (721 morceaux) | 91,4 % | 93,6 % |
| Mixes fitness professionnels (195) | 88,2 % | 90,3 % |
| Albums, pop, live (465) | 56,6 % | 64,7 % |
| The Beatles (121) | 22,3 % | 35,5 % |
La lecture est sans ambiguïté. Sur la musique qui sert réellement en cours d'indoor cycling — la musique de club et les mixes fitness — le moteur trouve la bonne cadence dans plus de neuf cas sur dix. Sur un enregistrement des Beatles, batterie acoustique jouée par un être humain, il se trompe deux fois sur trois. Ce sont deux mondes différents, et les moyenner ne renseigne sur aucun des deux.
Cela ne veut pas dire que les mauvais chiffres ne comptent pas : si vous construisez vos cours avec du rock des années soixante, vous corrigerez les BPM à la main, et nous vous devons mieux. Mais cela dit où nous devons chercher, et cela dit ce que vous pouvez attendre du logiciel selon votre bibliothèque.
Dernier point, celui qui nous a fait plaisir : sur ces 1 242 morceaux, le moteur a refusé de donner un tempo à quinze d'entre eux. Onze sont de l'habillage sonore — sirènes, décomptes, nappes — c'est-à-dire des pistes qui n'ont effectivement aucune pulsation. Sur de la vraie musique, le moteur ne renonce jamais, et quand il renonce, il a raison.
Ce qu'il faut retenir
- Si votre bibliothèque contient beaucoup de morceaux autour de 120 BPM, passez en 1.3.1 : leurs cadences étaient fausses d'un facteur deux.
- Les morceaux déjà analysés gardent la valeur calculée à l'époque ; c'est la conversion en cadence qui est corrigée, elle s'applique immédiatement.
- La métrique ternaire reste un défaut connu. Nous n'avons plus de piste à annoncer, et nous ne vous en annoncerons pas tant que le banc d'essai ne l'aura pas validée.
Comme toujours : si un tempo vous paraît faux, écrivez-nous avec le titre et le chiffre attendu. C'est exactement ce mail-là qui, en août, a déclenché tout le reste.