Comment ça marche
TONETZ réunit cinq assistants de composition qui ne font rien « au hasard » : chaque proposition s'appuie sur des règles de théorie musicale ou sur un modèle de hasard structuré. Voici, en détail, ce qui se passe sous le capot.
Harmonie — substitution d'accords & contrepoint
1 · Lecture de la grille
Tu écris une suite d'accords entre barres verticales, par ex.
| Cmaj7 | Am7 | Dm7 | G7 |. Chaque symbole est décomposé en
fondamentale (la lettre, plus l'altération #/b)
et qualité (maj7, m7, 7,
m7b5, dim7, sus4, add9, b5…).
L'accord est alors traduit en classes de hauteurs (les notes, de 0 à 11) :
Cmaj7 → C E G B.
2 · Détection automatique de la tonalité
Pour proposer des substitutions pertinentes et non aléatoires, l'outil doit d'abord savoir dans quelle tonalité tu es. Il utilise l'algorithme Krumhansl-Schmuckler :
- il compte la présence de chaque note dans toute la grille (la fondamentale de chaque accord pèse plus lourd) → un histogramme sur 12 notes ;
- il compare cet histogramme aux 24 « profils » de référence (12 majeurs + 12 mineurs) issus d'études de perception ;
- la tonalité dont le profil corrèle le mieux gagne. Sur l'exemple ci-dessus → Do majeur.
Chaque accord reçoit alors son degré (chiffre romain : I, ii, V…), qui décrit sa fonction dans la tonalité.
3 · Les 5 règles de substitution
Pour chaque accord, l'outil applique des règles d'harmonie réelle, attribue un score de pertinence (bonus si la cible reste diatonique à la tonalité) et un indice de tension ◗ (plus l'accord s'éloigne, plus c'est tendu) :
| Règle | Principe | Exemple |
|---|---|---|
| Triton (SubV) | Remplace une dominante par celle située à un triton — elles partagent la 3ᶜᵉ et la 7ᵉ, donc la même tension à résoudre. | G7 → Db7 |
| b5 modal | Accord bâti sur la quinte diminuée : couleur planante, empruntée aux modes (Lydien b5 / Locrien). | Cmaj7 → Gbmaj7 |
| Voisins | Approche chromatique par le demi-ton supérieur ou inférieur ; glisse vers l'accord cible. | Cmaj7 → Bmaj7 / Dbmaj7 |
| Médiante | Substitut partageant l'essentiel des notes (III, VI, relatif) → même fonction, transition douce. | Cmaj7 → Em7 / Am7 |
| Modal Shift | Emprunt au mode parallèle : bascule majeur↔mineur sur la même fondamentale. | Cmaj7 → Cm7 |
Les trois meilleures propositions (score décroissant) s'affichent sous chaque accord. Clique-en une pour l'écouter et l'insérer dans la grille ; re-clique pour annuler.
4 · Génération du contrepoint (1ʳᵉ espèce)
Quand tu sélectionnes un accord, TONETZ écrit une seconde voix note contre note :
- un cantus firmus est tiré de la gamme de l'accord (Ionien, Mixolydien, Dorien… selon sa famille), avec un contour qui part et revient sur la fondamentale ;
- au-dessus, la voix ne retient que des consonances : tierces, sixtes, octaves — jamais de notes hors gamme ;
- le mouvement contraire est privilégié, les quintes et octaves parallèles sont interdites, et les petits intervalles mélodiques favorisés ;
- la cadence finale est forcée : avant-dernière note sur une 6ᵗᵉ/3ᶜᵉ qui se résout sur l'octave par mouvement contraire.
Le tout est dessiné sur une portée (Canvas) — la voix de contrepoint en couleur, le cantus firmus en encre — avec l'intervalle indiqué sous chaque paire de notes. Le bouton ▶ joue les deux voix simultanément.
5 · Diagrammes guitare
Le bouton 🎸 Guitare affiche, sous chaque accord, un diagramme de manche en accordage standard (mi-la-ré-sol-si-mi). Le doigté n'est pas mémorisé d'une table : un moteur de voicing explore toutes les positions jouables et retient la meilleure selon plusieurs critères :
- la fondamentale à la basse (la corde la plus grave sonne la tonique) ;
- la couverture de toutes les notes de l'accord ;
- une position basse sur le manche, des cordes à vide, un empan de main raisonnable (≤ 4 cases) et peu de cordes étouffées au milieu.
Lecture du diagramme : × = corde étouffée, ○ = corde à vide, les points = doigts posés ; un numéro à gauche indique la case de départ quand l'accord est plus haut sur le manche. Le diagramme reflète l'accord effectif : si tu choisis une substitution, il montre le doigté de celle-ci. Clique un diagramme pour entendre l'accord.
6 · Export
Copie la grille modifiée en texte, joue-la en arpèges, ou exporte en JSON (grille d'origine, grille modifiée, analyse complète avec degrés et substitutions).
Rythme — batteries non-répétitives par chaos contrôlé
1 · L'idée : du hasard structuré
Un générateur naïf tire chaque frappe à pile ou face : le résultat sonne mécanique et incohérent. TONETZ combine plusieurs ingrédients pour produire des grooves vivants mais musicaux.
2 · Le curseur Chaos (0 → 100)
| 0 | Pattern 4/4 ultra classique : kick sur 1 & 3, snare sur 2 & 4, charleston aux croches. Rien d'aléatoire — la boucle se répète. |
| ~50 | Ghost notes, légers décalages, variations de charley : le groove respire sans perdre le fil. |
| 100 | Placements imprévisibles, remplissages, ride émergent : presque free jazz. |
Le Chaos pilote l'amplitude de toutes les déviations ci-dessous.
3 · Bruit rose plutôt que bruit blanc
Les décisions rythmiques sont tirées d'un générateur de bruit rose (algorithme de Voss-McCartney). Contrairement au bruit blanc — où chaque instant est indépendant — le bruit rose a un spectre en 1/f : les valeurs sont corrélées dans le temps. Concrètement, les événements se regroupent en motifs plutôt que de se disperser au hasard, ce qui rend les événements rares plus marquants et plus naturels à l'oreille.
4 · Marche aléatoire avec mémoire
Chaque nouvelle mesure découle de la précédente. Trois « états » évoluent par petits pas d'une mesure à l'autre (marche aléatoire) :
- le mode du charleston (croches → doubles → triolets) ;
- le décalage de placement du snare (±1 double-croche) ;
- la densité de ghost notes du kick.
Résultat : pas de rupture brutale entre les mesures, mais une évolution continue. Une garde-fou garantit qu'aucune mesure n'est identique à la précédente dès que Chaos > 0.
5 · Le rôle de chaque piste
- Kick — ancré sur les temps forts, variations subtiles (ghost notes douces).
- Snare — sur 2 & 4, avec micro-déplacements de placement et ghost notes.
- Hi-Hat — densité micro-variable : croches, doubles ou triolets selon la mesure.
- Tom — remplissages cohérents (suites de notes), surtout en fin de phrase (mesures 4, 8…).
- Crash / Ride — accent sur les changements de section (toutes les 4 mesures) ; un motif de ride apparaît à haut Chaos.
Deux réglages dosent tout ça : la Densité globale (Faible / Moyenne / Élevée) fixe la quantité de frappes ; le niveau de variation par piste dose combien chacune s'écarte du classique.
6 · Le groove : humanize, vélocité, swing
- Humanize — un léger décalage temporel aléatoire (± jusqu'à 20 ms, 8 par défaut) sur chaque frappe : la machine cesse d'être « carrée ».
- Vélocité gaussienne — l'intensité de chaque coup suit une courbe de Gauss (accents plus forts sur les temps, ghosts faibles), pour un relief naturel.
- Swing / Shuffle — de 50 % (binaire, droit) à 75 % (shuffle prononcé) : la croche médiane de chaque temps est retardée vers le placement ternaire.
Astuce technique : la grille interne tourne à 12 subdivisions par temps — le plus petit dénominateur commun des doubles-croches (×3) et des triolets (×4). C'est ce qui permet de mélanger les deux dans une même mesure.
7 · Piano roll & édition
Les 5 pistes s'affichent en lignes (Canvas). Chaque note est colorée selon sa vélocité : vert = faible → rouge = fort, et sa hauteur reflète aussi l'intensité. La tête de lecture défile pendant le jeu. Clique une case pour ajouter/retirer une note, ou re-génère une seule mesure (correction locale) sans toucher au reste.
8 · Export MIDI
Le bouton Exporter MIDI écrit un vrai fichier .mid (Standard MIDI File, canal 10 = batterie)
directement dans le navigateur, avec le mapping General MIDI :
Kick 36, Snare 38, Hi-Hat 42, Tom 45, Crash 49 — vélocités et timing inclus.
Ouvrable dans n'importe quel DAW. (Le son, lui, est synthétisé en direct par Tone.js.)
Gammes & modes — quoi jouer sur un accord
Les deux premiers modules disent quels accords et quel rythme jouer ;
celui-ci répond à la question du soliste : quelles notes sonnent juste sur cet
accord ? Tu saisis un accord (Dm7, G7, Cmaj7…)
et l'outil liste les gammes qui lui vont, en les affichant sur un manche et un clavier.
1 · Gammes compatibles
Une gamme est proposée si elle contient toutes les notes de l'accord. L'outil parcourt une bibliothèque (modes majeurs et mineurs, harmonique, mélodique, lydien dominant, altérée, pentatoniques, blues, ton entier, diminuées…) et garde celles qui collent. Elles sont triées : le moins de « notes à éviter » d'abord, puis les gammes à 7 notes. Le bouton Toutes les gammes ignore l'accord et montre tous les modes construits sur la même fondamentale (utile comme référence pure).
2 · Le code couleur
Chaque note de la gamme est classée par rapport à l'accord :
- note d'accord — elle appartient à l'accord, c'est un point d'appui sûr ;
- couleur — une tension disponible (9, 11, 13…) qui enrichit sans heurter ;
- à éviter — une note située un demi-ton au-dessus d'une note d'accord : elle frotte (typiquement la 11ᵉ juste sur un accord majeur). À utiliser en passage, pas en note tenue.
3 · Manche, clavier & écoute
La gamme sélectionnée s'affiche sur un manche de guitare (accordage standard, 14 cases) et un clavier de deux octaves, chaque note coloriée selon son rôle, la fondamentale cerclée. Le bouton ▶ Écouter la gamme la joue en montant (la note jouée s'illumine sur les deux schémas) ; ▤ Jouer l'accord rappelle le contexte harmonique. Astuce : la fondamentale provient de l'accord saisi — copie une substitution du module Harmonie pour explorer ses couleurs ici.
Mélodie — une ligne de chant sur ta grille
Ce module ferme la boucle de composition : à partir d'une grille d'accords, il écrit une ligne mélodique qui suit l'harmonie, dans le même esprit de hasard structuré que le module Rythme — rien n'est tiré purement au sort.
1 · La gamme de chaque accord
Pour chaque accord, l'outil choisit la meilleure gamme (via le moteur du module Gammes & modes : celle qui contient l'accord avec le moins de notes à éviter). Les notes à éviter sont retirées du vivier : la mélodie ne tombera jamais dessus.
2 · Rythme : motif répété puis varié
Le rythme de chaque mesure est tiré sur une grille de doubles-croches : les temps portent presque toujours une note, les contretemps et doubles dépendent des curseurs Densité et Syncope. Un motif est mémorisé sur la première mesure puis réutilisé (souvent) ou renouvelé, avec un petit fill sur la dernière mesure — d'où une ligne cohérente plutôt que décousue.
3 · Contour : marche guidée
Les hauteurs suivent une marche sur les notes de la gamme : surtout des pas conjoints, des sauts occasionnels (dosés par l'Ambitus) qui se résolvent par mouvement contraire. Sur les temps forts, la note est attirée vers une note de l'accord (d'autant plus que la Sagesse est haute) ; basse, la mélodie ose davantage de couleurs. Chaque mesure repart de la note précédente, pour une conduite de voix fluide.
4 · Restitution & export
La mélodie s'affiche sur une portée (notes d'accord en encre, notes de gamme en couleur, symboles d'accord et longueurs indiqués). Tu peux l'écouter (avec ou sans accompagnement d'accords, la note jouée s'illumine) et l'exporter en MIDI pour la retravailler dans ton DAW.
Ligne de basse — du soutien à la walking
À partir de la grille, ce module écrit une ligne de basse dans le registre grave (~mi₁ à sol₃), affichée en clé de fa. Quatre styles, du plus simple au plus mobile.
| Style | Principe |
|---|---|
| Tenue | Une fondamentale tenue par mesure — le soutien le plus sobre. |
| Pompe | Fondamentale puis quinte (deux blanches) : le « boum-tchak » à deux temps. |
| Walking | Quatre noires : fondamentale sur le 1, notes d'accord/de gamme en marche, et note d'approche (souvent chromatique) sur le 4 qui mène à la fondamentale suivante. |
| Funk | Groove syncopé en doubles-croches autour de la fondamentale, l'octave, la quinte et la 7ᵉ. |
Conduite de voix & approches
La basse reste dans un registre serré et enchaîne par petits intervalles : chaque mesure repart près de la note précédente. En walking, les deux notes centrales interpolent entre la fondamentale et l'approche en privilégiant les notes de l'accord, et la note d'approche aborde la fondamentale suivante par demi-ton (ou par la quinte). Code couleur sur la portée : fondamentale en encre, note d'accord en teal, note de gamme en or, approche en terracotta.
Écoute & export
La basse se joue avec un timbre dédié (synthé monophonique), seule ou avec l'accompagnement d'accords, et s'exporte en MIDI.
Tout tourne dans ton navigateur — aucune donnée n'est envoyée à un serveur.