MuseScore 3.0 under development: MuseScore gets smart
Part 1 of 3
For all that MuseScore 1 was a decent entry-level scorewriter, it wasn’t until 2.0 that MuseScore really started to compete with the biggest names in the industry—astounding coming from a free and open-source project that no one had ever heard of five years earlier. It took a few years longer than anticipated, but when MuseScore 2 arrived it was simply massive.
Since then, from March 2015’s release of MuseScore 2.0 through April 2016’s release of MuseScore 2.0.3, some major changes and improvements have been made (among them playback of trills, ornaments, and glissandi, a more platform-independent rendering system, and a significant new notation element that didn’t exist before). But all of those changes have been in patch updates to 2.0.
You can imagine how significant, and how far off, MuseScore 3.0 must be.
I’d like to be clear: The features we're going to discuss in this post are not, by any means, “coming soon.” This is a work in progress, and that is likely to be the case for quite some time to come.
But work on MuseScore 3.0 has begun! There hasn’t been such an exciting time since the team first started developing MuseScore 2.0—or maybe even MuseScore 1.0. So, it is my pleasure to let you know what’s going on behind the scenes. This is the first in a series of posts over the coming months, tracking development as it happens.
Broadly speaking, the vision is to make MuseScore smarter, faster, and easier to use. Of these, the smarter aspect is probably the most interesting, as well as the most complex to implement. In future posts, we’ll look at the faster and easier improvements; for now, let’s dig into smarter and see what it means for the future of MuseScore.
One of the more important changes introduced in MuseScore 2 was a set of improvements to the note/accidental layout algorithms. Basically, it was all too common for MuseScore 1 to position notes from multiple voices halfway overlapping each other, and accidentals were often in the wrong order, leading either to bad sheet music or a regrettable amount of manual adjustments. MuseScore 2 delivered an outstandingly improved system, with default positioning adhering to the highest standards in engraving, and manual adjustments to notes and accidentals essentially never called for. Now, the next level is everything else.
Introducing: Smart Layout.
How often do you have to drag a tempo marking off the rehearsal mark it was overlapping? Or reshape a slur to avoid crossing through the notes in its midst? Or use a staff spacer to make room for some high notes? The frequency of problems of this sort is undoubtedly MuseScore’s biggest limitation currently, and it’s come up again and again.
With the new layout system, MuseScore will be smart enough to automatically avoid these sorts of collisions (though not all of the specific examples mentioned above are solved yet). Below you can watch Smart Layout in action:
That’s not even all. While the current layout algorithms unnecessarily prevent notes and accidentals from overlapping the same linear space (based on a theoretical boundary rectangle the height of the system surrounding each element), the Smart Layout system will allow them to nestle under or over each other as needed (based on a boundary the exact shape of each element), for a more condensed and evenly spaced layout. Like this:
And that is only the beginning of what's going to be coming in MuseScore 3.
As I hope I made clear at the outset, this set of improvements is not anywhere close to ready. However, the very haziest outlines of what MuseScore 3 will be like are available for testing in the nightly builds. There is no guarantee anything will work. Let Werner Schweer warn you:
“It crashes very often currently, and does other bad things.”
So let’s fix that! You can help us develop MuseScore 3.0 by testing the latest features in the nightly builds, and reporting the problems you encounter. Your feedback is very welcome in the Technology Preview forum, and precise bug reports can be directly posted in the Issue tracker. If you’re a programmer as well as a musician, we would appreciate your help fixing the bugs—as MuseScore is free and open source, anyone can get the source and share code contributions on GitHub. You can also support the MuseScore 3 effort in the simplest way with a donation.
MuseScore gets faster