Skip to main content

A command line tool to manipulate the XML based *.mscX and *.mscZ files of the notation software MuseScore.

Project description

.. image:: http://img.shields.io/pypi/v/mscxyz.svg
:target: https://pypi.python.org/pypi/mscxyz

.. image:: https://travis-ci.org/Josef-Friedrich/mscxyz.svg?branch=master
:target: https://travis-ci.org/Josef-Friedrich/mscxyz

======
mscxyz
======

Manipulate the XML based *.mscx files of the notation software MuseScore.

Installation
============

From Github
------------

.. code:: Shell

git clone git@github.com:Josef-Friedrich/mscxyz.git
cd mscxyz
python setup.py install

From PyPI
----------

.. code:: Shell

pip install mscxyz
easy_install mscxyz

Usage
=====


mscxyz
======

.. code-block:: text

usage: mscx-manager [-h] [-V] [-b] [-g GLOB] [-p PICK] [-c CYCLE_LENGTH] [-v]
{clean,meta,lyrics,rename,export,help} ... path

A command line tool to manipulate the XML based *.mscX and *.mscZ files of the
notation software MuseScore.

positional arguments:
path Path to a *.mscx file or a folder which contains
*.mscx files. In conjunction with the subcommand
"help" this positional parameter accepts the names of
all other subcommands or the word "all".

optional arguments:
-h, --help show this help message and exit
-V, --version show program's version number and exit
-b, --backup Create a backup file.
-g GLOB, --glob GLOB Handle only files which matches against Unix style
glob patterns (e. g. "*.mscx", "* - *"). If you omit
this option, the standard glob pattern "*.mscx" is
used.
-p PICK, --pick PICK The --pick option can be used to run multiple
mscxyz.py commands in parallel on multiple consoles.
If you like so, using this option a "poor man's
multithreading" can be accomplished. Multicore CPUs
can be used to full capacity. By default every fourth
file gets picked up. The option "-p N" begins the
picking on the Nth file of a cycle. The corresponding
option is named "-c" or "--cycle-length".
-c CYCLE_LENGTH, --cycle-length CYCLE_LENGTH
This option specifies the distance between the picked
files. The option "-c N" picks every Nth file. The
corresponding options is named "-p" or "--pick".
-v, --verbose Make commands more verbose. You can specifiy multiple
arguments (. g.: -vvv) to make the command more
verbose.

Subcommands:
{clean,meta,lyrics,rename,export,help}
Run "subcommand --help" for more informations.
clean Clean and reset the formating of the *.mscx file
meta Synchronize the values of the first vertical frame
(title, composer, lyricist) with the corresponding
metadata fields.
lyrics Extract lyrics. Without any option this subcommand
extracts all lyrics verses into separate mscx files.
This generated mscx files contain only one verse. The
old verse number is appended to the file name, e. g.:
score_1.mscx.
rename Rename the *.mscx files.
export Export the scores to PDFs or to the specified
extension.
help Show help. Use "mscxyz.py help all" to show help
messages of all subcommands. Use "mscxyz.py help
<subcommand>" to show only help messages for the given
subcommand.


Subcommands
===========


mscx-manager rename
-------------------

.. code-block:: text

usage: mscx-manager rename [-h] [-d] [-f FORMAT] [-a] [-n]

Tokens you can use in the format string (-f, --format):

optional arguments:
-h, --help show this help message and exit
-d, --dry-run Do not rename the scores
-f FORMAT, --format FORMAT
Format string.
-a, --ascii Use only ASCII characters.
-n, --no-whitespace Replace all whitespaces with dashes or sometimes
underlines.


mscx-manager help
-----------------

.. code-block:: text

usage: mscx-manager help [-h] [-m] [-r]

optional arguments:
-h, --help show this help message and exit
-m, --markdown Show help in markdown format. This option enables to
generate the README file directly form the command line
output.
-r, --rst Show help in reStructuresText format. This option enables to
generate the README file directly form the command line
output.


mscx-manager lyrics
-------------------

.. code-block:: text

usage: mscx-manager lyrics [-h] [-e EXTRACT] [-r REMAP] [-f]

optional arguments:
-h, --help show this help message and exit
-e EXTRACT, --extract EXTRACT
The lyric verse number to extract or "all".
-r REMAP, --remap REMAP
Remap lyrics. Example: "--remap 3:2,5:3". This example
remaps lyrics verse 3 to verse 2 and verse 5 to 3. Use
commas to specify multiple remap pairs. One remap pair
is separated by a colon in this form: "old:new": "old"
stands for the old verse number. "new" stands for the
new verse number.
-f, --fix Fix lyrics: Convert trailing hyphens ("la- la- la") to
a correct hyphenation ("la - la - la")


mscx-manager meta
-----------------

.. code-block:: text

usage: mscx-manager meta [-h] [-j] [-s]

# XML structure of a meta tag:

<metaTag name="tag"></metaTag>

# All meta tags:

- arranger
- composer
- copyright
- creationDate
- lyricist
- movementNumber
- movementTitle
- originalFormat
- platform
- poet
- source
- translator
- workNumber
- workTitle

# XML structure of a vbox tag:

<VBox>
<Text>
<style>Title</style>
<text>Some title text</text>
</Text>

# All vbox tags:

- Title
- Subtitle
- Composer
- Lyricis

optional arguments:
-h, --help show this help message and exit
-j, --json Additionally write the metadata to a json file.
-s, --show Show all metadata.


mscx-manager export
-------------------

.. code-block:: text

usage: mscx-manager export [-h] [-e EXTENSION]

optional arguments:
-h, --help show this help message and exit
-e EXTENSION, --extension EXTENSION
Extension to export. If this option is omitted, then
the default extension is "pdf".


mscx-manager clean
------------------

.. code-block:: text

usage: mscx-manager clean [-h] [-s STYLE]

optional arguments:
-h, --help show this help message and exit
-s STYLE, --style STYLE
Load a *.mss style file and include the contents of
this file.


Development
===========

Test
----

::

tox


Publish a new version
---------------------

::

git tag 1.1.1
git push --tags
python setup.py sdist upload


Package documentation
---------------------

The package documentation is hosted on
`readthedocs <http://mscxyz.readthedocs.io>`_.

Generate the package documentation:

::

python setup.py build_sphinx

Project details


Download files

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

Source Distribution

mscxyz-0.0.9.tar.gz (32.6 kB view details)

Uploaded Source

File details

Details for the file mscxyz-0.0.9.tar.gz.

File metadata

  • Download URL: mscxyz-0.0.9.tar.gz
  • Upload date:
  • Size: 32.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for mscxyz-0.0.9.tar.gz
Algorithm Hash digest
SHA256 4dd3e12556309b8c1db3f2d7030f4cc7ab839a34e352fc56af964b21515120b3
MD5 f6f2414ea0ae5acbf58ed075b8e8894d
BLAKE2b-256 239708dee775712e4d4b4c3116832a457b44097a859a7fb570841e0df57f6b7b

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page