ms3
ms3: A parser for MuseScore files, serving as data factory for annotated music corpora - Published in JOSS (2023)
Science Score: 95.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 1 DOI reference(s) in JOSS metadata -
○Academic publication links
-
✓Committers with academic emails
2 of 8 committers (25.0%) from academic institutions -
○Institutional organization owner
-
✓JOSS paper metadata
Published in Journal of Open Source Software
Keywords
corpus
corpus-data
corpus-generator
corpus-processing
corpus-tools
musescore
musescore2
musescore3
musescore4
music-score
music-scores
parser
sheet-music
sheet-music-parser
tsv
tsv-files
tsv-format
xml-parser
xml-parser-library
xml-parsing
Keywords from Contributors
standardization
Last synced: 6 months ago
·
JSON representation
Repository
A parser for annotated MuseScore 3 files.
Basic Info
- Host: GitHub
- Owner: johentsch
- License: gpl-3.0
- Language: Python
- Default Branch: main
- Homepage: https://ms3.readthedocs.io
- Size: 105 MB
Statistics
- Stars: 49
- Watchers: 1
- Forks: 4
- Open Issues: 26
- Releases: 60
Topics
corpus
corpus-data
corpus-generator
corpus-processing
corpus-tools
musescore
musescore2
musescore3
musescore4
music-score
music-scores
parser
sheet-music
sheet-music-parser
tsv
tsv-files
tsv-format
xml-parser
xml-parser-library
xml-parsing
Created almost 6 years ago
· Last pushed 11 months ago
Metadata Files
Readme
Contributing
License
Authors
Codemeta
README.rst
|license| |version| |release| |size|
.. |license| image:: https://img.shields.io/github/license/johentsch/ms3?color=%230000ff
:alt: GitHub
.. |release| image:: https://img.shields.io/github/release-date/johentsch/ms3
:alt: GitHub Release Date
.. |size| image:: https://img.shields.io/github/repo-size/johentsch/ms3
:alt: GitHub repo size
.. .. |tests| image:: https://img.shields.io/github/workflow/status/johentsch/ms3/run_tests/main?label=tests
:alt: GitHub Workflow Status (branch)
.. |version| image:: https://img.shields.io/pypi/v/ms3?color=%2300
:alt: PyPI
.. These are examples of badges you might want to add to your README:
please update the URLs accordingly
.. image:: https://readthedocs.org/projects/ms3/badge/?version=latest
:alt: ReadTheDocs
:target: https://ms3.readthedocs.io/en/stable/
.. image:: https://img.shields.io/coveralls/github//ms3/main.svg
:alt: Coveralls
:target: https://coveralls.io/r//ms3
.. image:: https://img.shields.io/pypi/v/ms3.svg
:alt: PyPI-Server
:target: https://pypi.org/project/ms3/
.. image:: https://pepy.tech/badge/ms3/month
:alt: Monthly Downloads
:target: https://pepy.tech/project/ms3
===============================
ms3 - Parsing MuseScore 3 and 4
===============================
..
Plan to use
.. include:: ./docs/intro.rst
failed because of PyPi
Welcome to **ms3**, a Python library for parsing `MuseScore `__ files.
Statement of need
=================
Here comes a list of functionalities to help you decide if this library could be useful for you.
* parses MuseScore 3 and 4 files, dispensing with lossy conversion to musicXML. The file formats in question are
* uncompressed ``*.mscx`` files,
* compressed ``*.mscz`` files,
* extracts and processes the information contained in one or many scores in the form of
`DataFrames `__:
* **notes** (start, duration, pitch etc.) and/or rests,
* **measures** (time signature, lengths, repeat structure etc.)
* **labels**, such as
* guitar/Jazz chord labels
* arbitrary annotation labels
* **expanded** harmony labels following the `DCML annotation standard `__
* **cadences** (part of the same annotation syntax)
* **form_labels** (annotation standard currently in press)
* **chords**, that is, onset positions that have musical markup attached, e.g. dynamics, lyrics, slurs, 8va signs...
* **metadata** from the respective fields, but also score statistics, such as length, number of notes, etc.
* stores the extracted information in a uniform and interoperable tabular format (``*.tsv``)
* writes information from tabular ``*.tsv`` files into MuseScore files, especially
* chord and annotation labels
* metadata
* header information (title, subtitle, etc.)
* note coloring
* uses a locally installed or standalone MuseScore executable for
* batch-converting files to any output format supported by MuseScore (mscz, mscx, mp3, midi, pdf etc.)
* on-the-fly converting any file that MuseScore can read (including MuseScore 2, cap, capx, midi, and musicxml) to parse it
* offers its functionality via the convenient ``ms3`` commandline interface.
View the `full documentation here `__.
For a demo video (using an old, pre-1.0.0 version) on YouTube, `click here `__
Installation
============
ms3 requires Python >= 3.10 (type ``python3 --version`` to check). Once you have switched to a virtual environment
that has Python 3.10 installed you can pip-install the library via one of the two commands::
python3 -m pip install ms3
pip install ms3
If successful, the installation will make the ``ms3`` commands available in your PATH (try by typing ``ms3``).
Quick demo
==========
Parsing a single score
----------------------
.. code-block:: python
import ms3
score = ms3.Score('musescore_file.mscz')
Parsing a corpus
----------------
.. code-block:: python
import ms3
corpus = ms3.Corpus('score_directory')
corpus.parse()
Parsing several corpora
-----------------------
.. code-block:: python
import ms3
corpora = ms3.Parse('my_research_corpora')
corpora.parse()
.. _pyscaffold-notes:
Making Changes & Contributing
=============================
This project uses `pre-commit `__ to ensure code quality. If you are a developer,
please make sure to install it before making any changes::
cd ms3
pip install -e ".[dev]" # includes "pip install pre-commit"
pre-commit install
Acknowledgements
================
Development of this software tool was supported by the Swiss National Science Foundation within the project “Distant
Listening – The Development of Harmony over Three Centuries (1700–2000)” (Grant no. 182811). This project is being
conducted at the Latour Chair in Digital and Cognitive Musicology, generously funded by Mr. Claude Latour.
.. image:: https://img.shields.io/badge/-PyScaffold-005CA0?logo=pyscaffold
:alt: Project generated with PyScaffold
:target: https://pyscaffold.org/
Owner
- Name: Johannes Hentschel
- Login: johentsch
- Kind: user
- Location: Lausanne
- Company: @DCMLab
- Repositories: 3
- Profile: https://github.com/johentsch
Music education, music theory, and Romance studies in Freiburg i. Br., Lübeck, and Helsinki. PhD candidate @ Digital and Cognitive Musicology Lab @ EPFL
JOSS Publication
ms3: A parser for MuseScore files, serving as data factory for annotated music corpora
Published
August 14, 2023
Volume 8, Issue 88, Page 5195
Authors
Tags
python music scores corpus corpora data musescore tab-separated valuesCodeMeta (codemeta.json)
{
"@context": "https://doi.org/10.5063/schema/codemeta-2.0",
"@type": "SoftwareSourceCode",
"license": "https://spdx.org/licenses/AGPL-3.0",
"codeRepository": "git+https://github.com/johentsch/ms3.git",
"dateCreated": "2020-05-03",
"datePublished": "2020-07-06",
"issueTracker": "https://github.com/johentsch/ms3/issues",
"name": "ms3",
"description": "A parser for MuseScore 3 files and data factory for annotated music corpora.",
"applicationCategory": "Music",
"funding": "Swiss National Science Foundation (Grant no. 182811), Mr. Claude Latour (Latour Chair in Digital and Cognitive Musicology)",
"funder": {
"@type": "Organization",
"name": "École Polytechnique Fédérale de Lausanne, Digital and Cognitive Musicology Lab"
},
"keywords": [
"python",
"music",
"scores",
"corpus",
"corpora",
"data",
"musescore",
"tab-separated values"
],
"programmingLanguage": [
"Python 3"
],
"operatingSystem": [
"Linux",
"Windows",
"macOS"
],
"softwareRequirements": [
"https://musescore.org/en/3.6.2 (optional)"
],
"relatedLink": [
"https://github.com/DCMLab/dcml_corpora"
],
"author": [
{
"@type": "Person",
"@id": "https://orcid.org/0000-0002-1986-9545",
"givenName": "Johannes",
"familyName": "Hentschel",
"email": "johannes.hentschel@epfl.ch",
"affiliation": {
"@type": "Organization",
"name": "Digital and Cognitive Musicology Lab, École Polytechnique Fédérale de Lausanne"
}
}
],
"contributor": [
{
"@type": "Person",
"givenName": "Arina",
"familyName": "Lozhkina",
"email": "arina.lozhkina@epfl.ch",
"affiliation": {
"@type": "Organization",
"name": "École Polytechnique Fédérale de Lausanne"
}
}
]
}
GitHub Events
Total
- Create event: 7
- Release event: 2
- Issues event: 7
- Watch event: 8
- Delete event: 7
- Issue comment event: 2
- Push event: 11
- Pull request review event: 1
- Pull request event: 7
Last Year
- Create event: 7
- Release event: 2
- Issues event: 7
- Watch event: 8
- Delete event: 7
- Issue comment event: 2
- Push event: 11
- Pull request review event: 1
- Pull request event: 7
Committers
Last synced: 7 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| johentsch | j****l@e****h | 1,399 |
| arinalozhkina | a****a@e****h | 61 |
| naulitus | 9****u | 28 |
| github-actions[bot] | 4****] | 8 |
| johentsch | j****l@b****t | 7 |
| Johannes Hentschel | j****l | 3 |
| Fabian-Robert Stöter | f****t | 1 |
| laserjeyes | j****s@w****e | 1 |
Committer Domains (Top 20 + Academic)
epfl.ch: 2
bruckneruni.at: 1
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 76
- Total pull requests: 59
- Average time to close issues: 5 months
- Average time to close pull requests: 4 days
- Total issue authors: 12
- Total pull request authors: 6
- Average comments per issue: 0.87
- Average comments per pull request: 0.63
- Merged pull requests: 55
- Bot issues: 0
- Bot pull requests: 10
Past Year
- Issues: 7
- Pull requests: 10
- Average time to close issues: N/A
- Average time to close pull requests: 26 minutes
- Issue authors: 1
- Pull request authors: 2
- Average comments per issue: 0.0
- Average comments per pull request: 0.3
- Merged pull requests: 10
- Bot issues: 0
- Bot pull requests: 5
Top Authors
Issue Authors
- johentsch (45)
- allorens (14)
- apmcleod (4)
- TGabor (3)
- schef (1)
- mattblessing (1)
- fabianmoss (1)
- m-k94 (1)
- DIDONEproject (1)
- kevinlinxc (1)
- faroit (1)
- martianbug (1)
Pull Request Authors
- johentsch (40)
- github-actions[bot] (16)
- arinaLozhkina (6)
- leobruneau (3)
- Pythouille2 (1)
- faroit (1)
Top Labels
Issue Labels
enhancement (24)
bug (22)
wontfix (1)
Pull Request Labels
autorelease: tagged (8)
autorelease: pending (8)
Packages
- Total packages: 1
-
Total downloads:
- pypi 397 last-month
- Total dependent packages: 2
- Total dependent repositories: 1
- Total versions: 62
- Total maintainers: 1
pypi.org: ms3
A parser for MuseScore files, serving as data factory for annotated music corpora.
- Homepage: https://github.com/johentsch/ms3
- Documentation: https://ms3.readthedocs.io/
- License: GPL-3.0-only
-
Latest release: 2.6.0
published 11 months ago
Rankings
Dependent packages count: 3.1%
Stargazers count: 11.7%
Downloads: 13.2%
Average: 13.3%
Forks count: 16.8%
Dependent repos count: 21.7%
Maintainers (1)
Last synced:
6 months ago
Dependencies
docs/requirements.txt
pypi
- cloud_sptheme *
- sphinx *
pyproject.toml
pypi
setup.py
pypi
.github/workflows/release-please.yml
actions
- google-github-actions/release-please-action v3 composite
