Skip to content

dannysullivan/songer-rails

Repository files navigation

Songer

Songer is an automatic songwriting tool. It builds melodies around basic rhythmic patterns, then generates lyrics to fit those melodies. A MIDI rendition of the results can be played in the browser, and the lyrics are highlighted karoake-style so that the user can sing along.

Lyrics

Lyrics are generated using Markov Chains based on a few text sources. The user can specify the text source they want to use when creating a new song.

Music

All music generated by Songer at the moment follows simple chord changes, repetitive rhythmic structures, and all melodies are based around the pentatonic scale (which sounds reasonable in most contexts). The plan is to continue to base melodies around repetitive rhythms but allow for more melodic and harmonic flexibility in the hopes that Songer will come up with interesting musical ideas that might not occur to human songwriters.