2 min read

Jazz Scale Patterns: The Next Generation

Jazz Scale Patterns: The Next Generation
Cover art created using LLM.

As an evolving jazz musician, I’ve been working on a reproducible way to generate practice sheets for jazz scales and patterns (e.g. licks, etc.) using Python + Abjad and GNU LilyPond. The project notates common scales and modes in all keys—major/ionian; natural, harmonic, and melodic minor; dorian, phrygian, lydian, mixolydian, locrian (and locrian ♮2); whole-tone; both octatonic collections; plus major/minor pentatonic and the minor blues scale. (Please reach out if you want others!)

In this first incarnation – still well shy of 1.0 – each chart is laid out with two bars per system, beamed eighths, interval labels under the notes, and a visible chord symbol at the start of each measure. Although you could easily enter a C-key example in your favorite notation tool and manually transpose into the other eleven keys, this automated pipeline is far faster and more consistent, and likely less error-prone. While the current code is hard-wired to support a known set of scale patterns, it’s already general enough to generate practice sheets for any pattern, étude, or exercise in any key.

A brief note about AI: this work emerged from communicating clear requirements to large language models and iterating with them—not as a replacement for expertise, but to put my brain work where it belongs (on the domain and proper software engineering). With deep knowledge of Python and growing knowledge of music theory, plus prior experience with Abjad and LilyPond, I was able to steer LLMs to produce exactly the tooling I needed. That collaboration is letting me bring a long-running side project to life as a printable and playable/listenable (via MIDI), open-source/open-access book. Huge thanks to the teams behind Abjad (https://abjad.github.io) and GNU LilyPond (https://lilypond.org) for the phenomenal engraving ecosystem that makes this kind of literate, automated music publishing possible.