Chords: Notation program should be "harmonically aware"

This is a suggestion for things to consider while implementing chords. Chord notation should be about more than just printing pretty chord symbols or tablature. And it should be about more than being able to play back those chords in a musically sensible way. It seems to me that a program being offered in 2016 should be “harmonically aware” in a way that makes the composer/arranger’s job easier, faster, and more error-free.

My comments will be in the context of jazz because jazz is often expressed with explicit chord symbols, but the concepts can apply to many types of music.

In jazz composition, very frequently we start with a melody and then create parallel harmony lines that are based off the melody. We can do a third above, a 4th below, “drop 2”, or many different “formula” voicings. Notation programs have helped in a small way by allowing us to copy the melody line, then nudge an entire passage up or down some number of notes DIATONICALLY (i.e. within the current scale). That can be a fairly quick way to work, but only if the current tonality is compatible with the current key signature.

For example, take a passage with a key signature of C major using the following chords:
CM, Am, Dm, G7, CM

If the nudging is diatonic relative to the C major scale, that works out pretty well. There may be few notes that would require individual adjustment.

But that is not how most jazz music works. It is much more likely to see something like:
CM, Dbdim, Dm7, Ebdim, E7, A7, Dm, Db7(b5b9), CM

In such a progression, it makes absolutely no sense to use the C major scale as the basis for diatonic movement. Indeed, there is a good scale corresponding to most of the common chord symbols, and THAT SCALE is what should be used for diatonic nudging whenever the chord information is provided. If such a solution were in place, if I entered an appropriate melody that fit the above chords, it would be quick and easy to get musically correct harmonies in place.

I don’t know of any notation program that does this today, although Finale provided a Band-in-a-box auto harmonizer plug-in that did essentially the same thing (although it could create voicings of 2-6 voices with one click.) Sadly Finale V25 deleted that plug-in. I could live without the plug-in if the notation program were harmonically aware as described above.

I offer this as food for thought. This probably goes beyond the concept you have in mind for chord entry. I suggest your design of chord support should take this into account so that you lay the groundwork for an overall better solution.

I am surprised there are no comments pro or con on this subject, considering how may people use the nudging feature as a central part of their composition/arranging. Did I not explain the thesis well enough?

As best I understand it so far, you want nudging notes up & down to stay with the current harmony at the moment rather than just the key signature (and perhaps previous accidentals in the bar). This immediately prompts the question: How shall the harmony be determined? By chord symbols? They can so easily be ambiguous, even if entered carefully (which few composers do). I would like to see a sample of how you’d map scales to chords, and I wonder how many musicians would agree with you.

Also, jazz musicians are notoriously unconcerned with enharmonics, but music notation cannot be. Your sample progression is sensible to the ear but has misspellings: the roots of the diminished 7th chords are leading tones to the next chord, so they need to be sharps, not flats. This may sound like fussy academic nonsense to most jazz players, but software has to “understand” all of it in order to handle the kind of feature you’re talking about.

Not sure if I really understand what you are describing.
Sorry if I don’t.
(BTW could it be that in your chord progression you mean Em7 rather than E7?)

To me it sounds as if you would expect a chord recognition automatism that would follow the underlying scale of your melody.
Though I can imagine that a lot of people would like such a feature, I have absolutely no need for any kind of automatic chord recognition.
Also I would hate it if the programm would force me to spell my chords in a specific way!

On my side I need chords for musical scores.
I need them for the piano and guitar parts as well as for any part of instrument playing harmony (harp, vibraphon, keyboards and so on) and also for the vocal parts with or without piano accompaniment.

As I do exactly know how I want to spell the chords I use, I do not need any kind of recognition automatism.
But in case a notation programm has such an automatism it is absolutely necessary for me to be able to use my own chord spelling even if this is not conform to any theoretical rule!

I give two examples:

  1. Beside conventional music I also write music where, isolated seen, one can find recognizable traditional chords, but where there is absolutely no underlying traditional classic or jazz tonality for the whole piece.
    In this case, any kind of enharmonic chord recognisation is pointless and I want to be able to choose how I spell the used chords.

  2. It happens very often that for the sake of better legibility for the instrumentalist I will write Fmin9 rather than E#min9, even if E#min9 is the correct enharmonic spelling.
    In this case I really do not wish the programm to tell me that my spelling is false!

But the kind of automatism I would like to see is that the program recognises when I manually transpose notes.
In this case I appreciate it when the program is able to transpose the chords (and the notes too of course!) according to the transposition intervall I use but it should be also able to simplify.
In the example above I would like that if I transpose the music a whole step up, the programm proposes Gm9 instead of Fxm9.

What I absolutely would not like at all is any kind of automatism that forces me to use a theoretical chord interpretation.

To sum up:
. One or more selectable intelligent chord recognition automatisms? Why not.
. The ability for the user to spell a chord to his liking? Absolutely necessary!

BTW I appreciate the Enharmonic Spelling features of Finale.
It allows you to select the whole piece or only some bars and to apply either:
. Default spelling
. Favor flats
. Favour sharps
. Use spelling tables
And you can also edit major or minor key spelling as well as modal or chromatic key spelling.

I do hope Dorico will offer such usefull features too.

These are good points and, in a general sense, ones I would really hope to see implemented throughout Dorico and not only in the field of chord implementation. Automatisation following the rules of conventional notation is very important, but only to a point and the software program should always make it possible for a user who needs to depart from certain conventions to be able to do this easily.

I’d rather see something like Finale’s Explode Harmony where I can write a four-note chord in the violin part and have it exploded into a quartet of string lines. I have little use for Band-in-the-Box type functions.


It seems like a simple solution would be, when you are asked if you want to transpose diatonically or by interval to also be given the opportunity to pick a scale. This could be useful not only to jazz arrangers but also to composers as a tool to experiment with new harmonic ideas.

Or be given the option to attach a scale to a given chord on a per-case basis… or globally… or per Flow… or something else entirely… :slight_smile:

I am not suggesting automatic harmony detection, although that is its own kettle of fish that deserves consideration. There are plenty of tools out there that actually do harmonic recognition, and the notation programs should avail themselves of this. But that is not what I was proposing.

I simply observe that it is common for notation programs to have the ability to nudge notes (or an entire passage) up and down the scale, and that is something the people may wish to use as a quick way to enter parallel harmonies. But it makes absolutely zero sense to consider the diatonic scale to be that of the key signature when the composer has gone to the effort to explicitly state the harmony by way of chord symbols.

So my suggestion, boiled to its essence is:

  1. As chords are supports, the developers should recognize that easily 90% of the common chords have a scale that is highly appropriate for that tonality (David Baker and many others have written extensively on this. No need to repeat that here.
  2. There should at least be an option – if not the default behavior – for diatonic nudging to force the nudged notes to that chord-related scale, if that is different from the scale of the current key signature.

So I am only talking about how “nudging” would behave. I am assuming there is a diatonic nudging behavior in Dorico. In Finale, by default this is done by selecting the passage and using the 5 or 6 keys for diatonic step down and up respectively.

An easier solution is for the software to understand that the chord symbols actually mean something and aren’t just eye candy. Why should I have to go through a transposition step where I have to pick the scale when I have already entered a chord spelling which in 90+ % of the cases will define a completely unambiguous scale?

Any ambiguity is a heck of a lot better than using the key signature scale which is certain to be wrong on a high percentage of the chords.

For example if the key signature is C major, I would be perfectly happy if the program wanted to use the C scale (i.e. D Dorian) for Dm7 and I don’t care if it uses the C scale or A dorian for Am7, Either one will get me pretty close and I would have a minimum number of notes to adjust manually.

But if there is an E7 measure in the progression, that should obviously use the E Mixolydian scale, not the C major scale. If I have F9(#11), that should use the F Lydian scale, and so on.

I’m not really interested in debating the 5% of the cases where there could be some ambiguities. I am interested in being more productive on the 95% of the cases that would fit this system very well. As far as enharmonic spelling, there are more things to consider than just the leading. And ultimately it doesn’t change anything regarding my suggestion Whether you call a note a C# or a Db, that is the pitch that I want to have come up when nudging a note that is within a A7 (or Bbb7 if you prefer) chord. As the way notation programs sit today, they simply don’t help at all.

Yes, of course. It should be as flexible as possible. But I believe it would be relatively simple to agree on good default scales for the most common chords.

And for that matter, even if one doesn’t have a need to enter chord names, one might want the ability to specify a custom scale (for nudging purposes) that doesn’t exactly match the key signature, for example if writing Klezmer or something.

No problem with that at all. My suggest suggestion has nothing to do with how chords are entered/spelled or how enharmonics might automatically be selected.

I am simply addressing the behavior of “diatonic nudging”. I am assuming this terminology is meaningful to folks here. What I mean is the ability to select a passage and to use a single keystroke to shift that entire passage up or down one diatonic step. That is a quick way to work, but really is practically worthless if it does not recognize that the scale at the moment may be different from the scale implied by the key signature. I am simply suggesting that this nudging action can be a lot smarter if the Dorico engineers will take this opportunity to integrate that with the chord symbols.

Not knowing anything much about jazz it was completely unfamiliar to me. I assume you mean something related to

I’ve noticed on some other forums that the jazz guys seem fixated on reducing everything to “scales” to the same extent that Schenkerian analysts are fixated on reducing the whole of common-practice music to variations on the first line of “three blind mice” :smiling_imp:

Nope. Had to look it up. All I could find was this…

That is not what I am talking about. I am not talking about nudging chord symbols. Perhaps somebody can suggest a term that will be more easily understood.

I am making an assumption that Dorico permits single-key diatonic transposition of a whole phrase of selected notes. Is that correct? For example, let’s say I have entered the melody for “Mary Had a Little Lamb” in the key of C. Can I copy that melody to another instrument, select all the notes, then hit a hot key twice to transpose that entire melody up a third diatonically? In other words, the melody was E-D-C-D-E-E-E D-D-E-D-C. And after hitting that “nudge key” twice, the harmony part would become G-F-E-F-G-G-G F-F-G-F-E without having to make any individual note adjustments? 2 keystrokes and I’m done.

Can somebody tell me the key sequence for doing that in Dorico? It is most certainly possible in Finale and surely should be possible in Dorico.

This is the “nudging” I am talking about. That works fine if the notes are all within the harmonic context of the key signature, as is the case with “Mary …” But it would be nice to use that fast transposition on music with a bit more harmonic character. That is what I am talking about – using the chord symbol information to change how diatonic movement is interpreted.

It seems like such a no-brainer, and I don’t see why anybody would object to that. After all, if you don’t enter chords, then nothing would change for you. And if you do enter chords, my suggestion would work considerably better than using the key signature alone.

Well, there’s no reason to be an elitist about it. Some of us get paid for the work we do, much of which is repetitive and formulaic, and and we want the best productivity we can get. Nobody is insisting that you use the feature I am describing. If you don’t enter chord symbols and you find the idea of applying a diatonic transposition to an entire phrase repugnant, then this wouldn’t affect you at all.

Why don’t you guys talk about the feature request rather than argue?

The request as I understand it is that once Dorico can do chord symbols, to constrain notes when transposing to a mode or scale that corresponds to the current chord symbol.

As the forum member Mark Johnson said above, how will the scale be chosen? If there were just one scale per chord quality it would be convenient, but that’s not the case.

In any case, while the devs might be interested to learn what people want, I think they have a well developed philosophy that informs the design and the features that are being built for Dorico, so any debate among users about this potential feature seems a bit, well, hypothetical.

That said, here’s my opinion :wink: I would not want to have notes constrained, for example, to mixolydian, when I want a diminished scale over a dominant chord. Personally I would be happier to press a modifier key and move the notes chromatically.

Cubase does have this functionality- you can specify a scale to transpose to or from, along with an interval, and there is a chord track that does voice leading, and some of the stuff in the OP request.

I think I see what you’re asking for. Nice idea and potentially a real time saver.

I suspect that the chord symbols, when they arrive, will be purely notational. i.e. they won’t have any impact on playback. With all the various chords, the different ways of writing them, guitar tabs, positioning etc., I’m sure there’s more than enough work in involved in just getting this area notationally correct.

However, assuming that will all be delivered perfectly at some point, it would be good to then move it on and develop ways of playing back those chords (as Cubase is now doing), or using the chords to suggest harmonies on other instruments. That said, it’s such a huge area - ultimately we’re talking about auto-arranging - it’s potentially another (massive) program in itself. And yes, I’d happily buy that program!

In the meantime, and I respect that it’s not the ideal answer for you, maybe some of what you’re after can be handled by transposition? Don’t know about you but personally I’m expecting a fair bit from that area in next 2 or 3 updates…