This seems to be similar to Euterpea, a domain-specific language embedded in Haskell for computer music composition: http://haskell.cs.yale.edu/euterpea/.
I'm curious what the differences are, either in capabilities or in overall goals, if anyone has looked at both.