Should Note Entry Mode Exist?
I began this question on a different thread (Feature Request, "Alter Duration via Keyboard"), but after discussion, I've come to a more far-reaching conclusion: Note Entry mode in MuseScore should not be necessary, and should be removed.
Some background on the problem might help support how I've reached this conclusion. I've been trying to learn MuseScore for some time, but I've always seemed to stumble on how things were handled. In particular, how Note Entry mode worked seemed arbitrary and unpredictable.
My fundamental problem seems to be this: I expect actions to have immediate results on the object with focus. For example:
* Pressing an arrow key (Up, Down) should change the pitch;
* Pressing Shift+NoteLetter (A, B, etc.) should add a chordal note;
* Pressing an accidental shoud
* Pressing a duration (1, 2, etc.) change the duration;
* Pressing a dot (.) should add an augmentation dot;
* Pressing a tie (+) should add a tie;
For some reason, some of these are immediate actions, but others are deferred. The result is that MuseScore doesn't seem to be consistent in how it handles actions.
I suggest that these actions should always be immediate. There are a number of reasons to adopt this:
* It makes MuseScore predictable and, which aids in learning the program.
* It makes MuseScore consistant, which gives the design direction.
* It removes Note Entry mode, which simplifies the application.
Consider the situation: a user selects an action, such as an augmentation dot. Why should it not be immediately applied?
One could argue that in MuseScore, the duration is first selected, and then then the duration is selected. But why is this? As I've pointed out, it bifurcates how MuseScore behaves.
Perhaps the argument is based on the fact that adding notes is a destructive operation. Consider the scenario:
| AQ BQ CQ DQ
That is, the cursor is currently in front of a quarter note A note, and you wish to replace it with a quarter note G note. The current duration is set to a whole note, so pressing the G note results in a whole note G replacing everything in the measure:
Note that I've advanced the cursor, and placed focus on the newly inserted G note. To recitify the problem, the solution is to change the duration of the note to a quarter note by pressing the 5 key:
GQ | BQ CQ DQ
The overwritten B, C and D notes have "magically" returned. This shouldn't be a difficult behavior to implement, since it's essentially an Undo followed by another insert.
If I chose to make this a dotted quarter note, pressing . should make it so:
GQ. | BE CQ DQ
This again overwrites the overlapping following note, shortening the remaining duration.
I then want to then replace the following B with an A. Pressing A would give the standard "overwrite the next note" behavior:
GQ. AQ. | DQ
Ooops... this should be an eighth note. Press 4 to make it so:
GQ. AE | CQ DQ
Again, the "missing" C note returns.
Let's say I want to change the pitch. I could press the Up arrow, and the note with focus is transposed up a half step:
GQ. BbE | CQ DQ
If I want to alter the following pitch, I can move the cursor to the next note:
GQ. BbE CQ | DQ
Note: Actually, I'd prefer the focus to move to the front of the I beam like it does in Noteflight, but that's a different discussion.
I can then alter the duration of the note by pressing the 4 key:
GQ. BbE CE | RE DQ
I can change the pitch with the Down arrow:
GQ. BbE BE | RE DQ
At no point have I needed to change in and out of Note Entry mode. I can also perform the actions in the same number of keystrokes as MuseScore currently uses, and haven't introduced any new keystrokes.
So I've got two questions:
1. What advantage is there to entering the duration before the pitch? It seems to me that going this route causes MuseScore to behave inconsistently, and forces the creation of something like Note Entry mode. While modes are sometimes necessary (for example, Lyric and Chord Entry modes), they should be avoided, if possible.
Am I missing something fundamental? The argument that "this is the way MuseScore does it" is an argument for keeping things, but isn't - in itself - a compelling reason for keeping it that way.
2. Is there a problem with this method that I'm overlooking? If you haven't already, I'd suggest having a look at Noteflight, a free, Flash based music notation. The data entry model is very close to what I'm suggesting here, and shows that such a system is practical.