Canorus  0.7
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
note.h
Go to the documentation of this file.
1 
8 #ifndef NOTE_H_
9 #define NOTE_H_
10 
11 #include "core/muselement.h"
12 #include "core/playable.h"
13 #include "core/slur.h"
14 #include "core/diatonicpitch.h"
15 
16 class CAVoice;
17 
18 class CANote : public CAPlayable {
19 public:
24  StemPreferred // voice's direction
25  };
26 
29 
30  virtual ~CANote();
31 
33 
35  inline void setDiatonicPitch( CADiatonicPitch& pitch ) {
36  _diatonicPitch = pitch;
37  updateTies();
38  }
39 
41  void setStemDirection(CAStemDirection direction);
42 
43  int notePosition();
44 
45  inline CASlur *tieStart() { return _tieStart; }
46  inline CASlur *tieEnd() { return _tieEnd; }
47  inline CASlur *slurStart() { return _slurStart; }
48  inline CASlur *slurEnd() { return _slurEnd; }
50  inline CASlur *phrasingSlurEnd() { return _phrasingSlurEnd; }
51 
54 
55  inline void setTieStart( CASlur *tieStart ) { _tieStart = tieStart; }
56  inline void setTieEnd( CASlur *tieEnd ) { _tieEnd = tieEnd; }
58  inline void setSlurEnd( CASlur *slurEnd ) { _slurEnd = slurEnd; }
59  inline void setPhrasingSlurStart( CASlur *pSlurStart ) { _phrasingSlurStart = pSlurStart; }
60  inline void setPhrasingSlurEnd( CASlur *pSlurEnd ) { _phrasingSlurEnd = pSlurEnd; }
61 
62  void updateTies();
63 
64  bool isPartOfChord();
65  bool isLastInChord();
66  bool isFirstInChord();
67  QList<CANote*> getChord();
68 
70  void setForceAccidentals(bool force) { _forceAccidentals = force; }
71 
72  static const QString generateNoteName(int pitch, int accs);
73 
74  static const QString stemDirectionToString(CAStemDirection);
75  static CAStemDirection stemDirectionFromString(const QString);
76 
77  int compare(CAMusElement* elt);
78 
79 private:
82  bool _forceAccidentals; // Always draw notes accidentals.
83 
85  // Slurs and ties //
93 };
94 #endif /* NOTE_H_*/
CASlur * phrasingSlurStart()
Definition: note.h:49
CAStemDirection stemDirection()
Definition: note.h:40
CASlur * _phrasingSlurStart
Definition: note.h:91
CAStemDirection _stemDirection
Definition: note.h:81
CASlur * slurEnd()
Definition: note.h:48
Definition: note.h:23
void setSlurEnd(CASlur *slurEnd)
Definition: note.h:58
CAStemDirection
Direction of the note&#39;s stem.
Definition: note.h:20
int compare(CAMusElement *elt)
Definition: note.cpp:199
CASlur * _slurStart
Definition: note.h:89
void setSlurStart(CASlur *slurStart)
Definition: note.h:57
CAPlayableLength _playableLength
Definition: playable.h:42
CASlur * _slurEnd
Definition: note.h:90
Class which represents a voice in the staff.
Definition: voice.h:22
int notePosition()
Definition: note.cpp:99
void updateTies()
Definition: note.cpp:221
void setPhrasingSlurEnd(CASlur *pSlurEnd)
Definition: note.h:60
CAVoice * voice()
Definition: playable.h:31
virtual int timeStart()
Definition: muselement.h:48
CANote * clone(CAVoice *voice=0)
Definition: note.cpp:78
Represents a note in the score.
Definition: note.h:18
void setDiatonicPitch(CADiatonicPitch &pitch)
Definition: note.h:35
bool isPartOfChord()
Definition: note.cpp:134
CASlurDirection
Direction of the slur.
Definition: slur.h:20
CASlur * tieStart()
Definition: note.h:45
void setTieEnd(CASlur *tieEnd)
Definition: note.h:56
CAPlayableLength noteLength()
Definition: note.h:32
void setForceAccidentals(bool force)
Definition: note.h:70
Musical note pitch.
Definition: diatonicpitch.h:14
Musical length of notes and rests.
Definition: playablelength.h:16
bool _forceAccidentals
Definition: note.h:82
CASlur * slurStart()
Definition: note.h:47
CAStemDirection actualStemDirection()
Definition: note.cpp:313
virtual ~CANote()
Definition: note.cpp:44
virtual int timeLength()
Definition: muselement.h:50
void setStemDirection(CAStemDirection direction)
Definition: note.cpp:213
Definition: note.h:21
CASlur * tieEnd()
Definition: note.h:46
An abstract class which represents every music element in the score.
Definition: muselement.h:20
Definition: note.h:22
CADiatonicPitch _diatonicPitch
Definition: note.h:80
CASlur * phrasingSlurEnd()
Definition: note.h:50
static CAStemDirection stemDirectionFromString(const QString)
Definition: note.cpp:294
static const QString generateNoteName(int pitch, int accs)
Definition: note.cpp:112
Playable instances of music elements.
Definition: playable.h:18
Slur, Tie, Phrasing slur and Laissez vibrer tie This class represents any type of slur...
Definition: slur.h:18
void setPhrasingSlurStart(CASlur *pSlurStart)
Definition: note.h:59
CASlur * _tieStart
Definition: note.h:87
CANote(CADiatonicPitch pitch, CAPlayableLength length, CAVoice *voice, int timeStart, int timeLength=-1)
Definition: note.cpp:28
static const QString stemDirectionToString(CAStemDirection)
Definition: note.cpp:273
CASlur * _phrasingSlurEnd
Definition: note.h:92
CASlur::CASlurDirection actualSlurDirection()
Definition: note.cpp:352
void setTieStart(CASlur *tieStart)
Definition: note.h:55
bool isFirstInChord()
Definition: note.cpp:151
bool forceAccidentals()
Definition: note.h:69
bool isLastInChord()
Definition: note.cpp:164
Definition: note.h:24
QList< CANote * > getChord()
Definition: note.cpp:182
CASlur * _tieEnd
Definition: note.h:88
CADiatonicPitch & diatonicPitch()
Definition: note.h:34