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
14class CADiatonicKey;
15
17public:
20 C = 0,
21 D = 1,
22 E = 2,
23 F = 3,
24 G = 4,
25 A = 5,
26 B = 6
27 };
28
32 PreferFlats = -1
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; }
56
57 static const QString diatonicPitchToString( CADiatonicPitch p );
58 static CADiatonicPitch diatonicPitchFromString( const QString s );
59
62 static int diatonicPitchToMidiPitch( const CADiatonicPitch& dp );
63
64private:
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_ */
Musical key.
Definition: diatonickey.h:15
Musical note pitch.
Definition: diatonicpitch.h:16
CADiatonicPitch operator-(CAInterval i)
Definition: diatonicpitch.h:46
void setNoteName(const int noteName)
Definition: diatonicpitch.h:53
int _noteName
Definition: diatonicpitch.h:65
static CADiatonicPitch diatonicPitchFromMidiPitch(int midiPitch, CAMidiPitchMode m=PreferAuto)
Definition: diatonicpitch.cpp:192
static CADiatonicPitch diatonicPitchFromMidiPitchKey(int midiPitch, CADiatonicKey k, CAMidiPitchMode m=PreferAuto)
Definition: diatonicpitch.cpp:206
bool operator==(CADiatonicPitch)
Definition: diatonicpitch.cpp:59
int _accs
Definition: diatonicpitch.h:66
const int noteName() const
Definition: diatonicpitch.h:50
CAMidiPitchMode
Definition: diatonicpitch.h:29
@ PreferAuto
Definition: diatonicpitch.h:30
@ PreferSharps
Definition: diatonicpitch.h:31
@ PreferFlats
Definition: diatonicpitch.h:32
static const QString diatonicPitchToString(CADiatonicPitch p)
Definition: diatonicpitch.cpp:76
void setAccs(const int accs)
Definition: diatonicpitch.h:54
CANoteName
Definition: diatonicpitch.h:18
@ E
Definition: diatonicpitch.h:22
@ F
Definition: diatonicpitch.h:23
@ D
Definition: diatonicpitch.h:21
@ B
Definition: diatonicpitch.h:26
@ G
Definition: diatonicpitch.h:24
@ Undefined
Definition: diatonicpitch.h:19
@ C
Definition: diatonicpitch.h:20
@ A
Definition: diatonicpitch.h:25
const int accs() const
Definition: diatonicpitch.h:51
int midiPitch()
Definition: diatonicpitch.h:55
CADiatonicPitch()
Definition: diatonicpitch.cpp:29
CADiatonicPitch operator+(CAInterval)
Definition: diatonicpitch.cpp:99
static CADiatonicPitch diatonicPitchFromString(const QString s)
Definition: diatonicpitch.cpp:183
static int diatonicPitchToMidiPitch(const CADiatonicPitch &dp)
Definition: diatonicpitch.cpp:306
bool operator!=(CADiatonicPitch p)
Definition: diatonicpitch.h:40
bool operator!=(int p)
Definition: diatonicpitch.h:43
Music interval expressed with diatonical quality and quantity.
Definition: interval.h:15
const int quantity()
Definition: interval.h:64
const int quality()
Definition: interval.h:63