Cycle Presets
Cycle presets are harmonic patterns extracted from a library of thousands of songs. Each preset is a sequence of edge types that forms a loop β it starts and ends on the same chord.

What a preset encodes
A preset like diatonic dom7 diatonic relative means: four chord moves, in that exact order, where the last move returns to the starting chord. The pattern is key-agnostic β it describes the shape of the harmony, not the specific chords.
The same pattern appears in many songs across many keys. C β D β G β Am β C and G β A β D β Bm β G are both instances of diatonic dom7 diatonic relative.
The example song
Each preset shows an example chord sequence and a list of songs from the library that contain the pattern. These are real songs where that exact edge-type sequence appears in the progression.
The example is one real instance β itβs not a template.
Why you get a different path
When you click a preset and pick a From/To pair, the app finds the shortest-weight path through the graph that satisfies the edge-type sequence. This is a mathematical optimisation, not a lookup.
The example song made its own harmonic choices, which may not be the appβs cheapest route. Even starting from the same chord, the path that minimises the graphβs edge weights might route through entirely different intermediate chords than the song used.
This is a feature, not a bug. The preset constrains the type of harmonic movement; the app explores what that constraint makes possible across all 36 chords. Youβre likely to discover progressions the original songwriter never tried.
How presets are generated
The app analyses a corpus of 2,800+ MIDI files parsed from a classic pop/rock collection. For each song, it classifies every chord-to-chord move by edge type, then searches for recurring edge-type sequences (n-grams) that loop back to the starting type. Patterns appearing in five or more songs make the list.
The top 40 patterns by song count are compiled into cyclePresets.ts and shipped with the app. The corpus is rebuilt periodically as the library grows.