Rhythmatica: An Authoring Application for Adaptive and Algorithmic Music Based on Rhythmic Stratification
Ayden MACHAJEWSKI
Software Development
Rhythmatica: An Authoring Application for Adaptive and Algorithmic Music Based on Rhythmic Stratification
My Thesis project, Rhythmatica, is a standalone editor application built in my C ++ game engine to create adaptive music, or music that changes in real-time in response to game events.
I wanted to create an editor that gave composers complete deterministic control over their music while still having the flexibility to react to game events and create complex algorithmic music.
Rhythmatica differs from existing solutions by structuring music in strata, a term borrowed from the music theory text,“ The Stratification of Musical Rhythm.” Each stratum represents a different recurring musical concept like a section, phrase, chord, accent, or note. By interacting with each other, strata can create emergent and highly flexible music from relatively simple building blocks.
Once completed, music can be exported from the application to a custom binary format and then loaded into any other game running the same engine.
I selected this topic because it allowed me to explore a variety of concepts across music theory, audio programming, graph theory, and user interfaces. Because every change to the application could potentially cause a change to the custom file format I exported to as well, I also had to learn how to make an easy-to-update file format. The entire project took me approximately 240 hours over a span of nine months.
96 SOFTWARE DEVELOPMENT