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,
22  Diminished = -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_ */
CAInterval::quality
const int quality()
Definition: interval.h:63
CAInterval::Octave
@ Octave
Definition: interval.h:34
CAInterval::Augmented
@ Augmented
Definition: interval.h:21
CAInterval::Perfect
@ Perfect
Definition: interval.h:20
CAInterval::Prime
@ Prime
Definition: interval.h:27
CAInterval::quantityToReadable
static const QString quantityToReadable(int k)
Definition: interval.cpp:268
CAInterval::semitones
int semitones()
Definition: interval.cpp:177
CAInterval::CAInterval
CAInterval()
Definition: interval.cpp:45
CAInterval::Fourth
@ Fourth
Definition: interval.h:30
CAInterval::Diminished
@ Diminished
Definition: interval.h:22
CAInterval::Seventh
@ Seventh
Definition: interval.h:33
CAInterval::setQuantity
void setQuantity(const int qnt)
Definition: interval.h:67
diatonicpitch.h
CAInterval::_qlt
int _qlt
Definition: interval.h:76
CAInterval::Undefined
@ Undefined
Definition: interval.h:26
interval.h
CAInterval::operator==
bool operator==(CAInterval i)
Definition: interval.h:56
CAInterval::operator-
CAInterval operator-(CAInterval i)
Definition: interval.h:43
CAInterval
Music interval expressed with diatonical quality and quantity.
Definition: interval.h:15
CAInterval::CAQuantity
CAQuantity
Definition: interval.h:25
CAInterval::operator*
CAInterval operator*(int numerator)
Definition: interval.h:47
CAInterval::Minor
@ Minor
Definition: interval.h:19
CAInterval::CAQuality
CAQuality
Definition: interval.h:17
CAInterval::Major
@ Major
Definition: interval.h:18
CADiatonicPitch::noteName
const int noteName() const
Definition: diatonicpitch.h:50
CADiatonicPitch
Musical note pitch.
Definition: diatonicpitch.h:16
CAInterval::Fifth
@ Fifth
Definition: interval.h:31
CAInterval::operator+
CAInterval operator+(CAInterval)
Definition: interval.cpp:165
CAInterval::_qnt
int _qnt
Definition: interval.h:77
CAInterval::operator~
CAInterval operator~()
Definition: interval.cpp:153
CADiatonicPitch::accs
const int accs() const
Definition: diatonicpitch.h:51
CAInterval::fromSemitones
static CAInterval fromSemitones(int semitones)
Definition: interval.cpp:227
CAInterval::quantity
const int quantity()
Definition: interval.h:64
CAInterval::qualityToReadable
static const QString qualityToReadable(int k)
Definition: interval.cpp:257
CAInterval::Sixth
@ Sixth
Definition: interval.h:32
CAInterval::operator!=
bool operator!=(CAInterval i)
Definition: interval.h:59
CAInterval::Second
@ Second
Definition: interval.h:28
CAInterval::Third
@ Third
Definition: interval.h:29
CAInterval::setQuality
void setQuality(const int qlt)
Definition: interval.h:66