Teaching AI to Write Melodies

This blog documents the process of teaching an AI system to generate melodies from the Skiptune database. Expect experiments, mistakes, and occasional surprises, and at the end expect melodies that sound as if a human wrote them.

  • Introducing the Skiptune AI Project

    Problem to Be Solved The Skiptune database is a database of 83,000 melodies from around the world and across several centuries.  These melodies are encoded in a special way (a pitch difference followed by a duration ratio), and we want to explore whether an AI model can learn melodic structure from this representation.   The…

    Continue reading

  • Heaps’ Law with Notes-Durations, Part III

    Last week we found that Heaps’ Law applies well to the Skiptune corpus of melodies with a beta value of 0.36 using a note as a “word”.  But as we observed, the order in which a computer reads in the database can affect the curve fit, so this week we check that out to see…

    Continue reading

  • Heaps’ Law with Notes- Durations, Part II

    Last week we got halfway through our exploration of the definition of notes and durations as “words” akin to words in language, and we finish up that discussion this week with the following figure: Let’s walk through this plot, which uses the exact same data as the one last week but plots the points in…

    Continue reading

  • Applying Heaps’ Law with Notes/Durations

    This week we check to see if music is similar to human language in that it also follows Heaps’ Law.  There is not a large body of work on music and Heaps’ Law, at least not compared to that of linguistics.  But there is a small, coherent line of research in computational musicology that either…

    Continue reading

  • Heaps’ Law

    Today we’re going to learn about Heaps’ Law in linguistics and how it can help us determine if treating musical melodies as made up of “words” like human language is justified.  While this topic is necessarily math-oriented and I need to use formulas to be precise, I’ll also add plain language explanations and use figures…

    Continue reading