rust-music-theory
rust-music-theory copied to clipboard
What is needed for melodic+harmonic minor scales?
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?
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.
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.
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 ScaleType
s. 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 :)
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!
@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
?
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
andMelodicMinor
?
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!
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
)
HarmonicMode
AscendingMelodicMode
DescendionMelodicMode
I like this, looks cleaner. Then we can add the missing modes for Harmonic/Melodic Minor scales
.
Would you mind if I put up a PR for that?
Would be appreciated 👍