musicxml music-notation musescore sfz sheet-music C++ Shell Objective-C HTML C Python CSS Perl PHP JavaScript Qt sheetmusic
Need help with MuseScore?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.
musescore

Description

MuseScore is an open source and free music notation software. For support, contribution, bug reports, visit MuseScore.org. Fork and make pull requests!

5.3K Stars 1.5K Forks Other 19.6K Commits 122 Opened issues

Services available

Need anything else?

MuseScore
Music notation and composition software

Travis CI Appveyor License: GPL v2

MuseScore is an open source and free music notation software. For support, contribution, and bug reports visit MuseScore.org. Fork and make pull requests!

Features

  • WYSIWYG design, notes are entered on a "virtual notepaper"
  • TrueType font(s) for printing & display allows for high quality scaling to all sizes
  • Easy & fast note entry
  • Many editing functions
  • MusicXML import/export
  • MIDI (SMF) import/export
  • MuseData import
  • MIDI input for note entry
  • Integrated sequencer and software synthesizer to play the score
  • Print or create pdf files

More info

License

MuseScore is licensed under GPL version 2.0. See LICENSE.GPL in the same directory.

Packages

  • aeolus: Clone of Aeolus. Disabled by default in the stable releases. See http://dev-list.musescore.org/Aeolus-Organ-Synth-td7578364.html. Kept as an example of how to integrate with a complex synthesizer.

  • assets: Graphical assets, use them if you need a MuseScore icon. For logo, color, etc., see https://musescore.org/en/about/logos-and-graphics.

  • awl: Audio Widget Library, from the MusE project.

  • build: Utility files for build.

  • bww2mxml: Command line tool to convert BWW files to MusicXML. BWW parser is used by MuseScore to import BWW files.

  • demos: A few MuseScore files to demonstrate what can be done.

  • fluid: Clone of [email protected], ported to C++ and customized. Code now at [email protected].

  • fonts: Contains fontforge source (sfd) + ttf/otf fonts. MuseScore includes the "Emmentaler" font from the Lilypond project.

  • libmscore: Data model of MuseScore.

  • mscore: Main code for the MuseScore UI.

  • msynth: Abstract interface to Fluid + Aeolus.

  • mtest: Unit testing using QTest.

  • omr: Optical music recognition.

  • share: Files moved to /usr/share/... on install.

  • test: Old tests. Should move to mtest.

  • vtest: Visual tests. Compare reference images with current implementation.

  • thirdparty: Contains projects which are included for convenience, usually to integrate them into the build system to make them available for all supported platforms.

Building

Read the developer handbook for a complete build walkthrough and a list of dependencies.

Getting sources

If using git to download repo of entire code history, type:

git clone https://github.com/musescore/MuseScore.git
cd MuseScore

Otherwise, you can just download the latest source release tarball from the Releases page, and then from your download directory type:

tar xzf MuseScore-x.x.x.tar.gz
cd MuseScore-x.x.x

Release Build

To compile MuseScore, type:

make release

If something goes wrong, then remove the whole build subdirectory with

make clean
and start new with
make release
.

Running

To start MuseScore, type:

./build.release/mscore/mscore

The Start Center window will appear on every invocation until you disable that setting via the "Preferences" dialog.

Installing

To install to default prefix using root user, type:

sudo make install

Debug Build

A debug version can be built by doing

make debug
instead of
make release
.

To run the debug version, type:

./build.debug/mscore/mscore

Testing

See mtest/README.md or the developer handbook for instructions on how to run the test suite.

The new script testing facility is also available to create your own automated tests. Please try it out!

Code Formatting

Run

./hooks/install.sh
to install a pre-commit hook that will format your staged files. Requires that you install
uncrustify
.

If you have problems, please report them. To uninstall, run

./hooks/uninstall.sh
.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.