Skip to main content

GitHub PyPI GitHub Release Date GitHub repo size

ms3 - Parsing MuseScore 3 and 4

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

import ms3
score = ms3.Score('musescore_file.mscz')

Parsing a corpus

import ms3
corpus = ms3.Corpus('score_directory')
corpus.parse()

Parsing several corpora

import ms3
corpora = ms3.Parse('my_research_corpora')
corpora.parse()

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.

Project generated with PyScaffold

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ms3-2.6.4.tar.gz (11.8 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ms3-2.6.4-py3-none-any.whl (347.9 kB view details)

Uploaded Python 3

File details

Details for the file ms3-2.6.4.tar.gz.

File metadata

  • Download URL: ms3-2.6.4.tar.gz
  • Upload date:
  • Size: 11.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.10.12

File hashes

Hashes for ms3-2.6.4.tar.gz
Algorithm Hash digest
SHA256 a17d53228a9b9aa9a7f23769b5f226d4570b44031d3b297dbc198b37ead53af3
MD5 d0681afabdb326d0f96e36a48c6f5151
BLAKE2b-256 80a20a26cb276ddf9fbb557d0d8ad1b2f266a44b836876c90b9966fee4cd86ad

See more details on using hashes here.

File details

Details for the file ms3-2.6.4-py3-none-any.whl.

File metadata

  • Download URL: ms3-2.6.4-py3-none-any.whl
  • Upload date:
  • Size: 347.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.10.12

File hashes

Hashes for ms3-2.6.4-py3-none-any.whl
Algorithm Hash digest
SHA256 192112fc50d0ff2a5177332a62e2e7db52a33f3b0e799794783c365e6e323bdf
MD5 3f68f267e05c268f0bfa9713cd99dbab
BLAKE2b-256 16177152f847102e859943a97929506843cb5698d91755b0a924e8d2415b1451

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

2.6.4 This release

2 files

2.6.3

2 files

2.6.2

2 files

2.6.1

2 files

2.6.0

2 files

2.5.4

2 files

2.5.3

2 files

2.5.2

2 files

2.5.1

2 files

2.5.0

2 files

2.4.4

2 files

2.4.3

2 files

2.4.2

2 files

2.4.1

2 files

2.4.0

2 files

2.3.1

2 files

2.3.0

2 files

2.2.2

2 files

2.2.1

2 files

2.2.0

2 files

2.1.1

2 files

2.1.0

2 files

2.0.1

2 files

2.0.0

2 files

1.2.12

2 files

1.2.11

2 files

1.2.10

2 files

1.2.9

2 files

1.2.8

2 files

1.2.7

2 files

1.2.6

2 files

1.2.5

2 files

1.2.4

2 files

1.2.3

2 files

1.2.2

2 files

1.2.1

2 files

1.2.0

2 files

1.1.2

2 files

1.1.1

2 files

1.1.0

2 files

1.0.4

2 files

1.0.3

2 files

1.0.2

2 files

1.0.1

2 files

1.0.0

2 files

0.5.3

2 files

0.5.2

2 files

0.5.1

2 files

0.5.0

2 files

0.4.11

2 files

0.4.10

2 files

0.4.9

2 files

0.4.8

2 files

0.4.7

2 files

0.4.6

2 files

0.4.5

2 files

0.4.4

0.4.3

2 files

0.4.2

2 files

0.4.1

2 files

0.4.0

2 files

0.3.0

2 files

0.2.0

2 files

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page