chordlab v2.2
This commit is contained in:
@@ -0,0 +1,97 @@
|
||||
# _chordlab ORC·v2
|
||||
|
||||
Générateur d'accords et de progressions harmoniques dans le navigateur, inspiré de la logique du **Telepathic Instruments Orchid ORC-1** (implémentation indépendante, étendue). 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)
|
||||
- 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)
|
||||
- **10 rythmiques de basse** (façon Scaler) : tenue · noires · croches · contretemps · octaves · fondamentale–quinte · boogie · 3–3–2 · pompe · aléatoire
|
||||
- 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
|
||||
├── README.md
|
||||
└── 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 reproduit le principe du dial de l'Orchid : chaque cran fait une **rotation** de l'accord (la note la plus grave remonte d'une octave, ou l'inverse), 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 — clin d'œil assumé à l'Orchid.
|
||||
- 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. La logique d'accords s'inspire du concept de l'Orchid ORC-1 de Telepathic Instruments, sans réutiliser ni code, ni sons, ni assets de l'instrument original.
|
||||
@@ -0,0 +1,253 @@
|
||||
# _chordlab v2 — Tutoriel complet d'utilisation
|
||||
|
||||
Ce guide couvre l'intégralité de l'application, du premier accord jusqu'aux workflows dawless et DAW. Comptez 10 minutes pour tout lire, 2 minutes pour être opérationnel.
|
||||
|
||||
---
|
||||
|
||||
## 1. Vue d'ensemble de l'interface
|
||||
|
||||
L'écran est organisé comme une face avant de machine hardware :
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────┐
|
||||
│ LCD — nom de l'accord, notes, état des modes │
|
||||
├──────────────┬──────────────────────┬───────────────┤
|
||||
│ CHORD TYPE │ ROOT │ VOICING │
|
||||
│ TENSIONS │ (clavier 1 oct.) │ drop/slash │
|
||||
│ ALTÉRATIONS │ │ BASS / KEY │
|
||||
├──────────────┴──────────────────────┴───────────────┤
|
||||
│ PROGRESSION — slots, transport, perf, BPM │
|
||||
├──────────────────┬──────────────────┬───────────────┤
|
||||
│ MIDI OUT LIVE │ EXPORT MIDI │ SESSION │
|
||||
└──────────────────┴──────────────────┴───────────────┘
|
||||
```
|
||||
|
||||
Le **LCD** est votre référence permanente : il affiche le nom de l'accord courant, ses notes réelles (avec octaves), et l'état des modes (voicing, drop, key, perf, MIDI, voice-leading).
|
||||
|
||||
---
|
||||
|
||||
## 2. Jouer un accord
|
||||
|
||||
Le principe fondamental, hérité de l'Orchid : **vous ne jouez jamais les notes de l'accord, vous le décrivez**.
|
||||
|
||||
1. **Type** — un seul actif à la fois (LED allumée). MAJ est sélectionné au démarrage.
|
||||
2. **Fondamentale** — cliquez une touche du clavier, ou utilisez le clavier PC : `A W S E D F T G Y H U J` = C C# D D# E F F# G G# A A# B.
|
||||
3. L'accord sonne immédiatement et s'affiche sur le LCD.
|
||||
|
||||
Les huit types :
|
||||
|
||||
| Bouton | Accord | Intervalles |
|
||||
|---|---|---|
|
||||
| DIM | diminué | 1 · ♭3 · ♭5 |
|
||||
| MIN | mineur | 1 · ♭3 · 5 |
|
||||
| MAJ | majeur | 1 · 3 · 5 |
|
||||
| AUG | augmenté | 1 · 3 · ♯5 |
|
||||
| SUS2 | suspendu 2 | 1 · 2 · 5 |
|
||||
| SUS4 | suspendu 4 | 1 · 4 · 5 |
|
||||
| 5 | power chord | 1 · 5 |
|
||||
| m♭6 | mineur sixte bémol | 1 · ♭3 · ♭6 |
|
||||
|
||||
---
|
||||
|
||||
## 3. Tensions et altérations
|
||||
|
||||
Les deux rangées inférieures s'**empilent** librement sur le type (plusieurs LEDs actives simultanément).
|
||||
|
||||
**Tensions** — elles *ajoutent* des notes :
|
||||
|
||||
| Bouton | Ajoute | Exemple avec MAJ + C |
|
||||
|---|---|---|
|
||||
| 6 | sixte majeure | C6 |
|
||||
| m7 | septième mineure | C7 |
|
||||
| M7 | septième majeure | Cmaj7 |
|
||||
| 9 | neuvième | Cadd9 (ou C7(9) si une 7e est là) |
|
||||
| ♭9 / ♯9 | neuvièmes altérées | C7(♭9), C7(♯9) « Hendrix » |
|
||||
| 11 / ♯11 | onzièmes | C7(11), Cmaj7(♯11) |
|
||||
| 13 | treizième | C7(13) |
|
||||
|
||||
**Altérations** — elles *modifient ou retirent* des notes :
|
||||
|
||||
| Bouton | Effet |
|
||||
|---|---|
|
||||
| ♭5 | remplace la quinte juste par une quinte diminuée |
|
||||
| ♯5 | remplace la quinte juste par une quinte augmentée |
|
||||
| no3 | retire la tierce (accords ouverts, parfaits pour l'ambient) |
|
||||
|
||||
**Combinaisons remarquables** :
|
||||
- `DIM + 6` → accord de **septième diminuée** (Cdim7)
|
||||
- `DIM + m7` → **demi-diminué** (Cø7)
|
||||
- `MIN + m7 + 9` → le m9 des nappes deep
|
||||
- `m7 + M7` ensemble → le LCD affiche `WTF?`. Vous êtes prévenu.
|
||||
|
||||
---
|
||||
|
||||
## 4. Le voicing
|
||||
|
||||
C'est le cœur expressif de la machine. Trois outils indépendants qui se cumulent :
|
||||
|
||||
### 4.1 Le knob rotatif (±8)
|
||||
Chaque cran fait une **rotation** de l'accord : à +1, la note la plus grave remonte d'une octave ; à −1, la plus aiguë descend. Exemple sur Cmaj7 :
|
||||
|
||||
```
|
||||
0 : C4 E4 G4 B4
|
||||
+1 : E4 G4 B4 C5
|
||||
+2 : G4 B4 C5 E5
|
||||
−1 : B3 C4 E4 G4
|
||||
```
|
||||
|
||||
Manipulation : glisser verticalement sur le knob, boutons −/0/+, flèches ←/→ du clavier, ou double-clic pour revenir à 0. Le même accord à +3 et à −2 raconte deux histoires complètement différentes — c'est l'outil n°1 pour trouver *la* couleur.
|
||||
|
||||
### 4.2 Drop voicings
|
||||
Appliqués après la rotation, ils écartent les voix comme le ferait un pianiste ou un arrangeur :
|
||||
|
||||
| Mode | Effet | Usage typique |
|
||||
|---|---|---|
|
||||
| close | rien (position serrée) | défaut |
|
||||
| drop 2 | 2e voix depuis le haut → −1 octave | le voicing jazz standard |
|
||||
| drop 3 | 3e voix depuis le haut → −1 octave | grands écarts, guitare |
|
||||
| drop 2+4 | deux voix descendues | très ouvert, cinématique |
|
||||
| spread | une voix sur deux → +1 octave | nappes larges, ambient |
|
||||
|
||||
### 4.3 Accords slash
|
||||
Le sélecteur **basse /** choisit quelle note de l'accord la basse joue : fondamentale, tierce, quinte ou septième. Le LCD affiche alors `C/E`, `C/G`… La détection est intelligente : sur un accord mineur elle prend la tierce mineure, sur un ♭5 la quinte diminuée.
|
||||
|
||||
### 4.4 BASS et ses rythmiques
|
||||
Le bouton **BASS** active le moteur basse (−1 ou −2 octaves). En MIDI live et à l'export, la basse sort sur son propre canal — c'est elle qui pilote ta TD-3 pendant que les accords vont au Pro-800.
|
||||
|
||||
Le sélecteur **rythme B** (inspiré de Scaler) transforme la note tenue en pattern rythmique, appliqué partout — audition, MIDI live et export `.mid` :
|
||||
|
||||
| Rythme | Comportement |
|
||||
|---|---|
|
||||
| tenue | une note sur toute la durée de l'accord (défaut) |
|
||||
| noires | une frappe par temps |
|
||||
| croches | deux frappes par temps |
|
||||
| contretemps | frappes sur les contretemps uniquement (dub, ska) |
|
||||
| octaves | croches alternant fondamentale / octave (synthwave, italo) |
|
||||
| fond.–quinte | noires alternant fondamentale / quinte |
|
||||
| boogie | noires cyclant fondamentale → quinte → octave → quinte |
|
||||
| 3–3–2 | tresillo (positions 1, 2.5, 4 sur un cycle de 4 temps) |
|
||||
| pompe | noires à gate très court (house, techno) |
|
||||
| aléatoire | croches probabilistes sur fondamentale/quinte/octave (IDM) |
|
||||
|
||||
Tous les patterns se tronquent proprement sur les durées impaires : des noires sur un slot de 3 temps donnent exactement 3 frappes.
|
||||
|
||||
---
|
||||
|
||||
## 5. Key Mode — accords diatoniques à un doigt
|
||||
|
||||
Activez **KEY**, choisissez une tonique et une gamme parmi les huit disponibles. À partir de là :
|
||||
|
||||
- Chaque touche du clavier génère automatiquement **l'accord diatonique du degré correspondant** (en Do majeur : C→C, D→Dm, E→Em, F→F, G→G, A→Am, B→Bdim).
|
||||
- Les touches hors tonalité sont **grisées** et n'émettent rien (le LCD affiche `hors tonalité`).
|
||||
- Les tensions 6/7/9/11/13 restent actives et sont harmonisées **dans la gamme** (la 7e de G en Do majeur sera F naturel → G7, pas Gmaj7). Un astérisque dans le nom (`G7*`) signale un accord harmonisé diatoniquement.
|
||||
|
||||
Le mineur harmonique vaut le détour : le degré V y devient un vrai accord de dominante avec sensible — la cadence mineure classique à un doigt.
|
||||
|
||||
---
|
||||
|
||||
## 6. Construire une progression
|
||||
|
||||
### 6.1 Manuellement
|
||||
Jouez un accord, puis **ADD** (ou barre espace). Il apparaît dans un slot avec son nom, ses notes et sa durée.
|
||||
|
||||
Sur chaque slot :
|
||||
- **− / +** autour du badge durée (`3♩`) — règle la durée de **1 à 16 temps**, au pas de 1. Un accord de 3, 5 ou 7 temps est désormais un seul slot, plus besoin de le découper.
|
||||
- **‹ ›** — déplacer le slot dans la séquence
|
||||
- **×** — supprimer
|
||||
- **clic sur le slot** — l'auditionner seul
|
||||
|
||||
### 6.2 Avec les presets
|
||||
Le menu déroulant propose huit cadences classiques (I–V–vi–IV, ii–V–I, cycle des quintes…). **Charger** les génère dans la tonalité et la gamme sélectionnées, avec vos tensions et votre voicing courants. C'est le moyen le plus rapide d'avoir une base à triturer.
|
||||
|
||||
### 6.3 Avec la suggestion harmonique
|
||||
**✦ suggérer** ajoute un accord choisi par une table d'harmonie fonctionnelle (après un I : IV, V, vi… ; après un ii : V ; etc.), dans la tonalité courante. Enchaînez les clics pour laisser la machine dériver, reprenez la main quand ça devient intéressant.
|
||||
|
||||
### 6.4 Voice-leading
|
||||
Deux outils pour des enchaînements fluides :
|
||||
- **VL AUTO** (transport) — chaque accord ajouté est automatiquement re-voicé pour minimiser le mouvement des voix par rapport au précédent.
|
||||
- **⇄ voice-leading** — optimise d'un coup toute la progression existante. À utiliser après un chargement de preset : la différence s'entend immédiatement.
|
||||
|
||||
---
|
||||
|
||||
## 7. Lecture et modes de performance
|
||||
|
||||
**PLAY** lance la progression au BPM affiché ; **LOOP** la fait boucler ; le slot en cours s'illumine.
|
||||
|
||||
Le sélecteur **perf** transforme la restitution de chaque accord :
|
||||
|
||||
| Mode | Rendu |
|
||||
|---|---|
|
||||
| block | accord plaqué |
|
||||
| strum ↑ / ↓ | notes égrenées vers le haut / le bas (façon guitare) |
|
||||
| harp | balayage rapide (glissando) |
|
||||
| arp ↑ / ↓ / ↕ / rnd | arpège à la vitesse du sélecteur **rate** (1/8, 1/16, 1/32) |
|
||||
|
||||
**HUM** humanise vélocités (±10) et timing (±15 ms) — utile pour que les strums et arps respirent.
|
||||
|
||||
> Ces modes s'appliquent partout : à l'audition, en MIDI live, et **dans l'export .mid** (désactivable, voir §9).
|
||||
|
||||
---
|
||||
|
||||
## 8. MIDI live vers le hardware
|
||||
|
||||
1. Branchez votre interface USB-MIDI **avant** d'ouvrir la page (ou rechargez-la après).
|
||||
2. Le navigateur demande l'autorisation d'accès MIDI — acceptez.
|
||||
3. Panneau **MIDI out (live)** : sélectionnez le périphérique.
|
||||
4. Vérifiez les canaux : **accords ch3** (Pro-800), **basse ch5** (TD-3/K-2) par défaut — adaptez à votre routage.
|
||||
5. Jouez : chaque accord cliqué, chaque slot auditionné et la lecture complète partent en MIDI, avec les modes de performance rendus.
|
||||
|
||||
Le LCD affiche `MIDI ON` quand un périphérique est actif. En cas de note bloquée sur une machine, **STOP** envoie un All Notes Off sur les 16 canaux.
|
||||
|
||||
> Contexte sécurisé requis : Web MIDI ne fonctionne qu'en `https://` ou sur `localhost`. C'est la raison principale d'héberger l'app (voir le tutoriel Coolify).
|
||||
|
||||
---
|
||||
|
||||
## 9. Export .mid
|
||||
|
||||
Panneau **Export MIDI** :
|
||||
|
||||
- **pistes** : `accords + basse` (2 pistes, chacune sur son canal) ou `accords seuls`
|
||||
- **perf rendue** : `oui` écrit les strums/arps note par note dans le fichier ; `non` exporte des accords plaqués (préférable si vous voulez arpéger dans le DAW ou le Tracker)
|
||||
|
||||
Le fichier généré (`chordlab_Cm7-Fm7-Ab-Bb_112bpm.mid`, format 1, PPQ 480, tempo inclus) respecte la durée individuelle de chaque slot.
|
||||
|
||||
**Destinations typiques** :
|
||||
- **DAW** — glisser-déposer sur une piste instrument, c'est tout.
|
||||
- **Polyend Tracker Mini** — copier le `.mid` sur la carte SD et l'importer ; chaque piste MIDI devient une piste du pattern.
|
||||
|
||||
---
|
||||
|
||||
## 10. Sessions
|
||||
|
||||
**↓ sauver la session** génère un `.json` contenant tous les réglages (type, tensions, voicing, drop, slash, tonalité, perf, BPM…) et la progression complète. **↑ charger une session** restaure tout.
|
||||
|
||||
L'application ne stocke rien dans le navigateur : le fichier `.json` est l'unique persistance. Versionnez vos sessions dans Gitea comme n'importe quel fichier de projet.
|
||||
|
||||
---
|
||||
|
||||
## 11. Raccourcis clavier
|
||||
|
||||
| Touche | Action |
|
||||
|---|---|
|
||||
| A W S E D F T G Y H U J | fondamentales C → B |
|
||||
| Espace | ADD (ajouter l'accord courant à la progression) |
|
||||
| ← / → | voicing −1 / +1 |
|
||||
| ↑ ↓ ← → (knob focalisé) | voicing fin |
|
||||
| double-clic sur le knob | voicing = 0 |
|
||||
|
||||
---
|
||||
|
||||
## 12. Deux workflows de référence
|
||||
|
||||
### Workflow dawless (session hardware)
|
||||
1. KEY ON, tonique et gamme du morceau.
|
||||
2. Preset ou ✦ suggérer pour poser 4–8 accords ; ⇄ voice-leading.
|
||||
3. MIDI live branché : accords ch3 → Pro-800 (nappe lente), basse ch5 → TD-3.
|
||||
4. LOOP + perf `block`, BPM du morceau : la progression tourne pendant que vous sculptez les sons sur les machines et enregistrez sur le L-12.
|
||||
5. Session sauvée en `.json` pour reprendre la structure plus tard.
|
||||
|
||||
### Workflow DAW / Tracker (composition)
|
||||
1. Construction libre (KEY OFF) : types + tensions + drop voicings pour chercher des couleurs.
|
||||
2. VL AUTO activé, on empile au fil de l'inspiration.
|
||||
3. Export `.mid` avec `perf rendue : non` (accords propres) → import dans le DAW ou le Tracker Mini.
|
||||
4. L'arpégiation et le sound design se font dans la machine de destination.
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user