# musegan
**Repository Path**: saber5433/musegan
## Basic Information
- **Project Name**: musegan
- **Description**: An AI for Music Generation
- **Primary Language**: Python
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2020-04-09
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# MuseGAN
[MuseGAN](https://salu133445.github.io/musegan/) is a project on music
generation. In a nutshell, we aim to generate polyphonic music of multiple
tracks (instruments). The proposed models are able to generate music either from
scratch, or by accompanying a track given a priori by the user.
We train the model with training data collected from
[Lakh Pianoroll Dataset](https://salu133445.github.io/lakh-pianoroll-dataset/)
to generate pop song phrases consisting of bass, drums, guitar, piano and
strings tracks.
Sample results are available
[here](https://salu133445.github.io/musegan/results).
## Prerequisites
> __Below we assume the working directory is the repository root.__
### Install dependencies
- Using pipenv (recommended)
> Make sure `pipenv` is installed. (If not, simply run `pip install pipenv`.)
```sh
# Install the dependencies
pipenv install
# Activate the virtual environment
pipenv shell
```
- Using pip
```sh
# Install the dependencies
pip install -r requirements.txt
```
### Prepare training data
> The training data is collected from
[Lakh Pianoroll Dataset](https://salu133445.github.io/lakh-pianoroll-dataset/)
(LPD), a new multitrack pianoroll dataset.
```sh
# Download the training data
./scripts/download_data.sh
# Store the training data to shared memory
./scripts/process_data.sh
```
You can also download the training data manually
([train_x_lpd_5_phr.npz](https://docs.google.com/uc?export=download&id=12Z440hxJSGCIhCSYaX5tbvsQA61WD_RH)).
## Scripts
We provide several shell scripts for easy managing the experiments. (See
[here](scripts/README.md) for a detailed documentation.)
> __Below we assume the working directory is the repository root.__
### Train a new model
1. Run the following command to set up a new experiment with default settings.
```sh
# Set up a new experiment
./scripts/setup_exp.sh "./exp/my_experiment/" "Some notes on my experiment"
```
2. Modify the configuration and model parameter files for experimental settings.
3. You can either train the model:
```sh
# Train the model
./scripts/run_train.sh "./exp/my_experiment/" "0"
```
or run the experiment (training + inference + interpolation):
```sh
# Run the experiment
./scripts/run_exp.sh "./exp/my_experiment/" "0"
```
### Use pretrained models
1. Download pretrained models
```sh
# Download the pretrained models
./scripts/download_pretrained_models.sh
```
You can also download the pretrained models manually
([pretrained_models.tar.gz](https://docs.google.com/uc?export=download&id=1gySWtj5_19jGrwIYd_YT11bide8DJHyN)).
2. You can either perform inference from a trained model:
```sh
# Run inference from a pretrained model
./scripts/run_inference.sh "./exp/default/" "0"
```
or perform interpolation from a trained model:
```sh
# Run interpolation from a pretrained model
./scripts/run_interpolation.sh "./exp/default/" "0"
```
## Sample Results
Some sample results can be found in `./exp/` directory. More samples can be
downloaded from the following links.
- [`sample_results.tar.gz`](https://docs.google.com/uc?export=download&id=1OUWv581V9hWPiPGb_amXBdJX-_qoNDi9) (54.7 MB):
sample inference and interpolation results
- [`training_samples.tar.gz`](https://docs.google.com/uc?export=download&id=1sr68zXGUrX-eC9FGga_Kl58YxZ5R2bc4) (18.7 MB):
sample generated results at different steps
## Papers
__Convolutional Generative Adversarial Networks with Binary Neurons for
Polyphonic Music Generation__
Hao-Wen Dong and Yi-Hsuan Yang
in _Proceedings of the 19th International Society for Music Information
Retrieval Conference_ (ISMIR), 2018.
[[website](https://salu133445.github.io/bmusegan)]
[[arxiv](https://arxiv.org/abs/1804.09399)]
[[paper](https://salu133445.github.io/bmusegan/pdf/bmusegan-ismir2018-paper.pdf)]
[[slides(long)](https://salu133445.github.io/bmusegan/pdf/bmusegan-tmac2018-slides.pdf)]
[[slides(short)](https://salu133445.github.io/bmusegan/pdf/bmusegan-ismir2018-slides.pdf)]
[[poster](https://salu133445.github.io/bmusegan/pdf/bmusegan-ismir2018-poster.pdf)]
[[code](https://github.com/salu133445/bmusegan)]
__MuseGAN: Multi-track Sequential Generative Adversarial Networks for Symbolic
Music Generation and Accompaniment__
Hao-Wen Dong,\* Wen-Yi Hsiao,\* Li-Chia Yang and Yi-Hsuan Yang,
(\*equal contribution)
in _Proceedings of the 32nd AAAI Conference on Artificial Intelligence_
(AAAI), 2018.
[[website](https://salu133445.github.io/musegan)]
[[arxiv](http://arxiv.org/abs/1709.06298)]
[[paper](https://salu133445.github.io/musegan/pdf/musegan-aaai2018-paper.pdf)]
[[slides](https://salu133445.github.io/musegan/pdf/musegan-aaai2018-slides.pdf)]
[[code](https://github.com/salu133445/musegan)]
__MuseGAN: Demonstration of a Convolutional GAN Based Model for Generating
Multi-track Piano-rolls__
Hao-Wen Dong,\* Wen-Yi Hsiao,\* Li-Chia Yang and Yi-Hsuan Yang
(\*equal contribution)
in _Late-Breaking Demos of the 18th International Society for Music Information
Retrieval Conference_ (ISMIR), 2017. (two-page extended abstract)
[[paper](https://salu133445.github.io/musegan/pdf/musegan-ismir2017-lbd-paper.pdf)]
[[poster](https://salu133445.github.io/musegan/pdf/musegan-ismir2017-lbd-poster.pdf)]