Our near-term plans for MuseScore Studio

• Dec 23, 2024 - 09:50

Now that we're pretty deep into releases of MuseScore Studio 4 (version 4.5 is currently in development and is slated for release at the end of February 2025) we thought it was a good time to share some of our plans for the coming 1-2 years.

These are ideas that we (the internal team) plan to focus on while the community continues adding various improvements of their own. The ideas mentioned here aren't exhaustive, and we always leave room in our plans to act quickly on new opportunities when they arise, such as adding relevant features for potential new users (see "Focus on Finale users" below), or when a community developer introduces something valuable that can be readily incorporated into a forthcoming release.

For those who haven't been following the progress of MuseScore Studio, it's worth providing some context behind how we got to where we are now, before we lay out our ideas for the next couple of years.

How we work

For the last four years, our mission has been to establish MuseScore Studio as a modern, professional application. This has largely meant matching the essential features of Finale (RIP), Dorico and Sibelius. The teams working on these apps have their own development challenges, including the need for codebase improvements and feature expansions. Our particular development challenge has been the need to divide our time and resources across three distinct priorities:

1. Building new features and improvements

This is the easiest part of the job: creating new capabilities that MuseScore Studio is missing, which don't require major under the hood changes or refactoring of our codebase. At the moment, around a third our focus is on this aspect. We aim to bring it up to around 75% within the next 18 months.

2. Improving older features

When our team began working on MuseScore in 2018/2019, there were very few aspects of the app that didn't require a major rethink. Therefore, with each release, we've been gradually replacing or updating core aspects of the app's functionality.

We've been doing this work to provide a solid foundation that can be reliably built upon in the future, when we want to introduce far more ambitious, modern improvements.

To give one example: it was clear that our system for positioning and playing back dynamics and line objects (like hairpins) had to be completely replaced. So we made it possible to let these objects anchor to non-arbitrary positions on the stave. This has dramatically improved consistency when the score layout changes, ensuring hairpins no longer fly all over the place without knowing where to go! This has also greatly improved usability and playback too.

Although we are not yet done fixing up many of these older issues with MuseScore, we feel we're about 75% there.

3. Refactoring the codebase to unblock new capabilities

This is the real demon.

There remains a large area of the codebase that requires refactoring in order to enable future capabilities that are currently blocked.

When we released MuseScore 4.0, we took the opportunity to address our overall architecture, UI framework and audio engine. Since then, we've been completely reimagining our notation system itself.

The problem we knew we needed to address was MuseScore's measure-based approach, a problem those who have followed the development blogs of Sibelius or Dorico will be familiar with. Put simply, when the underlying architecture of your notation requires all notated elements to be contained within a measure, it has far-reaching implications that go beyond simple problems like, for example, tuplets not being able to cross bar lines (a problem that can be hack-fixed to a reasonably satisfactory degree anyway).

By replacing the old measure-based architecture with a more flexible system, we unlock many of the new features described below. This also allows us to create a truly fluid playback system, where durations can exist at any point in time. It will open the doors to a properly capable piano roll. In addition, it will also allow people to make major alterations to time signatures without the score saying "no" because it causes durations to go beyond the boundaries of a measure.

Our next big update: 4.5

Some of you will have already started using the master/nightly builds, in which case you may have noticed a number of exciting new features we're bringing to this release.

Version 4.5 has three main areas of focus:

  • Upgrading MuseScore's percussion notation capabilities
  • Expanding the engraving module's capacity to meet professional publishing standards
  • Introducing workflows that are essential for Finale users, which we also think will benefit all users of the app.

New percussion system

As promised, we'll be delivering a new percussion system in version 4.5.

This is the second update in a multi-stage plan for percussion, which is so ambitious in its scope that we are forced to realise our vision for an industry-leading percussion system in incremental stages.

The first stages took place earlier this year, when in MuseScore 4.3 and 4.4 we introduced sound flags to stave text, and added support for Muse Drumline. Part of this work involved making the existing percussion panel responsive to the sound library chosen in the mixer, allowing it will display available notes at pre-mapped staff positions as determined by the chosen sound library.

We did this because we believe that an optimal percussion experience in MuseScore is one where the relationship between notation and playback is as seamless as possible.

But as many of you know, percussion music presents additional challenges to a computer-based notation system, including the lack of a common notation standard, the challenge of mapping diverse instrument sets onto a single stave, a sprawling myriad of playback libraries with unique mapping conventions, and so on. Percussion is, in short, incredibly complex.

In version 4.5, we'll be introducing a new percussion panel to enable faster note input, greater flexibility and customisability, and enhanced readability and accessibility.

New percussion panel (animated image)

To achieve some of these benefits, we've had to increase the size of the panel. While this won't adversely affect orchestral percussion instruments, it may make very large libraries – including drumlines and expanded drum kits – initially less convenient when used on small screens.

For this reason, we'll continue to support the legacy panel together with new panel, until we can realise the next stage in our percussion story: a universal mapping system.

Universal mapping for percussion in MuseScore has already been designed, but will require extensive refactoring of our percussion standard to bring to fruition. The benefits, however, will be immense. We'll be moving to a hierarchical structure of instruments and sub-instruments which will not only save on UI space, but which will also enable seamless switching and combining of percussion sound libraries while not adversely affecting the notation. Of course, this will also enable virtually limitless customisation of mapping across sound libraries.

The evolution of percussion is going to be a long journey for MuseScore Studio, so we're grateful for your patience and feedback as this system continues to evolve.

Engraving updates

We'll be introducing two highly requested engraving features in version 4.5: laissez vibrer ties, and large time signatures.

In addition, we'll be giving you more control over where system markings like bar numbers, tempo markings, rehearsal marks, and more appear.

And thanks in part to the efforts of one of our community contributors, we'll be bringing the use of custom SMuFL fonts to 4.5.

We've also been working closely with the engraving department of Hal Leonard to better understand the pain points they experience in other notation apps, and to design new solutions for these problems that don't already exist in the market.

One example is how objects like ties, slurs, clefs, and key and time signatures behave at repeats and jumps (including "da capo", "dal segno" and "to coda" marks). In MuseScore 4.5, these elements will get created automatically, based on the presence of musically sensible conditions (E.g. a note of equivalent pitch existing at the start of a repeated section). Where a note can be tied to more than one other note, we'll also provide a nifty way of allowing people to chose which notes it gets tied to.

New feature for partial ties and more (animated image)

As always, our engraving specialist Simon Smith will publish a detailed article describing all engraving updates when the next version is ready.

Focus on Finale users

With MakeMusic's announcement in August that it will be discontinuing Finale's development, we understood the need to provide a free and attractive alternative to people wanting to migrate to a different application. We took the opportunity to reach out to Finale users to learn what features they couldn't live without, and have set about making our own equivalents – tweaking them here and there to ensure they integrate comfortably with our own app.

In MuseScore 4.5, we'll be introducing:

  • The ability to move measures to the previous/next system (using shortcuts or the Properties panel), allowing you to fit as many measures as you want within the same system
  • The ability to lock systems so they remain as a single unit without reflowing when you make changes elsewhere on the score
  • The ability to drag measures (or range selections) to quickly copy and paste them to other measures
  • A new note input mode comparable to Finale's popular "Speedy Entry" system, which provides people with another way to quickly enter pitches and durations using their keyboard and (optionally) their MIDI keyboard too.

New moving measures feature (animated image)

Not only are these features beloved by Finale users, we also think they'll greatly enhance the workflow of all MuseScore Studio users too.

And more!

Complementing the new drag-to-copy-and-paste functionality will be a suite of improvements to copy and paste behaviours more generally. For example, when copying a list selection of dynamics and pasting them somewhere else, the relative metrical positions of the dynamics will be retained. It'll also be possible to make proper range selections when starting from something that's not a note or rest.

Before (current in released versions)

Copy and paste dynamics: behaviour before (animated image)

After (coming soon in 4.5!)

Copy and paste dynamics: behaviour after (animated image)

Version 4.6

While most of the team starts preparing major new features for version 5.0 (see below), we intend to release one more update in the version 4 series that will include a couple of small features and improvements. You can look forward to enhanced features for chord symbols and fretboard diagrams, as well as updates to our selection filter that will speed up your workflow.

Version 5.0 and beyond

From version 5.0 onwards, we'll be setting our sights on a mixture of more ambitious and innovative features that will significantly enhance the way you use MuseScore Studio to create music. Here's a high-level summary of some of our development aims.

Playback

Sitting at the top of our priority list is the eagerly anticipated automation feature, which will finally unlock DAW-like control over dynamics and other playback parameters via intuitive and customizable over-the-stave curve lines.

Having recently introduced the possibility for segment-based notation layout (see above), we're finally in a position to unlock highly valuable note input requirements. This includes placing tuplets across barlines, and moving a range of notes forwards or backwards in time while maintaining their rhythmic integrity. And of course, you'll get more granular control over the timing of each note, enabling more expressive and customizable playback. Once these changes are complete, this will also unlock a new feature we aim to introduce in 2025: a new, multi-capable piano roll.

Another one of our ambitions is to introduce audio staves, which can seamlessly interweave real audio tracks with the playback generated from your notation. Using a time-stretching technology we recently introduced to Audacity, audio staves will retain their relative length even when you change the tempo of your score.

We know how important a flexible MIDI mapping system is to our users, and so designs for this are already in a well-advanced state. This is quite an extensive feature that may end up being rolled out in stages, but we are aware that this is particularly crucial for VST users who need more control over how their plugins perform in MuseScore.

With VST in mind, and with so many new sounds libraries becoming available from MuseSounds, we've also planned a playback profiles system that will allow people to create defaults that map their preferred sound libraries to specific instruments.

Shared framework

An under the hood piece we've started working on is an integrated framework with Audacity, which allows us to share parts of our codebase – a system we are planning to expand until both applications share the same audio engine. When this is in place, we can all look forward to more rapid feature integration as improvements to playback in Audacity get assimilated into MuseScore Studio, and vice versa. This will also make many of Audacity's native effects available for MuseScore Studio users too.

Workflow and UI

We know that people using MuseScore Studio on laptops have to negotiate some fairly tight space constraints. With this in mind, we've now started designing a minimal UI mode that will reduce the amount of screen space taken up by controls, allowing more room for the score.

We also have plans to modernise the increasingly ageing styles dialog, which suffers from accessibility issues, outdated components, and usability problems.

And finally, we know that an in-app video player is a crucial part of our scoring crowd's workflow, and have started investigating solutions for this too.

Engraving

One of the biggest pieces of work for our engraving team will to enable proper instrument stave sharing. For example, imagine two flutes sharing a single stave in the score, but with the possibility of creating an independent part for each of them. Achieving this is currently possible only by writing music in different voices and hiding those that shouldn't appear in each part. Such a workaround is no replacement for a more capable system, but achieving this will require a major overhaul of how instruments, staves, and voices currently work. As part of this, we will implement a much more sophisticated system for instrument labelling and numbering.

We’re also planning a major overhaul of grace notes. Currently, they’re treated as add-ons to real notes, which causes significant engraving issues. To address this, we’ll rework grace notes so they function just like other notes on the stave.

At a macro level, we'll be building new capabilities into the Instruments panel (being renamed to Layout panel in version 4.5) that will enable the creation of larger sections of music – think movements of a sonata or symphony, acts of an opera, and even songs in a songbook. This is currently only partially achievable with page breaks, but requires awkward hackery of objects like clefs, and time and key signatures. Defining the score into proper sections will overcome these problems and more.

A more flexible and intuitive way to control the visibility of staves and measures is also in the pipeline, enabling an improved way of displaying cutouts, among other things. We're also planning a dynamic system for adding cues which will do away with the currently clunky process of needing to create secondary instruments that span the whole score and hiding them.

Extensions framework

Earlier in 2024, we started developing a new extensions framework to replace the existing plugins system. This ended up being a complex piece of work, so we put it aside to focus on more urgent priorities with the intention of coming back to it in 2025.

Aleatoric mode

Another possibility of laying out notation on a per-segment, rather than per-measure basis, is the ability to open up our playback engine to enable multiple simultaneous playback points and a properly fragmented layout. This is a long-term goal, but one which we're ultimately aiming towards as our engraving and playback modules continue to mature.

There's a lot more to come

As mentioned, this is not an exhaustive list, but it hopefully gives you a sense of the big-ticket items that are in our sights.

While pretty much all of the above will be developed by the internal team, it's worth mentioning that a multitude of smaller and medium-sized tasks always needs attention. We've curated a selection of these in our community projects board on GitHub, and invite any interested developers from the community to tackle these.

As always, we're extremely grateful for the support of our developer community, particularly when it comes to testing our nightly and beta builds, and for helping us improve the overall quality of the app by contributing bug fixes and feature improvements.

We hope you continue to enjoy creating music in MuseScore Studio.


Comments

This is truly amazing work! Thank you development and teams for continuing a great software that is improving! Looking forward to the automation feature and playback features. Re-imagining and upgrading an entire software from scratch sounds to be a wild process.

Very glad to read that the measure based data structure will finally be redesigned.
This is indeed a major blocker for evolution.
But of course a huge piece of work as that's the fundation of the musescore data system.

Do you still have an unanswered question? Please log in first to post your question.