Procedural MIDI / C# / Windows Forms

BioMusic

Historical prototype

I built BioMusic to generate MIDI sketches from a scale, tempo, time signature, and a few rules for notes, rests, and chords. My longer-term idea was to let the listener pick favorites and evolve them.

View archived source on GitHub ↗

Making a song from rules

I modeled a song as sections, phrases, measures, and smaller pieces down to individual notes. The generator uses the selected scale and settings such as note length, rest probability, and chord probability to fill in that structure. I used MIDI libraries for playback and built a piano view into the editor.

Letting the listener choose

I wanted to generate a batch of melodies, listen, and pick the ones worth carrying into the next generation. I wrote early population, mutation, and crossover code, and left the listener-guided loop unfinished.

I explored a more general toolkit for evolutionary experiments in ProteiNA.

← All projects