saebekassebil / teoria

Javascript taught Music Theory
http://saebekassebil.github.io/teoria
MIT License
1.32k stars 114 forks source link

M for major #71

Closed pianoboygit closed 9 years ago

pianoboygit commented 9 years ago

Teoria currently interprets "CM7" as a "C7" (dominant 7th) chord, when it should interpret it as a "Cmaj7".

A capitalized "M" in chord names is synonymous with "Maj". While using "M" is bad practice (due to confusion with lower-case "m", especially with certain fonts), it is universally recognized as meaning "major", and unfortunately this notation is common enough in books, sheet music, and chord charts, that teoria should probably support it.

Note: I know that teoria supports "M" as a standalone 7th qualifier, and it should continue to support this. e.g. don't change the behaviour of "CmM7" (C minor chord with major 7th) or "C+M7" (C augmented chord with major 7th). But in addition to that, "M" should be equivalent to "Maj" when used for the chord quality definitions themselves. In other words, when "M" immediately follows the note name, it should act the same as if it were "Maj" following the note name. Examples: "CM13" == "Cmaj13", "BbM7#11" == "BbMaj7#11".

Similar to this, I would also recommend allowing "Ma" as another "maj" equivalent, and "Mi" for "min". Example usages:

saebekassebil commented 9 years ago

You're right! I thought this already worked. Well. Let me look into that!

Thanks for reporting. We should probably support Ma and Mi as well, and you're welcome to submit a PR for that if you want.

pianoboygit commented 9 years ago

Cool. FYI I'm not actually using teoria (but great project!). This all stemmed from this post on /r/piano: http://www.reddit.com/r/piano/comments/30cuyq/i_built_a_web_application_that_visually_shows/

saebekassebil commented 9 years ago

@pianoboygit: working as of v1.5.0

I've implemented 'Ma' as 'Maj' - and I've always been taught (and from what I've read) that 'Cmaj' = 'Cmaj7'. And so teoria now parses 'Cma7' as 'Cmaj7'. Is that correct in your opinion?

saebekassebil commented 9 years ago

Sorry, minor misunderstanding. Status as of v1.6.0: