Canorus  0.0
interval.h
Go to the documentation of this file.
1 
8 #ifndef INTERVAL_H_
9 #define INTERVAL_H_
10 
11 #include <QString>
12 
13 class CADiatonicPitch;
14 
15 class CAInterval {
16 public:
17  enum CAQuality {
18  Major = 1,
19  Minor = -1,
20  Perfect = 0,
21  Augmented = 2,
23  };
24 
25  enum CAQuantity {
26  Undefined = 0,
27  Prime = 1,
28  Second = 2,
29  Third = 3,
30  Fourth = 4,
31  Fifth = 5,
32  Sixth = 6,
33  Seventh = 7,
34  Octave = 8
35  };
36 
37  CAInterval();
38  CAInterval( int qlt, int qnt );
39  CAInterval( CADiatonicPitch note1, CADiatonicPitch note2, bool absolute=true );
40 
44  return operator+( CAInterval( i.quality(), i.quantity()*(-1) ) );
45  }
46 
47  CAInterval operator*( int numerator ) {
48  CAInterval interval = *this;
49  while ( --numerator ) {
50  interval = interval + (*this);
51  }
52 
53  return interval;
54  }
55 
56  bool operator==( CAInterval i ) {
57  return i.quality()==_qlt && i.quantity()==_qnt;
58  }
59  bool operator!=( CAInterval i ) {
60  return !(operator==(i));
61  }
62 
63  inline const int quality() { return _qlt; }
64  inline const int quantity() { return _qnt; }
65 
66  inline void setQuality( const int qlt ) { _qlt = qlt; }
67  inline void setQuantity( const int qnt ) { _qnt = qnt; }
68 
69  int semitones();
70 
71  static CAInterval fromSemitones( int semitones );
72  static const QString qualityToReadable( int k );
73  static const QString quantityToReadable( int k );
74 
75 private:
76  int _qlt;
77  int _qnt;
78 };
79 #endif /* INTERVAL_H_ */
Definition: interval.h:30
Definition: interval.h:22
Definition: interval.h:34
int _qnt
Definition: interval.h:77
void setQuality(const int qlt)
Definition: interval.h:66
Definition: interval.h:26
Definition: interval.h:32
Music interval expressed with diatonical quality and quantity.
Definition: interval.h:15
Definition: interval.h:28
bool operator!=(CAInterval i)
Definition: interval.h:59
CAInterval operator~()
Definition: interval.cpp:153
CAQuality
Definition: interval.h:17
Definition: interval.h:33
static CAInterval fromSemitones(int semitones)
Definition: interval.cpp:227
int semitones()
Definition: interval.cpp:177
const int quantity()
Definition: interval.h:64
Musical note pitch.
Definition: diatonicpitch.h:16
const int quality()
Definition: interval.h:63
Definition: interval.h:21
Definition: interval.h:31
Definition: interval.h:20
CAInterval operator+(CAInterval)
Definition: interval.cpp:165
void setQuantity(const int qnt)
Definition: interval.h:67
Definition: interval.h:19
CAInterval operator-(CAInterval i)
Definition: interval.h:43
Definition: interval.h:18
Definition: interval.h:29
Definition: interval.h:27
static const QString quantityToReadable(int k)
Definition: interval.cpp:268
CAInterval operator*(int numerator)
Definition: interval.h:47
bool operator==(CAInterval i)
Definition: interval.h:56
int _qlt
Definition: interval.h:76
CAQuantity
Definition: interval.h:25
static const QString qualityToReadable(int k)
Definition: interval.cpp:257
CAInterval()
Definition: interval.cpp:45