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

49 lines
1.1 KiB
C++

#ifndef _MUSIC_PENTATONICMINORBLUESSCALE_HPP_
#define _MUSIC_PENTATONICMINORBLUESSCALE_HPP_
#ifndef _MUSIC_SCALE_HPP_
#include <music/scale.hpp>
#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