As part of my Masters in Computer Science at the University of Montreal in 2004-2005, I have treated the subject of automatic music composition. Using machine learning techniques, my algorithm was able to compose new songs in the same style as the songs used to train the algorithm.
For more details on the techniques used, my master thesis is available in PDF (memoire.pdf in french).
You can download a few songs composed by my algorithms. There are three sets of experiments : « Walking bass », « Songs » et « Songs and chords ». Finally, the training sets used for each of the experiments are available for download.
Representation | 1 block - 1 cell | 2 blocks - 1 cell / block |
---|---|---|
Local | lstm_1_1_local.mid | lstm_2_1_local.mid |
Shepard | lstm_1_1_shep.mid | lstm_2_1_shep.mid |
Frequency | lstm_1_1_freq.mid | lstm_2_1_freq.mid |
Metric structure - Local | lstm_1_1_sm_local.mid | lstm_2_1_freq.mid |
Metric structure - Shepard | lstm_1_1_sm_shep.mid | lstm_2_1_sm_shep.mid |
Metric structure - Frequency | lstm_1_1_sm_freq.mid | lstm_2_1_sm_freq.mid |
Model | Representation | Download |
---|---|---|
LSTM 2 blocks - 2 cells / block 0 hidden unit |
Local (with metric structure) |
lstm_meter_local_b2c2h0.mid lstm_meter_local_b2c2h0.mp3 |
LSTM 2 blocks - 2 cells / block 16 hidden units |
Shepard (with metric structure) |
lstm_meter_shep_b2c2h16.mid lstm_meter_shep_b2c2h16.mp3 |
Model | Representation | Download |
---|---|---|
LSTM 2 blocks - 2 cells / block 16 hidden units |
Local (with metric structure) |
lstm_meterlocal_b2c2h16.mid lstm_meterlocal_b2c2h16.mp3 |
LSTM 2 blocks - 2 cells / block 0 hidden unit |
Frequency (with metric structure) |
lstm_meterfreq_b2c2h0.mid lstm_meterfreq_b2c2h0.mp3 |
Model | Download |
---|---|
Walking bass | train_wb.tar.gz |
Songs | thesession.tar.gz |
Songs and chords | nottingham.tar.gz |