SillyPond
A downloadable generator
SillyPond generates unplayable sheet music in the style of John Stump's "Faerie’s Aire and Death Waltz". It's my entry for PROCJAM 2019! Using a mixture of generative grammars, a linguistics library, noise functions, and a lot of hand-stitched random distributions, SillyPond constructs a description of sheet music, which is then converted to an image using the open-source music engraving software LilyPond.
You can find the source code on GitHub. To generate your own sheet music, you only need Ruby and LilyPond.
When working this generator, I really enjoyed that it's basically a bunch of smaller generators, bundled together: a title generator, a subtitle generator, a melody generator, an instruction generator… – and that each part can be improved separately.
Giving the page some interesting high-level structure was the most challenging part for me. Because I don't really keep a state while generating the elements, they tended to be distributed on the page pretty evenly. I solved this by using Perlin noise to influence some of the random distributions slowly, progressing down the page.
Fun fact: LilyPond can actually create MIDI files, so if you want to listen to "On the Beautiful Blue Penguin", you can find an MP3 file here!
Status | Released |
Category | Tool |
Author | blinry |
Tags | Generator, Music, Procedural Generation, PROCJAM |
Code license | Unlicense |
Asset license | Creative Commons Zero v1.0 Universal |
Comments
Log in with itch.io to leave a comment.
I'd love it if there was some way to play this in-browser!