Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/salu133445/pypianoroll
A toolkit for working with piano rolls
https://github.com/salu133445/pypianoroll
midi music music-generation music-information-retrieval python visulization
Last synced: 3 days ago
JSON representation
A toolkit for working with piano rolls
- Host: GitHub
- URL: https://github.com/salu133445/pypianoroll
- Owner: salu133445
- License: mit
- Created: 2018-01-13T16:42:39.000Z (about 7 years ago)
- Default Branch: main
- Last Pushed: 2023-06-26T08:16:50.000Z (over 1 year ago)
- Last Synced: 2025-01-22T08:08:02.905Z (11 days ago)
- Topics: midi, music, music-generation, music-information-retrieval, python, visulization
- Language: Python
- Homepage: https://salu133445.github.io/pypianoroll/
- Size: 9.63 MB
- Stars: 142
- Watchers: 6
- Forks: 18
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Citation: CITATION.cff
Awesome Lists containing this project
README
Pypianoroll
===========[![GitHub workflow](https://img.shields.io/github/workflow/status/salu133445/pypianoroll/Testing)](https://github.com/salu133445/pypianoroll/actions)
[![Codecov](https://img.shields.io/codecov/c/github/salu133445/pypianoroll)](https://codecov.io/gh/salu133445/pypianoroll)
[![GitHub license](https://img.shields.io/github/license/salu133445/pypianoroll)](https://github.com/salu133445/pypianoroll/blob/main/LICENSE)
[![GitHub release](https://img.shields.io/github/v/release/salu133445/pypianoroll)](https://github.com/salu133445/pypianoroll/releases)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 filesWhy 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](https://github.com/salu133445/pypianoroll/releases) and run `python setup.py install`.
Documentation
-------------Documentation is available [here](https://salu133445.github.io/pypianoroll) 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](https://salu133445.github.io/pypianoroll/)]
[[paper](https://salu133445.github.io/pypianoroll/pdf/pypianoroll_ismir2018_lbd_paper.pdf)]
[[poster](https://salu133445.github.io/pypianoroll/pdf/pypianoroll_ismir2018_lbd_poster.pdf)]
[[code](https://github.com/salu133445/pypianoroll)]
[[documentation](https://salu133445.github.io/pypianoroll/)]Lakh Pianoroll Dataset
----------------------[Lakh Pianoroll Dataset](https://salu133445.github.io/musegan/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](https://salu133445.github.io/musegan) project.