MuseScore Roadmap

Overview

Almost all development work from 2011 until 2015 was focused on MuseScore 2.0. With very few exceptions, work on a feature was either completed and included in 2.0, or it was deferred with little work having been done at all. So 2.0 was released with almost nothing to show for any future release. The good news here is, we have now a blank slate to work with.

As of this writing, there have been two point releases (2.0.1 and 2.0.2) since then with mostly bug fixes and a few new features where they could be added without breaking compatibility in either direction. The intention is that we have a 2.1 release relatively soon (by the end of 2015?) that adds more significant new functionality without concern about breaking forward compatibility. By "without concern about forward compatibility", we mean that we will make no effort to limit development just to ensure that 2.1 scores will open in 2.0, and in fact we are quite certain they will not. The more new features that are added in point releases, the less important it might seem to have 2.1 sooner rather than later, but there are definitely some things we would like to see that would be likely to break compatibility.

We still have no specific process in place for evaluating which features should be worked on or how to prioritize them. So far, it was worked pretty well for developers to just choose an area that interests them and work on it. Meaning, if any given developer chooses to work on a feature that isn't officially on the list of features being considered for the release, it is not out of the question that it would be included. Still, we hope to be coming to some sort of consensus on what is important and focus on the areas we agree we should address.

New Features Being Considered For 2.1

Where there exist issues to summarize a feature request, they are linked below. If someone wishes to work on a feature that has no formal issue associated with it, that is fine, but creating an issue does provide a place to hash out ideas for how the feature might work from a user perspective.

Accessibility

Keyboard control for palette, including key signature selection in create new score wizard
Navigate more score elements by keyboard - dynamics, articulations, spanners, etc
Refinement of screenreader output - eg, options to control verbosity
Menu mnemonics
MSN - size options for notehead, tuplet number, breath marks

Code Cleanup

More comments
Werner has list of things to reduce duplication and aid clarity / efficiency

Layout

Cross-system beams (see melisma for possible implementation model)
Allow overlapping elements (Space as rectangles instead of left/right only)
Optimization to not layout the entire score on every change
Optimization to not layout all parts on every change
More automatic positioning and collision avoidance algorithms

Linked Parts

Ability to break links for specific elements
Ability to break links for entire part
Cues / incipits that appear in parts but not in score - special case of breaking links?
Ability to close/open/rearrange/rename individual part tabs
Set style for parts in score - in File / Parts window?

Notation

Gregorian chant
One-sided ties
Note-attached slides / glissandi
Editor for customizing rendering of chord symbols (partially implemented for 2.0 but deferred)
Combine fret diagram and chord symbols, especially for palette display
System dividers
Change staff properties mid-score - eg, transposition, percussion versus standard, number of staff lines
Above/below placement for text, other elements
Per-staff style settings (dynamics above vocal staff but below other staves, etc)
Native support for shape note and other notations - incorporate work from Craig Fisher?
Add Jazzy and/or other fonts
Support external SMuFL fonts
Improve support of microtonal accidentals, custom key signatures

Playback

Improve SFZ support
New soundfont
MIDI channel assignment (PR 2126)
MIDI messages for staff text
Gradual tempo changes
Single-note crescendo/diminuendo
Slurs
Grace notes after
Harmonics
Full customization of ornament playback
Playback chord symbols, fret diagrams, figured bass
Improvements to pianoroll editor
Dynamic range compressor to reduce perception that volume is too low
Mixer reorganization - vertical strips? groups? combine with instrument list?
Playback of audio track (synchronized with score)
Complex repeats roadmaps
Jumps with repeats

Plugins

Complete access to all elements
System properties like "requiresScore", min/max framework version
Check ownership of elements created within plugins (?)
Find / download / install new plugins from the manager window

Program Behavior

Auto update
Sandboxing
More automated tests
Listening to MIDI Machine Control messages (PR 2128)

Tablature

Bass string notation - already implemented in https://github.com/musescore/MuseScore/pull/2113
Correct ottava support

Usability

Lyrics editing - dedicated window, move verses around, copy to system clipboard, etc
Searchable palette
Keyboard control for palette (could be in addition to search)
Save / load shortcut sets
Localized default shortcuts
"Timeline" feature to visualize tempo / key / time signature changes
Save as template command
Template manager
Copy/paste of spanners
Spanner extension via mouse - change anchors like we do for slurs
Insert / delete note/rest, shifting remainder of measure
Half time / double time tool
Courtesy accidentals tool
Automatically generate fret diagrams from chord symbols
Instrument manager (editor to edit / add instrument definitions)
Drumset manager
Guitar fretboard note entry window

New Features Proposed Or Being Considered Long Term

This section will probably grow as we move items from the above list to this one.

TODO

Documentation

  • Offer build-in web view of the handbook in MuseScore
  • Allow the handbook in PDF version to be downloaded within MuseScore for offline usage
  • An index (glossary)

Translation

When the English source page is updated on musescore.org, translators should be able to get email notification together with direct links to know what has changed and to be able to reflect these on their page.
Handbook pages containing outdated translations should mention a warning to the visitor that the content of the page may have since been updated. For a more updated version, check out the English one, or help (linked) to update the current translation. This can all be implemented on musescore.org itself, therefore it not being required to seek a hosted solution.