55 lines
1.2 KiB
C++
55 lines
1.2 KiB
C++
#ifndef _MUSIC_HUNGARIANMINORSCALE_HPP_
|
|
#define _MUSIC_HUNGARIANMINORSCALE_HPP_
|
|
#ifndef _MUSIC_SCALE_HPP_
|
|
#include <music/scale.hpp>
|
|
#endif
|
|
|
|
class IonianScale;
|
|
|
|
class HungarianMinorScale : public Scale
|
|
{
|
|
public:
|
|
HungarianMinorScale(Note root=Note::A,const String &description="HungarianMinorScale");
|
|
HungarianMinorScale(const IonianScale &ionianScale);
|
|
HungarianMinorScale &operator=(const IonianScale &ionianScale);
|
|
virtual ~HungarianMinorScale();
|
|
protected:
|
|
virtual void createScale(void);
|
|
private:
|
|
};
|
|
|
|
inline
|
|
HungarianMinorScale::HungarianMinorScale(Note root,const String &description)
|
|
: Scale(root,description)
|
|
{
|
|
createScale();
|
|
}
|
|
|
|
inline
|
|
HungarianMinorScale::~HungarianMinorScale()
|
|
{
|
|
}
|
|
|
|
inline
|
|
void HungarianMinorScale::createScale()
|
|
{
|
|
Note root(getRoot()); // W H 1 1/2 H H 1 1/2 H
|
|
Notes::operator[](0)=root;
|
|
root+=Note::WholeStep;
|
|
Notes::operator[](1)=root;
|
|
root+=Note::HalfStep;
|
|
Notes::operator[](2)=root;
|
|
root+=Note::WholeStep;
|
|
root+=Note::HalfStep;
|
|
Notes::operator[](3)=root;
|
|
root+=Note::HalfStep;
|
|
Notes::operator[](4)=root;
|
|
root+=Note::HalfStep;
|
|
Notes::operator[](5)=root;
|
|
root+=Note::WholeStep;
|
|
root+=Note::HalfStep;
|
|
Notes::operator[](6)=root;
|
|
root+=Note::HalfStep;
|
|
Notes::operator[](7)=root;
|
|
}
|
|
#endif |