Canorus  0.7
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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  inline const int quality() { return _qlt; }
57  inline const int quantity() { return _qnt; }
58 
59  inline void setQuality( const int qlt ) { _qlt = qlt; }
60  inline void setQuantity( const int qnt ) { _qnt = qnt; }
61 
62  int semitones();
63 
64  static CAInterval fromSemitones( int semitones );
65  static const QString qualityToReadable( int k );
66  static const QString quantityToReadable( int k );
67 
68 private:
69  int _qlt;
70  int _qnt;
71 };
72 #endif /* INTERVAL_H_ */
Definition: interval.h:30
Definition: interval.h:22
Definition: interval.h:34
int _qnt
Definition: interval.h:70
void setQuality(const int qlt)
Definition: interval.h:59
Definition: interval.h:26
Definition: interval.h:32
Music interval expressed with diatonical quality and quantity.
Definition: interval.h:15
Definition: interval.h:28
CAInterval operator~()
Definition: interval.cpp:150
CAQuality
Definition: interval.h:17
Definition: interval.h:33
static CAInterval fromSemitones(int semitones)
Definition: interval.cpp:217
int semitones()
Definition: interval.cpp:174
const int quantity()
Definition: interval.h:57
Musical note pitch.
Definition: diatonicpitch.h:14
const int quality()
Definition: interval.h:56
Definition: interval.h:21
Definition: interval.h:31
Definition: interval.h:20
CAInterval operator+(CAInterval)
Definition: interval.cpp:162
void setQuantity(const int qnt)
Definition: interval.h:60
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:258
CAInterval operator*(int numerator)
Definition: interval.h:47
int _qlt
Definition: interval.h:69
CAQuantity
Definition: interval.h:25
static const QString qualityToReadable(int k)
Definition: interval.cpp:247
CAInterval()
Definition: interval.cpp:45