musescore / MuseScore

MuseScore is an open source and free music notation software. For support, contribution, bug reports, visit MuseScore.org. Fork and make pull requests!
https://musescore.org
Other
11.93k stars 2.57k forks source link

Make elision a customizable shortcut #19174

Open Asmatzaile opened 11 months ago

Asmatzaile commented 11 months ago

Your idea

The elision symbol is a symbol that happens in lyrics. Although it is not so common in English, it is in other languages, and for that it has its own assigned shortcut. In Musescore, the shortcut was first introduced for v3 in #6928 (Ctrl + Alt + _) and has recently made to work again in MU4 in #19018.

As there has been a reworking of the shortcuts for mu4, maybe it would be better to include it with the other shortcuts, to allow the user to change it? Or perhaps, should it follow the behavior of other apps (explained below)

Problem to be solved

This idea would improve the discoverability of the shortcut and allow for its customization, and improve the cohesion of all shortcuts.

Prior art

Both Sibelius and Dorico automatically replace the underscore (_) by the elision (U+E551 in Smufl) when the symbol is entered in lyrics mode.

Additional context

No response

mmeyn commented 11 months ago

Prior art

Both Sibelius and Dorico automatically replace the underscore (_) by the elision (U+E551 in Smufl) when the symbol is entered in lyrics mode.

LilyPond does something similar: The lyrics mode uses _ for a blank within a syllable (without going to the next note) and ~ for elision.

Edit: Added the link do the LilyPond documentation. Also I found out that MuseScore has Ctrl+           to input a blank within a syllable.

andersonyuan03 commented 4 months ago

I would like to work on this if possible. I am a bit new so I would appreciate some guidance -- currently I believe an elision is hard-coded in, which is why there is no configurable shortcut (for example, in shortcuts.xml)

        if (ctrlPressed && altPressed) {
            if (ed.key == Key_Minus) {
                insertSym(ed, SymId::lyricsElision);
                return true;
            }
        }

What would be a good place to understand how shortcuts are "correctly" programmed such that they can be changed by the user?