• Stars
    star
    132
  • Rank 274,205 (Top 6 %)
  • Language
    Python
  • License
    MIT License
  • Created almost 7 years ago
  • Updated over 1 year ago

Reviews

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

Repository Details

A toolkit for working with piano rolls

Pypianoroll

GitHub workflow Codecov GitHub license GitHub release

Pypianoroll is an open source Python library for working with piano rolls. It provides essential tools for handling multitrack piano rolls, including efficient I/O as well as manipulation, visualization and evaluation tools.

Features

  • Manipulate multitrack piano rolls intuitively
  • Visualize multitrack piano rolls beautifully
  • Save and load multitrack piano rolls in a space-efficient format
  • Parse MIDI files into multitrack piano rolls
  • Write multitrack piano rolls into MIDI files

Why Pypianoroll

Our aim is to provide convenient classes for piano-roll matrix and MIDI-like track information (program number, track name, drum track indicator). Pypianoroll is also designed to provide efficient I/O for piano rolls, since piano rolls have long been considered an inefficient way to store music data due to the sparse nature.

Installation

To install Pypianoroll, please run pip install pypianoroll. To build Pypianoroll 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 the code provided in this repository.

Hao-Wen Dong, Wen-Yi Hsiao, and Yi-Hsuan Yang, "Pypianoroll: Open Source Python Package for Handling Multitrack Pianorolls," in Late-Breaking Demos of the 19th International Society for Music Information Retrieval Conference (ISMIR), 2018.
[homepage] [paper] [poster] [code] [documentation]

Lakh Pianoroll Dataset

Lakh Pianoroll Dataset (LPD) is a new multitrack piano roll dataset using Pypianoroll for efficient data I/O and to save space, which is used as the training dataset in our MuseGAN project.

More Repositories

1

musegan

An AI for Music Generation
Python
1,784
star
2

muspy

A toolkit for symbolic music generation
Python
432
star
3

mmt

Official Implementation of "Multitrack Music Transformer" (ICASSP 2023)
Python
133
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