# _chordlab·v2 Générateur d'accords et de progressions harmoniques dans le navigateur. Un seul fichier HTML, zéro dépendance, zéro backend. > Construis un accord avec un doigt, façonne son voicing, chaîne une progression, envoie-la en MIDI live vers ton studio dawless ou exporte-la en `.mid` pour ton DAW. --- ## Fonctionnalités **Construction d'accords** - Clavier une octave pour la fondamentale (souris, tactile ou clavier PC, dispositions **QWERTY et AZERTY**) - 8 types d'accords : Dim · Min · Maj · Aug · Sus2 · Sus4 · 5 (power chord) · m♭6 - 12 modificateurs empilables : 6 · m7 · M7 · 9 · ♭9 · ♯9 · 11 · ♯11 · 13 · ♭5 · ♯5 · no3 - Nommage automatique (Cm7, Cdim7, Cø7, C7(♭9)…) affiché sur le LCD **Voicing** - Knob de voicing rotatif ±8 crans (inversions en cascade, une note à la fois) - Drop voicings : close · drop 2 · drop 3 · drop 2+4 · spread - Accords slash : basse sur la fondamentale, la tierce, la quinte ou la septième - Moteur basse séparé (−1 ou −2 octaves) **Tonalité et intelligence harmonique** - Key Mode : accords diatoniques à un doigt dans 8 gammes (majeur, mineur naturel/harmonique, dorien, phrygien, lydien, mixolydien, locrien) - Voice-leading automatique (VL AUTO) et optimisation globale de la progression - Suggestion d'accord suivant par table d'harmonie fonctionnelle - 8 presets de cadences générés dans la tonalité choisie **Progression et lecture** - Rack de slots : durée individuelle réglable de **1 à 16 temps** (boutons −/+), réordonnancement, audition au clic - Modes de performance : block · strum ↑↓ · harp · arp ↑/↓/↕/random (1/8 à 1/32) - Humanisation vélocité/timing **Entrées / sorties** - **Web MIDI out live** : accords et basse sur deux canaux séparés, vers n'importe quelle interface USB-MIDI - **Export `.mid`** : format 1, PPQ 480, tempo inclus, performance rendue en option - **Session `.json`** : sauvegarde/chargement complet (réglages + progression) --- ## Démarrage rapide 1. Ouvrir `index.html` dans **Chrome, Edge ou Firefox** (Safari ne supporte pas Web MIDI). 2. Cliquer une note du clavier → l'accord sonne et s'affiche sur le LCD. 3. `ADD` (ou barre espace) pour l'empiler dans la progression, `PLAY` pour l'écouter. 4. Pour le MIDI live : brancher une interface USB-MIDI, autoriser l'accès MIDI, sélectionner le périphérique dans le panneau **MIDI out**. > ⚠️ Web MIDI exige un **contexte sécurisé** : `https://` ou `http://localhost`. Un fichier ouvert en `file://` fonctionne pour l'audio et l'export, mais pas pour la sortie MIDI live selon les navigateurs. D'où l'intérêt de l'héberger (voir tutoriel de déploiement). --- ## Canaux MIDI par défaut | Rôle | Canal | Machine cible (setup de référence) | |---|---|---| | Accords | 3 | Behringer Pro-800 (nappes) | | Basse | 5 | TD-3 + K-2 en unisson | Modifiables dans le panneau **MIDI out (live)**. L'export `.mid` reprend les mêmes canaux. --- ## Structure du dépôt ``` chordlab/ ├── index.html # l'application complète ├── tuto.html # manuel visuel FR (accessible à /tuto.html) ├── tuto_en.html # manuel visuel EN (accessible à /tuto_en.html) ├── README.md ├── CHANGELOG.md # journal des versions └── docs/ ├── TUTORIEL_UTILISATION.md # guide utilisateur complet └── TUTORIEL_DEPLOIEMENT_COOLIFY.md # mise en ligne + mises à jour ``` --- ## Compatibilité | Navigateur | Audio | MIDI live | Export .mid | |---|---|---|---| | Chrome / Edge | ✅ | ✅ | ✅ | | Firefox | ✅ | ✅ | ✅ | | Safari | ✅ | ❌ (pas de Web MIDI) | ✅ | --- ## Notes de conception - Le moteur de voicing procède par **rotation** : chaque cran remonte la note la plus grave d'une octave (ou descend la plus aiguë), sur ±8 crans. - Les combinaisons classiques tombent naturellement : `DIM + 6 = dim7`, `DIM + m7 = ø7` (demi-diminué), `MAJ + m7 + ♯9 = accord Hendrix`. - Empiler `m7 + M7` affiche `WTF?` sur le LCD : la combinaison est musicalement contradictoire, mais rien ne l'interdit. - Le voice-leading minimise la somme des déplacements de voix entre deux accords en testant les rotations de voicing candidates. - Aucune donnée n'est stockée dans le navigateur : la persistance passe exclusivement par les fichiers `.json` de session. ## Licence & crédit Projet personnel underscorelab / leradiologue. Code original, sans dépendance ni asset tiers.