Note and Key Label Changes

Synthesia is a living project. You can help by sharing your ideas.
Search the forum before posting your idea. :D

No explicit, hateful, or hurtful language. Nothing illegal.
Posts: 12439

Post by Nicholas » 08-10-10 1:48 am

Alright, that explanation helped a lot (I think).

As a sanity check, the key of DbMaj and Dbm are going to use an identical set of movable-do note names because we're only interested in that starting scale note and just use the same pattern from there, right?

If that is true -- and this still feels a little easier than it ought to be -- here are the results from a random sampling of key signatures using the new "Movable 'Do Re Mi' Names" option that will be in the next preview:
MovableDo.png (28.13 KiB) Viewed 15135 times
Are those correct? (I really have to do something about making the labels more readable...)

Posts: 187

Post by Electrode » 08-10-10 10:01 am

It looks perfect to me! You've done an awesome job, Nick! :D

And for the explanation: as stated before, there are two distinct "camps": one that places the first degree of a minor scale on "La", and one that places the first degree on "Do". I would advise using Do-based minor, because of two reasons:

1. It encourages learners to develop a good sense of tonality - what is the "home note"? (otherwise known as the "tonic" or the "first degree" of a scale) and how do the other notes refer to it? How are they placed, relative to that note? This also helps the ability to develop aural skills, recognising melodies and intervals "by ear" and eventually - with some training - being able to copy things by just hearing them. This should be the ultimate goal of Synthesia, even though it's not the one being directly advertised - to develop all musical ability in general (both practical and theoretical), by developing the ability to play the most universal instrument in music (the piano or keyboard).

2. Because Synthesia's primary method of teaching is visual, Do-based minor encourages learners to recognise when a key is changed, which discourages learning by rote, and instead encourages the learning and application of the principles and rules inherent in music. The problem with La-based minor is that if the key changes from a major to its relative minor, or the other way around, very little will change on the key labels (therefore, learners may not even recognise that there has been a key change), but with Do-based minor (which we have already set up the labels for), Do - the tonic note, the first degree - has to physically shift position to the tonic of the new key from wherever it was before. When people see that shift of Do from the tonic of one key, to the tonic of the next key, the reaction is immediate: "Oh right, the key has changed because Do has moved. I must get my hand in a new position, if required, and get my brain ready to recognise all the notes of this new key." The only snag is when parallel modulations are encountered (e.g. C Major to C Minor) because even though the key changes, the position of Do doesn't. This simply requires a little extra vigilance.

Using Movable Do, with Do-based minor will result in one set of Do-Re-Mi labels for both majors and minors:

Do (1), Ra (b2), Re (2), Me (3), Mi (#3), Fa (4), Fi (#4), Sol (5), Le (6), La (#6), Te (7), Ti (#7)

These are the names of the scale tones of all minor keys. As you can see, it already perfectly fits with our labels.

To illustrate this, let's take A minor.

A minor exists in three variations:
Harmonic minor - which is the same ascending and descending: A (1), B (2), C (3), D (4), E (5), F (6), G# (#7)
This would be expressed, using the list above, as: Do, Re, Me, Fa, Sol, Le, Ti

Melodic minor ascending: A (1), B (2), C (3), D (4), E (5), F# (#6), G# (#7)
Expressed: Do, Re, Me, Fa, Sol, La, Ti

Melodic minor descending (also known as the "natural minor"): A (1), G (7), F (6), E (5), D (4), C (3), B (2)
Expressed: Do, Te, Le, Sol, Fa, Me, Re

If you check them all against the labels you have for A, you'll find that they check out perfectly. Cross-checking the labels with the Wikipedia article works, too. It really is that easy.

"Ra", "Mi" and "Fi" are the only notes not covered by any minor scale, but in the case of Mi this is fine, since Mi stands for the third degree in a major key, so having a different one for the third in the minor key emphasises the fact that major and minor keys are inherently different and sound completely different, despite sharing key signatures. "Fi" is also fine, as it stays the same as the corresponding interval in the major keys and is generally far more useful and common as a scale tone than the lowered fifth ("Se"). To make the case for Ra (as opposed to "Di"), the lowered second degree is much more common than the raised first (both in theoretical applications and in written sheet music, as it is easier to sight read a progression of notes in a certain direction than static notes with changing accidentals). This makes the relationship between the first degree and the note directly above it easier to understand. Not only that, but many modes (which are the precursor to scales) use the lowered second. None use the raised first. As an added bonus, six out of seven of the modes will already work with our labels anyway, without needing any alteration.

It really is a one-size-fits-pretty-much-everything solution. It also works for blues scales, and due to the ability to automatically work with six of the seven modes, some jazz scales (which are based on the modes) also work with these labels too.

By the way, can I see the note labels (not the Do-Re-Mi labels) for A, please? I want to check that a mistake I made in the notes for A (which I've gone back and edited now) hasn't made it in to the labels. (The mistake was that during copy/pasting, I left in a Cb from another scale which obviously shouldn't be in any of the A scales.)

Regarding readability of labels, how about taking the idea behind the "rainbow colours" option and making it more functional? Such as, colouring all scale tones in red, and all non-scale tones in blue? That would provide a direct visual reference to scale tones, and would serve to be more useful than rainbow colours, I think. It just won't look as pretty. Don't get me wrong, though. Pretty is good too. :P

Posts: 12439

Post by Nicholas » 08-11-10 4:15 am

Electrode wrote:It looks perfect to me! You've done an awesome job, Nick! :D
Awesome, thanks again, I couldn't have done any of this without your help. You totally got a line in the readme file. ;)
Electrode wrote:By the way, can I see the note labels (not the Do-Re-Mi labels) for A, please?...
If it looks correct in the little images I kept posting, it should be fine. Those were generated directly from the code. Otherwise, feel free to try it out and check: I just posted a new development preview in the dev updates section of the forum. All this new stuff is in there.
Electrode wrote:... and would serve to be more useful than rainbow colours
Actually, the color stuff was kind of a specific, one-off thing I did as a favor. The colors happen to match the ones on the, uh... big piano.

Still, the text effect (solid border vs. the usual drop-shadow on all the other in-game text) is probably a better bet for making things visible. I'll mess around with it a little... maybe make it a point-size or two larger, too.

Posts: 187

Post by Electrode » 08-11-10 4:41 am

That is so awesome! It looks so fun, like DDR with actual musical implications!

Actually, now that I think about it, I believe I may have seen the BIG Piano before, some years ago. And, now that I'm using Synthesia, I can recognise it in one of the photos on their site. Since the piano is essentially powered by Synthesia, the favour makes total sense, and would greatly help with using the piano. I understand now.

I know your UI code is homebrew and, by your own admission, quite a strange beast to work with ;), but here's another option that could probably work for colours. If we could eventually have some sort of drop-down list or combo box or radio button thing (like the buttons we have at the bottom of the Keyboard Options window) that has a list of colour choices (e.g. BIG Piano, Scale Tones, Random colours etc.), then we could select our colour choice from the Options screen, and have potentially many options available to us which could be quite useful. Perhaps this could expand into user-editable colour schemes in future. So many possibilities. :)

Synthesia Donor
Posts: 1180

Post by TonE » 08-11-10 9:25 am

Wow, the big piano, together with a Tournament Management Addon can be great team fun, similar to playing bowling in teams. Maybe Nicholas you should start also producing and selling such "Big Pianos", with lightning would be even better?

User avatar
Posts: 223
Location: Seattle, WA

Post by stephenhazel » 05-04-12 7:56 pm

Scuse me for dragging up an ooooold topic, but looks to me like the scale spellings ya got most recently were:

And I thiiiiiink that's not quite right. Umm, first lemme see if this pic posts...:/

User avatar
Posts: 223
Location: Seattle, WA

Post by stephenhazel » 05-04-12 8:04 pm

Okay, I think the standard is to use one letter per scale step.
If minor, you always sharp (natural a flat or double sharp a sharp) the M6, M7 steps.
And make sure nonscale tones (5 extra from major, 3 extra from minor - excluding M6,M7 which are "kind" in the scale)
umm, make sure they don't dup the letter for the tonic and dominant of the scale.

So, for example, in A# minor (a pretty terrible scale), you wouldn't use Ax (double sharp),
you'ld use B%, riiiiiight Electrode? Else you're dup'ing the tonic letter.

I have this from a pretty reliable source :)

(although I could be wrong, too:)

Posts: 12439

Post by Nicholas » 05-04-12 8:23 pm

I can't speak to the accuracy of it -- I'll leave that to Electrode -- but this is how it ended up getting implemented. We merged the Majors and minors because they're sort of the same thing... the minors just start like halfway down and wrap.
2012implementation.png (7.9 KiB) Viewed 14898 times
Also, what is B%? Is that some notation for a double-flat or something? Triple sharp?

User avatar
Posts: 223
Location: Seattle, WA

Post by stephenhazel » 05-04-12 8:35 pm

that's a natural sign - meaning even though it's on a line/space that's, say, sharped, DON'T DO THAT.

also, merging the major/minor scales is fine for pianoroll mode.
But probably not for sheetmusic mode.
I should talk :)

Posts: 12439

Post by Nicholas » 05-04-12 8:45 pm

Hmm, I wonder if we can paste the actual thing in here. Let's find out: ♮
stephenhazel wrote:merging the major/minor scales is fine for pianoroll mode.
I just meant for data-lookup. There is only the one array in the code now (that image is generated from the source code and a bunch of "Find and Replace" to get rid of the C++ notation). I have lookup tables that reference that lookup table to keep the Majors and minors separated and correct. I just meant there wasn't any reason to duplicate the data in the code. It ended up being repeated 1.5x when they were split up.

The data from those tables provide the basis for a KeySignature class that you can ask all kinds of information about: scale steps, note spellings, etc.

User avatar
Posts: 223
Location: Seattle, WA

Post by stephenhazel » 05-04-12 9:32 pm

Yeah, that's the natural symbol.

I just meant that, say we got A minor and C major.
For piano roll mode, it really doesn't matter how you notate the #/b/%/x/bb stuff.
But for sheet music, although the keysig is the same for a minor and c major, the
outside the scale tones will be different.

I'm pretty sure c major is:
C db D eb E F f# G ab A bb B

But a minor is:
A bb B C db D d# E F f# G g#

c major has Ab so as not to dup the dominant g letter.
a minor has G# so as not to dup the tonic a letter.
And the eb/d# difference is similar eb as the scale generally uses flats, but d# since you can't dup E in a minor cuz that's the dominant note.

For piano roll, who cares - no lines and spaces means spelling can be slack.
For sheet music, it matters. People who've spent years practicing piano with
standard sheet music (the fools:) will stop in their tracks and freak out.
I tell ya, those guys are crazy :?

I tell ya, after researching sheet music, there is SO MUCH to it.
And I sure don't wanna do it. But, mmm, I think i gotta :roll:


Posts: 12439

Post by Nicholas » 05-04-12 9:58 pm

Hmm... this business at the Chromatic scale Wikipedia page doesn't look good:
Wikipedia wrote:The chromatic scale has no set spelling agreed upon by all. Its spelling is, however, often dependent upon major or minor key signatures and whether the scale is ascending or descending.
The picture accompanying that section shows a C Major scale using 5 sharps AND 5 flats (depending on whether it's ascending or descending). Basically, they're picking the accidental that generates the fewest total accidentals (i.e., naturals).
stephenhazel wrote:And I sure don't wanna do it. But, mmm, I think i gotta :roll:
Why? I ignore requests from these guys all the time. :lol:

(Mostly kidding. ;) )

Posts: 12439

Post by Nicholas » 05-04-12 10:04 pm

Oh, and your suggested " db D d# " for a-minor goes against their advice on that same page:
Wikipedia wrote:As an abstract theoretical entity (that is, outside a particular musical context), the chromatic scale is usually notated such that no scale degree is used more than twice in succession (for instance G flat - G natural - G sharp).

User avatar
Posts: 223
Location: Seattle, WA

Post by stephenhazel » 05-04-12 10:09 pm

I don't know much about a chromatic scale.
But I think the idea is to do away with the scale spellings or minimize em.
But none of the sheet music piano practicers want that.
They want the standard.

In addition to the scale spellings, there's the alterations TO em.
If you're changing keysignatures, the earlier one alters the notes
to show the modulation. That would be pretty dang tough to do,
yet feasible IF the keysigs are in there.

THEN, there's the "if the melody is going up, use sharps" and
"if the melody is going down use flats" - that sounds pretttty close
to impossible as you'ld have to identify the melody.
Identifying the chords is one thing. But identifying the melody would, uhh, be tough.

User avatar
Posts: 223
Location: Seattle, WA

Post by stephenhazel » 05-04-12 10:14 pm

Nicholas wrote:Oh, and your suggested " db D d# " for a-minor goes against their advice on that same page:
Wikipedia wrote:As an abstract theoretical entity (that is, outside a particular musical context), the chromatic scale is usually notated such that no scale degree is used more than twice in succession (for instance G flat - G natural - G sharp).

Hmmm, that is TRUE. Not sure how you're supposed to do that one...
The D# has to be there cuz you can't use Eb cuz E is the dominant.
All I can think of is to use C# too so you don't get 3 Ds...
But I coulda swore somebody told me that all the accidentals were flat in a minor except the d#...

Hmmmm, if i figure it out, I'll let ya know.

Posts: 12439

Post by Nicholas » 05-04-12 10:19 pm

Ooo, the talk page for that article has a huge section on spelling where they discuss all sorts of things that are way beyond my ability. But out of everything I saw skimming the whole thing just now, this is my favorite passage and sounds like a pretty good answer:
Chromatic scale 'Talk' page at Wikipedia wrote:Parry (Grove's Dictionary, article chromatic) recommends writing the scale with such accidentals as can occur in chromatic chords without changing the key in which the passage occurs. Thus, taking C as a type, "the first accidental will be D♭, as the upper note of the minor ninth on the tonic; the next will be E♭, the minor third of the key; the next F♯, the major third of the super-tonic—all of which can occur without causing modulation—and the remaining two will be A♭ and B♭, the minor sixth and seventh of the key." According to this plan the chromatic scale beginning with C would be spelled—C, D♭, D, E♭, E, F, F♯, G, A♭, A, B♭, B, C—the form being the same both ascending and descending. This is of course written exclusively from a harmonic standpoint and the advantage of such a form is its definiteness.
I like that very last word. Definiteness. That's what I like to hear.

Now if only I knew how to build those steps they're talking about there, we could piece together the definitive a minor scale. :D (I've never even heard of a super-tonic. :lol: Sounds like it's time for more reading.)

User avatar
Posts: 223
Location: Seattle, WA

Post by stephenhazel » 05-04-12 10:52 pm

all i can say to that is.......


User avatar
Posts: 1812
Location: Illinois

Post by jimhenry » 05-04-12 10:57 pm

I'm not sure you can come up with an algorithm for "correctly" notating the "out of scale" notes (or even really knowing what scale you are in). The best I've ever been able to figure out when doing it by hand is that there is a lot of context that has to be considered because, in my view, you have to pick the accidental based on why the out of scale tone is there. For example, accidentals in chords have to be chosen so you are using the correct scale degrees while accidentals in melody are generally chosen for clarity of the melodic movement.

If anyone doubts the difficulties in this, consider a piece in C major that has a C#/Db major chord in it. (Yes I know the presence of a C#/Db chord in the key of C major is very strange.) What is the proper spelling of that? Whether it is C#-E#-G# or Db-F-Ab probably depends on what that chord is doing.
Jim Henry
Author of the Miditzer, a free virtual theatre pipe organ

User avatar
Posts: 223
Location: Seattle, WA

Post by stephenhazel » 05-05-12 12:22 am

Well, there's gotta be SOME way to pick out of scale spellings.
I mean, taking into account modulations and a melody line going up/down and chord spellings
is just gonna be nearly impossible.
But you gotta use SOME spelling for the out of scale notes.
And if you know the keysig (which you have to assume you do in a midi file - they can be put in),
well, you gotta put every note on the staff SOMEwhere.

Post Reply