Defeat automatic accidentals?

• Sep 27, 2010 - 02:20

If I add an accidental to a note then enter another note of the same pitch later in the measure, MuseScore automatically adds an accidental to the subsequent note to reverse the first accidental. Nice feature, but about 70% of the time, it's not what I intend. Is there a way to defeat this?

Astonishingly great program, BTW. With a very intuitive interface.


Comments

Not really a way to defeat it, but just press the Up or Down array to put the notes at the right place or use a MIDI keyboard to enter the right pitch directly.

In reply to by chen lung

Reading your comment, I realize I didn't think through my reason for requesting the feature.

It's really a question of work style. I expect the earlier accidental to carry through unless I intentionally change it. So, even if 70% of the subsequent notes required accidentals, I'd still prefer to enter them myself because that's the way my brain works. Having to change 70% back was part of the issue, but not the most important part.

If the choice were offered, I expect most people would set the preference once to suit their work style. For me, it would be confusing to keep changing it.

Thanks for giving me the chance to clarify my thought.

In reply to by chen lung

I agree with Bill-G's suggested change (to carry the accidental for subsequent notes added to the same measure) . It would also make MuseScore match the behavior of Sibelius and Finale. However I don't think there should be a preference added for such a small detail. Extra preferences tend to make more work for everyone (the user trying to learn how to use it, more possibilities for things to go wrong, more code to test and maintain, etc.)

I tend keep the following factors in mind before adding to the milestone page:
1. Bug or missing feature that presents a significant limitation (workarounds are non-existent or cumbersome)
2. Mainstream (affects most users)
3. Intended purpose of MuseScore
4. It appears there is interest from developers in fixing it

In reply to by Bill-G

Yes. You can add a feature request in the issue tracker. Try to be precise to what you want and has been discussed here. Refer to this thread in the issue tracker and post a link to the issue you created in this topic.

I apologize for the oversight, but I discovered this thread after noticing the feature request in the issue tracker.

So, I posted there a longish post about why I see the current program behaviour possibly preferable (even if not perfect) to the suggested change, suggesting a fair amount of prudence before changing it.

My main point there is that the choice is not between automatic addition of accidentals or not, but rather between the automatic addition of accidentals a) to the visual representation of the notes (current implementation) OR b) to the note implicitly intended pitch (feature request). More details on that in that other post.

In summary, I believe the current implementation strongly preferable while modifying (editing, revising) already written notes (rationale: please do not change anything 'underneath' or silently, rather if necessary change the visual representation, so I'm alerted).

For new data entry, I see the point and I have no strong preference over a) or b) above. However, choosing b) in this case would bring some behavioural inconsistency and I'm not so sure b) would systematically guess right more often than a) (in my case, probably it wouldn't).

So, I would probably vote for a user-selectable preference, notwithstanding the correct remarks by David about multiplying preferences.

Thanks,

M.

P.S.: among the various reasons for the change, the fact other programs do differently seems to me the least compelling: I care little what other do, as long as there is a reason for doing in a certain way; and in this case there is probably one, at least under some respects.

In reply to by Miwarre

I put the issue on hold to allow more discussion. When I opened it, I didn't anticipate any disagreement.

Since MuseScore is a notation editor and not a sequencer, I don't understand why the notation (visual representation) shouldn't be protected against automatic changes. But I also don't have a problem with the preference. A lot of work obviously went into thinking through use cases for the automatic accidentals, for which Miwarre makes a good defense.

I can use MuseScore as is for copying, but not for anything original. This automated behavior keeps distracting me from the music by forcing me to think about program logic, then I forget what I intended to write next. Almost have to put it on staff paper first, then copy it into the program, which partially defeats the purpose of a notation editor. So to me the benefit of adding the option for the alternative behavior would far offset the disadvantage of the preference.

In a few days, I'll try to add to this thread one or two more specific cases that illustrate why the alternative behavior is needed -- in the hope it will spur others to add their comments, so we'll know if there's enough interest to further elaborate the feature request..

The suggestion to add a Note Preference to defeat automatic accidentals is based on these assumptions:

1. User understands how to express her intent through standard notation. This includes understanding the scope of any accidental.

2. MuseScore is principally a notation editor. The sequencer’s role is to faithfully play the score as entered by the user, including changes. Its role is not to modify the score based on what the sequencer would have played before the latest change.

3. After the user enters correct musical notation for a change, he should never be burdened with detecting and reversing unwanted changes to the score automatically inserted by the computer without the user’s knowledge or consent.

Fresh score, piano score template, 4/4 time, key of C

MuseScore with requested change:
1. Enter first B
2. Flat first B (down arrow or icon)
3. Enter second note
4. Enter third note

MuseScore now:
1. Enter first B
2. Flat first B (down arrow)
3. Enter second note; computer automatically adds natural
4. Lower second note a semitone (down arrow)
5. Enter third note; computer automatically adds natural
6. Lower third note a semitone (down arrow)

That's how I would have done it had I switched from thinking about the music to thinking about how MuseScore works. But I didn't. I was focused on the music, so here is how I actually entered the three notes:

MuseScore now; inefficient user

1. Enter first B
2. Enter second note
3. Enter third note
4. Release note input mode
5. Select first note
6. Click flat icon; program adds flat to first note and natural to second note
7. Select second note
8. Click flat icon; program changes natural to flat
9. Select third note
10. Click flat icon; program changes natural to flat
(pitches are correct; second and third note each have a superfluous flat)
11. Select second note
12. Raise second note a semitone (up arrow); program changes flat to natural
13. Lower second note a semitone (down arrow); program removes natural
14. Select third note
15. Raise third note a semitone (arrow)
16. Lower third note a semitone (arrow)

Steps 7-10 should have been omitted. Nevertheless, this is reality for those of us who think modally (can't focus on the music and program logic simultaneously), which includes most humans. It's also typical of sporadic users whose goal is to enter the music quickly, not master the application.

MuseScore with change: inefficient user

1. Enter first B
2. Enter second note
3. Enter third note
4. Release note input mode
5. Select first note
6. Flat first note (icon or down-arrow).

The real problem with current behavior is not the additional steps; it's forcing the user to divert attention from the music to the program's logic. It can take as long as 20 minutes to get back to where you were creatively before you were distracted by the computer modifying your score.

The computer's assumption here -- that the scope of every accidental is intended to be a single note -- is just wrong. My intent is reflected by the score as I entered it. If I want the scope to be limited, it's my responsibility to add the subsequent accidentals, which by the way aren't necessarily naturals.

In reply to by xavierjazz

Bill-G mentions Sibelius, Finale and Noteworthy in the issue report . Of course, pencil and paper also works this way. Often I still prefer pencil and paper over computer for writing music. I wonder if this biases me against automatic accidentals. For people that skipped handwritten scores in training and went straight to the computer I can see how consistent pitch (with automatic accidentals) makes conceptual sense.

Bill-G makes several good points, but other arguments could be made as well. Please note: I'm not 'taking side' or saying he's wrong, not at all, simply that there can be more than one perspective (that why I prefer adding a preference to simply changing the program behaviour).

As I said before (but I thing it is worth repeating), the choice we are facing is not:
    between (automatically) changing the 'music' or not;
the choice is:
    between (automatically) changing its visual representation OR its substance;
given the conventions for accidentals of modern Western musical notation (which are in most case enforced by default by MuseScore), either one or the other must be done.

Bill-G prefers the second alternative (altering the 'substance' to keep the 'surface'); I think there are cases when the first (keeping the 'substance' even altering the 'surface') is preferable. This is more evident during editing of already input music. I'll take Bill's example of the 3 Bb in a measure.

1) While entering a score, I entered 3 B in a measure (assuming the Bb is not in the key signature; if it is, there are (almost) no problems):
2) Later, I discover I made a mistake (I constantly do mistakes) or, if I am the author, I change my mind and I go back and lower the first B to Bb (down key)
3) MuseScore changes the first B applying a flat (OK)
4) It then 'needs' to change the visual representation of the second B, which is still B natural, adding a visible natural sign to it.

I strongly prefer this current way of doing, because:

a) MuseScore has no way to tell if the other B's also need to be flattened (this may depend on style, period, ...), so I prefer it does not touch at them, keeping them natural;
b) the visual change (the natural sign appearing before the second B) is a very useful reminder that the status of the following B's need to be considered: sometime they may need to be flattened too (which I prefer to do, without delegating it to a program); sometime not, in which case the natural is already correct.

So, a user-selectable preference may accommodate both Bill's needs and mine. I have no problems if this preference be set by default to a 'new editing way', as long as I can re-instate the current way.
________________________________

This is for editing. In data entry mode, I have no strong preference, as long as the behaviour of the program is predictable.

In fact, I am not at all sure that a 'surface'-oriented data entry (a B entered after a Bb is to be intended as another Bb and silently converted) would guess right more often than the current 'substance'-oriented data entry (the second B is a B, regardless of what comes before).

If there is a consensus for the former and the current data entry way is changed, OK, I can easily live with it. If another user-selectable preference can be added for it, good; if not, (almost) good as well.

What I feel important is: please do not remove the current way of editing!

Thanks,

M.

In reply to by Miwarre

Well said. Since Miwarre's first objection to changing current behavior, nobody has advocated removing it. Nobody ever expressed a strong preference for removal. So let's agree not to request changing the current behavior.

In the interest of limiting preferences, I hope we agree the proposed Note Preference will apply to both entry and editing, as discussed in Miwarre's previous message. If I read correctly, Miwarre was offering their separation as a compromise to help obtain consensus, not advocating it. Does anyone disagree?

In the previous post, I have on purpose left out an important point made by Bill, to discuss it in more detail.

MuseScore is a notation program more than a sequencer: this is a very good point and, in fact, I sometime believe that recently there has been a bit too emphasis on sequencer features when some notation issues still lag behind.

However, I see MuseScore also as a music coding program: a way to store music information which can be then printed, played back, converted to other formats, from which extract parts or perform other manipulations.

For instance this applies to the "inefficient user" route described above by Bill:

To flatten a B, he describes using sometime the 'flat' icon and sometime the [Down] key. They have different effects (this might be made not very clear in the documentation, but that can be improved):

a) the [Down] key lowers the note by a semitone; then the note is drawn according to modern Western music conventions for accidentals.

b) the 'flat' icon (or its shortcut '-') marks the note as an unconditional flat note: this note will always have a flat (and be a flat), no matter what happen before it (of course, as long as the note itself is not changed by further editing). This comes very handy in all the cases (ancient music, serial music, extra-European music) when the modern Western music notation conventions for accidentals do not apply or are too narrow, or also when one is reproducing a specific original, and so on.

In fact, the notes we end up with are quite different (even if they sound, and often look, the same), with different properties and behaviours; i.e. they are different 'coded entities'. This 'coding' difference, once entered, has to be kept and, possibly, exported to other media, exposed to manipulations, and so on..

Both 'coding' are useful and necessary; removing (or altering) either of them will severely maim MuseScore, methink.

I believe that MuseScore should be usable for all kind of music (well, as many kinds of music as possible); privileging the modern Western notation conventions is reasonable (and it is already done in many cases) as most users will remain within them. But options should be left to go 'outside'.

M.

In reply to by Miwarre

There is a small inconsistency in current behaviour: If you enter "f" in note entry mode you do _not_ get an "f" note in all cases. It depends on the key. In g-dur you actually get an #f (fis). But the current context in a measure is not taken into account. So if you type "f" after an natural on a preceeding fis you still get an #f

I would like to propose a change in input mode in which the cdefgab keys are associated with staff lines ("steps") instead of pitch. In effect pressing cdefgab then never would produce a note with accidental. Instead the pitch of the new note is computed from context. Same for inputting with mouse: wherever you put a note it will not get an accidental.
The current behaviour is that you get an accidental or not depending on context.

This seems to be near to what Bill-G wants.
The editing behaviour should remain and i follow the arguments of Miwarre.

In reply to by [DELETED] 3

...Werner is proposing a way to input new notes in which, say, [D] generates a note on the D 'position', which would be the note which would be written as a simple D in that context and may actually be a Db, a D or a D# according to what comes before.

This seems to me more or less exactly (approximately exactly <g>) what Bill describes. As I said, I have no strong preferences for note input, as long as it is predictable. So I have no objections, even without any new preference.

Deal?

M.

So far, I'd summarize the comments on the proposal as:

Note entry: strong advocacy to neutrality with no significant opposition
Note editing: strong opposition to slight preference with no strong advocacy

The proposal didn't differentiate between note entry and editing, but Miwarre posted several insightful comments that illustrate why the distinction is important.

Does anyone have a preference for both the proposal for note entry and the current behavior for editing?

Proposed Handbook Description:

Automatic accidentals

Automatic accidentals limits the scope of any accidental to the note it precedes by automatically inserting a cancelling accidental on the next note that otherwise would be affected. It does this:

  • when the accidental is entered, deleted or changed
  • when a qualifying subsequent note is entered.

For example, in the key of C, if you enter a Bb followed by another B, MuseScore will automatically add a natural before the second note.

The preference applies to note entry using the mouse or keyboard. Automatic accidentals is the default.

Proposed addition to Note Entry preference:

Automatic accidentals

Limits the scope of any accidental to the note it immediately precedes by automatically inserting a cancelling accidental before the next note that otherwise would be affected.

In reply to by Bill-G

If we can't make it comprehensible, I suppose the least we should do is make it brief:

Proposed Handbook Description

Defeat automatic accidentals

If this preference is not selected, MuseScore automatically edits accidentals during note entry so that any accidental you enter applies only to the note it immediately precedes, unless you explicitly changed the pitch of subsequent notes.

Proposed addition to Note Entry preference

Defeat automatic accidentals

I’d like to reactivate the feature request in the issues log, now postponed. The request would be:

  • Add a Note Preference to "Defeat automatic accidentals"
  • Current behavior remains unchanged, and the default
  • Preference applies to both note entry and editing
  • Preference applies to keyboard as well as mouse.

Any objections?

In reply to by Bill-G

I would really like to see 'automatic accidentals' as a preference and NOT the default.

According to several sources I have at home and that I've looked up online this is not musically correct. "Since about 1700, accidentals have been understood to continue for the remainder of the measure in which they occur, so that a subsequent note on the same staff position is still affected by that accidental, unless marked as an accidental on its own[citation needed]. Notes on other staff positions, including those an octave away, are unaffected. Once a barline is passed, the effect of the accidental ends, except when a note affected by an accidental is tied to the same note across a barline. Sight reading music at speed can be mentally (and physically) taxing, so where an editor or engraver sees a possible opportunity for confusion, a courtesy or cautionary accidental may be placed by a note whose pitch is, strictly speaking, already given by the key signature. This accidental is usually within parentheses." http://en.wikipedia.org/wiki/Accidental_(music)

"Any accidental is cancelled when a new accidental appears on the like pitch.
An accidental affects all subsequent notes of the same pitch within the measure.
An accidental must be added again in the following measure.
An accidental carries over to a tied note extending from one measure to the next. The accidental will reapper only when the note is re-struck." Gerou, Tom and Lusk, Linda. "Essential Dictionary of Music Notation". Alfred Publishing Co., Inc. 1996, pps 7-9.

As a very active music performer for years in voice (solo/choral), piano, and flute, and having majored in music, it was surprising and irritating to find that automatic accidentals is the default and no override is currently available. I have used Finale to a great extent in the past and decided to try Musescore to see what it had to offer. While I realize the program is still developing, this current feature is a show stopper for me and would be for many other musicians.

In reply to by ahorn683

I just read this long discussion.
I'm not a composer, just a low level arranger, and mainly a choral amateur editor, editing both to-day and pre-baroque musics.
I edit using computer keyboard, with fingers and ears.

So for successive Bb for instance (with empty staff keys) I strike B (hear Bnatural),downarrow (hear Bb), strike B (hear Bnatural, could see the natural, but don't really bother about that), downarrow (mentally trigged by hearing the Bnatural).....

If Mscore used the other way, I would hear: I strike B (hear Bnatural), downarrow (hear Bb), strike B (hear Bb) .....

In case I need a natural B in the same measure
Presently it comes by itself
In the other case I would strike uparrow (hear Bnatural)

Now, if there is a Bb as armature, and I want natural Bs: strike B (hear Bb), uparrow, see Bnatural, strike B(hear Bb, could see Bb but don't care, since I hear), uparrow (hear Bnatural, see B without accidental, which I don't so much look at, since it is the right way to edit)

In the other case I would: strike B (hear Bb), uparrow (hear Bnatural, see Bnatural), strike B (hear natural, see without accidental)

one should consider that the use of the up/down arrow being trigged by ear, it isn't as bothering as considered in some previous posts.

In the long discussion there is no mention of what the working editor is hearing.....I just want that this point be not forgotten...

I just wanted to ask, what to current state of this issue is?

Maybe both ways make sense in their own way, i would strongly prefer to have an input method, that reflects the way accidentals are handled in notation rules: an accidental takes effect for the whole rest of the measure it is placed in, so I think, note input should also behave this way.

When in any sharp key signature (like G major) and the user presses the 'f' key or puts a note on the 'f'-line, the result is a f#. The same thing should happen, when the key signature does not contain an f#, but an f# appeared in the same measure earlier.

This is confusing for beginners on musical notation, but notation rules are pretty clear on that.

Either way, if there's automatically placed accidentals or not, the most unpractical thing is the fact that there's no easy way to remove an accidental during note input. The only way I found, is to leave note entry mode, select the accidental with the mouse and press the 'delete'-key to remove.

It would be a great improvement for note entry, if there would be a possibility to add and remove accidentals quickly, say press '-' to add a b, press again to remove it, and likewise press '+' to add a sharp, or press '+' to remove a sharp that is already there.

Alternatively there could be a 'remove accidentals' button next to the 'b', '#', and similar buttons.

In reply to by fnbecker

As you say, there are two sides to this. There is also something much more intutive about a system where pressing F always does the same thing, not different things depending on how recently you enetered an f#.

Anyhow, adjusting the pitch of a note after entering it is extremely easy - just hit the up or down arrow key. That's how you add accidntals inthe first place, too - sounds like you might oerhaos be using rhe palette for that? That's not the correct method. The palette is really just for "courtesy" accidentals and others that cannot be entered normally. Arrow keys are normally all ou ever need for entering or removing accintals.

In reply to by Marc Sabatella

Edit -> Preferences -> Shortcuts

I have mine set to ' for flat, # for sharp (they're right next to one another on my keyboard), = for natural. I have got used to using right index finger for flat, ring finger for sharp and the middle finger (it's longer) for natural. A G-sharp crotchet thus becomes:

Right hand: 5
Left hand; G
Right hand: #

Shortcuts are also good for adjusting beaming. I usually just let MuseScore beam away and then selectively tidy up using - (minus key) as a shortcut for "Beam start".Now, if I could just get it to add trills with ~ (tilde key) and legato with [Shift]- (underscore) I'd be a happy man. It already does staccato with [Shift]. (shift-fullstop). Eventually you can play your computer keyboard like a musical keyboard and hardly need to use the mouse.

In reply to by fnbecker

This was all about removing accidentals, not setting them

Ok, I need a more not so obvious example:

- create new score
- make it D major (but doesn''t really matter)
- enter first note Cx (C-double-sharp)
- enter more notes on the C-line, either with the mouse, or with the 'C'-key
- try to make it Cx as well, without having the double-sharp in front of every note
-> only way to achieve: mouse-click, hit delete, repeat with next one
because:
- up/down won't end in double-sharp
- hitting self-set double-sharp shotcut or clicking the double-sharp icon puts the accidental in front of a note, but doesn't remove

In reply to by fnbecker

One gets exactly the same problem with E#. A piece in F# minor will bring you to this soon.

So here's my try to describe the option:

Option X: When entering a note using the keys [A-G], an accidental given earlier in the same measure, concerning the same note in the same octave - if present - is considered part of the current key signature.

In reply to by fnbecker

Yes, entering multiple double sharps or E#/B#/Cb/Fb's is more difficult than necessary, but that's kind of a separate issue, and it would be possible to fix that without breaking the basic input method used currently, which I beleive is similar to the most popular notation in the world (Sibelius) and thus already familiar to very many users. As for removing versus adding accidentals, the point is that under normal circustances, it's exactly the same process - enter the pitch using letters which enters the pitch diatonically, then use the arrow keys to adjust the pitch from there.

Fwiw, the easier workaround to the double sharp / E# issue is to first enter the notes with no accidentals, then go the the nites in the measure in *reverse* order (last to first) adding the accidentals. This yields the correct results in the fewest number of clicks currently. But it's defi itely it ideal. There are a couple of outstanding feature requests in the issue tracker discussing other possible schemes that would simplify entry of these less common accidentals. I hope to see one or more of those ideas adopted.

In reply to by Marc Sabatella

Since this topic started, there have been (at least) two more threads about this:
In http://musescore.org/en/node/8417 a new user asked why MuseScore seems to have a "logic flaw" here, and in http://musescore.org/en/node/10593 it's almost the same.
In 8417 it's also stated that "This topic has been argued a lot in the past months" even back in 2010: It therefore seems to be a common issue especially for people new to MuseScore.

So, IMHO we're talking about fixing(!) the basic input method. The way it works now is anti-intuitive and not used in any other music typesetter.
I don't think just because we got used to work around a bug means, that bug should not be fixed eventually.

In reply to by heuchi

I agree it is surprising to some number of new users. Hard to say how many new users would find the proposed behavior - where hitting the same key does different things depending on what other notes had been entered previously - just as surprising. The fact that Sibelius does not in fact do it the way MuseScore does is good argument in favor of changing the behavior, I would also agree.

But still, there is no way I could call this a "bug". It seems a legitimate and valid design choice, one that is extremely logical from a purely musical perspective. Press a key, get a note - same key, same note. Nothing wrong with that; it's exactly the way instruments are played, too. F and F# are two different keys / frets / holes on all the instruments I own, and when I press the F key, I get an F regardless of how recently I played an F#.

I do understand that there is a certain logic to the other method too, though. There are many strange quirks of music notation, and one of them is that these inaudible things called barlines can change how notes are read - the same written note might sound different ways depending on which side of that inaudible barline they occur on. It's a rather bizarre convention when you think about it, but sure, it could make just as much sense for the input method to follow that strictly notational convention as it does for it follow a more purely musical one.

I suspect the current behavior seems more logical if you are composing on the fly, where you are more aware of what note you actually want to sound than the specifics of how recently you entered a similar note or how the quirks of music notation would require you write the note because of that fact. Whereas the proposed behavior makes more sense if you are simply copying existing printed music and don't need to think too hard about what the notes actually sound like. It would tend to be more error prone for the former users, though, as there would be situations where you press an F, saw an F on screen, and forget that it was an F# because at some point earlier in the measure (perhaps 15 notes ago in a measure full of sixteenths) you had entered an F#. That's a drawback of this "bizarre convention" itself, though, not the specific input method that supports it - the same danger exists for musicians reading it as the composer writing it. I've seen many such errors made over the years.

In reply to by Marc Sabatella

Hmm... looks like we're back where we started with the discussion.
Maybe the best solution would be to have an extra option which would give a total of 3:

1. When pressing a key [A-G], a note is added according to the local key signature including any changes that already happend inside the measure. This cannot lead to an accidental directly in front of the new note. (proposed option)

2. When pressing a key [A-G], a note is added according to the global key signature. This might lead to an accidental directly in front of the new note. (current version)

3. When pressing a key [A-G], a note is added according to the C major scale. This might lead to an accidental directly in front of the new note. (always naturals - this option is already available)

I've attached a little graphic to show the different behaviour.
Is this a clear description of what the new option should do?

Attachment Size
Option.png 23.15 KB

I read this thread and other postings to the forum and entries in the issue tracker, so my intent was not to bring some very new aspects to the topic, but to reflect the fact that many people have this problem.

Just to clear the point of view I'm writing from: I have some education in computer sciences too but primarily I'm discussing this from the perspective as a professional musician, so it is mostly about
a) what would a musician expect, who has used notation software before, maybe different programs, and so is used to a certain input method
b) what would a musician expect, who has not used notation software at all

I should also emphasize, that my priority is the use of musescore as _notation_ software, which is used to produce a print layout of a score and use it for playing, not a _sequencing_ software, which you use for putting music together you can listed to on your computer.

I use sibelius for many years now. I have tried finale and capella a little bit, mostly to quickly exchange scores with colleagues, who are using it. In the past, I had several requests from students and colleagues, who asked which notation software I would recommend - so in most cases I told them to use musescore before buying anything, and find out if it's sufficiant.

Most people asked me, after a few beginner's problems which could be solved easily, why accidentals don't come out as expected and what to do against it.

I respect the fact, that there are different approaches to the input method and all of them are _correct_, there's not a thing as incorrect behaviour here, the question is: what do users expect. As it turns out in fact, there seem to be different types of users - or groups of users with distinctive goals and educational background - that expect different things from the software.
Most people I deal with, are more or less well educated in music, some of them professionals, most of them part-time, some amateurs, but all of them seem to use the software as a replacement for pen and paper and use it like they would do with handwritten music. Which means: write one sharp in front of a note -> expect it to have effect on the whole measure; put a note on a line with a mouse-click -> only the note appears, no natural sign.

I see the problem of the current input method not in the fact, that it's wrong - which it is not - or that it is not the sibelius-style input method; the problem is, the distinction is not clear.

Let's call the to methods 'absolute' and 'relative' - which is not exactly, what they are about, but for easier discussion.

strictly 'absolute' should be:
- one key produces one note, always the same, no previous accidentals take effect
- this leads us to the question: when every key produces only one note, should every note have a corresponding key?
- so we could have a key for all 12 chromatic tones and
- call the input method 'piano keyboard'

strictly 'relative' should be:
- when I put a note on a certain line or inbetween, I can expect the software to do that and nothing else
- key signatures have global effect, accidentals have local effect in their measure, input should respect them
- when we talk about keyboard input, we should either have
a) tone name input: 'C' is the c-line, no matter which key we are in, so it could result in C double-b, C b, C nat, C #, or C double-#
b) some kind of relative solmization: there's still 7 key, but the lowest key produces always the tonic (a D in D-major), the third one would procude a F# in D-major. one could use d, r, m, f, s, l, t, (as in do re mi, etc) for that.

currently we have a mixture of both
- note input respects the key signature, so there's not always the same note with the same key. The 'A'-key can produce A b, A nat, A # depending on the context of the key signature
- note input does not respect accidentals, so as long as the key signature does not change, there is in fact the same note for the same key, but it is _not_ the note, that the keys name implies, an 'F' can still produce a F#
- the most confusing thing is though: mouse input. When notes are created with the mouse, the behaviour is still as if the corresponding key had been pressed. So when I click on the A line, where a # was previously, I expect a note to appear and be played as A#, but musescore produces a natural. Although, when I put a note on the F line when there's a F# in the key signature, there's only the note drawn and it plays as F#. This is not easily explained to musescore-newbies.

So, sorry for the long text, but I would like to suggest:

Options for four keyboard input methods:
a) piano keyboard: chromatic scale on to rows, like Y,S,X,D,C,V,G,B,H,N,J,M
b) tone name input, relative: no automatic accidentals produced during note input
c) absolute tone name input: having the key signature respected makes sense, so this would be, what we actually got
d) relative solmization: for educational purposes

One could combine b) and c) into one 'tone name input' method and have options, as suggested be previous posters.

Default options should be:
Mouse input:
Default should always be like relative tone name input - _no_ automatic accidentals
optional there could be different behaviour

Keyboard default could be:
c) (or general 'tone name input')

Pros:
- musescore would have some sophisticated choices for the input method, this what most other software lacks of
- default behaviour would be intuitive enough

Contras:
- keyboard shortcuts would be different and so would the whole keyboard layout change, when the input method is changed

To conclude my wishlist:
MuseScore is designed for easy and intuitive use, and in fact, most people can produce first simple scores just by trial and error. And we have many non-professional enthusiasts, who have no or very little experience with musical notation so far, and put together their own songs with musescore.
But we should also have in mind, that there is many musicians - semi-professional and professional - who have waited years for a decent open source notation software. Maybe we will not hear very much from those people, because when you test software for professional use, you usually give up very quick and take another solution, when an open source software doesn't fit your need. So most of them will hop directly to capella, or one of the bigger one's, depending on budget and frequency of use. And although I have to admit, that often I switch to sibelius for more complex tasks (especially when time is an issue, for example in bigger scores, I choose the quickest input method), I still try to use to musescore as often as possible. But there's still some issues which would make it easier to make the transition to musescore as the primary notation software; or intruduce people to it, who haven't used other software so far and keep them from doing so.

As always:
best regards, sorry for long post and bad english

In reply to by fnbecker

I continue to use two other programs that are in many ways inferior to MuseScore solely because it still offers no alternative to this unique approach to note entry.

fnbecker has stated the case very well. I have nothing to add, except the support of one additional user.

In reply to by Bill-G

Sort of. THere are really at least two different feature requests being discussed here. One has to do with what happens when you *edit* existing scores. The other has to do with what happens when you are initially entering notes. FWIW, I would have no problems with the proposed change to the latter - making it so notes subsequently entered after an accidental inherit that accidental. This seems harmless and consistent with how notation is normally read & written as well as how other programs work. But I would oppose the first change. There is no way I want adding an accidental to one note to have any affect whatsoever on other notes already entered. I think this would really surprise and annoy the majority of users, including myself.

In reply to by Marc Sabatella

Sorry, maybe this was discussed before, and maybe I was not clear on this.

I was talking only about accidentals to the particular note I just entered, subsequent notes should in no case be altered in pitch. This in fact could imply additional accidentals or naturals later in a measure to make all following notes keep their pitch.

MuseScore already behaves this way and always should.

Adding and removing accidentals should never have effect on other notes.

People mean different things by not have any effect whatsoever on notes already entered. Some want to preserve the written score, some want to preserve the original pitches (current behavior). It becomes a religious argument impossible to resolve.

Something like the principle of stare decisis probably should apply to released software. I do not advocate changing anything to inconvenience any current user. Among those here who support the automated behavior, there may be a consensus on modifying it to recognize the difference between entry vs editing. I have no preference; I’d never use it.

But we also need an option for a plain vanilla entry mode just-like-paper (and Sibelius, Finale, Noteworthy Composer). If I could offer one more use case: copy an existing score into MuseScore. Key of C, a line of 64th notes, about a third of them are F#. Or they would be had you not missed the accidental before the first F. Later, when you discover the error and add the sharp, MuseScore punishes you by making you edit every F in that measure
.
The main objection to adding this as an option was additional testing would be required for each subsequent release. But there will never be a consensus without making it an option.

So perhaps that ticket should be closed, and new ones opened for 1. vanilla option, and 2. modified automated behavior.

In reply to by Bill-G

About editing of already entered notes and its effect on notes already there around, I suspect that rather than "some peoples mean this and some other mean that", it is "sometime you need this and sometime you need that".

As 1) MuseScore cannot be asked to guess what you are going to do with 'other' notes and as 2) there has been little request for changing the behaviour of editing (opposed to the strong requests to change the input behaviour), I propose to leave this matter as it is (for now?) and concentrate on input.

M.

In reply to by Bill-G

This is kind of an aside, but I'd like to make a couple of observations about your use case of copying an existing score and forgetting an accidental early in the measure. The main point being, your example emphasizes something I have said before: the proposed change to the behavior when editing existing notes is primarily of benefit to music *copying*. It is a *detriment* to other tasks like composing or transcribing from recordings. And that is why I and others oppose this as it applies to editing existing music.

That's because what you might have thought of as one error in a copying operation - omitting a single symbol that you saw in a written score - would really have been twenty separate errors if you were composing or transcribing, because you would be thinking *musically* as opposed to *symbolically*. That is, you might have for some reason forgotten to hit the up arrow after one that first F of the measure when trying to enter an F#, but surely you would not have forgotten it twenty times. You would be aware - because you were the one composing the music, or the one transcribing it from the recording - that the note was an F#, and that this is not in the key and thus requires an acciental. And the playback would have instantly alerted you that you were entering the wrong note over and over, so it's actually even less likely you'd make the mistake in the first place. To the extent mistakes are likely in this scenario, they would be of the form where you simply didn't enter one of the accidentals for whatever reason. And you woild not want fixing that one mistake to have a cascade effect on the notes you did enter correctly.

Again, it's really only that silly old convention that says accidentla should last an entire measure - a holdover from days when all music was mostly diatonic and accidentals were more rare - that creates this artificial situation where he same note (F#) is entered differently depending on its position in the measure. If not for this, we wouldn't be having this discussion.

In reply to by Marc Sabatella

Yes, modern (say, XIX c.) Western conventions for accidentals are silly, but there is little we can do with it. However, this is not necessarily "a holdover from days when all music was mostly diatonic and accidentals were more rare" which I read as meaning approx. XVI and early XVII c.: during most of that period there was not even the concept of measure and accidentals lasted for, I would say, as long as it made sense; in most cases just for one note.

As this is the kind of music I use MuseScore for more frequently (almost exclusively and almost exclusively to make transcriptions), the change in input we are discussing would possibily make my own work somehow more difficult. As in this music, accidentals last usually for only one note, the current input behaviour of MuseScore mimics the 'musical symbolic level' I have to transcript quite closely and make any transcription error more evident: in that context, a passage written G F# G F ED would most often mean: G F# G Fnat E D (and in any decent transcription, it should be written as such, possibly with the natural over the note, rather then before it), which is exactly what MuseScore gives me by default. With the 'new' input method, having the second F silently 'converted' to F# without any visible hint makes easy to overlook the change. Of course, hearing the result would show the error and one can never do without proof-reading, proof-reading, proof-reading...

But mine is a rather niche application and it would not be fair to force MuseScore to accommodate it at the expenses of more common usages.

M.

In reply to by Miwarre

LIke you I have in the past and now continue to engage with early music for keyboards.

The problem with such music is that as music notation was still in its infancy, there are all sorts of conflicting practices with accidentals, which the musicians of the time would have dealt with purely from their innate and trained muscianship.

Accidentals can, as you say, reference a single note in a bar, but can bust as easily be intended to last for 1 or more bars, and even be backward referencing to the previous bar.

What ever system of accidental input is put in place in MuseScore is going to fall foul of one of these protocols.

As one of the Elizabethan composers said about one of his pieces (I forget which one withoput looking it up): "I have set it flatt, but if any man should prefer it sharp then so be it." Not verbatim but pretty close :) I think it was said about a Pavane & Galliard, but again I would have to check my reference books (still packed in boxes after the move).

Just my 2 pennorth :)

@fnbecker:

About your four proposed input methods with keyboard:

a) piano keyboard: if we go at this, someone would probably need to distinguish, during input, C## from D, Dbb from C and so on (the point has already been raised in this thread). This gives a total of 35 keys (##, #, nat, b, bb for each of the seven grades; 31 if we discard Cbb, E##, Fbb, B##): I'm afraid it would be rather unpractical...

b) tone name, relative (nickname: "no auto accidentals"): strongly requested.

c) current method: as Werner himself said 2 years ago, this method as some inconsistencies (key signature is followed, previous accidentals in measure are not); in practice it does not satisfy completely neither the 'mainstream' music writing nor special needs like atonal music. If thing are changed, I see little need to keep it.

d) 'solmisation': for God sake, no! Otherwise, I would ask for another, real solmisation input method, with 6 keys for the 6 hexachord chordae, with all the hexachord mutation rules, una nota super la (and maybe a soft 'keyboard' with the manus Guidonis <g>)....

So, IMHO, this leaves us with just one input method with a reasonably wide consensus (not universal, but it is often difficult to please everybody), i.e. your b).

(Side note: Having multiple input methods sounds to me more as marketing hype than a real feature, but this is just my opinion; in case, rather than preferences, hard to find and to explain, I would propose a toggle somewhere in the menu / toolbar: equally hard to explain, probably, but at least, easier to play with.)

Summarizing:
*) Keyboard input: 7 keys (like [A] to [G]) always generating a note without accidental, taking into account the key signature AND any previous (and relevant) accidental in the measure, across different voices of the same staff.
*) Mouse input: clicking on a 'note place' (staff line or space) also produces the same kind of note as described above.

In any case, as said above (by me, by Marc and by others), this would only apply to entering new notes. Editing of existing notes (already entered) should remain as it is now and should not change the pitch of any other note (before or after) already there (yes, I am taking side in the religious war, because not changing is easier, see below).

This was the kind of consensus reached in 2010. If we can agree on it again, I believe to be able to provide the core developers with a proposal of code implementing it. I cannot promise any delivery time, as I do this on my free time, but I feel somehow confident.

M.

In reply to by Miwarre

You have my support, and I'm happy to help test.

It might be foolish to bring this up, but given that you are proposing mucking about with basic note entry algorithms with respect to accidentals, that might turn out to be a good time to also look at the behavior of the up/down arrow with respect to accidentals - see #13313: Up/down arrows should prefer diatonic note spellings, #7510: Up/Down arrows skip diatonic notes for some key signatures, and #10551: Not able to correctly notate E sharp and B sharp in keys with two or more sharps. The change you would be making has a positive impact on these, but doesn't address them completely, and if there is going to be a fundamental change to note entry and accidentals anyhow, maybe we should get all such changes over with? Not that I'm volunteering you to do this. But maybe someone would want to give it a shot. I've got a build system going finally and could possibly take a stab at it myself, but it would make me rather nervous to have my first contribution to the core code be in something as fundamental as note entry.

In reply to by Marc Sabatella

Hmm, another thought. I agree with Miwarre (echoing a sentiment also expressed in other contexts by lasconic) that global preference to control behavior is not always wise. However, what about the idea the idea of simply having an additional accidental command that would affect all notes in a measure? That is, single up arrow on an existing note would not affect the pitch of other already-entered notes later in the measure but, say, shift-ctrl-alt-up would (similar for palette-entered accidentlas, I guess). That way it would be possible to handle the case mentioned earlier where someone was copying existing notation and forgot an accidental early on in a measure full of 64ths. A single up arrow could still have the effect Miwarre is proposing - affecting notes *not yet entered* in the current measure. The new command would be needed only for editing existing notes, if you wanted the behavior that copyists would presumably often prefer.

In reply to by Marc Sabatella

I really don't want to upset anybody here, but please - let's not get to far away from the original topic:

1) There seems to have been a misunderstanding in the begining leading to an endless discussion about EDITING notes, which was never part of the original request.

2) Marc, there is no need for "an additional accidental command that would affect all notes in a measure":
a) if you want an accidental in front of every note in a measure: select the whole measure, click the accidental - done.
b) if you want to change a whole measure full of Fs to F#s, select the whole measure and press UP once - done.

The ONE request this thread is about, is IMHO a really important one. One also can guess its importance by the fact, that it's being discussed in more than one threads for more than two years now.

Any other feature request or idea - eg the interesting idea about changing how UP/DOWN affects accidentals - should however be discussed in a different/new thread.

In reply to by heuchi

Don't worry, I think we're past being upset by any of this discussion. But there are still some things to resolve here.

It is not a "misunderstanding" that led to the discussion of editing notes - it's the fact that these acts *are* related, and in in some of the other threads where the topic has come up, these ideas have been used interchangeably. Indeed, it was the person who *posted* the original request who later posted a message about editing notes, so it is pretty clear that from the beginning, these ideas are intertwined in many people's thinking. Meaning it is important untangle them - to clarify what is being agreed on and what is not. The proposed change we are agreeing on changes note entry but not note editing, meaning it only *partially* addresses the OP's own concerns (as clarified in his own posts that dealt with editing).

The reason the editing command I suggested is useful is that the use case the OP mentioned isn't about changing an entire whole measure of F's to F#'s. Indeed, that is easy enough as it stands. The use case in question was about a measure with 64 notes in it and about a third of them are supposed to F#'s but were erroneously entered as F's. This is currently a much more difficult error (or series of 20-something errors) to fix, and the proposed change is *not* going to make it easier.

You can say it is unrelated, but it is not. The change we are agreeing to here is potentially going to make this error *more* common, not less, depending on how you think, on the type of input you are working from, and on the extent to which the playback from MuseScore alerts you to the error(s). Right now, it is primarily people copying from existing scores - thinking symbolically, as I have termed it - who are likely to get themselves into this situation in the first place. The proposed change we are agreeing to will not in itself make this error any more or less common, but just the mere fact that it represents a change from what existing users have become accustomed to will introduce more errors among existing users, at least at first.

Much more significantly, the proposed change we are agreeing to here will mean that for the first time, people thinking musically as opposed to symbolically will *also* be prone to this type of error. The change is going to degrade the (partial) consistency of note entry right now, where as long as the key signature remains constant, pressing the same button produces the same musical (as opposed to symbolic) results. What we are proposing here will mean that a user who is thinking musically will have to start *remembering* how recently he entered an accidental on a note in order to decide how to enter the next note on that same line or space. That is, he can no longer just press "F up" to get an F# each and every time as is currently possible. This is a step backwards for the users who is thinking musically, and it is bound to introduce errors - not just at first while he gets used to it, but for as long as he thinks musically.

Hopefully the playback of notes as you enter them will alert such users that something is awry, and certainly the user who is thinking musically will be more likely to be able to take advantage of that cue. But in complex passages, hearing individual notes one at a time may not always be enough to trigger that "ooops" response. You'd be more likely to detect the error after completing the passage and then hitting "play", but by then it's too late, and hence the important of providing a way to fix the errors this change is going to introduce.

So don't be misled - I am only *reluctantly* agreeing to taking this step backwards - forcing myself to have to think symbolically rather than being able to think musically as I currently can. I am agreeing primarily because the other major notation programs do it this way. So expectations, at least among people familiar with other notation programs, are going to be pretty consistent. And of course, people accustomed to working with pencil and paper are mostly already forced to think this way too. The biggest negative impact is going to be among users not accustomed to dealing with notated music much at all - those who sing or play instruments by ear or who create MIDI sequences and are looking for a way to notate their music. This change is going to seem counterintuitive to them, precisely because the rules of music notation are themselves counterintuitive here. But I can't change the rules of music notation, so again, I reluctantly agree to force users to have to think in those same counterintuitive ways.

Bottom line: I do think you overstate the "importance" of change we are agreeing to. Like I said, it actually makes life *harder* for people thinking musically rather than symbolically. But there are indeed benefits that I am not blind to. However, given that we are going to be making life harder for people with this change - causing them to make errors they would not have made otherwise - I think it very relevant to discuss ways of making it easier to fix those errors.

In reply to by Marc Sabatella

Well... I don't feel I'm overstating the importance, because the current input method does cost me a lot of time. I gave the example of a piece in F# minor.
People used to the current method would, maybe, find themselves in the need of some time to adjust to the new method. That's why I'm in favour of giving the user the option to change back to how it's now.

I don't understand your categories 'symbolically' and 'musically'.

However, especially for people copying music from an existing score (not containing any notational errors itself), I don't see any problems with the new method, since they will just have to manually enter every accidental they see in the source. And when there's none, nothing needs to be entered. Thus copying from an existing score will be *easier* than now, without having to double check if MuseScore entered an extra accidental which is not present in the source.

In reply to by heuchi

I think you are overstating the importance becaus you are only considering one particular usage in saying the current method costs you time. That's only true for certain types of music: music in which the presence of one G# means it is likely that there are other G#'s in the same measure. Basically, music that is tonal, has an average of no more than one chord change per measure, and makes relatively little use of chromaticism. For other music, it is at least as likely that there will be only G# in the measure, and needing to add explocit naturals to the others is extra work. Overall, some things are made easier, others harder, and in the end, it is at best a very slight win for the proposed change.

Also, you are apparently basing your assessment of the time cost in large part on the specifc issue of E#, which is actually u related. I've already agreed that E# is harder to enter than it need be, and pointed out there are solutions to that tht that don't require making the change being discussed - I even posted references to three specific issues in the tracker discussing this. Basically, any scheme in which up arrow from E can produce E# when in F# minor would make fF minor no harder than C minor to work in. i rate this a much more important change because it helps everyoneentering music in those keys, not just those entering specific types of music or just those thinking symbolically.

As for the distinction between thinking symbolically versus musically, here it is (again) in a nutshell. Musical thinking means thinking about pitches. i want to enter pitch X, so I press button Y.. Symbolic thinking means thinking about what symbols you would need to write in conventional music notation in order to tell a musician to play that pitch: I need to create symbol N, so I press button M. As I said before, msusic copying is mostly a symbolic process, while composition and transcription are largely musical. So yes, music copying gets easier in the proposed scheme, but at the expense of composition and transcription from recordings.

So, say I want am writing a piece, or transcribing one from a recording, to enter a G# while in the key if C. Musical thinking says, "I want to enter a G#, so I will do what I always do to enter a G# in this piece: hit G then up arrow". No need to think about abstractions like bar lines or to remember how long ago I entered my last G, or what accidental was applied to it, or whether a bar line would have happened since then (of course, I don't enter barlines myself; these are merely symbols). In musical thinking, G# in the key of C is always the same note and hence one might expect to always enter it the same way - and that is what MuseScore currently supports.

Symbolic thinking says, "I want to enter a note that looks like an oval on the second-to-bottom line with no tic-tac-toe board in front of it, so I enter an oval on that line". That note might be a G or it might be a G#, depending on what came earlier in the measure, but in symbolic thinking, you aren't concerned with the actual pitch you are creating - you are concerned with the oresence or absence of tic-tac-toe boards.

The proposed change change is great in situations where you are copying existing printed music, because that is inherently a symbolic type of action. You see a symbol on the page, you copy it - you don't even need to think about whether the pitch you are entering is a G or G#. You just know need to know it has no tic-tac-toe board.

However, when thinking musically, the proposed change is definitely a step backwards. I know I am in the key of C and want to enter a G#. The current scheme lets me do that very reliably: G, up. The new scheme is a more complex several part algorithm I have to go through. Step one is to stop what I am doing and look back over the notes already entered in the neasure to see if any of them is also are G's. Step two is to look at the accidentals in front of those G's to calculate the current accidental state of the G line/space. If the current state - because of the most recently entered accidental and its position relative to the barline - is sharp, then I press G to get a G#. If the current state is natural, then I need to press "up" after entering the G. And if the current state is *flat*, then I need to remember to press "up" *twice* to get that same G#. In other words, we are being forced to think symbolically - to think nit just about what pitch we want (G#), but also about what symbols we need to put on paper in order to get that pitch, given the contents of the measure thus far.

Of course, in a measure consisting of just two or three notes, that whole process takes an instant. But in a measure full of sixteenths, pssobily involving chords, possibly involving multiple voices, it's definitely non-trivial, and will amon t to significant lost time and significant numbers of mistakes that above and beyond what one would see with the current method. So it's really a pretty high price that people thinking musically are being asked to pay. Again, the only reason I am willing to do so is that I'd have to pay that price anyhow in other software as well as doing it with pencil and paper. While I *prefer* thinking musically, I am quite well-trained in how to think symbolically as well and will adjust eventually.

In reply to by Marc Sabatella

I don't think there's anything wrong in saying: the proposed method helps me to enter things more quickly, so I'd like to have it.
If you say: the proposed method will make life harder for me, so I don't like to have it, that's just as good.

However, it is a fact, that the program will never be able to guess in advance, if the user wants a Gnat, G#, or Gb using just the key of 'G'. And we just don't have 35 different keys for all the different notes, using only bb, b, nat, # and x. And when it comes to quarter tones, it'll be even worse.

Talking about E#: It's just an example. And a change of the UP/DOWN key would only help when the current global key signature matches it, which might not be the case. You seem to feel, that the global key signature reflects the tonality of everything that follows. This is, however, not true for all kind of (tonal) music.

Especially music that modulates a lot is often written without any global accidentals.

And thus I would also have a different definition of "thinking musically":
"I'm in C major and want a G# means I have to..." is only applicable for music, that is 1) tonal, 2) not modulating (at all?), 3) not using chord figurations... (list to be continued)
It is once more a special case around many, and I seriously wouldn't call it THE musical thinking.

So it's all about expectations: I press G, so I'll get a ...
My expectation differs from what I get with the current method. And there seem to be a lot of people having the same problem.

In reply to by heuchi

Yubare right that there is nothing wrong twith saying (sometimes) it will help you (other times it will hurt), that you think based on the type of music you personally deal with and the way you typically think about it, it will help you personally.

But that's quite different from saying it is "very important". That phrase implies it will help everyone, and that it will make a bigger difference than it actually will.

Not sure where you got the idea I was talking about the program guessing about G's. I never said a thing a thing about guessing. The behavior is completely deterministic in both the current and proposed schemes. The example with the Gb was just to show that *for the user who is thinking musicallly*, entering a G# in the key of C is going to be less consistent than it is now. Right now, you always hit G then up-arrow. After the change, the sequence of keys needed to enter a G# in the key of C could be any one of several things. It's absolutely a step backwards that will lead to more errorsin these situations. But as I keep saying, I nonetheless accept this step backwards because it also has other advantages.

So you may be wondering why I keep harping on this if I say I accept in. Well, I guess I'd like some acknowledgement from those pushing for this change thtat they are asking others to sacrifice something and to stop acting like this is just "fixing" a "broken" note entry system. It is a far more serious thing being proposed, and I want those pushing for it to acknowledge that.

As for the definition of thinking musically, your observations doesn't actually apply. My use of of the key of C was just an examole. If you think through my argument, you'll see that it actually applies nomatter what key you are in, and it also applies to atonal music. No matter what key you are in, while you are in that key, pressing a given key also produces the same pitch. The proposed change breaks that. It breaks at no matter what key you are in. It breaks that for tonal music as well as atonal. It breaks it regardless of "chord figurations”. The fact that you don't seem to see this concerns me greatly - you seem to not comprehend the extent of the negative impact this change will have.

In reply to by Marc Sabatella

I do feel that the origin of our problem lies in the definition of "being in the key of". (I at least hope I did understand your point now. English is not my native language and therefore I can just never really be sure, if I understood well, or if I made my points clear to others.)
When you say "in the key of C": do you mean that the global key signature (the accidentals at the beginning of the line) are those of C? (well, C has none, but works the same way for every other key.)
When I say "in the key of C", I mean that the current music is in that key / has modulated to that key.
And this would be a difference. Let's say: we have the key signature of C major, but the chords going like Em F#m B7 Em... for some time (just an easy example). I'd call this being in the key of Em, despite of the fact that the overall key signature is still C (no accidentals).
Does that make any sense?

In reply to by heuchi

Thanks for the reply, which helps.

When I said "in the key of", I meant the key signature. That might not always be what I mean if I use that phrase, but it is the meaning that is relevant for my example. As long as the key signature is that of C major, typing G always does the same thing in terms of the pitch entered - it enters a G . And as long as the key signature is that of A major, typing G always does the same thing in terms of pitch - it enters a G#. So obviously, the result of pressing G does depen on key, but that's all it depends on - it doesn't depend on what other notes you had entered earlier in the measure. And this is what the proposed chane is goong to break. It will break it for the key signature of C major just as surely as it breaks it for the key signature of A major or any other. It will no longer be the case that pressing G while in a given key signature will always produce the same pitch, so that's a pretty big price to pay.

But the propsed change has other advantages. After a full evaluation of the tradeoffs, I am pretty sure I will come out slightly behind, but I *am* willing to accept this step backwards if others who have similarly performed a full evaluation of the tradeoffs are all convinced the price is worth it and that mostele will come out ahead. But it would make me very nervous to see the change if the people pushing it have *not* fully considered the cost.

BTW, I realize that having the behavior of note entry depend on key signature as it does now might seem somewhat inconsistent as well. Some might claim that hitting G should always enter a G natural, regardless of key signature. But I do very much prefer the current behavior where the note that gets entered depends on the key signature, because otherwise, it would be much harder to enter music in keys with lots of flats or sharps. The current system is nicely key-neutral in terms of ease of note entry, except for that pesky E# and B# (and to a lesser extent, Fb and Cb), which can mke some keys harder to work with than others. That's why I also want to see the behavior of up/down arrow modified to produce these pitches if the alternatives are not diatonic. So, for instance, in the key of A, I think B up-arrow should produce B#. C down-arrow should continue to produce C natural, of course.

In reply to by Marc Sabatella

So we seem to understand each other better now. I did indeed not understand, how my way of musical thinking could ever be called 'symbolically' ;-)

You do however realize that a regardless of key signature method does exist currently:
Edit - Preferences: Note Entry - Alternate input method
Since there're already two methods, I didn't really understand why we couldn't make it three.
But I don't want to start that discussion again.

I don't think your proposed change to the up/down keys would help me a lot. I would however not oppose.
The one thing that would help me - besides the current proposed change - would be a possibility to specify the accidental of a note before actually pressing the key. Example:
Key: C major: Now, if I want to enter a F, I just press F and the program decides if an accidental might be needed. If I want F# however, I press "some new # key" F, which gives me an F# and an accidental if needed. I do realize, that this could be a major change in the input system, which also might not be coded so easily. For that reason I didn't come up with it until now. And it might be off-topic. :-)

In reply to by heuchi

Again, thanks for your post - it does seem we are understanding each other better.

I had totally forgotten about the "alternate input method". You're right, there are two methods now. Adding a third is probably not out of the question, and as a user I might appreciate it. But if I were one of the developers, I know I would tend resist those types of suggestions, as having to support multiple method tends to make long term program maintenance more difficult. So I figure, that's a call best made by the folks who actually implement this.

I'm surprised you don't think it would be helpful to have up arrow on E produce E# when in F# minor, rather than requiring use of the accidentals palette as is currently necessary. Is that because you don't normally use the arrow keys for accidentals, and are in the habit of using the accidentals palette for all accidentals? If so, you should be aware that this is kind of a dangerous habit. The palette accidentals have a somewhat different behavior in certain ways than the ordinary accidentals you'd create via the arrows. They are more "overrides" to give you a visual accidental that differs from what might be needed/expected given the pitch. As a result, they don't always behave as you might want. The most obvious example being if you enter "F, (palette sharp), F, (palette sharp)", you end up with both sharps visible, which is of course not what you normally want. But there are also ramifications relating to transposition, key signature changes, etc.

In reply to by Marc Sabatella

Well, I don't mean it wouldn't be helpful at all to have up arrow on E produce E# when in F# minor.
And the more I think of it the more interesting it actually sounds.

The reason I wrote 'it wouldn't probably help *me* a lot' is, that I tend to not use a key signature a lot of the time. Since I like to modulate a lot, I'd find myself in the need of E# or any double # or double b while the key signature still might be Cmaj/Amin. I also wrote it this way, because you suggested, it could be a work around replacement for the proposed input method, which it would not be in my case.

In reply to by heuchi

Makes sense that the proposed change to handling of up arrow and E# would interest you much if you don't use key signatures often. I don't use them that often either, but then, I tend to be pretty free about spelling E# as F even when I know it is really E#. I didn't mean to imply that this would replace the proposed change to behavior of actually note entry, though - just implementing the E# change would elimintate that specific problem, which was the main problem you mentioned having.

Now that you also describe writing tonal music but without key signatures, that explains a bit more. Indeed, you will need accidentals even for notes that are diatonic to the key you are actually in. That doesn't happen if you use key signatures; it is only non-diatonic notes that require accidentals. And those non-diatonic notes are that much less likely to be repeated in a measure (depending, as I said, on the rate of harmonic change, also whether they were harminic or nonharmonic tones). Which also has a lot to do with why some people will find the proposed change a step backwards - it actually results in *more* clicks for some uses.

OK, well, I do think this has now sufficiently been thought through. Again, despite the drawbacks I am pointing out, I continue to support the change, regardless of whether it is made an option or just replacea the current system.

In reply to by heuchi

Thanks, David, for the acknowledgement.

I realize that I am long-winded and that can both obscure my point and make people less less likely to want to read and respond in full. So for the benefit of others who may not yet understand the modes of thinking I refer to and how this change relates, let me try one more time, using a specific example from the above post:

So it's all about expectations: I press G, so I'll get a ...

Yes, indeed, it's about expectations - but expectations differ depending on musical versus symbolic thinking.

In the current MuseScore note entry system, every time you press "G" within a given section of a piece, you get the same pitch (=music). The accidental (=symbol) that may or may not be required to get that pitch varies depending on what came earlier in the measure, but the program handles that for you. This is what I mean by musical thinking. You concentrate on getting the pitch you want, the program worries about what accidental is needed to produce that pitch.

In the proposed system, every time you press "G" you get the same symbol an oval with no accidental. The pitch that results from this symbol may vary according to what came earlier in the measure, but the program handles that for you. This is what I mean by symbolic thinking. You concentrate on getting the symbol you want, the program worries about what pitch that symbol will produce.

The latter mode can be clearly advantageous when you already know what symbol you want but may or may not know right away what pitch that will produce - eg, when copying existing notated music. But the former mode can be just as clearly advantageous when you already know what pitch you want but may or may not know right away what symbol is required to produce that pitch - eg, when composing music or transcribing from recordings. And this is what I want to be sure everyone understands.

In reply to by Miwarre

...which seem to show that there is some consensus.

I had a preliminary look at the code from the perspective of such a change and I believe to have found the points in the code where to change; exactly how to change them is not completely clear to me yet, but I have some ideas.

Some comments:

1) I understand that up/down arrow usage (issue with diatonic steps) might seem strictly related to the input method; and it is, from the user perspective. But the code involved is rather separate and I would prefer not to touch at it; at least not at the same time of changing the input method.

2) Same for the proposed new up/down editing command "raise/lower all notes like this one"; for me, it would be like heart surgery: something to leave to someone knowing rather well what he's doing!

As I said, I cannot promise any delivery time but, with the limitations and specs described in my post above, seems doable.

I'll keep all of you posted.

M.

P.S. to Marc: I'm glad you are set up for coding. You are probably right, though: this is possibly not the best place to start 'playing' with MuseScore code. I am following MuseScore code evolution since a couple of years, I always go with 'leaded feet' (any English equivalent of this Italian saying?) and I still make any sort of stupid errors nevertheless, but I have finally become able to code some new (rather self-contained) features like tablatures or figured bass. But structurally modifying existing code is another thing; also processing user input is done across several source files and with a rather complex work flow... The good new is that, with MuseScore version control system, it is impossible to do anything irreparable: anything can always be undone. M.

In reply to by Miwarre

Here's a more detailed specification:

A. Note editing outside of note entry mode is unaffected by current proposal

B. Note entry via MIDI keyboard is unaffected by current proposal

C. Note entry via mouse or alphabetical keyboard should follow the rules below. But first, a definition:
- Neutral note: any note entered without strictly specifying an accidental. Any note entered by clicking on the staff or pressing a letter on the alphabetical keyboard starts out neutral.

  • If a user enters a "neutral note" then check for the following:
    • If there are any previous notes in the measure on the same staff position (line or space) then adopt the pitch of the previous note. The entered note does not need any accidentals.
    • If there are no previous notes in the measure on the same staff position then adopt the pitch of the key signature. The entered note does not need any accidentals.
    • If there are any subsequent notes in the measure on the same staff position then the pitch of the subsequent notes should remain unchanged. If the pitch of this subsequent note is different from the one just entered, add an accidental. (This is required for a special case: Initial measure has sharp-A, flat-A, neutral-A. You reenter the second note with a neutral-A. Measure now becomes sharp-A, neutral-A, flat-A).
  • If a user explicitly specifies an accidental (via arrow keys, toolbar, or palette) then check for the following:
    • If there are any subsequent notes in the measure on the same staff position then the pitch of the subsequent notes should remain unchanged. If the pitch of this subsequent is different from the one just entered, add an accidental.

In reply to by David Bolton

Agreed. I'd just add that your "special case" is not really so special. It also applies to extremely simple cases like if you have two A's in a measure, then you later select the first and raise it's pitch. You don't need intermixed flats and sharps to need this behavior. Also, as far as I know, no active steps will be required to implement this aspect of the algorithm. As long as the pitch of the subsequent notes is not altered, the display routines automatically add the necessary accidentals to the best of my understanding.

Also, for the record, this is the situation where a new command that actually goes through subsequent notes and alters the pitch will help make it easier to correct errors. I'd say the algorithm should be, start looking ahead for other ntes on the same line/space, and until the first one that already has an explicit accidental, modify their pitch to match the current note. Which will have the side effect of making it so no accidental is needed.

A side note on E#, B#, Cb, Fb.

In V2, a way already exists to enter those notes without recurring to the palette symbols (as Marc said above, palette accidentals have subtle differences from the accidentals entered with the up / down arrows).

For instance, to enter E#:

1) Enter E (in whatever way)
2) Press up: you get an F.
3) Press the key for "Enharmonic Down"; (default is J, I think, but it can be configured)
4) Enjoy your E#!

"Enharmonic Up" (G) and "Enharmonic Down" (J) cycle in one direction or the other across all the possible enharmonic representations of a pitch; for the above example: E#, F, Gbb, E#... (up) or Gbb, F, E#, Gbb, ... (down).

It is not as automatic as Marc asked for above, but it come closer; doesn't it?

M.

P.S.: The above steps are from a "didactic" point of view (for E#, start with an E); of course, it is possible (and quicker) to directly enter an F and convert it to E# with "Enharm. down".

In reply to by Miwarre

This will indeed be very handy to have. I'm more and more looking forward to V2.
I was however wondering: the key "G" is already assigned to enter the note G. "Enharmonic Up" should therefore be on a different key, shouldn't it?

Hi,

I have a prototype code implementing the specs defined by David above. Now, as we are dealing with a very basic feature, some more testing is needed before posting it (it is always possible I overlooked disastrous side effects of such a deep change).

An additional good new is that the code is rather neatly layered in 3 steps: start by ignoring any accidental / take into account key accidentals / take into account previous accidentals for that note (in measure). This makes easy to stop after each step and obtaining 3 input methods at the cost of one:

1) always enter natural notes (natural sings appear when required)
2) always enter notes according to current key signature ONLY (the method used now)
3) enter notes according to current key sig. AND any accidental for that note used previously in the measure (if any, of course)

but some user interface is required to choose. I would prefer NOT to introduce many changes until we know the change is not dangerous under other respects and/or does not require extensive reworking.

So, the initial release (if the core developers agree to include it) will have 3) active by default and no way to choose. Once the new method will be tested, appropriate UI can be added.

(In effect, I am speculating of not adding a preference, but a menu item: "Notes | Input method => No accidentals / Key sig. accidentals / All relevant accidentals" right below the current "Notes | Respell pitches" menu item).

With a bit of luck, we are getting near...

M.

P.S.: As far as I can tell, the "alternate input" quoted above is no longer present in V2. It currently has only one note input method.

** EDIT**

Not-so-good new: Mouse input does not seem affected by the change (yet!); only keyboard input is. More work...

In reply to by Miwarre

My vote goes to no option to choose from. Having options will make the UI more difficult, harder to support new users (which method are you in?), harder to write documentation. If we change the current input method because it's not good enough, then we change it, we don't do it half.

In reply to by Miwarre

Since I won't be able to compile V2 on my system as of now (my QT version is too old), I'd just like to ask if the nightly build will contain the new code. If that's the case, I'd also be happy to do some testing.

In reply to by Miwarre

This is great! If you'd like additional testing before actually committing to a nightly build, you could send me the modified files and I could do my own build. Or, if you have a Windows build, I could just take that.

Or it might make more sense to wait until you sort out the mouse input, to make sure you don't end up needing to change your basic implementation strategy.

In reply to by [DELETED] 5

I cannot replicate the problem with enharmonic: if I create a new score with exactly the same note entry steps as described in heuci's score, I get Bb as last note of first measure and Ab as last note of 2nd measure as expected.

Working with rev. 2e84a7ee7 (2012-08-03 15:54:02) self-compiled with Qt SDK /Qt lib 4.8.0 under Ubuntu 11.10.

Anyone can confirm?

Thanks,

M.

EDIT: I just saw that lasconic marked the issue as fixed while I was writing the above post! So, here we are at last!

I am afraid I have to give up.

The work flow for keyboard input and for mouse input is very different and, for each, adding a new (single note) chord is different from adding a new note to an existing chord. In all cases, the routines (often different from case to case) actually computing the note pitch/tpc are very deep in the call stack, where important context elements (for instance, which (diatonic) note has been asked for) are lost.

The net result is that rather deep and potentially far-reaching changes are required and the risk of introducing unexpected (and far-reaching) instabilities is significant.

Adding to this the almost total silence kept by the main developers in the issue, I do not feel confident enough to go on.

I am sorry, but this specific point seems to exceed the possibilities of an open source external collaboration.

M.

In reply to by Miwarre

Sorry for being silent, i was distracted by other problems. Granted the input code is in a bad shape and in need for a code refactoring. So implementation of the feature is a chance to think again about the current code.
Maybe you can make available your current code in a git branch in your public git clone on gibhub?

In reply to by [DELETED] 3

Sorry, it took me a little: the code was a rather quick-and-dirty hack and needed some cleanup and more documenting.

I pushed the change as a branch in my Github fork at: //github.com/mgavioli/MuseScore/tree/new_note_input_method ; just in case it can be of any use, I'm attaching a patch (not sure how to create a patch with git, so I just copied the diff shown by gitk).

HTH,

M.

Do you still have an unanswered question? Please log in first to post your question.