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

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