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 three point releases (2.0.1, 2.0.2 and 2.0.3) 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 not have a 2.1 release, and move on to a 3.0 version that adds more significant new functionality without concern about breaking forward compatibility (meaning that we will make no effort to limit development just to ensure that 3.0 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 3.0 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 has 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 3.0 And Beyond

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
  • Menu mnemonics
  • MSN - size options for notehead, tuplet number, breath marks
  • Navigate more score elements by keyboard - dynamics, articulations, spanners, etc
  • Refinement of screenreader output - eg, options to control verbosity

Code Cleanup

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

Layout

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

Linked Parts

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

Notation

  • #22626: System dividers
  • Above/below placement for text, other elements—PARTIALLY DONE (dynamics only so far)
  • Add Jazzy and/or other fonts
  • Change staff properties mid-score - eg, transposition, percussion versus standard, number of staff lines—PARTIALLY DONE (transposition only so far)
  • Combine fret diagram and chord symbols, especially for palette display
  • Editor for customizing rendering of chord symbols (partially implemented for 2.0 but deferred)
  • Gregorian chant
  • Improve support of microtonal accidentals, custom key signatures
  • Native support for shape note and other notations - incorporate work from Craig Fisher?
  • Absolute staff spacer
  • Slides / glissandi attached to specific notes in chord
  • One-sided ties
  • Options to control transposition (concert pitch) - key simplification, use of double flats/sharps
  • Ossia—DONE (extra staff set to be always hidden when empty)
  • Per-staff style settings (dynamics above vocal staff but below other staves, etc)
  • Support external SMuFL fonts

Playback

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

Plugins

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

Program Behavior

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

Tablature

Usability

  • Automatically generate fret diagrams from chord symbols
  • Copy/paste of spanners
  • Courtesy accidentals tool
  • Drumset manager
  • Guitar fretboard note entry window
  • Half time / double time tool
  • Header and footer editing—WYSIWYG (add text editing toolbar in Style -> General… -> Header, Footer, Numbers? Allow double-click to edit on score page?), syntax to create header/footer for first page only
  • Insert / delete note/rest, shifting remainder of measure—DONE
  • Instrument manager (editor to edit / add instrument definitions)
  • Keyboard control for palette (could be in addition to search)
  • Localized default shortcuts
  • Lyrics editing - dedicated window, move verses around, copy to system clipboard, etc
  • Method for adding transposed key signatures (add "G" for alto sax, get "G", not "E")
  • Save / load shortcut sets
  • Save as template command
  • Searchable palette
  • Spanner extension via mouse - change anchors like we do for slurs
  • Template manager
  • "Timeline" feature to visualize tempo / key / time signature changes

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.