Musical Chords: A Novel Java Algorithm and App Utility to Enumerate Chord-Progressions Adhering to Music Theory Guidelines
Aditya Lakshminarasimhan
TL;DR
This work tackles the lack of exhaustive chord progression data and the limitations of preselected pools by presenting a Java-based algorithm that exhaustively enumerates all valid 4-chord ($L=4$) and 8-chord ($L=8$) progressions under music-theory constraints, coupled with a mobile app to realize progressions and generate three alternate variations. The methodology combines chord theory, scale mapping (Ionian major and Aeolian minor), and rule-based transitions to generate $3{,}297$ total $4$-chord progressions and $405{,}216$ total $8$-chord progressions (with $1{,}533/1{,}764$ Major/Minor for 4-chords and $182{,}094/223{,}122$ Major/Minor for 8-chords), then converts these numerically represented progressions into scale-specific realizations across $21$ Major and $21$ Minor scales. An alternate-variations mechanism applies scale-degree shifts to the base progression, enabling three additional variations per progression, which enhances customization for composition and provides richer data for downstream AI mood and genre analyses. The dataset and tool enable musicians to explore a vastly larger, theory-consistent space of progressions and support machine learning models trained on diverse harmonic sequences, though the mobile UI currently emphasizes 4-chord progressions due to interface constraints; future work includes MIDI sharing, playback loops, chord inversions, and broader AI-driven mood classifications.
Abstract
A song's backbone is its chord progressions, a series of chords that improve the harmony and add to the overall composition. For individuals ranging from beginners to creative artists, comprehending and implementing music theory grammar for their own compositions can stifle the music creation process and cause song-writer's block. The existing Chord Progression approaches in the marketplace are limited on producing only pre-selected progressions and often fail to conform to music theory guidelines or provide APIs for other musicians to build on. Because four-chord and eight-chord progressions are yet to be enumerated, Machine learning use-cases that train on chord progressions are limited, and mobile applications don't provide users with unique or unexplored progressions. To address these limitations, a novel Java Algorithm and automated music theory chord progression and variations generator App has been developed. This App offers a piano user interface, that applies music theory to generate all possible four-chord and eight-chord progressions and produces three alternate variations of the generated progressions selected by the user. The Algorithm elucidates 3,297 Total 4-Chord Progressions and 405,216 Total 8-Chord Progressions. Within the 4-Chord Progression pool, there are 1,533 Major 4-chord Progressions and 1,764 Minor 4-Chord Progressions. Within the 8-chord Progression pool, there are 182,094 Major Progressions and 223,122 Minor Progressions. This innovative approach provides musicians with a comprehensive and customizable tool for their music creation, allowing them to develop their signature sounds.
