I’ve managed to design a program that, based on a seed, generates a three-track canon song that actually sounds good. The trick here is that each of the three tracks have to beexactly the same – however, track two and track three are offset by a constant amount of notes.
A demonstration of this can be found on SoundCloud and YouTube, playing the seed ‘IgnatieffSC’ over a C major scale. (The first 200 notes are generated and exported using GarageBand):
SoundCloud link: https://soundcloud.com/ignatieff/generated-canon-piece
The program itself doesn’t have a GUI, but rather a series of inputboxes. It exports directly to .mid audio format. Oh, and here’s a cool picture I made to help sell my idea to people around on the internet:
Download link (canon-generator.jar):