SoundHelix
Versatile algorithmic random music generation software written in Java
SoundHelix is a free versatile Java framework for algorithmic random music composition. SoundHelix can generate random songs, play them (for example, on any number of MIDI devices or MIDI-capable software synthesizers) and is highly customizable using XML configuration. SoundHelix also allows writing the generated music as MIDI files.
SoundHelix produces music that is actually enjoyable to listen to.