#ifndef _MUSIC_HUNGARIANMINORSCALE_HPP_ #define _MUSIC_HUNGARIANMINORSCALE_HPP_ #ifndef _MUSIC_SCALE_HPP_ #include #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