2 June , 2025
Automatic Composition
Using Recurrent Neural Networks and Metric Structure
As part of my Masters in Computer Science at the University of Montréal in 2004–2005, I 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’s 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” and “Songs and chords.” Finally, the training sets used for each of the experiments are available for download.
Walking bass
| 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 |
Songs
| 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 |
Songs and chords
| 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 |
Training sets
| Model | Download |
|---|---|
| Walking bass | train_wb.tar.gz |
| Songs | thesession.tar.gz |
| Songs and chords | nottingham.tar.gz |