Canorus  0.0
diatonicpitch.h
Go to the documentation of this file.
1 
8 #ifndef DIATONICPITCH_H_
9 #define DIATONICPITCH_H_
10 
11 #include "score/interval.h"
12 #include <QString>
13 
14 class CADiatonicKey;
15 
17 public:
18  enum CANoteName {
19  Undefined = -1,
20  C = 0,
21  D = 1,
22  E = 2,
23  F = 3,
24  G = 4,
25  A = 5,
26  B = 6
27  };
28 
33  };
34 
36  CADiatonicPitch( const QString& pitch );
37  CADiatonicPitch( const int& noteName, const int& accs=0 );
38 
40  inline bool operator!=(CADiatonicPitch p) { return !operator==(p); }
41 
42  bool operator==(int noteName);
43  inline bool operator!=(int p) { return !operator==(p); }
44 
47  return operator+( CAInterval( i.quality(), i.quantity()*(-1) ) );
48  }
49 
50  inline const int noteName() const { return _noteName; }
51  inline const int accs() const { return _accs; }
52 
53  inline void setNoteName( const int noteName ) { _noteName = noteName; }
54  inline void setAccs( const int accs ) { _accs = accs; }
55  inline int midiPitch() { return CADiatonicPitch::diatonicPitchToMidiPitch(*this); }
56 
57  static const QString diatonicPitchToString( CADiatonicPitch p );
58  static CADiatonicPitch diatonicPitchFromString( const QString s );
59 
62  static int diatonicPitchToMidiPitch( const CADiatonicPitch& dp );
63 
64 private:
65  int _noteName; // 0-sub-contra C, 1-D, 2-E etc.
66  int _accs; // 0-neutral, 1-sharp, -1-flat etc.
67 };
68 #endif /* DIATONICPITCH_H_ */
int _accs
Definition: diatonicpitch.h:66
static CADiatonicPitch diatonicPitchFromString(const QString s)
Definition: diatonicpitch.cpp:183
Music interval expressed with diatonical quality and quantity.
Definition: interval.h:15
Definition: diatonicpitch.h:24
bool operator==(CADiatonicPitch)
Definition: diatonicpitch.cpp:59
CADiatonicPitch()
Definition: diatonicpitch.cpp:29
Definition: diatonicpitch.h:20
CADiatonicPitch operator-(CAInterval i)
Definition: diatonicpitch.h:46
CAMidiPitchMode
Definition: diatonicpitch.h:29
static CADiatonicPitch diatonicPitchFromMidiPitchKey(int midiPitch, CADiatonicKey k, CAMidiPitchMode m=PreferAuto)
Definition: diatonicpitch.cpp:206
bool operator!=(int p)
Definition: diatonicpitch.h:43
const int quantity()
Definition: interval.h:64
Definition: diatonicpitch.h:25
Musical note pitch.
Definition: diatonicpitch.h:16
Definition: diatonicpitch.h:23
const int quality()
Definition: interval.h:63
bool operator!=(CADiatonicPitch p)
Definition: diatonicpitch.h:40
Definition: diatonicpitch.h:21
void setAccs(const int accs)
Definition: diatonicpitch.h:54
const int noteName() const
Definition: diatonicpitch.h:50
Definition: diatonicpitch.h:22
static int diatonicPitchToMidiPitch(const CADiatonicPitch &dp)
Definition: diatonicpitch.cpp:306
const int accs() const
Definition: diatonicpitch.h:51
CADiatonicPitch operator+(CAInterval)
Definition: diatonicpitch.cpp:99
Definition: diatonicpitch.h:19
Definition: diatonicpitch.h:30
Definition: diatonicpitch.h:26
CANoteName
Definition: diatonicpitch.h:18
Musical key.
Definition: diatonickey.h:15
int _noteName
Definition: diatonicpitch.h:65
static const QString diatonicPitchToString(CADiatonicPitch p)
Definition: diatonicpitch.cpp:76
Definition: diatonicpitch.h:31
static CADiatonicPitch diatonicPitchFromMidiPitch(int midiPitch, CAMidiPitchMode m=PreferAuto)
Definition: diatonicpitch.cpp:192
Definition: diatonicpitch.h:32
int midiPitch()
Definition: diatonicpitch.h:55
void setNoteName(const int noteName)
Definition: diatonicpitch.h:53