• Stars
    star
    432
  • Rank 100,650 (Top 2 %)
  • Language
    Python
  • License
    MIT License
  • Created over 4 years ago
  • Updated 10 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A toolkit for symbolic music generation

MusPy

GitHub workflow Codecov GitHub license GitHub release

MusPy is an open source Python library for symbolic music generation. It provides essential tools for developing a music generation system, including dataset management, data I/O, data preprocessing and model evaluation.

Features

  • Dataset management system for commonly used datasets with interfaces to PyTorch and TensorFlow.
  • Data I/O for common symbolic music formats (e.g., MIDI, MusicXML and ABC) and interfaces to other symbolic music libraries (e.g., music21, mido, pretty_midi and Pypianoroll).
  • Implementations of common music representations for music generation, including the pitch-based, the event-based, the piano-roll and the note-based representations.
  • Model evaluation tools for music generation systems, including audio rendering, score and piano-roll visualizations and objective metrics.

Why MusPy

A music generation pipeline usually consists of several steps: data collection, data preprocessing, model creation, model training and model evaluation. While some components need to be customized for each model, others can be shared across systems. For symbolic music generation in particular, a number of datasets, representations and metrics have been proposed in the literature. As a result, an easy-to-use toolkit that implements standard versions of such routines could save a great deal of time and effort and might lead to increased reproducibility.

Installation

To install MusPy, please run pip install muspy. To build MusPy from source, please download the source and run python setup.py install.

Documentation

Documentation is available here and as docstrings with the code.

Citing

Please cite the following paper if you use MusPy in a published work:

Hao-Wen Dong, Ke Chen, Julian McAuley, and Taylor Berg-Kirkpatrick, "MusPy: A Toolkit for Symbolic Music Generation," in Proceedings of the 21st International Society for Music Information Retrieval Conference (ISMIR), 2020.

[homepage] [video] [paper] [slides] [poster] [arXiv] [code] [documentation]

Disclaimer

This is a utility library that downloads and prepares public datasets. We do not host or distribute these datasets, vouch for their quality or fairness, or claim that you have license to use the dataset. It is your responsibility to determine whether you have permission to use the dataset under the dataset's license.

If you're a dataset owner and wish to update any part of it (description, citation, etc.), or do not want your dataset to be included in this library, please get in touch through a GitHub issue. Thanks for your contribution to the community!

More Repositories

1

musegan

An AI for Music Generation
Python
1,784
star
2

mmt

Official Implementation of "Multitrack Music Transformer" (ICASSP 2023)
Python
133
star
3

pypianoroll

A toolkit for working with piano rolls
Python
132
star
4

lakh-pianoroll-dataset

A collection of 174,154 multi-track piano-rolls
Python
80
star
5

ismir2019tutorial

Website for tutorial "Generating Music with GANs: An Overview and Case Studies"
Jupyter Notebook
73
star
6

bmusegan

Code for “Convolutional Generative Adversarial Networks with Binary Neurons for Polyphonic Music Generation”
Python
57
star
7

arranger

Official Implementation of "Towards Automatic Instrumentation by Learning to Separate Parts in Symbolic Multitrack Music" (ISMIR 2021)
Python
54
star
8

dan

Source code for "Towards a Deeper Understanding of Adversarial Losses under a Discriminative Adversarial Network Setting"
Python
42
star
9

deepperformer

Deep Performer: Score-to-audio music performance synthesis
SCSS
41
star
10

bach-violin-dataset

A collection of high-quality public recordings of Bach's sonatas and partitas for solo violin (BWV 1001–1006)
Python
32
star
11

musicgpt

Music Generative Pretrained Transformer
Python
26
star
12

binarygan

Code for "Training Generative Adversarial Networks with Binary Neurons by End-to-end Backpropagation"
Python
26
star
13

music-segmentation

Segmentation algorithms adapted for multitrack pianorolls
Jupyter Notebook
9
star
14

chord-analysis

Final project for "Probability and Statistics for Data Science" (UCSD ECE 225, Fall 2019)
Jupyter Notebook
7
star
15

flows

Final project for "Probabilistic Approaches to Unsupervised Learning" (UCSD CSE 291, Fall 2020)
Jupyter Notebook
4
star
16

muspy-exp

Code for the experiments in the paper "MusPy: A Toolkit for Symbolic Music Generation"
Python
4
star
17

meow-meow

A Smart Pet Interaction System
HTML
3
star
18

ntuee-machine-learning

Assignments and final project for "Machine Learning" (NTU EE 5177, 2016 Fall)
Python
1
star
19

music-ai-reading-group

HTML
1
star