salu133445 / bmusegan

Code for “Convolutional Generative Adversarial Networks with Binary Neurons for Polyphonic Music Generation”
https://salu133445.github.io/bmusegan/
MIT License
58 stars 13 forks source link
binary-neuron generative-adversarial-network machine-learning multi-track music-generation piano-roll

BinaryMuseGAN

BinaryMuseGAN is a follow-up project of the MuseGAN project. In this project, we first investigate how the real-valued piano-rolls generated by the generator may lead to difficulties in training the discriminator for CNN-based models. To overcome the binarization issue, we propose to append to the generator an additional refiner network, which try to refine the real-valued predictions generated by the pretrained generator to binary-valued ones. The proposed model is able to directly generate binary-valued piano-rolls at test time.

We trained the network with training data collected from Lakh Pianoroll Dataset. We used the model to generate four-bar musical phrases consisting of eight tracks: Drums, Piano, Guitar, Bass, Ensemble, Reed, Synth Lead and Synth Pad. Audio samples are available here.

Run the code

Configuration

Modify config.py for configuration.

Run

python main.py

Training data

Citing

Please cite the following paper if you use the code provided in this repository.

Hao-Wen Dong and Yi-Hsuan Yang, "Convolutional Generative Adversarial Networks with Binary Neurons for Polyphonic Music Generation," Proceedings of the 19th International Society for Music Information Retrieval Conference (ISMIR), 2018.
[homepage] [video] [paper] [slides] [slides (long)] [poster] [arXiv] [code]