This project focuses on comparison of different generative methods in music generation. We use the exact setting of DeepJazz (preprocessing, grammar, generation pipeline, input / output dimension, certain hyperparameters, etc.) such that a concise and direct of comparison among different models can be observed.
We Acknowledge the great effort by DeepJazz team, it laid a great foundation and interface for our future work. So we can focus on higher-level model selection and comparison.
/data # store original training data /result # store generation result /utils # preprocessing, grammar, helper function /future # WIP, future work and adaptation lstm.py # models, including LSTM, VAE-LSTM, BI-LSTM generator.py # project interface
Code reference and baseline template
- Deep Jazz
Paper reference in implementation
Chen, K., Zhang, W., Dubnov, S., Xia, G., & Li, W. (2019, January). The effect of explicit structure encoding of deep neural networks for symbolic music generation. In 2019 International Workshop on Multilayer Music Representation and Processing (MMRP) (pp. 77-84). IEEE.
Performance-RNN by Margenta
- Temperature and randomness
To download the larger Yamaha e-Piano Competition Dataset, from:
- Malik, I., & Ek, C. H. (2017). Neural translation of musical style. arXiv preprint arXiv:1708.03535. Use this link: http://imanmalik.com/assets/dataset/TPD.zip
generator.py for public interface
lstm model and train 2 epochs
python generator.py --model-choice "lstm" --epochs 2
vae-lstm model and train 1 epochs
python generator.py --model-choice "vae-lstm" --epochs 1
bi-lstm model and train 128 epochs
python generator.py --model-choice "bi-lstm" --epochs 128
bi-lstm model and train 2 epochs, with diversity 0.7
python generator.py --model-choice "bi-lstm" --epochs 2 --diversity 0.7
python 2.7 keras tensorflow music21 numpy