Leçon 9 : conduite des voix et notes communes
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.
La leçon 7 a déplacé chaque note de G7 vers la note de C la plus proche. Cette leçon en fait une méthode : quelles notes deux accords partagent, comment mesurer le mouvement total d’un accord au suivant, quels mouvements les manuels interdisent, et à quelle distance sont deux types d’accords. Guitar Alchemist (GA) mesure la distance entre accords à quatre endroits, une compétence (skill) du chatbot, un outil MCP et deux classes de sa bibliothèque de domaine, et chacun répond à une question différente. Le programme du cours vérifie les quatre.
Tous les liens vers GA pointent sur le commit a826864. Les sorties viennent de la commande ci-dessous ; le point d’entrée est l11 parce que les deux annexes ont pris l9 et l10.
dotnet run --project code/music-theory-ga/GaTheory -c Release -- l11Notes communes
Section intitulée « Notes communes »Une note commune est une note que deux accords partagent. Open Music Theory en fait le plus petit mouvement possible : “not moving at all, but instead remaining on a single tone that is common to both chords” (Open Music Theory, “Jazz Voicings”). La règle est ancienne. Rameau enseignait qu’une voix va à la note la plus proche, et en 1841 l’organiste Johann August Dürrnberger l’a appelée la « règle du plus court chemin » : les notes que l’accord suivant réutilise restent dans leur partie, les autres vont à la note la plus proche de l’accord suivant (Voice leading, Wikipédia, “Chord connection”).
Parmi les triades d’une tonalité, la distance entre les fondamentales décide du nombre de notes que deux accords partagent. Des fondamentales à une tierce l’une de l’autre partagent deux notes, à une quinte une, à une seconde aucune. Une note partagée change de rôle : C est la fondamentale de C majeur et la tierce de A mineur. Le programme intersecte les classes de hauteurs des accords et nomme l’intervalle de chaque note commune dans les deux accords :
== Common tones: C major and the other chords of its key (GA: Chord.FromSymbol, PitchClassSet.Intersect)chords course GA checkC Dm (none) (none) okC Em 4 7 4 7 ok E: M3 in C, P1 in Em; G: P5 in C, m3 in EmC F 0 0 ok C: P1 in C, P5 in FC G 7 7 ok G: P5 in C, P1 in GC Am 0 4 0 4 ok C: P1 in C, m3 in Am; E: M3 in C, P5 in AmC Bdim (none) (none) okLes accords de septième en partagent davantage. Dans le ii–V–I de la leçon 7, la tierce de chaque accord devient la septième du suivant : F, tierce de Dm7, est la septième de G7, et B, tierce de G7, est la septième de Cmaj7. Open Music Theory construit ses voicings jazz à deux voix sur cet échange, pour “lead from the third of one chord to the seventh of the next” (même chapitre), et le module Streeling MUS-005 · L’harmonie jazz à la guitare appelle ces notes des notes guides (section “4. Guide Tones and Voice Leading”).
== Common tones of seventh chords and extensionschords course GA checkG7 Cmaj7 7 E 7 E ok G: P1 in G7, P5 in Cmaj7; B: M3 in G7, M7 in Cmaj7Dm7 G7 2 5 2 5 ok D: P1 in Dm7, P5 in G7; F: m3 in Dm7, m7 in G7Bm7b5 G7 2 5 E 2 5 E ok D: m3 in Bm7b5, P5 in G7; F: d5 in Bm7b5, m7 in G7; B: P1 in Bm7b5, M3 in G7Cmaj9 Em7 2 4 7 E 2 4 7 E ok D: M9 in Cmaj9, m7 in Em7; E: M3 in Cmaj9, P1 in Em7; G: P5 in Cmaj9, m3 in Em7; B: M7 in Cmaj9, P5 in Em7Cdim7 F7 0 3 9 0 3 9 ok C: P1 in Cdim7, P5 in F7; Eb: m3 in Cdim7, m7 in F7; Bbb/A: d7 in Cdim7, M3 in F7C6 Am7 0 4 7 9 0 4 7 9 ok C: P1 in C6, m3 in Am7; E: M3 in C6, P5 in Am7; G: P5 in C6, m7 in Am7; A: M6 in C6, P1 in Am7C9 Gm7 2 7 T 2 7 T ok D: M9 in C9, P5 in Gm7; G: P5 in C9, P1 in Gm7; Bb: m7 in C9, m3 in Gm7Bm7♭5 partage trois de ses quatre notes avec G7 : c’est G9 sans sa fondamentale. Cmaj9 contient tout Em7, et C6 a les mêmes quatre notes que Am7. Dans Cdim7, la septième est B𝄫, qui sonne comme le A de F7 : le cours écrit les deux noms.
La colonne GA intersecte les ensembles de classes de hauteurs de Chord.FromSymbol, le cœur de GA, comme dans la leçon 7. Elle concorde sur les treize paires.
L’outil MCP ga_common_tones de GA et la compétence CommonTones du chatbot prennent un autre chemin : une closure F#, domain.commonTones (DomainClosures.fs#L488-L531), qui nomme aussi les rôles. Elle construit chaque accord à partir d’une triade pour la qualité plus un intervalle par extension, tiré d’une table de six entrées, et ignore les altérations (#L85-L98, #L349-L355). Le 2026-09-30, le serveur MCP qui tournait sur la machine de l’auteur (sa version n’est pas indiquée) a répondu, chaque réponse sur une ligne :
ga_common_tones G7 Cmaj7 Common tones (2): G (P1 in G7, P5 in Cmaj7), B (M3 in G7, M7 in Cmaj7)ga_common_tones Dm7 G7 Common tones (2): D (P1 in Dm7, P5 in G7), F (m3 in Dm7, m7 in G7)ga_common_tones Bm7b5 G7 Common tones (2): B (P1 in Bm7b5, M3 in G7), D (m3 in Bm7b5, P5 in G7)ga_common_tones Cmaj9 Em7 Common tones (3): E (M3 in Cmaj9, P1 in Em7), G (P5 in Cmaj9, m3 in Em7), D (M9 in Cmaj9, m7 in Em7)ga_common_tones Cdim7 F7 Common tones (2): C (P1 in Cdim7, P5 in F7), Eb (m3 in Cdim7, m7 in F7)ga_common_tones C6 Am7 Common tones (3): C (P1 in C6, m3 in Am7), E (M3 in C6, P5 in Am7), G (P5 in C6, m7 in Am7)ga_common_tones C9 Gm7 Common tones (2): G (P5 in C9, P1 in Gm7), D (M9 in C9, P5 in Gm7)Les deux premières sont justes. Chacune des cinq autres perd une note : F, la ♭5 de Bm7♭5, une altération ; B, parce que « maj9 » n’ajoute que la neuvième ; A, parce que le « 7 » de Cdim7 est une septième mineure et que l’accord sort C E♭ G♭ B♭ ; A encore, parce que « 6 » n’est pas dans la table ; B♭, parce que « 9 » n’apporte pas sa septième. L’analyseur de GA lit ces accords correctement : ga_parse_chord("Bm7b5") répond "components":["ext:7","alt:b5"]. Les notes se perdent ensuite. La même table a donné à ga_chord_to_set ses graphies fausses, une constatation du tableau QA du journal, et GA #681, fusionnée le 2026-09-23, a remplacé la table par une fonction qui empile l’accord en tierces, sous-entend la septième sous 9, 11 et 13 et applique les altérations (chordTones sur la branche main de GA, 5c3a52a). domain.commonTones tire aussi ses notes et ses rôles de cette fonction (#L446-L450, #L580-L620). C’est lu dans le code, pas exécuté : le serveur qui a répondu ci-dessus était antérieur au correctif.
La plus petite conduite des voix
Section intitulée « La plus petite conduite des voix »La conduite des voix est la façon dont chaque voix se déplace quand l’harmonie change (glossaire d’Open Music Theory, même chapitre). Elle “should generally be smooth—that is, voices should ideally move as little as possible when going to a new chord (except the bass, which often leaps)”. Pour comparer deux façons de se déplacer, on compte les demi-tons : on envoie chaque note du premier accord sur une note du second, chacune par le plus court chemin autour de l’octave, six demi-tons au plus, et on additionne. Cette somme est la taille de la conduite des voix, et la plus petite est la plus fluide. La géométrie des accords de Dmitri Tymoczko repose sur la recherche de ces conduites minimales entre deux accords quelconques (Tymoczko 2006 ; dans son livre de 2011, la musique tonale demande des accords “connected by efficient voice leadings”, cité dans l’article Voice leading de Wikipédia).
Quand les accords n’ont pas la même taille, une note du plus petit est doublée : une voix se divise en deux, ou deux voix se rejoignent. Le cours essaie toutes les doublures et toutes les affectations des voix (Lesson11.Smallest). Il travaille sur les classes de hauteurs : où va une voix, pas à quelle octave.
La figure place C majeur et F majeur sur un même bracelet. C est partagé et cerclé ; E est à côté de F, et G deux crans sous A : C reste, E monte d’un demi-ton, G d’un ton, trois demi-tons en tout.
== The smallest voice leading: the course tries every doubling, GA's VoiceLeadingSkill doubles the rootchords course GA checkC F 3 3 ok course: C->C 0, E->F +1, G->A +2C Am 2 2 ok course: C->C 0, E->E 0, G->A +2C G 3 3 ok course: C->B -1, E->D -2, G->G 0C Dm 5 5 ok course: C->D +2, E->F +1, G->A +2C F# 6 6 ok course: C->A# -2, E->C# -3, G->F# -1Dm7 G7 3 3 ok course: D->D 0, F->F 0, A->G -2, C->B -1G7 Cmaj7 3 3 ok course: G->G 0, B->B 0, D->C -2, F->E -1G7 C 4 4 ok course: G->G 0, B->C +1, D->C -2, F->E -1C G7 4 4 ok course: C->B -1, E->F +1, G->G 0, C->D +2G Cmaj7 3 5 DIFF course: G->G 0, B->C +1, D->E +2, B->B 0 GA: G->E -3, B->B 0, D->C -2, G->G 0Fmaj7 Bm7b5 3 3 ok course: F->F 0, A->A 0, C->B -1, E->D -2De C à A mineur, une voix bouge d’un ton. C et D mineur ne partagent rien, donc toutes les voix bougent. De C à F♯, à un triton, il en coûte six demi-tons, et pourtant aucune voix ne bouge de plus de trois. Chaque changement du ii–V–I déplace deux voix par degré conjoint et garde les deux autres ; des notes guides, la tierce reste pour devenir la septième suivante, et la septième descend d’un demi-ton vers la tierce suivante. G7 vers C a quatre voix pour trois notes, donc deux d’entre elles se rejoignent sur C : B monte, D descend.
Dans GA : la compétence du chatbot
Section intitulée « Dans GA : la compétence du chatbot »Le chatbot répond à « voice leading from C to F » avec VoiceLeadingSkill, sans modèle de langage : une table de types d’accords, puis toutes les permutations des voix (VoiceLeadingSkill.cs#L139-L161), chaque voix par le plus court chemin (#L179-L183). Quand les accords n’ont pas la même taille, elle répète toujours la fondamentale du plus petit : “a ‘stays-on-root’ doubling is harmless” (#L185-L194). Le programme réécrit cette règle (Lesson11.SkillSmallest). Doubler n’est pas anodin pour G vers Cmaj7 : avec B doublé, un B reste et l’autre monte à C, 3 demi-tons ; avec G doublé, un G doit descendre à E, 5. La réponse de la compétence se termine pourtant par la phrase This is the optimal pitch-class assignment — every other voicing of {aLabel} → {bLabel} requires more total semitone movement. (#L131).
Le programme essaie ensuite chaque triade (majeure, mineure, diminuée, augmentée, sur les 12 fondamentales) contre chaque accord de septième (septième majeure, de dominante, mineure, semi-diminuée et diminuée) :
== Every triad to every seventh chord, and back: how often doubling the root misses the minimumdirection pairs GA above the minimum, largest gaptriad -> seventh 2880 1260 (43.8 %), 4 semitones, first Cdim -> Gmaj7seventh -> triad 2880 1260 (43.8 %), 4 semitones, first Cmaj7 -> EaugDoubler la fondamentale manque le minimum pour 1260 des 2880 paires, de quatre demi-tons au plus, et aussi souvent dans les deux sens : la triade est le plus petit accord dans les deux cas, et un mouvement coûte autant à l’envers qu’à l’endroit.
La compétence lit les deux accords avec une expression régulière (#L55-L57). Le programme la copie et lui soumet les dix exemples de requêtes de la compétence elle-même (#L35-L47) :
== GA's VoiceLeadingSkill: its own ten example prompts against its own chord pattern voice leading from C to F C -> F smooth voice leading C to Am C -> Am best voicing from G7 to Cmaj7 G7 -> Cmaj7 how do I voice lead Dm7 to G7 Dm7 -> G7 voice leading C major to G major (no match: the skill answers "Ask about voice leading between two chords") smoothest voicing from Em to A7 Em -> A7 voice leading Fmaj7 to Bm7b5 Fmaj7 -> Bm7b5 what's the smoothest voicing from D to A D -> A voice lead C7 to F C7 -> F best way to move from G7 to C G7 -> CLe motif veut un chiffrage d’accord juste avant « to », et « major » n’en est pas un. Le chatbot choisit cette compétence par le sens, jamais par le motif (#L49 : “semantic-routing only”), donc cette question, l’un des propres exemples de la compétence, lui parvient, et elle demande alors une question sur “voice leading between two chords” (#L288-L294).
Dans GA : l’outil MCP, sur des voicings de guitare
Section intitulée « Dans GA : l’outil MCP, sur des voicings de guitare »L’outil MCP ga_voice_leading_pair travaille sur de vrais voicings : il cherche des voicings de guitare pour les deux accords et trie les paires selon une distance sur leurs hauteurs MIDI (CompositionTools.cs#L312-L336) : trier les deux voicings, les apparier depuis le bas, et compter 3 demi-tons pour chaque note restante. Ici les octaves comptent, puisqu’un voicing de guitare a un registre. Quand les deux voicings ont autant de notes, les apparier dans l’ordre est le mieux qu’on puisse faire : sur une droite, deux paires qui se croisent ne sont jamais plus courtes que les mêmes paires décroisées. Quand ils diffèrent, le commentaire dit que le voicing le plus court “pairs against its nearest neighbors”, mais le code l’apparie aux notes les plus graves. Le même commentaire prévient que ce “is not a formal Hungarian-optimal assignment”, seulement un classement “good enough to surface smooth voice-leadings among candidates”. Le programme copie la fonction (Lesson11.PairDistance) et la compare avec tous les appariements, au même tarif de 3 demi-tons par note restante (Lesson11.VoicingDistance) :
== Guitar voicings in pitch space: the course pairs the notes every way, GA's ga_voice_leading_pair pairs the lowestvoicings course GA checkC -> Am 5 5 ok x32010 C3 E3 G3 C4 E4 -> x02210 A2 E3 A3 C4 E4G -> C 10 28 DIFF 320003 G2 B2 D3 G3 B3 G4 -> x32010 C3 E3 G3 C4 E4G7 -> C 8 28 DIFF 320001 G2 B2 D3 G3 B3 F4 -> x32010 C3 E3 G3 C4 E4C (no bass) -> C 3 19 DIFF xx2010 E3 G3 C4 E4 -> x32010 C3 E3 G3 C4 E4G7/B -> C (MCP) 5 5 ok x2xx63 B2 F4 G4 -> 8xx988 C3 E4 G4 C5Le C ouvert n’a rien sous C3, donc GA apparie le G2 du G ouvert à C3, B2 à E3, et ainsi de suite : chaque voix est poussée d’un cran vers le haut, 28 demi-tons. Laisser tomber G2 donne 10. Ajouter une basse sous le même accord coûte 19 au lieu de 3. Le 2026-09-30, le même serveur a répondu à ga_voice_leading_pair("G7", "C", limit 3, guitar) avec 225 paires évaluées ; ses diagrammes commencent à la corde 1, et la dernière ligne du tableau ci-dessus est sa première paire :
5 G7(shell)/B 3-6-x-x-2-x [67, 65, 47] -> C 8-8-9-x-x-8 [72, 67, 64, 48]5 G7(shell)/B 3-6-x-5-2-x [67, 65, 55, 47] -> C 8-8-9-5-x-8 [72, 67, 64, 55, 48]6 G7(shell)/B 3-0-0-3-2-x [67, 59, 55, 53, 47] -> C 8-8-5-5-7-8 [72, 67, 60, 55, 52, 48]Dans ces paires, les notes en plus sont en haut, là où apparier depuis le bas est juste. Le classement se trompe quand la note en plus est la basse.
Quintes et octaves parallèles
Section intitulée « Quintes et octaves parallèles »Deux voix sont en mouvement parallèle quand elles vont dans la même direction du même intervalle. Le contrepoint d’espèces interdit deux consonances parfaites de même taille à la suite : “P5–P5 or P8–P8. This includes both simple and compound intervals; for example, P5–P12 is considered the same as P5–P5.” La raison : “Parallel fifths and octaves promote tonal fusion at the expense of melodic independence” (Open Music Theory, “First-Species Counterpoint”). L’harmonie de la pratique commune garde la règle entre deux voix quelconques.
Une guitare l’enfreint tout le temps. Déplacer un barré le long du manche déplace chaque corde du même intervalle, donc chaque quinte et chaque octave de la forme bouge en parallèle. Un power chord est une quinte, et un riff de power chords n’est fait que de quintes parallèles ; l’article Consecutive fifths de Wikipédia note que “the prohibition is not relevant since there is no intention to create independent voices”. La règle appartient à un style, pas à l’instrument.
ProgressionVoiceLeadingAnalyzer prend chaque corde comme une voix. Pour chaque paire de cordes qui sonnent dans les deux voicings, si les deux bougent dans la même direction et que l’intervalle, ramené dans une octave, est une quinte avant et après, il signale des quintes parallèles ; s’il vaut 0 avant et après, des octaves parallèles. Le programme compile le fichier de GA tel quel et le compare avec sa propre lecture de la règle (Lesson11.Parallels). Les cordes sont numérotées de 1, le E aigu, à 6, le E grave ; « 6-5 » est la paire des deux cordes les plus graves :
== Parallel fifths and octaves, string by string (GA: ProgressionVoiceLeadingAnalyzer)voicings course GA checkF -> G barre 5ths 4-2 6-2 6-5; 8ves 4-1 5-2 6-1 6-4 5ths 4-2 6-2 6-5; 8ves 4-1 5-2 6-1 6-4 okE5 -> G5 5ths 6-5; 8ves 6-4 5ths 6-5; 8ves 6-4 okC -> G open 5ths -; 8ves 5-2 5ths -; 8ves 5-2 okG7 -> C open 5ths -; 8ves 5-2 5ths -; 8ves 5-2 okAm -> Dm open 5ths -; 8ves - 5ths -; 8ves - okIls concordent sur chaque paire. Le barré contient trois quintes et quatre octaves, et les sept bougent ensemble. Deux des trois changements d’accords ouverts, C → G et G7 → C, cachent chacun une paire d’octaves parallèles, sur les cordes 5 et 2. Dans le G7 ouvert ci-dessous, B2 et B3 sont la même note, la sensible, doublée : les deux montent à C, C3 et C4. Un manuel d’harmonie ne doublerait pas la sensible pour cette raison ; la forme ouverte le fait.
G2 B2 D3 G3 B3 F4C3 E3 G3 C4 E4L’analyseur fait exactement ce que dit son nom. Il ne cherche pas les quintes et octaves cachées, “similar motion into a fifth or octave” (Open Music Theory, même chapitre), ni les quintes par mouvement contraire, que Wikipédia dit “generally avoided” elles aussi. Comme les voix sont des cordes, une mélodie qui passe de la corde 2 à la corde 1 change de voix. Au commit a826864, rien dans GA ne l’appelle, sauf ses tests.
Distances entre types d’accords
Section intitulée « Distances entre types d’accords »L’annexe B a gravi l’échelle OPTIC : octave, permutation, transposition, inversion, cardinalité. Clifton Callender, Ian Quinn et Dmitri Tymoczko ont mesuré les conduites des voix sur chaque échelon (Callender, Quinn et Tymoczko 2008). Avec O et P, la distance est entre ensembles de classes de hauteurs, comme ci-dessus : de C majeur à F majeur, 3. Ajoute T, et elle devient une distance entre types d’accords : de C majeur à F majeur, 0, deux triades majeures ; de C majeur à C mineur, 1, E vers E♭ ; d’une triade majeure à une augmentée, 1. Ajoute I, et majeur et mineur deviennent le même type. Le programme calcule les trois distances par force brute, toutes les affectations des voix, toutes les transpositions, l’inversion (Lesson11.Optic), sous la forme « OP OPT OPTI » :
== Distance from C major under OP, OPT and OPTI (GA: VoiceLeadingSpace)chords course GA checkC F 3 0 0 3 0 0 okC Eb 3 0 0 3 0 0 okC Am 2 1 0 2 1 0 okC Cm 1 1 0 1 1 0 okC Caug 1 1 1 1 1 1 okC Cdim 2 1 1 2 1 1 okC F# 6 0 0 6 0 0 okCmaj7 C7 1 1 1 1 1 1 okC7 Cdim7 3 1 1 3 1 1 okVoiceLeadingSpace prend les quatre interrupteurs et calcule la même distance ; le programme compile le fichier de GA tel quel, et la colonne GA ci-dessus est sa réponse. Avec l’équivalence d’octave et de permutation, il n’essaie pas toutes les affectations des voix : il trie les deux accords et n’essaie que les décalages circulaires de l’un contre l’autre (#L63-L91). Ce raccourci est juste, sur toutes les paires d’ensembles de trois et de quatre notes :
== GA's shortcut (cyclic shifts of the sorted chords) against every assignment of voicessets ordered pairs GA differs from the course3 notes, OP 48400 03 notes, OPT 48400 04 notes, OP 245025 04 notes, OPT 245025 0Sans équivalence d’octave, c’est la transposition qui se trompe : elle n’essaie que des décalages de 0 à 11 demi-tons, vers le haut (#L46-L61), si bien que le second accord ne peut jamais descendre à la rencontre du premier :
== Without octave equivalence, with transposition: GA only shifts upward, by 0 to 11 semitonesfrom -> to course GA checkC4 major -> B3 major 0 0 okB3 major -> C4 major 0 3 DIFFC4 major -> C5 major 0 36 DIFFC5 major -> C4 major 0 3 DIFFDeux triades majeures sont le même type sous T, à distance 0, mais la réponse de GA dépend de celle qui vient en premier, et une distance qui change avec l’ordre n’est pas une distance.
L’autre distance OPTIC de GA est entre classes d’ensembles : SetClassOpticIndex.Distance. Pour deux classes de même taille, son commentaire met en balance “the nearest-neighbor sum approach (approximation)” et “strict best-permutation (expensive)” et retient la première, “a reasonable Hausdorff-like distance” : chaque note de la première classe va à la note la plus proche de la seconde (#L167-L224), si bien que plusieurs voix peuvent arriver sur la même note. Le programme compile aussi ce fichier et le compare avec la distance un-à-un sur les mêmes formes primaires :
== Set classes of the same size: GA's SetClassOpticIndex sums each note's nearest neighbourset classes course GA check(012) -> (048) 6 2 DIFF(048) -> (012) 6 6 ok 12 trichord classes, 144 ordered pairs: GA below the one-to-one minimum: 35 GA above it: 0 GA's answer changes when the two are swapped: 70Les trois notes du cluster (012) se pressent autour d’une note de la triade augmentée, 2 demi-tons en tout ; en un-à-un, deux d’entre elles doivent parcourir 3 demi-tons chacune. Le commentaire de la classe cite aussi l’article de Callender, Quinn et Tymoczko comme paru dans Music Theory Online 14(3), avec un lien qui aboutit sur la page d’erreur de cette revue (#L15-L18) ; l’article a paru dans Science.
Aucune des deux classes ne décide encore de quoi que ce soit dans GA. Au commit a826864, VoiceLeadingSpace n’est appelée que par ses tests, et SetClassOpticIndex par ShapeGraphBuilder, seulement quand VoiceLeadingWeight est supérieur à zéro (ShapeGraphBuilder.cs#L233-L260), dont la valeur par défaut est 0 (ShapeGraphBuildOptions.cs#L44). GA a donc quatre réponses à « à quelle distance est G de C » : 3 demi-tons pour le chatbot, qui travaille sur les classes de hauteurs ; 28 pour l’outil MCP sur les formes ouvertes ; 0 pour VoiceLeadingSpace sous T, puisque ce sont deux triades majeures ; et 0 pour SetClassOpticIndex, qui compare leurs classes d’ensembles. Chacune répond à une question différente. Seules les deux premières atteignent un utilisateur, et toutes deux portent les défauts montrés plus haut.
Exercices
Section intitulée « Exercices »- Quelles notes F et Dm partagent-ils, et quel est le rôle de chacune dans les deux accords ?
- Quelle est la plus petite conduite des voix de Am à F ?
- Monte le barré de A (
577655) de deux cases, à B. Quelles paires de cordes bougent en quintes parallèles, et lesquelles en octaves parallèles ? - À quelle distance est C majeur de E♭ majeur sous OP, et sous OPT ?
Solutions
- F et A. F est la fondamentale de F et la tierce mineure de Dm ; A est la tierce majeure de F et la quinte de Dm. Les fondamentales sont à une tierce, donc les triades partagent deux notes.
- Un demi-ton : A et C restent, E monte à F. A mineur et F majeur sont à une tierce, comme C et A mineur.
- Les sept mêmes que pour le barré de F : des quintes sur les cordes 6-5, 6-2 et 4-2, des octaves sur 6-4, 6-1, 4-1 et 5-2. C’est la forme qui décide, pas la case.
- 3 sous OP : G reste, E descend à E♭, C descend à B♭. 0 sous OPT : ce sont deux triades majeures.
== Exercise solutionsquestion course GA check1. F Dm 5 9 5 9 ok F: P1 in F, m3 in Dm; A: M3 in F, P5 in Dm2. Am F 1 1 ok A->A 0, C->C 0, E->F +13. A -> B barre 5ths 4-2 6-2 6-5; 8ves 4-1 5-2 6-1 6-4 5ths 4-2 6-2 6-5; 8ves 4-1 5-2 6-1 6-4 ok4. C Eb, OP OPT 3 0 3 0 okÀ retenir
Section intitulée « À retenir »- Une note commune est le plus petit mouvement. Des triades dont les fondamentales sont à une tierce partagent deux notes, à une quinte une, à une seconde aucune ; dans ii–V–I, la tierce de chaque accord devient la septième du suivant.
- La taille d’une conduite des voix est la somme des demi-tons que parcourt chaque voix, par le plus court chemin. Entre accords de tailles différentes, le choix de la note doublée compte : doubler toujours la fondamentale manque le minimum dans 43,8 % des paires triade–septième.
- Sur de vrais voicings, les octaves comptent. Apparier les notes dans l’ordre est optimal quand les deux voicings ont autant de notes ; l’outil MCP de GA apparie depuis le bas quand ce n’est pas le cas, et fait payer bien trop cher une basse retirée ou ajoutée.
- L’analyseur de quintes parallèles de GA suit la règle des manuels, corde par corde. Les barrés et les power chords enfreignent la règle par construction, et le rock ne leur demande pas de la suivre.
- Le raccourci de
VoiceLeadingSpaceest juste, mais sans équivalence d’octave sa transposition ne décale que vers le haut, si bien que la distance change avec l’ordre ;SetClassOpticIndexlaisse des voix partager une note, si bien que sa distance change avec l’ordre. Le cœur de GA trouve correctement les notes communes ; la closure F# derrièrega_common_tonesperdait des notes au commita826864.
- Mark Gotham et al., Open Music Theory, version 2, 2023, CC BY-SA 4.0 : chapitres Jazz Voicings et First-Species Counterpoint.
- Dmitri Tymoczko, “The Geometry of Musical Chords”, Science 313, 2006, doi:10.1126/science.1126287 ; A Geometry of Music, Oxford University Press, 2011.
- Clifton Callender, Ian Quinn et Dmitri Tymoczko, “Generalized Voice-Leading Spaces”, Science 320, 2008, doi:10.1126/science.1153021.
- Wikipédia : Voice leading, Consecutive fifths.
- GuitarAlchemist/ga au commit
a826864:Common/GA.Business.DSL/Closures/BuiltinClosures/DomainClosures.fs,Common/GA.Business.ML/Agents/Skills/VoiceLeadingSkill.cs,GaMcpServer/Tools/CompositionTools.cs,Common/GA.Domain.Services/Fretboard/Voicings/Analysis/ProgressionVoiceLeadingAnalyzer.cs,Common/GA.Domain.Services/Atonal/VoiceLeadingSpace.cs,Common/GA.Domain.Services/Atonal/SetClassOpticIndex.cs.