commit 5d227c8ac90bfa07ceb1cb6a031d02f946c2edd7 Author: lrdlg Date: Thu Jul 16 14:37:03 2026 +0200 Chordlab V2.0 - initial diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..2e3e0be Binary files /dev/null and b/.DS_Store differ diff --git a/README.md b/README.md new file mode 100644 index 0000000..6ac464f --- /dev/null +++ b/README.md @@ -0,0 +1,96 @@ +# _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 (1/2/4/8 temps), 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 +├── 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. diff --git a/TUTORIEL_DEPLOIEMENT_COOLIFY.md b/TUTORIEL_DEPLOIEMENT_COOLIFY.md new file mode 100644 index 0000000..2e1287a --- /dev/null +++ b/TUTORIEL_DEPLOIEMENT_COOLIFY.md @@ -0,0 +1,170 @@ +# _chordlab — Mise en ligne avec Coolify + +Déploiement sur l'infrastructure ghostinthemachine.fr, **sur le même modèle que le site des vacances** (`sudouest.ghostinthemachine.fr`) : dépôt Gitea → ressource Coolify en build pack **Static** → domaine servi par Traefik avec le certificat wildcard existant. + +Cible retenue dans ce tutoriel : `https://chordlab.ghostinthemachine.fr` + +> **Pourquoi héberger une app qui tient dans un fichier ?** Parce que **Web MIDI exige un contexte sécurisé** (`https://` ou `localhost`). En `file://`, la sortie MIDI live vers le hardware est bloquée par le navigateur. Une fois sur ton domaine en HTTPS, tout fonctionne — y compris depuis le portable posé à côté du studio. + +--- + +## 0. Prérequis (déjà en place sur ton infra) + +- Serveur Scaleway avec **Coolify 4.x** et **Traefik** opérationnels +- **Gitea** self-hosted accessible +- Wildcard DNS `*.ghostinthemachine.fr` pointant vers le serveur (Cloudflare) +- Certificat wildcard géré par acme.sh/Cloudflare — rien à faire côté SSL + +[PROBABLE] Les libellés exacts de l'interface Coolify peuvent varier légèrement selon la version ; le déroulé ci-dessous correspond au flux validé lors du déploiement du site des vacances. + +--- + +## 1. Préparer le dépôt Gitea + +### 1.1 Créer le dépôt + +Dans Gitea : **+ → Nouveau dépôt** → nom `chordlab`. Comme pour le site des vacances, le contenu n'a rien de sensible : **le plus simple est de le créer public** (voir §2.2 pour la raison précise). + +### 1.2 Structurer et pousser + +```bash +mkdir chordlab && cd chordlab +git init + +# Le fichier de l'app DOIT s'appeler index.html +# (le serveur statique sert index.html à la racine du domaine) +cp /chemin/vers/chordlab_v2.html index.html + +# Documentation +cp /chemin/vers/README.md . +mkdir docs +cp /chemin/vers/TUTORIEL_UTILISATION.md docs/ +cp /chemin/vers/TUTORIEL_DEPLOIEMENT_COOLIFY.md docs/ + +git add . +git commit -m "chordlab v2 — initial" +git remote add origin https://git.ghostinthemachine.fr/matthieu/chordlab.git +git push -u origin main +``` + +> Adapte l'URL du remote à ton instance Gitea réelle et à ton utilisateur. + +--- + +## 2. Créer la ressource dans Coolify + +### 2.1 Nouvelle ressource + +1. Coolify → ton projet → **+ New → Resource**. +2. Choisir **Public Repository** (dépôt public) et coller l'URL HTTPS du dépôt Gitea : + `https://git.ghostinthemachine.fr/matthieu/chordlab.git` +3. Branche : `main`. +4. **Build Pack : Static** — c'est le point clé. Pas de Dockerfile, pas de Nixpacks : Coolify sert simplement les fichiers via un conteneur nginx. +5. **Publish Directory : `/`** (l'`index.html` est à la racine du dépôt). + +### 2.2 ⚠️ Le piège du dépôt privé (leçon du site des vacances) + +Si le dépôt Gitea est **privé** et que la ressource est de type « Public Repository », le déploiement échoue avec : + +``` +exit code: 128 +fatal: could not read Username for 'https://git.ghostinthemachine.fr' +``` + +Coolify clone sans credentials, Gitea refuse. Deux solutions, exactement comme la dernière fois : + +| Option | Quand | Comment | +|---|---|---| +| **A. Rendre le dépôt public** | contenu non sensible (notre cas) | Gitea → dépôt → Paramètres → cocher « Visibilité : public ». Redéployer. C'est la solution retenue pour le site des vacances. | +| **B. Deploy Key SSH** | si tu tiens au dépôt privé | Coolify → ressource → Source → générer une clé de déploiement → l'ajouter dans Gitea (dépôt → Paramètres → Clés de déploiement) → utiliser l'URL **SSH** du dépôt (`git@git.ghostinthemachine.fr:matthieu/chordlab.git`) | + +### 2.3 Domaine + +Dans la ressource → **Domains** : + +``` +https://chordlab.ghostinthemachine.fr +``` + +- Le wildcard DNS Cloudflare couvre déjà `chordlab.ghostinthemachine.fr` → aucune entrée DNS à créer. +- Bien saisir le domaine **avec `https://`** : c'est ce qui pilote la génération des labels Traefik pour la redirection et le TLS. + +### 2.4 Déployer + +Bouton **Deploy**. Le log doit montrer : clone du dépôt → build statique → conteneur démarré. Première mise en ligne : généralement moins d'une minute. + +--- + +## 3. Vérifications post-déploiement + +1. **`https://chordlab.ghostinthemachine.fr`** répond avec l'interface (face avant beige, LCD). +2. **Cadenas SSL** valide (certificat wildcard). +3. **Test Web MIDI** : interface USB-MIDI branchée → recharger la page → le navigateur demande l'autorisation MIDI → le périphérique apparaît dans le panneau *MIDI out (live)* et le LCD affiche `MIDI ON`. Si l'autorisation n'est jamais demandée, vérifier que l'URL est bien en `https://` (c'était le même principe que le micro pour LibreChat : pas de périphérique sans contexte sécurisé). +4. **Test export** : deux accords → ADD → `↓ exporter .mid` → le fichier se télécharge. + +--- + +## 4. Mise à jour de l'application + +Même mécanique que pour le site des vacances : **le dépôt Git est la source de vérité**, Coolify redéploie depuis le dernier commit. + +### 4.1 Mise à jour manuelle (workflow de base) + +```bash +cd chordlab +# remplacer index.html par la nouvelle version de l'app +cp /chemin/vers/chordlab_v2.html index.html + +git add index.html +git commit -m "v2.1 — " +git push +``` + +Puis dans Coolify → ressource `chordlab` → **Redeploy**. Le conteneur est reconstruit avec les nouveaux fichiers ; interruption de service quasi nulle. + +### 4.2 Déploiement automatique au push (optionnel) + +Pour supprimer l'étape manuelle : + +1. Coolify → ressource → **Webhooks** → copier l'URL du webhook de déploiement. +2. Gitea → dépôt `chordlab` → **Paramètres → Webhooks → Ajouter un webhook → Gitea**. +3. URL cible : l'URL Coolify copiée · Événement : **Push** · branche `main`. +4. Tester avec « Test Delivery », puis faire un commit de contrôle : chaque `git push` déclenche désormais le redéploiement. + +### 4.3 Revenir en arrière + +Deux options : +- **Git** : `git revert ` puis push (propre, historisé — à préférer) ; +- **Coolify** : la liste des déploiements permet de relancer une image précédente. [INCERTAIN] La disponibilité du rollback en un clic dépend de la version de Coolify ; le revert Git fonctionne dans tous les cas. + +--- + +## 5. Dépannage + +| Symptôme | Cause probable | Correction | +|---|---|---| +| `exit code: 128 — could not read Username` | dépôt privé cloné sans credentials | §2.2 : dépôt public ou Deploy Key SSH | +| 404 Traefik sur le domaine | domaine mal saisi dans la ressource, ou routeur pas régénéré | vérifier Domains (avec `https://`), redéployer ; en dernier recours contrôler les labels du conteneur (`docker inspect`) | +| La page charge mais pas de demande d'autorisation MIDI | contexte non sécurisé ou navigateur Safari | vérifier `https://`, utiliser Chrome/Edge/Firefox | +| Ancienne version affichée après redéploiement | cache navigateur (fichier HTML unique) | rechargement forcé (Ctrl+Shift+R) ; si récurrent, ajouter un query string versionné dans les liens partagés (`?v=2.1`) | +| Le conteneur tourne mais rien ne répond | l'app n'est pas nommée `index.html` à la racine, ou Publish Directory incorrect | renommer le fichier / corriger le Publish Directory, redéployer | +| Périphérique MIDI absent de la liste | interface branchée après le chargement | recharger la page (l'app écoute les changements, mais certains OS n'exposent le port qu'à la connexion) | + +--- + +## 6. Récapitulatif du modèle + +``` +[poste local] [serveur ghostinthemachine.fr] +index.html ──git push──▶ Gitea ──clone──▶ Coolify (Static build pack) + │ + ▼ + conteneur nginx statique + │ + Traefik + wildcard SSL + │ + ▼ + https://chordlab.ghostinthemachine.fr +``` + +Un fichier, un push, un redeploy. Le même modèle resservira pour toute page ou micro-app statique à venir. diff --git a/TUTORIEL_UTILISATION.md b/TUTORIEL_UTILISATION.md new file mode 100644 index 0000000..8359d69 --- /dev/null +++ b/TUTORIEL_UTILISATION.md @@ -0,0 +1,236 @@ +# _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 +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. + +--- + +## 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 : +- **badge durée** (`4♩`) — cliquer fait tourner 4 → 8 → 2 → 1 temps +- **‹ ›** — 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. diff --git a/chordlab.html b/chordlab.html new file mode 100644 index 0000000..e042941 --- /dev/null +++ b/chordlab.html @@ -0,0 +1,958 @@ + + + + + +_chordlab — générateur d'accords + + + +
+
+

_chordlab ORC

+
chord ideas machine · underscorelab / leradiologue
+
+ + +
+
+
+
joue une note
+
+
+
VOICING 0
+
KEY OFF
+
MIDI
+
+
+ + +
+ + +
+

Chord type

+
+ + + + +
+
Modifiers
+
+ + + + +
+
combos : dim+maj=aug · min+sus=sus2
+
+ + +
+

Root

+
+
clavier PC : A W S E D F T G Y H U J  ·  ␣ = ajouter à la progression
+
+ + +
+

Voicing

+
+ + + + +
0
+
+ + + +
+
+
+ + +
+
+ + + +
+
+
+ + +
+
+

Progression

+
+ + + +
+
+
+
+ + + +
BPM
+
durée/accord + +
+
+
+ + +
+
+

MIDI out (live)

+
+
+
+
Web MIDI : en attente…
+
+
+

Export

+
+ +
+
+
+ +
_chordlab v1.0 · logique d'accords inspirée de l'Orchid ORC-1 (implémentation indépendante)
+
+ + + + diff --git a/files.zip b/files.zip new file mode 100644 index 0000000..3ae1569 Binary files /dev/null and b/files.zip differ diff --git a/index.html b/index.html new file mode 100644 index 0000000..c20963f --- /dev/null +++ b/index.html @@ -0,0 +1,1268 @@ + + + + + +_chordlab v2 — générateur d'accords + + + +
+
+

_chordlab ORC·v2

+
chord ideas machine · underscorelab / leradiologue
+
+ + +
+
+
+
joue une note
+
+
+
VOICING 0 · CLOSE
+
KEY OFF · PERF BLOCK
+
MIDI · VL OFF
+
+
+ + +
+ + +
+

Chord type

+
+ + + + + + + + +
+
Tensions
+
+ + + + + + + + +
+
Altérations
+
+ + + + +
+
+ + +
+

Root

+
+
clavier PC : A W S E D F T G Y H U J · ␣ = ADD · ← → = voicing
+
+ + +
+

Voicing

+
+ + + + +
0
+
+ + + +
+
+
+ +
+
+ +
+
+ + +
+
+ + +
+
+ +
+
+
+ + +
+
+

Progression

+
+ + + + + +
+
+
+
+ + + + +
BPM
+
perf + +
+
rate + +
+ +
+
+ + +
+
+

MIDI out (live)

+
+
+
+
Web MIDI : en attente…
+
+
+

Export MIDI

+
+
+ +
+
+
+

Session

+ + + +
+
+
+ +
_chordlab v2.0 · logique d'accords inspirée de l'Orchid ORC-1 (implémentation indépendante étendue)
+
+ + + +