Skip to content
A python package for handling multi-track piano-rolls.
Branch: master
Clone or download
Latest commit 6224dc1 Dec 18, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
doc Add metric module documentation Nov 15, 2018
docs Update documentation Nov 15, 2018
examples Use inline mode of matplotlib Jan 27, 2018
pypianoroll Remove attribute call Dec 6, 2018
tests Fix typo in paper title Nov 14, 2018
.gitignore Initial commit Jan 13, 2018
.travis.yml Use pytest and coverage May 18, 2018
LICENSE.txt Add extension Jan 26, 2018
README.rst Fix bad font setting Dec 18, 2018 Change eol to LF May 18, 2018



A python package for handling multi-track piano-rolls.


  • handle piano-rolls of multiple tracks with metadata
  • utilities for manipulating piano-rolls
  • save to and load from .npz files using efficient sparse matrix format
  • parse from and write to MIDI files


To install Pypianoroll from PYPI:

$ pip install pypianoroll

To install Pypianoroll manually (please download the source code from either PYPI or Github first):

$ python install


Documentation is provided as docstrings with the code. An online version is also available here.


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

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 18th International Society for Music Information Retrieval Conference (ISMIR), 2018.

Here are the :download:`paper <pdf/pypianoroll-ismir2018-lbd-paper.pdf>` and the :download:`poster <pdf/pypianoroll-ismir2018-lbd-poster.pdf>`.

You can’t perform that action at this time.