Beethoven AI

Beethoven AI is an AI experiment to generate MIDI files with paino music that sounds similar to Beethoven.

The Process

1. Get Datset of Beethoven MIDI files

This was relatively easy to find online, if you want the dataset I used, you can find it here.

2. Convert the MIDI files to csv (comma seperated values)

I used a program called midi-csv and updated it for my purposes. With this, I was able to make a 3 mb csv file which I converted to text to train a text generating AI on. If you want the file for your own experiments, you can access it here.

3. Train an AI on my data

For this experiment, I decided to use 2 diffferent text generating AI. char-rnn-tensorflow, written by Andrej Karpathy and ported to Tensorflow by sherjilozair and GPT-2 developed by OpenAI.

4. Get an output from the AI and convert it to MIDI

After training, I took an output from the AI and converted it to a MIDI file.

Actual Beethoven Song

GPT-2

char-rnn-tensorflow