muspy

A toolkit for symbolic music generation

https://github.com/salu133445/muspy

Science Score: 64.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: arxiv.org
  • Committers with academic emails
    2 of 12 committers (16.7%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.9%) to scientific vocabulary

Keywords

audio machine-learning music music-generation music-information-retrieval python
Last synced: 6 months ago · JSON representation ·

Repository

A toolkit for symbolic music generation

Basic Info
Statistics
  • Stars: 490
  • Watchers: 8
  • Forks: 54
  • Open Issues: 25
  • Releases: 6
Topics
audio machine-learning music music-generation music-information-retrieval python
Created almost 6 years ago · Last pushed 6 months ago
Metadata Files
Readme Funding License Citation

README.md

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!

Owner

  • Name: Hao-Wen (Herman) Dong 董皓文
  • Login: salu133445
  • Kind: user
  • Location: USA/Taiwan
  • Company: UC San Diego

Assistant Professor at University of Michigan | PhD from UC San Diego | Human-Centered Generative AI for Content Generation

Citation (CITATION.cff)

cff-version: 1.2.0
message: If you use this software, please cite it using these metadata.
authors:
  - family-names: Dong
    given-names: Hao-Wen
title: MusPy
preferred-citation:
  type: article
  authors:
    - family-names: Dong
      given-names: Hao-Wen
    - family-names: Chen
      given-names: Ke
    - family-names: McAuley
      given-names: Julian
    - family-names: Berg-Kirkpatrick
      given-names: Taylor
  title: "MusPy: A Toolkit for Symbolic Music Generation"
  journal: Proceedings of the 21st International Society for Music Information Retrieval Conference (ISMIR)
  year: 2020
date-released: 2020-08-28
license: MIT
url: "https://salu133445.github.io/muspy/"
repository-code: "https://github.com/salu133445/muspy"

GitHub Events

Total
  • Watch event: 54
  • Member event: 1
  • Push event: 12
  • Pull request event: 1
  • Fork event: 6
  • Create event: 1
Last Year
  • Watch event: 54
  • Member event: 1
  • Push event: 12
  • Pull request event: 1
  • Fork event: 6
  • Create event: 1

Committers

Last synced: 9 months ago

All Time
  • Total Commits: 617
  • Total Committers: 12
  • Avg Commits per committer: 51.417
  • Development Distribution Score (DDS): 0.152
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Hao-Wen Dong s****g@g****m 523
cmoczuls c****i@s****l 25
Zuzanna Górecka z****a@r****y 20
Ondrej Cifka c****o 16
apiekarz a****z@s****l 14
RetroCirce r****e@1****m 5
Néstor Nápoles López n****n@g****m 5
Danlu Chen t****u@g****m 4
annahung31 f****g@g****m 2
instr3 i****3@1****m 1
Yuji Kanagawa y****a@o****p 1
Matan Gover m****r@g****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 54
  • Total pull requests: 23
  • Average time to close issues: 3 months
  • Average time to close pull requests: 11 days
  • Total issue authors: 26
  • Total pull request authors: 11
  • Average comments per issue: 2.0
  • Average comments per pull request: 3.22
  • Merged pull requests: 16
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 1
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 1
  • Average comments per issue: 0
  • Average comments per pull request: 0.0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • cifkao (16)
  • salu133445 (7)
  • jeremyjordan (3)
  • ldzhangyx (3)
  • raymondtoh94 (2)
  • napulen (2)
  • TwinMooon (2)
  • nuoyi-618 (1)
  • asigalov61 (1)
  • kaosbeat (1)
  • iLykTurtlz (1)
  • thepowerKey (1)
  • jamesliu (1)
  • Sunnycl (1)
  • cythc (1)
Pull Request Authors
  • cifkao (10)
  • napulen (3)
  • annahung31 (2)
  • Jungliana (2)
  • blankRiot96 (1)
  • jeremyjordan (1)
  • kngwyu (1)
  • TwinMooon (1)
  • matangover (1)
  • salu133445 (1)
  • maximoskp (1)
Top Labels
Issue Labels
enhancement (17) bug (10) question (3) good first issue (3) documentation (2) help wanted (1)
Pull Request Labels
bug (5) enhancement (2)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 595 last-month
  • Total dependent packages: 2
  • Total dependent repositories: 7
  • Total versions: 6
  • Total maintainers: 1
pypi.org: muspy

A toolkit for symbolic music generation

  • Versions: 6
  • Dependent Packages: 2
  • Dependent Repositories: 7
  • Downloads: 595 Last month
Rankings
Stargazers count: 3.3%
Dependent packages count: 4.8%
Dependent repos count: 5.6%
Average: 5.8%
Forks count: 5.9%
Downloads: 9.5%
Maintainers (1)
Last synced: 6 months ago

Dependencies

setup.py pypi
  • PyYAML >=3.0
  • bidict >=0.21
  • joblib >=0.15
  • matplotlib >=1.5
  • miditoolkit >=0.1
  • mido >=1.0
  • music21 >=6.0
  • pretty-midi >=0.2
  • pypianoroll >=1.0
  • requests >=2.0
  • tqdm >=4.0