Théorie musicale pour Guitar Alchemist — Mission
Sections
Réglages de lecture
Aucune voix pour cette langue dans ce navigateur.
Plus de voix
Code et termes techniques en anglais
Désactivé : la voix de la page lit tout, sans pause entre deux voix.
Aucune voix pour cette langue dans ce navigateur.
Plus de voix
D’autres voix : Microsoft Edge propose des voix naturelles en ligne, et Windows (Paramètres › Heure et langue › Voix), macOS et Android en installent d’autres.
Pourquoi j’apprends ça
Section intitulée « Pourquoi j’apprends ça »Guitar Alchemist (GA) est une grosse base de code C# et F# consacrée à la musique : notes, intervalles, gammes, modes, accords, voicings, classes d’ensembles, et des outils qui permettent à un assistant IA de raisonner dessus. Je sais lire le code. Ce que je ne sais pas faire, c’est dire si ModalFamily, PrimeForm ou GetSymbolSuffix calculent ce qu’un musicien entend par ces mots. Ce cours apprend la théorie dans des sources sérieuses, puis lit les types de GA avec cette théorie en main, et note chaque endroit où les deux divergent.
À qui s’adresse ce cours
Section intitulée « À qui s’adresse ce cours »Tu écris du C# ou du Java. Tu joues un peu de guitare : quelques accords ouverts, peut-être une gamme pentatonique. Tu ne lis pas la musique, et tu n’en as pas besoin : chaque notion arrive en trois temps.
- L’idée, en mots et sur le manche.
- La notation dans laquelle musiciens et théoriciens l’écrivent.
- Dans GA : les types et méthodes qui la représentent, avec des liens vers les lignes exactes.
Le côté programmation reste familier : objets valeur, records, champs de bits, expressions switch, LINQ.
À la fin de ce cours, je saurai
Section intitulée « À la fin de ce cours, je saurai »- convertir entre noms de notes, classes de hauteurs, numéros MIDI et positions sur le manche ;
- nommer et écrire les intervalles, et les replier en classes d’intervalles ;
- construire gammes et modes à partir de motifs de pas, les lire comme des nombres sur 12 bits et les dessiner en bracelets ;
- lire les chiffrages d’accords, écrire les accords, reconnaître les renversements et nommer les voicings de guitare ;
- calculer vecteurs d’intervalles, formes primaires et numéros de Forte, et expliquer la relation Z ;
- lire les armures, parcourir le cercle des quintes et trouver les tonalités relatives, homonymes et voisines ;
- construire les accords d’une tonalité, les désigner par des chiffres romains et des fonctions, et analyser cadences et progressions ;
- expliquer la conduite des voix, les substitutions, l’emprunt modal, les gammes symétriques, les accords étendus et les techniques de voicing à la guitare ;
- retrouver chacune de ces notions dans le code de GA, et dire où GA s’accorde avec la théorie et où il s’en écarte.
Le cours suit les notions qu’utilisent le code, les fichiers de configuration et les outils MCP de GA, de la note isolée aux transformations néo-riemanniennes. Les leçons 1 à 16 sont écrites ; les autres sont le plan, et leur colonne GA nomme les types, fichiers et outils que chacune lira.
| # | Leçon | Théorie | Dans GA | Si tu écris du C# |
|---|---|---|---|---|
| 1 | Notes, classes de hauteurs et manche | hauteur, classe de hauteurs, altérations, intervalles, accordage | PitchClass, Note, Interval, Tuning, Fretboard |
objets valeur, hiérarchies fermées de records |
| 2 | Gammes, modes et identifiants de gamme sur 12 bits | gammes majeure et mineures, modes, transposition, bracelets | PitchClassSetId, Scale, MajorScaleMode, ModalFamily |
[Flags], rotation de bits, PopCount |
| 3 | Accords, chiffrages, renversements et voicings | triades, accords de septième, chiffrages d’accords, renversements | Chord, ChordFormula, CanonicalChordPatternCatalog, Voicing |
parseurs, expressions switch |
| 4 | Classes d’ensembles, vecteurs d’intervalles et relation Z | équivalence T/I, vecteurs d’intervalles, formes primaires, numéros de Forte | SetClass, IntervalClassVector, ForteCatalog, outils MCP |
formes canoniques, classes d’équivalence |
| 5 | Tonalités, armures et cercle des quintes | armures, tonalités relatives et homonymes, tonalités voisines | Key, KeySignature, outils MCP de tonalité |
objets valeur à plage bornée, tables de correspondance |
| 6 | Les accords d’une tonalité | triades et accords de septième diatoniques, chiffres romains, noms des degrés, fonctions | HarmonicFunction, Key.Notes, PitchClassSet.GetCompatibleKeys, ga_diatonic_chords |
enums, tests d’inclusion sur des masques de bits |
| 7 | Cadences, ii–V–I et tonalité d’une progression | cadences, mouvements plagal et rompu, ii–V–I, résolution de V⁷, trouver la tonalité | Cadences.yaml, PitchClassSet.ClosestDiatonicKey, ga_analyze_progression, ga_key_from_progression |
calcul de score et départage |
| 8 | Le ukulélé et la basse | accordages rentrants, accordages en quartes, numérotation des cordes | Tuning.Ukulele, Tuning.Bass, Str, Fretboard, Instruments.yaml |
deviner à partir des données, et quand s’en abstenir |
| 9 | Conduite des voix et notes communes | notes communes, conduite des voix conjointe, distance de conduite des voix, quintes et octaves parallèles, distances OPTIC | VoiceLeadingSpace, SetClassOpticIndex, ProgressionVoiceLeadingAnalyzer, VoiceLeadingSkill, ga_common_tones, ga_voice_leading_pair |
métriques de distance |
| 10 | Substitutions et emprunt modal | substitution par le relatif et substitution tritonique, accords d’emprunt | ChordSubstitutionSkill, ModalInterchange.yaml, get_borrowed_chords, ga_chord_substitutions, GrothendieckDelta |
classement de candidats |
| 11 | Les modes en profondeur | modes des mineures mélodique et harmonique, luminosité, familles modales | MelodicMinorMode, HarmonicMinorMode, IScaleDegreeNaming, PitchClassSet.StepBrightness, UnifiedModeService, Modes.yaml, get_mode_info |
génériques sur les degrés |
| 12 | La symétrie et les modes à transpositions limitées | modes à transpositions limitées, modes de Messiaen, gamme triton, axes miroirs | SymmetricScaleMode, WholeToneScaleMode, DiminishedScaleMode, AugmentedScaleMode, UnifiedModeService, AtonalModalFamilies.yaml, TranspositionClass |
invariants par rotation |
| 13 | Les accords étendus et altérés | neuvièmes, onzièmes, treizièmes, altérations, structures supérieures, polyaccords | Chord.FromSymbol, ChordSymbolParser, BasicChordExtensionsService, ChordAlterationService, ChordTemplateFactory, ExtendedChords.yaml, ga_polychord |
parseurs à parties optionnelles |
| 14 | Voicings de guitare : shell, drop 2 et drop 3 | voicings shell, voicings serrés et drop, notes guides | VoicingGenerator, VoicingHarmonicAnalyzer, VoicingAnalyzer, VoicingFilters, ChordClassificationEngine, ChordProgressions.yaml |
génération combinatoire |
| 15 | Le manche : CAGED, doigtés et jouabilité | formes CAGED, géométrie du manche, extension et effort, accordages ouverts | FretboardGeometry, PhysicalFretboardCalculator, PhysicalCostService, VoicingPhysicalAnalyzer, BiomechanicalAnalyzer, PlayerProfile, Tunings.toml, ga_easier_voicings |
fonctions de coût |
| 16 | Arpèges, théorie accord–gamme et improvisation | arpèges, paires accord–gamme, notes « outside » | ga_arpeggio_suggestions, ImprovisationSkill, OutsideNotesSkill, ImprovisationConcepts.yaml |
tables de correspondance |
| 17 | Le Tonnetz et les transformations néo-riemanniennes | P, L et R, le Tonnetz, médiantes chromatiques | NeoRiemannian.yaml, NeoRiemannianConfig.fs |
graphes de transformations |
| A | Tous les instruments de Guitar Alchemist | accordages, chœurs, cordes rentrantes | Instruments.yaml, InstrumentsConfig, Tuning |
de la configuration que rien ne lit |
| B | La hiérarchie OPTIC | octave, permutation, transposition, inversion, cardinalité | PitchClassSet, TranspositionClass, SetClass, le schéma OPTIC-K de GA |
équivalence, quotient après quotient |
| C | Toutes les divergences, et à qui revient le bug | les 40 lignes DIFF des leçons 1 à 7 |
les 19 défauts dont elles viennent | lire honnêtement une comparaison |
| — | Journal |
Prérequis
Section intitulée « Prérequis »- Le SDK .NET 10 et Git. Sous Windows, lance les scripts du cours depuis Git Bash.
- Environ 35 Mo de disque pour le clone partiel de GA et la sortie de compilation : le script ne récupère que les fichiers des trois projets contre lesquels le programme est compilé, et quelques fichiers de quatre autres.
- Une guitare aide : chaque exemple peut être joué.
Modules liés sur ce site
Section intitulée « Modules liés sur ce site »Les modules Streeling, générés à partir de GuitarAlchemist/Demerzel, couvrent en partie le même terrain, côté musicien. Chaque leçon renvoie aux modules pertinents :
- MUS-001 · Qu’est-ce qu’un accord ? et MUS-002 · Au-delà de la tonalité (leçons 3 et 4) ;
- MUS-006 · L’univers des gammes (leçons 2, 4, 11 et 12) ;
- MUS-003 · Comment fonctionne l’harmonie (leçons 5, 6, 7 et 10) et MUS-005 · L’harmonie jazz à la guitare (leçons 7, 9, 10, 11, 13 et 14) ;
- GTR-001 · La carte du manche et GAA-001 · Votre premier accord (leçons 1 et 3), et GTR-002 · La géométrie du CAGED (leçons 1, 3 et 15) ;
- MUS-009 · Accordage et géométrie du manche et PHY-001 · La science du son de la guitare (leçon 15) ;
- GAA-003 · Fondements de l’improvisation (leçon 16).
Ressources
Section intitulée « Ressources »- Mark Gotham et al., Open Music Theory, version 2 (2023), un manuel gratuit, évalué par des pairs, sous licence CC BY-SA 4.0 : la principale source théorique du cours.
- Ian Ring, A Study of Musical Scales : toutes les gammes par leur numéro sur 12 bits, la numérotation qu’utilise GA, avec un diagramme en bracelet pour chacune.
- Wikipédia : Interval vector, List of set classes, Guitar chord, Circle of fifths, Cadence.
- GuitarAlchemist/ga : le code que lit ce cours.