A Graph Engine for Guitar Chord-Tone Soloing Education
Matthew Keating, Michael Casey
TL;DR
The paper tackles the challenge of teaching chord-tone soloing over arbitrary jazz chord progressions on guitar. It introduces a weighted graph engine in which nodes encode chord-tone arpeggios for each chord and edges encode the desirability of transitioning between chords; a shortest-path search yields a playable chord-tone solo line, output as tablature. Edge weights are defined by $w(C_1, C_2) = \\min_{i \\in C_1, j \\in C_2} |i - j|$, with optional penalties for string switches, enabling a simple yet adaptable transition metric. The approach supports multiple input modalities and aims to lower access barriers to jazz education by generating scalable, practice-ready examples for any progression.
Abstract
We present a graph-based engine for computing chord tone soloing suggestions for guitar students. Chord tone soloing is a fundamental practice for improvising over a chord progression, where the instrumentalist uses only the notes contained in the current chord. This practice is a building block for all advanced jazz guitar theory but is difficult to learn and practice. First, we discuss methods for generating chord-tone arpeggios. Next, we construct a weighted graph where each node represents a chord tone arpeggio for a chord in the progression. Then, we calculate the edge weight between each consecutive chord's nodes in terms of optimal transition tones. We then find the shortest path through this graph and reconstruct a chord-tone soloing line. Finally, we discuss a user-friendly system to handle input and output to this engine for guitar students to practice chord tone soloing.
