AI Based Music Composer
A project that trains a LSTM recurrent neural network over a dataset of MIDI files. More information can be found on the writeup about this project. This the code for 'Build an AI Composer' on Youtube
- Numpy (http://www.numpy.org/)
- Tensorflow (https://github.com/tensorflow/tensorflow)
- Python Midi (https://github.com/vishnubob/python-midi.git)
- Mingus (https://github.com/bspaans/python-mingus)
Use pip to install any missing dependencies
- Step 1: Tensorflow version 0.8.0 must be used. On Tensorflow's download page here, scroll down to "Pip Installation". Follow the first step normally.
You will see "export TF_BINARY_URL" followed by a URL. Modify the part of the url that has "tensorflow-0.10.0", so that it will download version 0.8.0, not version 0.10.0 "tensorflow-0.8.0.
Example of the modified url, for the Python 2.7 CPU version of Tensorflow:
export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.8.0-cp27-none-linux_x86_64.whl
sudo pip install --upgrade $TF_BINARY_URL
Follow the third step normally to install Tensorflow.
- Step 2: After installing Tensorflow, you will have to install the missing dependencies:
pip install matplotlib
sudo apt-get install python-tk
pip install numpy
- Step 3:
cd ~
git clone https://github.com/vishnubob/python-midi
cd python-midi
python setup.py install
cd ~
git clone https://github.com/bspaans/python-mingus
cd python-mingus
python setup.py install
mkdir data && mkdir models
- run 'python main.py'. This will collect the data, create the chord mapping file in data/nottingham.pickle, and train the model
- Run
python rnn_sample.py --config_file new_config_file.config
to generate a new MIDI song.
Give it 1-2 hours to train on your local machine, then generate the new song.