npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

mscx2ly

v0.1.10

Published

Tool to render lilypond code from a MuseScore save file

Downloads

421

Readme

MSCX2LY

mscx2ly is a simple converter to extract a subset of musical information from an uncompressed MuseScore project file.

The tool reads the MuseScore project file, extracts the parts and tries to reassemble the sections and staffs as well as possible.

From this it generates three outputs:

  • music: for every staff in the part (can be multiple in case of e.g. piano) a macro is generated with the name of the part (plus a number in case of multiple staffs) containing the notes of that part.
  • score: From the parts and sections available in the musescore file, an attempt is made to recreate a partiture that resembles the original layout.
  • parts: From the parts and music, a set of books are created, allowing you to render the separate parts as PDFs.

The score and the parts depend on the macros generated in the music part.

The tool allows you to save these parts in a single file as well as separate files.

Install

npm install mscx2ly --global

Use

    mscx2ly sourcefile.mscz targetfile.ly

or use the other options. Run

    mcsx2ly --help

for a list of options.

Limitations

This tool is currently limited in what it exports from MuseScore. At the moment only the parts, staffs and notes/rests are exported, and where possible forced accidentals. Any other information is ignored. See under Future what is intended to be supported in the future.

Use case

I wrote this tool as a way to prevent having to retype all the notes in Lilypond. I like MuseScore as a composition and arranging environment, but the notation it produces isn't very pleasing, and certainly not of the level and flexibility that Lilypond offers. In addition, MuseScore often requires the use of tricks with all kinds of articulations in order to get the kind of sound out of an instrument that is usable for others. This doesn't often match with how that should be written in a part, which is why this is not (yet) implemented.

Rationale

MusicXML is not a music format, despite the name. MusicXML is a music notation format, but one that positions elements. This makes it hard for engraver-like programs like Lilypond to apply their own rules. Any mistakes in the notation will inevitably transfer to other programs.

Future additions

In the future, I would like to add the following missing features:

  • repeats
  • tempo
  • dynamics
  • texts such as "pizz." and "arco"
  • some types of articulations like tremolo
  • specific instrument specific marks, such as downbow, upbow, open strings