Skip to content
AI Composer for Machine Learning for Hackers #2
Branch: master
Clone or download
Latest commit 434817d Sep 19, 2016
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
generated_music/mp3 added nottingham sample Mar 31, 2016
.gitignore added images Mar 31, 2016
README.md Update README.md Sep 19, 2016
dataset.zip
main.py fix error May 9, 2016
midi_util.py added some documentation Mar 31, 2016
model.py added some documentation Mar 31, 2016
nottingham_util.py first May 8, 2016
rnn.py
rnn_sample.py some more documentation cleanup Mar 31, 2016
rnn_separate.py added rnn allg Mar 27, 2016
rnn_test.py
sampling.py
util.py

README.md

Overview

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

Dependencies

Use pip to install any missing dependencies

Installation (Tested on Ubuntu 16.04)

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

Basic Usage

  1. mkdir data && mkdir models
  2. run 'python main.py'. This will collect the data, create the chord mapping file in data/nottingham.pickle, and train the model
  3. 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. You don't have to wait for it to finish, just wait until you see the 'saving model' message in terminal. In a future video, I'll talk about how to easily setup cloud GPU training. Likely using www.fomoro.com

Credits

Credit for the vast majority of code here goes to Yoav Zimmerman. I've merely created a wrapper around all of the important functions to get people started.

You can’t perform that action at this time.