Détecteur de Tonalité
Détectez la tonalité (majeur/mineur), le BPM et le code Camelot d'un morceau. Accordeur YIN en temps réel et visualisation piano pour DJ.
À propos du Détecteur de Tonalité et Hauteur
Ce Détecteur de Tonalité et Hauteur analyse un fichier audio et signale la tonalité musicale la plus probable (ex. Do majeur, La mineur, Fa# mineur), la note tonique, le mode (majeur ou mineur), le tempo en BPM, la notation Camelot pour le mix DJ et une liste de tonalités harmoniquement compatibles. Un mode temps-réel séparé écoute votre microphone et affiche la note actuelle et son écart en cents par rapport au tempérament égal à 12 tons le plus proche, utile comme accordeur rapide dans le navigateur. Tout fonctionne localement dans votre navigateur via la Web Audio API et la bibliothèque d'extraction de caractéristiques Meyda — pas de téléversement, pas de serveur, pas de journalisation.
La détection de tonalité est une tâche de Music Information Retrieval (MIR) à longue histoire académique. L'algorithme ici utilise un chromagramme — un vecteur de 12 éléments résumant l'énergie présente dans chaque classe de hauteur (Do, Do#, Ré, ..., Si) sur la piste entière — et le compare aux 24 profils de tonalité Krumhansl-Schmuckler (12 majeurs + 12 mineurs) par similarité cosinus. Les profils Krumhansl-Schmuckler ont été dérivés dans les années 80 d'expériences de perception humaine et restent une base solide ; les systèmes MIR modernes (Mauch & Dixon 2010, Korzeniowski & Widmer 2017) superposent des réseaux convolutionnels, mais pour le type de matériel clairement tonal que la plupart des utilisateurs analysent ici, l'approche classique est rapide, transparente et précise.
Au-delà de la tonalité, l'outil signale la position Camelot (1A, 1B, 2A, ... 12A, 12B), notation popularisée par le logiciel Mixed In Key et utilisée par les DJ professionnels pour trouver des pistes harmoniquement compatibles : les chansons de même numéro se mixent facilement, et ±1 sur la roue est aussi musicalement naturel. Les tonalités compatibles (relative majeure/mineure, dominante, sous-dominante) et les tonalités alternatives (les candidats les plus probables suivants) sont affichées pour vérifier le résultat. Le BPM est détecté par une méthode d'autocorrélation d'attaques.
L'accordeur en temps réel utilise l'algorithme YIN (de Cheveigné & Kawahara, 2002), standard de fait pour le suivi monophonique de hauteur dans les accordeurs logiciels et plug-ins de correction. YIN est robuste aux mélanges harmoniques et tourne en temps réel à 44,1 kHz sur du matériel courant. Nous affichons la classe de hauteur détectée, l'écart en cents par rapport à la note tempérée la plus proche et un indicateur visuel centré sur zéro. Les musiciens peuvent l'utiliser pour accorder rapidement leurs instruments ; les chanteurs pour vérifier la précision sur des notes tenues.
Applications utiles : DJ préparant des mix harmoniques (correspondances Camelot), producteurs cherchant des morceaux de packs de samples qui s'intègrent à un projet, auteurs-compositeurs identifiant la tonalité d'une mélodie captée à l'oreille, étudiants en musique transcrivant ou analysant un répertoire, chefs de chœur et de groupe vérifiant qu'ils chantent ou jouent dans la bonne tonalité, et musiciens de chanson française, de variété, d'électro francophone, de chanson belge ou québécoise — où confirmer le centre tonal rapidement fait gagner du temps de répétition. La confidentialité est par conception : le fichier est décodé localement, l'analyse tourne en JavaScript et rien n'est téléversé.
Comment fonctionne la détection
Étape 1, décodage. La Web Audio API décode votre fichier (MP3, WAV, FLAC, OGG, M4A, OPUS, conteneurs vidéo — tout ce que le navigateur prend en charge) en un tampon PCM flottant 32 bits à la fréquence d'échantillonnage native. Nous sommons stéréo en mono pour l'analyse, car la tonalité est une propriété globale qui ne bénéficie pas du traitement par canal.
Étape 2, le chromagramme. Nous calculons une STFT (typiquement fftSize 4096, hop 1024 à 44,1 kHz, donnant des fenêtres ~93 ms avec ~75 % de recouvrement). Chaque spectre de magnitude est mappé en 12 classes de hauteur en sommant l'énergie à travers toutes les octaves de chaque note (les pics spectraux à La2 = 110 Hz, La3 = 220 Hz, La4 = 440 Hz, La5 = 880 Hz contribuent au bin « La »). Nous pondérons par importance perceptuelle — les hauteurs du registre médian (où se situent la plupart des mélodies, ~200–2000 Hz) reçoivent plus de poids que les partiels très bas ou très hauts. Les chromagrammes de chaque trame sont moyennés sur toute la piste, donnant un unique vecteur 12-éléments résumant le profil tonal de la chanson.
Étape 3, appariement de tonalité par l'algorithme Krumhansl-Schmuckler (Krumhansl & Schmuckler, 1990). Chacune des 24 tonalités candidates (12 majeures + 12 mineures) a un profil stocké de 12 éléments représentant la fréquence statistique d'apparition de chaque degré de gamme dans la musique tonale dans cette tonalité. Le profil majeur culmine à la tonique, à la dominante (5e) et à la médiante (3e) ; le mineur culmine à la tonique, à la dominante et à la tierce mineure. Nous calculons la corrélation de Pearson entre le chromagramme de la chanson et chaque profil candidat. La tonalité avec la plus forte corrélation gagne. La confiance est le score de corrélation maximal exprimé en pourcentage ; les valeurs au-dessus de ~80 % indiquent une musique clairement tonale, 60–80 % confiance modérée, en dessous de 60 % du matériel atonal ou modulant où le résultat n'est pas fiable.
Étape 4, détection BPM. Nous calculons une enveloppe d'attaques en suivant le flux spectral — la somme des différences positives entre spectres de magnitude consécutifs — et faisons tourner une autocorrélation sur l'enveloppe pour trouver la périodicité la plus forte dans la plage de tempo typique (60–200 BPM). Le pic de l'autocorrélation donne la période de pulsation ; nous convertissons en BPM et limitons à la même plage. C'est l'approche Tempogram simple (Grosche & Müller, 2009) ; elle marche bien sur les chansons à pulsation claire et moins bien sur le rubato, le tempo libre ou le matériel polyrythmique.
Étape 5, détection de hauteur monophonique en temps réel. Quand l'utilisateur démarre le mode accordeur, nous ouvrons un flux microphone à 44,1 kHz via MediaStreamSource et alimentons des tampons de 2048 échantillons à l'algorithme YIN. YIN calcule une fonction de différence puis une différence normalisée cumulative, trouve le premier creux sous un seuil (typiquement 0,1) et interpole par parabole la période avec une précision sous-échantillon. La période est convertie en fréquence, la fréquence en numéro de note MIDI, et l'écart en cents est 1200 × log2(freq_détectée / freq_note_la_plus_proche). Un petit indicateur visuel montre l'écart en temps réel.
Précision et quand les résultats sont fiables
L'approche Krumhansl-Schmuckler atteint environ 75–85 % de précision en détection de tonalité sur les jeux de test standard MIREX de musique tonale occidentale, qui incluent des pistes classiques, rock, pop et jazz sélectionnées pour avoir une seule tonalité claire. Les systèmes modernes d'apprentissage profond poussent cela au-dessus de 90 %. En pratique, sur des enregistrements pop et rock clairement tonals, l'algorithme ici est suffisamment fiable pour que DJ et producteurs utilisent des outils basés sur chromagrammes (Mixed In Key, étiquettes de tonalité de Beatport) en travail live. Une confiance en dessous de ~70 % signifie traiter le résultat comme une hypothèse, pas un fait.
Là où ça échoue ou peine : musique atonale (free jazz, beaucoup de répertoire classique du XXe siècle, ambient drone, noise), pistes à modulations fortes (chanson qui change de tonalité 3 ou 4 fois — l'algorithme moyenne et peut signaler quelque chose d'intermédiaire), musique modale dépourvue de la forte attraction dominante-tonique de la tonalité de pratique courante (folk, jazz modal, K-pop pentatonique, certaines traditions vietnamiennes et indonésiennes), autotune marqué ou effets vocaux mélodiques (qui déforment le chromagramme), clips très courts (< 30 s — pas assez de matériel pour moyenner le chromagramme), et musique où basse et harmonie ne s'accordent pas (par ex. riff de basse synthé en Do tandis que la progression dit Sol).
La confusion relative-majeure / relative-mineure est un mode d'échec classique : Do majeur et La mineur partagent les mêmes notes mais ont des toniques différentes. Si la chanson passe beaucoup de temps sur la tonique de la tonalité relative, les vecteurs Krumhansl-Schmuckler se ressemblent et le détecteur peut choisir le mauvais. La liste des « tonalités alternatives » inclut toujours la relative ; si votre oreille dit mineure mais l'outil dit majeure, basculez en relative mineure et réécoutez. De même, la confusion dominante-tonique (Sol majeur dans une tonalité qui est en réalité Do majeur) apparaît parfois ; la liste des alternatives aide à la repérer.
- Meilleur sur la musique tonale occidentale (pop, rock, classique, jazz à harmonie fonctionnelle claire) ; précision style MIREX 75–85 %.
- Atonal, free jazz, ambient drone et musique modale obtiennent des scores nettement plus bas ; traitez tout résultat dans ces cas avec scepticisme.
- L'autotune marqué, le vocodeur ou les leads synthé corrigés en hauteur déforment le chromagramme et peuvent inverser la tonalité détectée.
- Les pistes modulantes (plusieurs tonalités) sont signalées comme une seule tonalité de meilleur ajustement — la moyenne — qui peut ne pas être musicalement significative.
- Les clips très courts (moins de 30 secondes) manquent de moyennage de chromagramme suffisant pour être fiables.
- La confusion relative-majeure / relative-mineure est courante ; vérifiez toujours la liste des tonalités alternatives avant de vous fier au résultat.
- La détection BPM marche mieux sur les chansons à pulsation claire et stable ; rubato, tempo libre et polyrythmie obtiennent de mauvais scores.
- L'accordeur monophonique en temps réel attend une note à la fois ; les accords ou instruments polyphoniques perturbent YIN.
- Les lectures en cents dépendent de la référence La4 = 440 Hz ; la pratique d'exécution historique (par ex. baroque La=415 Hz) nécessite une gestion à part.
Glossaire
- Chromagramme (profil de classe de hauteur)
- Vecteur de 12 éléments résumant l'énergie présente dans chaque classe de hauteur (Do, Do#, Ré, Ré#, Mi, Fa, Fa#, Sol, Sol#, La, La#, Si) d'un signal audio, sommée sur les octaves. Fondement de la plupart des algorithmes de détection d'accords et de tonalité.
- Tonique
- La note autour de laquelle une tonalité est centrée — le ton « maison » vers lequel la musique tend à revenir. Do est la tonique de Do majeur ; La est la tonique de La mineur.
- Mode
- Le motif d'intervalles définissant une gamme. Le mode majeur a le motif T-T-S-T-T-T-S (tons et demi-tons) ; mineur naturel est T-S-T-T-S-T-T. Il y a cinq autres « modes ecclésiastiques » classiques (Dorien, Phrygien, Lydien, Mixolydien, Locrien) et de nombreux modes de musique du monde.
- Cycle des quintes
- Façon d'organiser les 12 tonalités autour d'un cercle de sorte que les positions adjacentes diffèrent d'une quinte, rendant les tonalités harmoniquement liées (dominante, sous-dominante) visuellement adjacentes. La roue Camelot est un réétiquetage convivial pour DJ.
- Roue Camelot
- Notation orientée DJ popularisée par Mixed In Key. Chaque tonalité est étiquetée par un nombre (1–12) et une lettre (A = mineur, B = majeur). Les pistes de même nombre, ou ±1, sont harmoniquement compatibles. Do majeur = 8B, La mineur = 8A ; elles partagent le même nombre car elles partagent les mêmes notes.
- Mineure harmonique / mélodique
- Variantes de la gamme mineure naturelle : la mineure harmonique élève le 7e degré pour fournir un attrait dominante–tonique plus fort ; la mineure mélodique élève les 6e et 7e en montant et les ramène en descendant.
- Modulation
- Changement de tonalité au sein d'un morceau. Une chanson qui commence en Do majeur et module vers Sol majeur passe du temps sur le profil Do et sur le profil Sol, ce qui peut perturber un détecteur de tonalité fondé sur un chromagramme moyenné.
- Profil de tonalité Krumhansl-Schmuckler
- Le gabarit de 12 éléments par tonalité, dérivé des expériences perceptuelles de Carol Krumhansl dans les années 80, qui quantifie combien chaque degré de gamme apparaît typiquement en musique tonale majeure et mineure. Corrélé en cosinus contre le chromagramme d'une chanson pour estimer la tonalité la plus probable.
- Détection de hauteur YIN
- Algorithme monophonique d'estimation de fréquence fondamentale (de Cheveigné & Kawahara, 2002). Calcule une fonction de différence normalisée sur une fenêtre glissante et trouve le premier creux périodique. Standard pour les accordeurs et la correction de hauteur.
- Cents
- Unité logarithmique d'intervalle de hauteur. 100 cents = un demi-ton ; 1200 cents = une octave. ±5 cents est généralement inaudible et considéré juste ; ±20 cents est nettement faux.
Foire aux Questions
Comment l'IA détecte-t-elle la tonalité musicale ?
Elle calcule un chromagramme (12 énergies de classe de hauteur sommées sur la piste entière) et l'apparie aux 24 profils Krumhansl-Schmuckler (12 majeurs + 12 mineurs) par corrélation cosinus. Le profil le mieux ajusté gagne. Un score de confiance est signalé — les valeurs au-dessus de ~80 % sont fiables, en dessous de 60 % le résultat est incertain. Tout le pipeline tourne dans votre navigateur via la Web Audio API et Meyda.
Quels formats audio sont pris en charge ?
Tout ce que le navigateur sait décoder : MP3, WAV, OGG, AAC, M4A, FLAC, OPUS, plus les conteneurs vidéo (MP4, MKV, MOV, WebM) dont l'audio est extrait automatiquement. La Web Audio API gère le décodage entièrement sur votre appareil.
Qu'est-ce que la tonalité musicale, exactement ?
Une tonalité est un centre tonal plus un mode. Do majeur signifie que la musique gravite vers la note Do et utilise le motif d'intervalles de la gamme majeure (Do, Ré, Mi, Fa, Sol, La, Si). La mineur utilise les mêmes notes mais traite La comme maison. Connaître la tonalité permet de transposer, harmoniser, improviser des solos qui collent, et explique pourquoi certains accords « sonnent justes » ensemble.
Qu'est-ce que la roue Camelot et comment l'utiliser ?
Camelot est une numérotation conviviale DJ des 24 tonalités autour d'un cercle. Chaque tonalité a un nombre (1–12) et une lettre (A pour mineur, B pour majeur). La règle : les pistes partageant un code Camelot se mixent parfaitement ; ±1 autour de la roue mixe bien ; sauter de +7 (quinte parfaite) marche aussi. Do majeur = 8B, Sol majeur = 9B, Fa majeur = 7B, La mineur = 8A. Mixed In Key, RekordBox et Beatport étiquettent les pistes ainsi.
Quelle est la précision de la détection de tonalité ?
Sur de la musique occidentale clairement tonale (pop, rock, classique, jazz à harmonie fonctionnelle), l'approche Krumhansl-Schmuckler atteint 75–85 % de précision sur les sets MIREX standard — comparable à des outils commerciaux à base de chromagrammes. Les pistes atonales, modales, très courtes ou fortement modulantes obtiennent des scores plus faibles ; le pourcentage de confiance dit à quel point se fier à la réponse.
Pourquoi l'outil donne-t-il une tonalité différente de ce que je pense ?
Raisons fréquentes : (1) confusion relative-majeure / relative-mineure — Do majeur et La mineur partagent les mêmes notes, regardez la liste des alternatives ; (2) la chanson module réellement et vous entendez la deuxième tonalité ; (3) autotune ou effets de hauteur déforment le chromagramme ; (4) l'enregistrement est dans un accord non standard (par ex. 432 Hz ou baroque 415 Hz au lieu de La=440 Hz). Inspectez la liste des alternatives — souvent la bonne réponse y figure en deuxième.
Que signifie l'écart en cents ?
Il indique de combien la hauteur détectée s'écarte du demi-ton tempéré le plus proche. 0 cents = parfaitement juste. +5 cents = légèrement dièse (5 % d'un demi-ton au-dessus). −20 cents = sensiblement bémol. La plupart des auditeurs détectent des écarts supérieurs à ±10 cents sur des sons tenus ; ±5 cents est généralement considéré « juste ».
Puis-je l'utiliser comme accordeur de guitare en temps réel ?
Oui. Le mode temps réel ouvre votre microphone via MediaStreamSource, exécute la détection YIN sur le signal en direct et affiche la note détectée et l'écart en cents à plus de 30 mises à jour par seconde. Fonctionne sur tout instrument monophonique : guitare, basse, violon, flûte, voix. Ne fonctionne pas sur les accords ni les instruments polyphoniques — YIN attend une seule fondamentale à la fois.
Sur quoi repose la détection BPM ?
Nous calculons le flux spectral (taux de changement du spectre de magnitude, qui pique aux attaques de notes) sur la piste entière et exécutons une autocorrélation sur l'enveloppe d'attaques résultante. Le pic de l'autocorrélation dans la plage 60–200 BPM donne le tempo dominant. C'est l'approche Tempogram standard. Précise sur les chansons à pulsation claire, moins en rubato, jazz à tempo flottant ou matériel à temps libre.
Fonctionne-t-il sur la chanson française, la variété, l'électro francophone ou d'autres genres régionaux ?
Oui pour tout matériel tonal — la majorité de la musique populaire francophone se loge confortablement dans des tonalités majeures ou mineures et se détecte de manière fiable. Les genres modaux (certains chants traditionnels, fado, jazz modal) peuvent produire un majeur ou mineur de « meilleur ajustement » qui approche le mode mais n'est pas strictement correct. Une confiance en dessous de 70 % est votre signal que le genre ou le mix combat l'algorithme.
Mon audio est-il sûr et privé ?
Oui. Décodage, calcul du chromagramme, appariement de tonalité et détection BPM se déroulent tous dans votre navigateur via la Web Audio API et Meyda. Votre fichier n'est jamais téléversé. L'accordage en temps réel utilise votre microphone localement et ne diffuse jamais l'audio. Nous ne stockons, ne journalisons ni ne partageons rien de ce que vous analysez.
Que faire si la détection est incertaine (faible confiance) ?
L'outil signale un pourcentage de confiance. S'il est en dessous de ~70 %, traitez le résultat comme une supposition. Essayez (1) d'analyser une autre section de la chanson, plus claire harmoniquement, (2) d'utiliser un segment plus long, (3) de consulter la liste des tonalités alternatives, ou (4) d'écouter la chanson contre une tonalité de référence connue dans votre DAW ou app d'accordage.
Références et sources académiques
- Krumhansl, C. L.. (1990). Cognitive Foundations of Musical Pitch (algorithme Krumhansl-Schmuckler) Oxford University Press.
- de Cheveigné, A., & Kawahara, H.. (2002). YIN, a fundamental frequency estimator for speech and music Journal of the Acoustical Society of America 111(4).
- Mauch, M., & Dixon, S.. (2010). Approximate Note Transcription for the Improved Identification of Difficult Chords (NNLS Chroma) ISMIR Proceedings.
- Temperley, D.. (2007). Music Theory of Tonal Pitch Space (extensions de Temperley à Krumhansl-Schmuckler) MIT Press.
- Comité d'organisation MIREX. (2024). Music Information Retrieval Evaluation eXchange (MIREX) — Tâche de détection de tonalité ISMIR / IMIRSEL, Université de l'Illinois.
- Korzeniowski, F., & Widmer, G.. (2017). End-to-end Musical Key Estimation Using a Convolutional Neural Network EUSIPCO.
Last reviewed: · Reviewed by Équipe d'ingénierie audio WuTools
