The Plan for AI — An Introduction

by

in

 

When Skiptune was started at the turn of the last century, machine learning was rudimentary and artificial intelligence (AI) was limited to such accomplishments as turning speech into text.  Accuracy was 85 to 95 percent, which means 10 mistakes every 100 words.  Face detection was limited to detecting a face, but not identifying it.  Crude recommender systems debuted that recommended products to you based on your other purchases, but if you bought slippers as a Christmas present for someone, you would see slipper ads for six months.  

We nonetheless had hopes that one day machine learning would get to the point where music could be taught to a machine learning model, so we began the Skiptune project with that in mind.

Now, almost a quarter century later, the technology has evolved to the point where it’s ready to be mapped onto the Skiptune database of melodies.  

The plan for doing so is to start this blog in March 2026 as we are finalizing the database itself of 83,000 tunes made up of nearly 5 million notes.  Here in bullet form is how we expect to document our path to building an AI model from scratch to learn human-composed melodies:

  1. Define the problem and objective.  Decide what we expect the model to learn from the melodies in the Skiptune database
  2. Clean and preprocess the data.  Finalize the database, which may take a few months (till summer 2026) by removing errors, splitting musical pieces up so they are in a form digestible to an AI model, and encode the notes into numerical form
  3. Split the dataset.  Divide the data into training, validation, and test sets 

  4. Choose the model architecture
    Select the type of model (e.g., neural network, transformer, decision tree)

  5. Initialize the model parameters.  Start with random weights

  6. Train the model.  Feed training data through the model and adjust parameters using optimization methods (e.g., gradient descent)

  7. Evaluate performance on validation data.  Measure accuracy or loss and tune hyper-parameters to improve performance

  8. Test the final model
    Run the model on the separate test dataset to estimate real-world performance

  9. Deploy and monitor the model
    Use the trained model in an application and track how well it performs over time

When we first settled on a way to encode melodies into a form compatible with computers, we had no idea how to enter the melodies of tunes.  If a song has a chorus and a set of verses, do we enter the song as it was sung (alternating between verse and chorus).  If entering a symphony, do we enter the whole thing as a single, each movement as a single tune, or each theme within each movement as a single tune.  

In the end, we entered tunes a variety of different ways, but mostly settled on entering  phrases of music long enough to be unique but short enough to avoid a lot of padding, the topic of the next blog.  

We will follow the above plan will last as long as most plans are followed, which means we’ll probably throw it away as soon as we begin to implement it.  That’s because we’ll run into surprises we didn’t plan for, and that’s the nature of exploratory research.  That means we’ll take many detours that deviate from the plan, but we’ll always come back to it because the real point of a plan is to be a constant reminder what your goal is.  Ours is to create an AI model that creates melodies that sound as if a human composed them.

Because we can’t start the posts about training an AI model until we have filed our patent on our system, we will begin by posting how we are finalizing the Skiptune database in this blog, and diving a little into some analytics about the database itself.  Holding off on posting about your idea until one has filed for a patent for it is customary, our lawyers recommend it, and we will follow that advice in this blog.