39 lines
758 B
C++
39 lines
758 B
C++
#ifndef _MUSIC_HARMONICMINORSCALE_HPP_
|
|
#define _MUSIC_HARMONICMINORSCALE_HPP_
|
|
#ifndef _MUSIC_AEOLIANSCALE_HPP_
|
|
#include <music/AeolianScale.hpp>
|
|
#endif
|
|
|
|
class HarmonicMinorScale : public AeolianScale
|
|
{
|
|
public:
|
|
HarmonicMinorScale(Note root=Note::E);
|
|
virtual ~HarmonicMinorScale();
|
|
protected:
|
|
virtual void createScale(void);
|
|
private:
|
|
};
|
|
|
|
inline
|
|
HarmonicMinorScale::HarmonicMinorScale(Note root)
|
|
: AeolianScale(root,"HarmonicMinorScale")
|
|
{
|
|
createScale();
|
|
}
|
|
|
|
inline
|
|
HarmonicMinorScale::~HarmonicMinorScale()
|
|
{
|
|
}
|
|
|
|
inline
|
|
void HarmonicMinorScale::createScale()
|
|
{
|
|
AeolianScale::createScale();
|
|
Note note=getDegree(Degree::VII);
|
|
note++; // HarmonicMinor sharps the 7th of the minor scale
|
|
setDegree(Degree::VII,note);
|
|
}
|
|
#endif
|
|
|