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.
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…
Before we can finish up our discussion of rests, notably their duration ratios, we need to introduce and explain entropy, as it’s a metric we will use when deciding how (or not) to use rests in our AI training. “Entropy” puts off a lot of people, but it turns out to be highly useful in…
As a point of vocabulary, we often use “rests” and “rest events” interchangeably. A rest event can either be a single rest, such as a quarter note rest, or a series of rests, such as a quarter note rest followed by one or more rests of any duration. If there is a note between two…
We wrap up the discussion on Heaps Law this week by summarizing what we’ve learned so far and making a final decision for what definition of “word” we use when we get around to training the AI model. This table summarizes all the Heaps Curve analyses performed: The first two rows refer to human natural…
This week we perform our last analysis of Heaps Law using 2-note words, and we do so by shuffling the database 1,000 times and performing a Heaps Law analysis on each one, calculating the statistical properties of that shuffled deck, and compare it to our year-ordered analysis. The results are highly informative. We start with…