Files
Work/music/MelodicMinorScale.hpp
2024-08-07 09:16:27 -04:00

45 lines
976 B
C++

#ifndef _MUSIC_MELODICMINORSCALE_HPP_
#define _MUSIC_MELODICMINORSCALE_HPP_
#ifndef _MUSIC_AEOLIANSCALE_HPP_
#include <music/AeolianScale.hpp>
#endif
class MelodicMinorScale;
typedef MelodicMinorScale MinorMajorScale;
class MelodicMinorScale : public AeolianScale
{
public:
MelodicMinorScale(Note root=Note::E);
virtual ~MelodicMinorScale();
protected:
virtual void createScale(void);
private:
};
inline
MelodicMinorScale::MelodicMinorScale(Note root)
: AeolianScale(root,"MinorMajorScale(MelodicMinorScale)")
{
createScale();
}
inline
MelodicMinorScale::~MelodicMinorScale()
{
}
inline
void MelodicMinorScale::createScale()
{
AeolianScale::createScale();
Note note=getDegree(Degree::VI); // MelodicMinor sharps the 5th degree of the natural minor scale
note++;
setDegree(Degree::VI,note);
note=getDegree(Degree::VII);
note++; // MelodicMinor sharps the 7th of the natural minor scale
setDegree(Degree::VII,note);
}
#endif