rust-music-theory icon indicating copy to clipboard operation
rust-music-theory copied to clipboard

What is needed for melodic+harmonic minor scales?

Open peterkos opened this issue 4 years ago • 10 comments

Hi there!

I'd like to contribute to finishing this bullet point on the README:

Add missing modes for Melodic & Harmonic minor scales

However I can't seem to find which modes are missing. Those both seem to be in the Mode enum?

peterkos avatar Jun 22 '20 06:06 peterkos

However I can't seem to find which modes are missing. Those both seem to be in the Mode enum?

Also I'd like to know why they're mentioned as ScaleType enum. The whole API is kinda confusing, so maybe we should refactor it a bit.

P.S.: It seems that the original author had lost the interest in this library, so maybe we should organize our work in forks.

0x7CFE avatar Jul 03 '20 05:07 0x7CFE

Hi! Thanks for your interest @peterkos!

However I can't seem to find which modes are missing.

There are missing modes for Harmonic Minor and Melodic minor scales. For example, Melodic minor has Lydian Augmented, Lydian Dominant, and other modes.

Those both seem to be in the Mode enum?

That is because the nomenclature itself is a bit confusing. The Diatonic scale is a heptatonic scale that includes five whole steps and two half steps in each octave, so there is no "Diatonic mode" because it's only being used for categorization of the scales. On the other hand, a Harmonic Minor scale is just an alteration of the Aeolian mode. So it's not a scale category, it itself is a scale, derived from Aeolian mode, and also has other modes :) Same goes for the Melodic Minor, it's a Harmonic Minor scale with a sharpened 6th.

So those missing modes should be added for the Melodic Minor and Harmonic Minor scales. I hope this clears the confusion.

ozankasikci avatar Jul 03 '20 06:07 ozankasikci

Also I'd like to know why they're mentioned as ScaleType enum. The whole API is kinda confusing, so maybe we should refactor it a bit.

My answer above should answer why they are also mentioned as ScaleTypes. I agree that it's not immediately clear but that's because the nomenclature is also confusing.

It seems that the original author had lost the interest in this library

I haven't lost interest in this library, just need some help from you guys because this is a challenging project :)

ozankasikci avatar Jul 03 '20 06:07 ozankasikci

I haven't lost interest in this library, just need some help from you guys because this is a challenging project :)

I'm really glad to hear that. Thank you for the reply!

0x7CFE avatar Jul 03 '20 06:07 0x7CFE

@ozankasikci Thanks for the info!

Despite a few years of music theory, only today am I discovering harmonic/melodic scales have their own modes 😅 . Guess it's more of a "jazz theory" thing!

However I'm still a bit confused on this:

So [the Harmonic Minor scale is] not a scale category, it itself is a scale, derived from Aeolian mode, and also has other modes.

I understand that there are more modes to the harmonic/melodic minor scale but wouldn't the Mode enum still not include HarmonicMinor and MelodicMinor?

peterkos avatar Jul 04 '20 06:07 peterkos

Guess it's more of a "jazz theory" thing!

Indeed, it's being used mostly by jazz musicians.

wouldn't the Mode enum still not include HarmonicMinor and MelodicMinor?

This is the tricky part. Whether Harmonic/Melodic Minor scales should have a Mode with the same name or not? If not, then we need to have something like a default Mode for Harmonic/Melodic Minor, but that would be invalid for Dianotic scales since they have no default mode. If they do, then admittedly the API looks a bit confusing.

I had a hard time when I first implemented Harmonic/Melodic Minor scales because of these questions. So would like to hear other opinions!

ozankasikci avatar Jul 04 '20 07:07 ozankasikci

Ahhh, I see now!

What if we made separate Mode enums (say, HarmonicMode and MelodicMode) that contained all the specific modes for those two scales? This way the church modes are all collected in one place and it's easier to consider these modes as their own thing.

(Or maybe: HarmonicMode, AscendingMelodicMode, and DescendingMelodicMode)

peterkos avatar Jul 04 '20 19:07 peterkos

HarmonicMode AscendingMelodicMode DescendionMelodicMode

I like this, looks cleaner. Then we can add the missing modes for Harmonic/Melodic Minor scales.

ozankasikci avatar Jul 06 '20 11:07 ozankasikci

Would you mind if I put up a PR for that?

peterkos avatar Jul 07 '20 19:07 peterkos

Would be appreciated 👍

ozankasikci avatar Jul 07 '20 19:07 ozankasikci