Enharmonic Spelling

This is a response to the latest Development Diary post.
Dorico is going to be way ahead in this area at input, but will it have rules also for when you do change a note.
Other products have very odd algorithms for this, running through very exotic options before the straightforward ones.
For example, C D# and G# as a chord: if I click to change the entire chord, it tries C Fbb G#, C D# Ab, B# Eb Ab (annoyingly close…!) etc before getting to an Ab triad.
I think here the program should prefer major, minor, diminished and augmented triads, correct spelling of sixth chords, Neapolitan chords, as well as taking into account the momentary key and especially changes that have already been input.
Will Dorico look ahead (and behind) when changing? Will it take into account other staves and instruments harmonically? Will it be able to auto-change other staves if I change say B to C into Cb to C? Even if they are transposed? Will Dorico be able to change similar passages automatically? Will there be criteria for how similar? Also if the passages are on other staves or in other instruments?

This has the capacity to seriously save time.
(OMOT The pedalling plans look amazing - will conversion be possible between traditional and brackets?)

If you play C, D#, G# on your keyboard in the key of C major, Dorico will spell that as C, Eb, Ab by default. If you then use the Respell using Note Name Above/Below commands, Dorico will maintain the existing intervallic relationships, so if you respell using the note name below, you’ll get G# major 1st inversion, and if you respell using the note above, you’ll get Bbb major 1st inversion (useful, eh?). The respell behaviour is already working like this in 1.0.20: but you almost certainly won’t get C, Eb, Ab by default in C major in 1.0.20. When this arrives in the update following 1.0.30 I think you’ll find it very useful.

If I play e.g. C, Eb, Gb in C major, I get a diminished triad as you might expect; likewise if I play a diminished triad on D#, I get the expected triad shape. If I play an augmented triad, e.g. C, E, G#, I actually currently get C, E, Ab; this is because Dorico has to decide whether E natural to A flat or C natural to G sharp is the “worse” interval, and it ends up preferring to spell the C to G# interval as C to Ab. It seems to do a pretty good job of most sixth chords I’ve tried, including flattened sixth chords like the Neapolitan chord.

It does take into account existing notes in other staves, and it will also look both ahead and behind when determining the spelling (e.g. in C major, if you have an existing A on the second beat of a bar and you play G#/Ab on the first beat, it will prefer G# because of the following note). If you manually respell a note, Dorico will respect that choice and continue to spell that note that way.

It won’t go off and respell music in other unrelated instruments, but we do plan to add a command that uses a modified version of David Meredith’s PS13 note spelling algorithm in due course – though probably not in the release that will include these note spelling improvements.

As for the piano pedalling stuff, yes, you’ll be able to convert freely back and forth between the kind that use bracketed lines and the kind that use a terminating star-like symbol via the Properties panel.

Big kudos to Michael, who has done all of the note spelling work, and András, who has done all of the piano pedalling stuff. We are fortunate to have such talented and dedicated musicians, not to mention programmers, on our team.

Thank you for this, Daniel!
And to András and Michael!