#ifndef _MUSIC_PENTATONICMINORBLUESSCALE_HPP_ #define _MUSIC_PENTATONICMINORBLUESSCALE_HPP_ #ifndef _MUSIC_SCALE_HPP_ #include #endif class PentatonicMinorBluesScale : public Scale { public: enum{CNotes=6}; PentatonicMinorBluesScale(Note root=Note::A,const String &description="PentatonicMinorBluesScale"); virtual ~PentatonicMinorBluesScale(); protected: virtual void createScale(void); private: }; inline PentatonicMinorBluesScale::PentatonicMinorBluesScale(Note root,const String &description) : Scale(root,description) { createScale(); } inline PentatonicMinorBluesScale::~PentatonicMinorBluesScale() { } inline void PentatonicMinorBluesScale::createScale() { size(CNotes); Note root(getRoot()); Notes::operator[](0)=root; // I root+=Note::WholeStep; root+=Note::HalfStep; Notes::operator[](1)=root; // IIIb root+=Note::WholeStep; Notes::operator[](2)=root; // IV root+=Note::HalfStep; Notes::operator[](3)=root; // Vb root+=Note::HalfStep; Notes::operator[](4)=root; // V root+=Note::WholeStep; root+=Note::HalfStep; Notes::operator[](5)=root; // VIIb } #endif