Canorus 0.0
diatonickey.h
Go to the documentation of this file.
1
8#ifndef DIATONICKEY_H_
9#define DIATONICKEY_H_
10
11#include "score/diatonicpitch.h"
12#include <QString>
13#include <QList>
14
16public:
17 enum CAGender {
19 Minor
20 };
21
22 enum CAShape {
26 };
27
29 CADiatonicKey( const QString& key );
30 CADiatonicKey( const int& numberOfAccs, const CAGender& gender );
31 CADiatonicKey( const CADiatonicPitch& pitch, const CAGender& gender );
32 CADiatonicKey( const CADiatonicPitch& pitch, const CAGender& gender, const CAShape& shape );
33
35 inline bool operator!=(CADiatonicKey p) { return !operator==(p); }
36#ifndef SWIG
37 void operator=(const QString& key);
38#endif
39
41
43 inline const CAGender gender() { return _gender; }
44 inline const CAShape shape() { return _shape; }
45
46 inline void setDiatonicPitch( const CADiatonicPitch p ) { _diatonicPitch = p; }
47 inline void setGender( const CAGender g ) { _gender = g; }
48 inline void setShape( const CAShape s ) { _shape = s; }
49
50 static const QString shapeToString( CAShape );
51 static CAShape shapeFromString( const QString );
52 static const QString genderToString( CAGender );
53 static CAGender genderFromString( const QString );
54
55 static const QString diatonicKeyToString( CADiatonicKey k );
56 static CADiatonicKey diatonicKeyFromString( const QString );
57
58 int numberOfAccs();
59 QList<int> accsMatrix();
60 int noteAccs( int noteName );
61 bool containsPitch( const CADiatonicPitch& p );
62
63private:
64 CADiatonicPitch _diatonicPitch; // pitch of the key
65 CAGender _gender; // major, minor
66 CAShape _shape; // natural, harmonic, melodic
67};
68#endif /* DIATONICKEY_H_ */
Musical key.
Definition: diatonickey.h:15
CADiatonicPitch _diatonicPitch
Definition: diatonickey.h:64
bool operator!=(CADiatonicKey p)
Definition: diatonickey.h:35
const CAGender gender()
Definition: diatonickey.h:43
CADiatonicKey operator+(CAInterval)
Definition: diatonickey.cpp:111
static CAGender genderFromString(const QString)
Definition: diatonickey.cpp:129
int numberOfAccs()
Definition: diatonickey.cpp:79
static const QString shapeToString(CAShape)
Definition: diatonickey.cpp:135
QList< int > accsMatrix()
Definition: diatonickey.cpp:209
CADiatonicPitch diatonicPitch()
Definition: diatonickey.h:42
CADiatonicKey()
Definition: diatonickey.cpp:27
static CADiatonicKey diatonicKeyFromString(const QString)
Definition: diatonickey.cpp:202
bool operator==(CADiatonicKey)
Definition: diatonickey.cpp:91
CAShape _shape
Definition: diatonickey.h:66
static const QString diatonicKeyToString(CADiatonicKey k)
Definition: diatonickey.cpp:156
void setDiatonicPitch(const CADiatonicPitch p)
Definition: diatonickey.h:46
const CAShape shape()
Definition: diatonickey.h:44
int noteAccs(int noteName)
Definition: diatonickey.cpp:227
void operator=(const QString &key)
Definition: diatonickey.cpp:98
static const QString genderToString(CAGender)
Definition: diatonickey.cpp:121
CAGender _gender
Definition: diatonickey.h:65
bool containsPitch(const CADiatonicPitch &p)
Definition: diatonickey.cpp:237
CAShape
Definition: diatonickey.h:22
@ Natural
Definition: diatonickey.h:23
@ Harmonic
Definition: diatonickey.h:24
@ Melodic
Definition: diatonickey.h:25
static CAShape shapeFromString(const QString)
Definition: diatonickey.cpp:144
void setGender(const CAGender g)
Definition: diatonickey.h:47
CAGender
Definition: diatonickey.h:17
@ Major
Definition: diatonickey.h:18
@ Minor
Definition: diatonickey.h:19
void setShape(const CAShape s)
Definition: diatonickey.h:48
Musical note pitch.
Definition: diatonicpitch.h:16
Music interval expressed with diatonical quality and quantity.
Definition: interval.h:15