Groovy project which takes chord progressions, voices them, and uses lilypond to output finished sheet music.
A DSL created with Groovy which forms the rules for the voice leading. Test.hlml is given as an example.
A backtracking algorithm to add support for variation rules, for example a {Root, Root, Third, Fifth} voicing would be preferred but if one is impossible then {Root, Fifth, Third, Third} could be used.