The online instrument spreadsheet has been updated to use the terms "traitName" and "traitType" to match the C++ code. This commit makes the corresponding change in update_instruments_xml.py so now we say "traitName" everywhere rather than "dropdownName" or "ddName", and we say "traitType" instead of "meaning" or "ddMeaning". Where do these terms come from? In PR #8432 we adopted "trait" as an abstract term in the C++ code to represent a defining characteristic, such as tuning or transposition, that enables us to distinguish between instruments that have the same name. For example: | INSTRUMENT | TRAIT NAMES | TRAIT TYPE | |-------------|--------------------|-----------------------| | Piccolo | E♭, D♭, C | Tranposition | | Tin Whistle | D, C, B♭ | Tuning | | Bouzouki | 3-course, 4-course | Course (i.e. strings) | However, in PR #8403 we had already used "dropdownName" as a way to refer to the trait property within instruments.xml because the purpose of this data was to populate dropdown lists in the New Score Wizard. Why choose "trait" over "dropdown"? It is desirable to use the same term everywhere. I picked "trait" because instruments.xml contains model data, so I believe it is preferable to use an abstract term. "Dropdown" is a UI term and it refers to just one of many possible ways to view the data. |
||
---|---|---|
.github | ||
.tx | ||
.vscode | ||
assets | ||
build | ||
demos | ||
doc | ||
fonts | ||
hooks | ||
mtest | ||
rdoc | ||
sandbox | ||
share | ||
src | ||
test | ||
thirdparty | ||
tools | ||
vtest | ||
.git-blame-ignore-revs | ||
.gitattributes | ||
.gitignore | ||
build.cmake | ||
CMakeLists.txt | ||
CMakeSettings.json | ||
Compatibility | ||
config.cmake | ||
CONTRIBUTING.md | ||
Doxyfile.plugins | ||
LICENSE.GPL | ||
LICENSE.rtf | ||
mscore3.txt | ||
msvc_build.bat | ||
ninja_build.bat | ||
ninja_build.sh | ||
README.md |
Music notation and composition software
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 3.0. See LICENSE.GPL in the same directory.
Packages
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 for release, type:
cmake -P build.cmake -DCMAKE_BUILD_TYPE=Release
If something goes wrong, append the word "clean" to the above command to delete the build subdirectory:
cmake -P build.cmake -DCMAKE_BUILD_TYPE=Release clean
Then try running the first command again.
Running
To start MuseScore, type:
cmake -P build.cmake -DCMAKE_BUILD_TYPE=Release run
Or run the compiled executable directly.
Debug Build
A debug version can be built and run by replacing -DCMAKE_BUILD_TYPE=Release
with -DCMAKE_BUILD_TYPE=Debug
in the above commands.
If you omit the -DCMAKE_BUILD_TYPE
option entirely then RelWithDebInfo
is
used by default, as it provides a useful compromise between Release and Debug.
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
.