Ideas 2016

Updated 1 year ago

Your proposal

We strongly believe that the best proposal for you is the one you'll do. If you have any suggestions, come onto the IRC channel #musescore on freenode.net, or contact us on the developer mailing list. Also check ideas from previous years.
Copy paste an idea below and change the text with your new idea for GSoC 2016

Crash reporting

MuseScore currently doesn't have any crash reporting facility. It would make the job of developers a lot easier if we could gather crash logs in a web interface. The first target would be Windows but the crash reporting system should be cross platform. MuseScore's development infrastructure would need to be updated accordingly.

We could use the Google Breakpad project as a basis. Breakpad is only part of a crash reporting system, and it doesn't offer a reporting mechanism or a client UI. For a server, see Mozilla's Socorro (Python) or Atom's mini breakpad server (Nodejs).

Other interesting resources
* Qt and breakpad dev notes
* libcrashreporter-qt as used by Tomahawk player.
*

  • Difficulty: Medium to high
  • Skills: C++/Qt, Web technology and basic server administration skills
  • Possible mentor: Nicolas Froment (@lasconic)

Text utilities

  1. Search and replace - Ability to search and replace piece of text in staff text, lyrics etc...
  2. Lyrics hyphenation - Lyrics are displayed below each note per syllable. It's currently a manual job to hyphenate them. Some online tools exist for english. It would be good to include this capability in MuseScore, also for more language
  3. Spell checker. See https://quickgit.kde.org/?p=sonnet.git
  • Difficulty: Could be more complex that it looks at first sight
  • Skills: C++/Qt
  • Possible mentor: Nicolas Froment (@lasconic)

Timeline

When a score is growing, it's sometimes hard to know where you are located in the score, which part you worked on already etc... The idea would be to create a new panel, potentially to replace the navigator, which gives an abstract view of the score, showing squares for each measure on each instrument, with a different color if the measure is empty or not. Potentially, having one row for rehearsal mark, for tempo markings, time signatures, key signatures etc...
Timeline

  • Difficulty:Medium to Hard
  • Skills: Qt
  • Possible mentor: ...

Virtual singer

Several users have requested a virtual singer in MuseScore. This feature would make MuseScore sing the lyrics in a score. It's useful for singers in choirs who like to rehearse with actual synthesized lyrics. There are several specialized (open source) software projects and libraries which do "sing synthesis".

An external tool that could process a MIDI, or MusicXML file created by MuseScore and make an audio file would be good for singers to practise along.

  • Difficulty: Hard
  • Skills: C++/Qt
  • Possible mentor: Nicolas Froment (@lasconic)

Explorer/Finder plugins to display scores information

MuseScore 2.0 now saves a thumbnail of the first page in the MSCZ file. A plugin for the different OS file explorer (Windows, Mac OS X, others) could display this thumbnail, and maybe other metadata. See https://musescore.org/en/node/57886#comment-419951 for discussion.

  • Difficulty: Medium
  • Skills: C++ ?
  • Possible mentor: Nicolas Froment (@lasconic)

OMR

Many users use MuseScore to transcribe scores from paper. This project would be about aiding this use case by providing a side-by-side view of the digital score and a scanned score. A very limited implementation of this project (see screencast) has already been coded (see github) but much more work is needed to make it ready for general usage.

  • Difficulty: Hard
  • Skills: Qt
  • Possible mentor: Werner Schweer

Keyboard layout and shortcut management

Many shortcuts in MuseScore do have conflicts due to different international keyboard layouts. Example of such a conflict can be found with the French keyboard. To solve this problem, MuseScore needs a system which can detect the client keyboard layout and auto select the appropriate shortcut list. The developer challenge is to make this work for all international keyboard and if needed create for each of them a custom shortcut list. Additional challenges are the differences between Mac OS X and Windows/Linux. See #47361: [Mac OS X] Insert measure keyboard shortcut doesn't exist More related issue: * http://musescore.org/en/node/48846

  • Difficulty: Medium
  • Skills: Qt
  • Possible mentor: ...

Chord symbols playback

It's currently possible to add chord symbols on top of a staff in MuseScore. These symbols are ignored on playback. It's a frequent feature request to be able to realize these chord symbols as notes in a staff or to optionally "play" the symbols while listening the score. A simple implementation would just play the chord for the whole duration of the measure or until the next chord symbols.

  • Difficulty: Easy - Medium
  • Skills: Qt
  • Possible mentor: Marc Sabatella

Extract separate parts from voices on one staff

In an orchestral arrangement, it's common to save to save space in the score by combining multiple parts onto one staff. When it comes time to extract the parts, we would like to be able to extract separate parts for first and second horn as a courtesy to the players, as the separate lines get a little tangled on a single staff. See https://musescore.org/en/node/89736.

Finale uses a complex system in the part extraction process to support this. We could take that route, or might achieve it just as well by improving layout when voices are made invisible (https://musescore.org/en/node/89736#comment-396896).

  • Difficulty:
  • Skills:
  • Possible mentor:

Accessibility

Thanks in large part to work done as part of GSoC 2014, we have made significant progress in making the MuseScore interface usable by blind musicians as well as those with limited mobility. There is still much work to be done, however. Currently, a user can browse a score and hear the screenreader recite the names of the various score elements (notes, rest, barlines, etc), but actually editing the score still requires one to be able to see the score and use a mouse in order to click elements and operate the palettes. Having a freely available notation program that is fully keyboard accessible could be life changing for blind musicians. There is also the possibility of creating Braille music output, probably through integration with existing tools that can convert from MusicXML to Braille music.

  • Difficulty: Medium
  • Skills: C++/Qt
  • Possible mentor: Marc Sabatella

Searchable palette

This is kind of linked to Accessibility. The MuseScore palette has grown in the past versions. It would be very useful to be able to filter elements in the palettes or to search and hightlight them. If the search/filter capability is well designed, it could make it easier to add some elements to the score with the keyboard.
A possible design:
* Add a filter text field in the palette
* Add a shortcut to focus on this text field when a note is selected
* Enter "Fermata", the palette is filtered and only a couple of fermatas are displayed
* Use tab (or another shortcut) to go through the fermata
* Use Return (or another shortcut to enter the fermata)
* Use Esc (or another shortcut) to unfilter the palette and give the focus back to the score.

  • Difficulty: Medium
  • Skills: C++/Qt
  • Possible mentor: Marc Sabatella / Nicolas Froment (@lasconic)

Annotations

Educators and others often like the add markings to a score such as comments or grades. They may also wish to highlight or circle specific passages of music. We could add one or more new element types to MuseScore to create text or shapes that can be attached to individual notes or to score ranges, and a user interface to create these elements. We would also want a way to easily show or hide annotations, possibly by integrating with an existing experimental Layers facility.

See https://musescore.org/en/node/88986 for further discussion.

  • Difficulty: Medium
  • Skills: C++/Qt
  • Possible mentor: Marc Sabatella

Half/double durations

MuseScore currently doesn't provide any way to change the duration of many notes at once. It would be great to have a way to double or half all the durations in a selection. Depending on the student's skills, we could also implement the ability to change all half notes to quarter notes in a selection and provide more options. This might seem like a simple task but in MuseScore, measures have to be full, and MuseScore supports nested tuplets...

See https://musescore.org/en/node/72801 for further discussion.

  • Difficulty: Medium
  • Skills: C++/Qt
  • Possible mentor: Nicolas Froment (@lasconic)