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
13class CADiatonicPitch;
14
16public:
17 enum CAQuality {
18 Major = 1,
19 Minor = -1,
22 Diminished = -2
23 };
24
27 Prime = 1,
28 Second = 2,
29 Third = 3,
30 Fourth = 4,
31 Fifth = 5,
32 Sixth = 6,
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
57 return i.quality()==_qlt && i.quantity()==_qnt;
58 }
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
72 static const QString qualityToReadable( int k );
73 static const QString quantityToReadable( int k );
74
75private:
76 int _qlt;
77 int _qnt;
78};
79#endif /* INTERVAL_H_ */
Musical note pitch.
Definition: diatonicpitch.h:16
Music interval expressed with diatonical quality and quantity.
Definition: interval.h:15
CAInterval operator-(CAInterval i)
Definition: interval.h:43
bool operator!=(CAInterval i)
Definition: interval.h:59
CAInterval operator*(int numerator)
Definition: interval.h:47
CAInterval operator+(CAInterval)
Definition: interval.cpp:165
bool operator==(CAInterval i)
Definition: interval.h:56
static const QString quantityToReadable(int k)
Definition: interval.cpp:268
int _qnt
Definition: interval.h:77
const int quantity()
Definition: interval.h:64
static const QString qualityToReadable(int k)
Definition: interval.cpp:257
const int quality()
Definition: interval.h:63
void setQuality(const int qlt)
Definition: interval.h:66
CAInterval()
Definition: interval.cpp:45
static CAInterval fromSemitones(int semitones)
Definition: interval.cpp:227
void setQuantity(const int qnt)
Definition: interval.h:67
CAInterval operator~()
Definition: interval.cpp:153
CAQuantity
Definition: interval.h:25
@ Undefined
Definition: interval.h:26
@ Third
Definition: interval.h:29
@ Prime
Definition: interval.h:27
@ Fourth
Definition: interval.h:30
@ Sixth
Definition: interval.h:32
@ Fifth
Definition: interval.h:31
@ Second
Definition: interval.h:28
@ Seventh
Definition: interval.h:33
@ Octave
Definition: interval.h:34
int _qlt
Definition: interval.h:76
int semitones()
Definition: interval.cpp:177
CAQuality
Definition: interval.h:17
@ Augmented
Definition: interval.h:21
@ Diminished
Definition: interval.h:22
@ Major
Definition: interval.h:18
@ Perfect
Definition: interval.h:20
@ Minor
Definition: interval.h:19