Songbird is a procedural music generator project that I work on when I feel like I need to exercise my creative programming juices.
"Procedural", here, means that individual algorithms, patterns, and hand-coded functions weave together to create somewhat-normal musical sequences. There is no AI or model-based training involved; all of the patterns have been written either as common musical standards, or as an algorithm I've designed.
"Music", here, focuses on modern Western music theory, as it has relates to tuning, scales, and consonance. The world of music is much wider, but I've tried to narrow down the available generative space to things that I'm more familiar with.
A lot of my recent work in Songbird has been structural, in the sense of building resilient pathways of different parts of the generation process. As a result, web-based operability has been stagnant. I've consequently decommissioned web servers that host the functional parts.
I've rewritten the code several times as I've learned more specifics about music theory and composition. I'm in a spot where I'm generally happy with the overall flow, how configuration files are set up, and where tweaks occur in the code to develop new modules.
As Songbird stands right now, there is a full composition process that roughly runs through these steps:
As this is a hobby project, I'll always have something I want to do on this. For the sake of scroll wheels everywhere, here are my primary goals: