9.9 KiB
9.9 KiB
Journal des versions — _chordlab
Historique des ajouts, modifications et corrections. Les versions les plus récentes figurent en haut.
Conventions : Ajouté (nouvelle fonctionnalité) · Modifié (comportement existant changé) · Corrigé (bug) · Retiré (fonctionnalité supprimée) · Documentation
[2.5] — interface bilingue
Ajouté
- Sélecteur de langue FR / EN dans l'en-tête de l'application. La totalité de l'interface bascule : titres de modules, libellés, listes déroulantes, boutons, infobulles, messages d'état, ligne d'aide du clavier et texte des slots vides.
- Détection au démarrage d'après la langue du navigateur (
fr→ français, sinon anglais), modifiable d'un clic. - La langue retenue est enregistrée dans les sessions
.jsonet restaurée au chargement. - L'attribut
langdu document suit la langue choisie, pour les lecteurs d'écran et la synthèse vocale.
Modifié
- La ligne d'aide du clavier combine désormais langue et disposition : quatre variantes possibles (FR/EN × QWERTY/AZERTY).
- Le vocabulaire musical universel reste inchangé dans les deux langues : noms de notes et d'accords, types (DIM, MIN, MAJ, AUG, SUS2, SUS4, 5, m♭6), tensions et altérations, modes de performance (block, strum, harp, arp), drop voicings et valeurs rythmiques.
Notes d'implémentation
- Le français reste la version de référence dans le balisage ; les textes d'origine sont capturés au chargement et restaurés au retour en FR, ce qui évite toute perte après plusieurs changements de langue.
- Un seul fichier applicatif : pas de version anglaise séparée, donc aucun risque de divergence entre les deux langues.
[2.4] — dispositions clavier QWERTY et AZERTY
Ajouté
- Sélecteur de disposition clavier QWERTY / AZERTY, placé sous le clavier de l'application. Jusqu'ici la correspondance des touches était figée en QWERTY : sur un clavier AZERTY, les deux touches concernées par la divergence sont précisément A→Q (Do) et W→Z (Do dièse), ce qui rendait le jeu au clavier physique impraticable. Les dix autres touches (S E D F T G Y H U J) sont communes aux deux dispositions.
- Détection au démarrage d'après la langue du navigateur : AZERTY si la langue commence par
fr, QWERTY sinon. Il s'agit d'une heuristique, le sélecteur permet de la corriger en un clic. - La disposition retenue est enregistrée dans les sessions
.jsonet restaurée au chargement. - La ligne d'aide sous le clavier affiche les lettres de la disposition active.
Modifié
- La table de correspondance unique est remplacée par deux tables commutables ; les gestionnaires d'événements clavier lisent la disposition courante à chaque frappe.
Documentation
- Manuels FR et EN : section « Raccourcis clavier » complétée, figure 12 montrant les deux dispositions côte à côte avec les touches divergentes mises en évidence.
- Tutoriel Markdown et README mis à jour.
[2.3] — correctif basse slash
Corrigé
- Le sélecteur « basse / » restait sans effet en Key Mode. La basse jouait systématiquement la fondamentale, quel que soit le choix (tierce, quinte, septième). Le calcul du renversement reconstruisait l'accord à partir du type et des tensions ; or en Key Mode l'accord provient de l'harmonisation diatonique et ne passe pas par ce chemin. Le bug était invisible hors Key Mode, ce qui le rendait intermittent selon la configuration.
Correction :
slashInterval()etbassNoteFor()remplacés parslashIntervalFrom()etbassFromRaw(), qui dérivent la note de basse des notes réelles de l'accord — valable dans les deux modes. - Basse forcée sur la fondamentale dans les progressions générées. Le chargement d'un preset et le bouton ✦ suggérer écrivaient la basse en dur, ignorant le sélecteur ainsi que le nom slash (
C/E) dans le libellé du slot. - Le nom d'accord slash s'affiche désormais correctement partout, y compris en Key Mode (
C/E,Dm/F,G7*/F).
Comportement à connaître
- Demander la septième sur une triade (accord sans septième) fait retomber la basse sur la fondamentale plutôt que d'inventer une note. Activer la tension
m7ouM7pour l'obtenir.
[2.2] — simplification de la basse
Retiré
- Les 10 rythmiques de basse introduites en 2.1 (sélecteur rythme B, affichage LCD associé, moteur
renderBassEvents, persistance en session). La basse revient à une note tenue sur toute la durée de l'accord.
Conservé
- Les durées libres de 1 à 16 temps par slot (voir 2.1). Les sessions
.jsonenregistrées en 2.1 se rechargent sans erreur : le champ de rythme éventuel est ignoré.
[2.1] — rythmiques de basse et durées libres
Ajouté
- 10 rythmiques de basse : tenue, noires, croches, contretemps, octaves alternées, fondamentale–quinte, boogie, tresillo 3–3–2, pompe, aléatoire probabiliste. Rendues à l'identique en audition, MIDI live et export
.mid, avec bornage de chaque frappe à la fin du slot. - Durée de slot réglable de 1 à 16 temps au pas de 1, via des boutons
−/+. Rend possibles les accords de 3, 5 ou 7 temps et les mesures asymétriques.
Modifié
- Le badge de durée cyclique (4 → 8 → 2 → 1 temps) est remplacé par les boutons
−/+. - Chargement de session : les durées sont bornées entre 1 et 16 pour garantir la compatibilité ascendante.
[2.0] — refonte harmonique
Ajouté
- Types d'accords portés de 4 à 8, tous en boutons directs : Dim, Min, Maj, Aug, Sus2, Sus4, power chord (5), m♭6.
- Tensions étendues : ♭9, ♯9, 11, ♯11, 13 s'ajoutent aux 6, m7, M7, 9.
- Altérations : ♭5 et ♯5 (qui remplacent la quinte au lieu de s'y ajouter), et
no3pour retirer la tierce. - Drop voicings appliqués après la rotation : close, drop 2, drop 3, drop 2+4, spread.
- Accords slash : basse sur la fondamentale, la tierce, la quinte ou la septième, avec détection de l'intervalle correct selon le type d'accord et affichage
C/Esur le LCD. - Voice-leading :
VL AUTOre-voice chaque accord ajouté pour minimiser le déplacement des voix ; le bouton⇄ voice-leadingoptimise toute la progression d'un coup. - Suggestion harmonique (
✦ suggérer) : propose l'accord suivant via une table d'harmonie fonctionnelle, dans la tonalité courante. - Key Mode porté à 8 gammes : majeur, mineur naturel, mineur harmonique, dorien, phrygien, lydien, mixolydien, locrien. Harmonisation diatonique jusqu'à la 13e.
- Modes de performance : block, strum ↑/↓, harp, arpèges ↑/↓/↕/aléatoire, à 1/8, 1/16 ou 1/32. Rendus dans l'audio, le MIDI live et l'export
.mid(rendu désactivable). - Humanisation optionnelle des vélocités (±10) et du timing (±15 ms).
- Durée individuelle par slot et réordonnancement des slots (
‹/›). - Sauvegarde et chargement de session en fichier
.json(réglages complets + progression). Aucun stockage navigateur : le fichier est l'unique persistance. - Preset supplémentaire : cycle des quintes.
Modifié
- Les types d'accords passent de la sélection multiple avec combinaisons implicites à une sélection unique : Aug et Sus2 deviennent des boutons dédiés au lieu de résulter d'une combinaison.
- Le moteur de rendu est unifié : une fonction
renderEvents()unique alimente l'audio, le MIDI live et l'export, ce qui garantit que les trois sorties sont identiques. - Nommage des accords enrichi (
Cdim7,Cø7,C7(♭9),Cadd9,Cmaj7(♯11)…).
Corrigé
- Nommage des accords
add9,add11etadd13: ils s'écrivaient entre parenthèses comme des tensions alors qu'aucune septième n'était présente.
[1.0] — version initiale
Ajouté
- Construction d'accords par description : clavier une octave pour la fondamentale, 4 types (Dim, Min, Maj, Sus) et 4 extensions empilables (6, m7, M7, 9).
- Combinaisons implicites :
Dim + Maj= augmenté,Min + Sus= sus2. - Knob de voicing rotatif ±8 : chaque cran remonte la note la plus grave d'une octave (ou descend la plus aiguë).
- Key Mode sur deux gammes (majeur, mineur naturel) avec grisage des touches hors tonalité.
- Moteur de basse sur canal MIDI séparé (−1 / −2 octaves).
- Rack de progression avec ajout (
ADD/ barre espace), lecture, boucle et BPM réglable. - 7 presets de cadences générés dans la tonalité choisie.
- Sortie Web MIDI live avec canaux distincts pour les accords et la basse.
- Export
.mid: writer MIDI maison, format 1, PPQ 480, tempo intégré, une ou deux pistes. - Synthé de pré-écoute intégré (Web Audio : deux dents de scie désaccordées, filtre passe-bas ; onde triangle pour la basse).
Documentation
| Version | Élément |
|---|---|
| 2.3 | Manuel visuel traduit en anglais (tuto_en.html), sélecteur de langue entre les deux manuels, liens vers les manuels ajoutés dans le pied de page de l'application |
| 2.2 | Manuel visuel HTML (tuto.html) : 10 sections et 12 figures SVG (cartographie de l'interface, rotation du voicing, drop voicings, Key Mode, anatomie d'un slot, voice-leading, modes de performance en piano-roll, routage MIDI, flux d'export, raccourcis) |
| 2.0 | README.md, tutoriel d'utilisation Markdown, tutoriel de déploiement Coolify (dépôt Git → build pack statique → Traefik, procédure de mise à jour et table de dépannage) |
Notes techniques transversales
- Aucune dépendance externe depuis la version 1.0 : JavaScript natif, Web Audio API, Web MIDI API, FileReader. Un seul fichier HTML.
- Aucun stockage navigateur (ni
localStorage, nisessionStorage) : l'état ne persiste que par les fichiers de session.jsonexportés. - Web MIDI exige un contexte sécurisé (
https://oulocalhost). Enfile://, l'audio et l'export fonctionnent mais la sortie MIDI live est bloquée par le navigateur. Safari ne supporte pas Web MIDI. - Canaux MIDI par défaut : accords sur le canal 3, basse sur le canal 5.