Deep Learning Piano

Hi Guys,

I’m a piano enthusiast, but I only play by ear and I’m looking for guide on how to use deep learning to “listen” to pieces and identify and group chord movements and scales that occur throughout the piece, and for each movement or scale, suggest alternatives based on pieces the system has listened to and learnt from. This will significantly reduce practice schedule from one huge monolithic piece a few composite passages that you can learn and get improvisation context from similar movements.

I need your help. This is one way for me to get my hands dirty with a project I care about. If anyone of were to do a project like this, what are the steps you will follow to turn this to a mathematical problem. How will you represent the audio data, what tools or library will you use to read the audio data. What would your process be like? I just need pointers, and I can dig in by myself.

I’m also open to any other alternative angle that you would have approached this from.


Good place to mention that I don’t read music, and I don’t understand musical notations. But my ear is quite good, which is why I want to work on something that “listens”

Since you say “pieces” and not “songs”, I assume you’re talking about classical music primarily?

It’s fairly easy to get a lot of “sheet music” for classical works in computerized format, such as MusicXML files or MIDI files. The advantage of using this instead of audio is that it already contains the annotations you need (the names of the notes, timing data, key signatures etc).

You mention you want your model to learn from audio data, or at least do inference on audio data. So you need to create a lot of training data that the model can learn from. From the computerized sheet music you can extract the training targets, and it’s also possible to convert it into audio using a MIDI synthesizer.

So my first step would be to figure out exactly what sort of training targets you need – i.e. what exactly is the problem you’re trying to solve – and then collect this electronic sheet music and use that to generate training data.

By the way, I realize you said you don’t read music but electronic “sheet music” isn’t like paper sheet music. It’s just a list of the notes being played and their durations, sometimes with annotations like chord names, etc. So just because I called it sheet music doesn’t mean you can’t use it. :wink:

1 Like