Canorus  0.0
note.h
Go to the documentation of this file.
1 
8 #ifndef NOTE_H_
9 #define NOTE_H_
10 
11 #include "score/muselement.h"
12 #include "score/playable.h"
13 #include "score/slur.h"
14 #include "score/diatonicpitch.h"
15 
16 class CAVoice;
17 
18 class CANote : public CAPlayable {
19 public:
25  StemPreferred // voice's direction
26  };
27 
30 
31  virtual ~CANote();
32 
34 
36  inline void setDiatonicPitch( CADiatonicPitch pitch ) {
37  _diatonicPitch = pitch;
38  updateTies();
39  }
40  inline int midiPitch() { return _diatonicPitch.midiPitch(); }
41 
43  void setStemDirection(CAStemDirection direction);
44 
45  int notePosition();
46 
47  inline CASlur *tieStart() { return _tieStart; }
48  inline CASlur *tieEnd() { return _tieEnd; }
49  inline CASlur *slurStart() { return _slurStart; }
50  inline CASlur *slurEnd() { return _slurEnd; }
52  inline CASlur *phrasingSlurEnd() { return _phrasingSlurEnd; }
53 
56 
57  inline void setTieStart( CASlur *tieStart ) { _tieStart = tieStart; }
58  inline void setTieEnd( CASlur *tieEnd ) { _tieEnd = tieEnd; }
60  inline void setSlurEnd( CASlur *slurEnd ) { _slurEnd = slurEnd; }
61  inline void setPhrasingSlurStart( CASlur *pSlurStart ) { _phrasingSlurStart = pSlurStart; }
62  inline void setPhrasingSlurEnd( CASlur *pSlurEnd ) { _phrasingSlurEnd = pSlurEnd; }
63 
64  void updateTies();
65 
66  bool isPartOfChord();
67  bool isLastInChord();
68  bool isFirstInChord();
69  QList<CANote*> getChord();
70 
72  void setForceAccidentals(bool force) { _forceAccidentals = force; }
73 
74  static const QString generateNoteName(int pitch, int accs);
75 
76  static const QString stemDirectionToString(CAStemDirection);
77  static CAStemDirection stemDirectionFromString(const QString);
78 
79  int compare(CAMusElement* elt);
80 
81 private:
84  bool _forceAccidentals; // Always draw notes accidentals.
85 
87  // Slurs and ties //
95 };
96 #endif /* NOTE_H_*/
CANote::stemDirectionToString
static const QString stemDirectionToString(CAStemDirection)
Definition: note.cpp:288
CANote::_slurEnd
CASlur * _slurEnd
Definition: note.h:92
CANote::setSlurStart
void setSlurStart(CASlur *slurStart)
Definition: note.h:59
CAPlayable::staff
CAStaff * staff()
Definition: playable.h:33
CANote::notePosition
int notePosition()
Definition: note.cpp:102
note.h
CANote::phrasingSlurStart
CASlur * phrasingSlurStart()
Definition: note.h:51
CAClef
Definition: clef.h:18
CANote::_stemDirection
CAStemDirection _stemDirection
Definition: note.h:83
CANote::slurEnd
CASlur * slurEnd()
Definition: note.h:50
CANote
Represents a note in the score.
Definition: note.h:18
playable.h
CANote::setPhrasingSlurEnd
void setPhrasingSlurEnd(CASlur *pSlurEnd)
Definition: note.h:62
CAVoice
Class which represents a voice in the staff.
Definition: voice.h:23
slur.h
CASlur::noteEnd
CANote * noteEnd()
Definition: slur.h:51
CANote::isLastInChord
bool isLastInChord()
Definition: note.cpp:179
CASlur::CASlurDirection
CASlurDirection
Direction of the slur.
Definition: slur.h:20
CADiatonicPitch::midiPitch
int midiPitch()
Definition: diatonicpitch.h:55
CANote::stemDirection
CAStemDirection stemDirection()
Definition: note.h:42
diatonicpitch.h
CAMusElement::markList
const QList< CAMark * > markList()
Definition: muselement.h:70
CAPlayable
Playable instances of music elements.
Definition: playable.h:18
CANote::_forceAccidentals
bool _forceAccidentals
Definition: note.h:84
CANote::StemDown
@ StemDown
Definition: note.h:24
CANote::StemUp
@ StemUp
Definition: note.h:23
CANote::StemPreferred
@ StemPreferred
Definition: note.h:25
CAVoice::stemDirection
CANote::CAStemDirection stemDirection()
Definition: voice.h:98
CAMusElement::timeLength
virtual int timeLength() const
Definition: muselement.h:53
CANote::_tieStart
CASlur * _tieStart
Definition: note.h:89
CANote::phrasingSlurEnd
CASlur * phrasingSlurEnd()
Definition: note.h:52
CANote::stemDirectionFromString
static CAStemDirection stemDirectionFromString(const QString)
Definition: note.cpp:310
CANote::setStemDirection
void setStemDirection(CAStemDirection direction)
Definition: note.cpp:228
CAMusElement::addMark
void addMark(CAMark *mark)
Definition: muselement.cpp:135
CANote::tieEnd
CASlur * tieEnd()
Definition: note.h:48
CANote::midiPitch
int midiPitch()
Definition: note.h:40
CANote::generateNoteName
static const QString generateNoteName(int pitch, int accs)
Definition: note.cpp:127
CADiatonicPitch::noteName
const int noteName() const
Definition: diatonicpitch.h:50
CADiatonicPitch
Musical note pitch.
Definition: diatonicpitch.h:16
CANote::tieStart
CASlur * tieStart()
Definition: note.h:47
CANote::clone
CANote * clone(CAVoice *voice=0)
Definition: note.cpp:81
CANote::actualSlurDirection
CASlur::CASlurDirection actualSlurDirection()
Definition: note.cpp:372
CANote::setPhrasingSlurStart
void setPhrasingSlurStart(CASlur *pSlurStart)
Definition: note.h:61
CANote::noteLength
CAPlayableLength noteLength()
Definition: note.h:33
CANote::setForceAccidentals
void setForceAccidentals(bool force)
Definition: note.h:72
CANote::isPartOfChord
bool isPartOfChord()
Definition: note.cpp:149
CANote::updateTies
void updateTies()
Definition: note.cpp:236
CAVoice::musElementList
const QList< CAMusElement * > & musElementList()
Definition: voice.h:47
CANote::isFirstInChord
bool isFirstInChord()
Definition: note.cpp:166
CANote::setTieEnd
void setTieEnd(CASlur *tieEnd)
Definition: note.h:58
CAMusElement::name
const QString name()
Definition: muselement.h:61
CAMusElement
An abstract class which represents every music element in the score.
Definition: muselement.h:21
CANote::slurStart
CASlur * slurStart()
Definition: note.h:49
CAClef::c1
const int c1()
Definition: clef.h:52
CANote::forceAccidentals
bool forceAccidentals()
Definition: note.h:71
CAPlayableLength
Musical length of notes and rests.
Definition: playablelength.h:16
CAMusElement::timeEnd
int timeEnd()
Definition: muselement.h:55
CANote::setDiatonicPitch
void setDiatonicPitch(CADiatonicPitch pitch)
Definition: note.h:36
CANote::StemNeutral
@ StemNeutral
Definition: note.h:22
CASlur::SlurUp
@ SlurUp
Definition: slur.h:21
CANote::setTieStart
void setTieStart(CASlur *tieStart)
Definition: note.h:57
CAStaff::clefRefs
QList< CAMusElement * > & clefRefs()
Definition: staff.h:59
CANote::getChord
QList< CANote * > getChord()
Definition: note.cpp:197
CAMusElement::Note
@ Note
Definition: muselement.h:25
CANote::actualStemDirection
CAStemDirection actualStemDirection()
Definition: note.cpp:329
CANote::_tieEnd
CASlur * _tieEnd
Definition: note.h:90
CANote::setSlurEnd
void setSlurEnd(CASlur *slurEnd)
Definition: note.h:60
CAMusElement::timeStart
virtual int timeStart() const
Definition: muselement.h:51
CANote::_phrasingSlurStart
CASlur * _phrasingSlurStart
Definition: note.h:93
CANote::~CANote
virtual ~CANote()
Definition: note.cpp:47
CAVoice::staff
CAStaff * staff()
Definition: voice.h:29
CASlur::SlurDown
@ SlurDown
Definition: slur.h:22
muselement.h
CAVoice::getNoteList
QList< CANote * > getNoteList()
Definition: voice.cpp:683
CANote::diatonicPitch
CADiatonicPitch & diatonicPitch()
Definition: note.h:35
CAPlayable::_playableLength
CAPlayableLength _playableLength
Definition: playable.h:42
CAMusElement::_musElementType
CAMusElementType _musElementType
Definition: muselement.h:87
CANote::CAStemDirection
CAStemDirection
Direction of the note's stem.
Definition: note.h:20
CAMark
Marks that depend on other music elements.
Definition: mark.h:15
CANote::StemUndefined
@ StemUndefined
Definition: note.h:21
voice.h
clef.h
CANote::_diatonicPitch
CADiatonicPitch _diatonicPitch
Definition: note.h:82
CANote::CANote
CANote(CADiatonicPitch pitch, CAPlayableLength length, CAVoice *voice, int timeStart, int timeLength=-1)
Definition: note.cpp:31
CANote::compare
int compare(CAMusElement *elt)
Definition: note.cpp:214
CANote::_phrasingSlurEnd
CASlur * _phrasingSlurEnd
Definition: note.h:94
staff.h
CASlur
Slur, Tie, Phrasing slur and Laissez vibrer tie This class represents any type of slur....
Definition: slur.h:18
CAMusElement::musElementType
CAMusElementType musElementType()
Definition: muselement.h:46
mark.h
CAPlayable::voice
CAVoice * voice()
Definition: playable.h:31
CAPlayable::playableLength
CAPlayableLength & playableLength()
Definition: playable.h:23
CAMusElement::_timeStart
int _timeStart
Definition: muselement.h:91
CANote::_slurStart
CASlur * _slurStart
Definition: note.h:91
CASlur::setNoteEnd
void setNoteEnd(CANote *noteEnd)
Definition: slur.h:54