GUIDOLib  1.7.7
Guido Engine Internal Documentation
ARMusic.h
1 #ifndef ARMusic_H
2 #define ARMusic_H
3 
4 /*
5  GUIDO Library
6  Copyright (C) 2002 Holger Hoos, Juergen Kilian, Kai Renz
7  Copyright (C) 2002-2017 Grame
8 
9  This Source Code Form is subject to the terms of the Mozilla Public
10  License, v. 2.0. If a copy of the MPL was not distributed with this
11  file, You can obtain one at http://mozilla.org/MPL/2.0/.
12 
13  Grame Research Laboratory, 11, cours de Verdun Gensoul 69002 Lyon - France
14  research@grame.fr
15 
16 */
17 
18 #include "MusicalVoiceList.h"
19 #include "ARMusicalEvent.h"
20 #include "ARMusicalVoiceState.h"// for MusicalVoiceList
21 #include "GUIDOScoreMap.h"
22 #include "kf_ilist.h" // for MusicalVoiceList
23 
24 class ARMusic;
25 
26 extern ARMusic * gCurArMusic;
27 
31 class ARMusic : public MusicalVoiceList, public ARMusicalEvent
32 {
33  public:
34  ARMusic();
35  virtual ~ARMusic();
36 
37  void MarkVoice(int voicenum,int fromnum, int fromdenom, int lengthnum, int lengthdenom, unsigned char red, unsigned char green, unsigned char blue);
38  void MarkVoice(int voicenum, float from, float length, unsigned char red, unsigned char green, unsigned char blue);
39  int countVoices() const;
40  void doAutoStuff();
41 
42  GuidoPos AddTail(ARMusicalVoice * newMusicalVoice);
43  void adjustDuration(TYPE_DURATION newDuration);
44 
45  virtual void accept(ARVisitor& visitor);
46 // virtual void resetGRRepresentation();
47  virtual void getTimeMap (TimeMapCollector& f) const;
48  bool getMeterAt (int voicenum, const GuidoDate &date, GuidoMeter& meter);
49  bool getMetersAt (int voicenum, const GuidoDate &date, GuidoMeters& meters);
50  size_t getTempoList (GuidoTempoList& tempi);
51  void removeAutoTags();
52 
53  const NVstring & getName() const { return mName; }
54  void setName(const char * in) { mName = in; }
55 
56  const std::vector<std::string> &getPath() const { return mPaths; }
57  void setPath( std::vector<std::string> inPaths) { mPaths = inPaths; }
58 
59  void setParseTime(long time) { mParseTime = time; }
60  long getParseTime() const { return mParseTime; }
61 
62  long mMaxTagId;
63  static int mRefCount;
64 
65 protected:
66 
67  void doAutoBreaks();
68  // check multiple octava on multiple voice, same staff
69  void doOctavaCheck();
70 
72  std::vector<std::string> mPaths;
73 
74  long mParseTime;
75 };
76 
77 #endif
ARMusicalVoice
The class for GUIDO sequence, list of timepositions of events of a stream.
Definition: ARMusicalVoice.h:76
ARVisitor
Definition: ARVisitor.h:22
ARMusic::mPaths
std::vector< std::string > mPaths
Definition: ARMusic.h:72
ARMusic::doAutoStuff
void doAutoStuff()
ARMusic::removeAutoTags
void removeAutoTags()
GuidoTempo
Representation of tempo information at a given date.
Definition: GUIDOEngine.h:129
GuidoMeter
A meter representation.
Definition: GUIDOEngine.h:107
ARMusicalEvent
Class for musical events (events have an own duration tags not)
Definition: ARMusicalEvent.h:26
Fraction
Numerator and denominator.
Definition: Fraction.h:23
ARMusic::mMaxTagId
long mMaxTagId
Definition: ARMusic.h:62
ARMusic::getTimeMap
virtual void getTimeMap(TimeMapCollector &f) const
ARMusic::mName
NVstring mName
Definition: ARMusic.h:71
ARMusic::MarkVoice
void MarkVoice(int voicenum, int fromnum, int fromdenom, int lengthnum, int lengthdenom, unsigned char red, unsigned char green, unsigned char blue)
ARMusic::setPath
void setPath(std::vector< std::string > inPaths)
Definition: ARMusic.h:57
ARMusic::mParseTime
long mParseTime
Definition: ARMusic.h:74
ARMusic::getMeterAt
bool getMeterAt(int voicenum, const GuidoDate &date, GuidoMeter &meter)
ARMusic::setName
void setName(const char *in)
Definition: ARMusic.h:54
ARMusic::getMetersAt
bool getMetersAt(int voicenum, const GuidoDate &date, GuidoMeters &meters)
KF_IPointerList
Definition: ARMusicalVoiceState.h:33
ARMusic::countVoices
int countVoices() const
GuidoDate
Representation of a date as a rational value.
Definition: GUIDOEngine.h:83
ARMusic::getParseTime
long getParseTime() const
Definition: ARMusic.h:60
ARMusic::setParseTime
void setParseTime(long time)
Definition: ARMusic.h:59
ARMusic::accept
virtual void accept(ARVisitor &visitor)
NVstring
Definition: nvstring.h:21
ARMusic::mRefCount
static int mRefCount
Definition: ARMusic.h:63
ARMusic::getPath
const std::vector< std::string > & getPath() const
Definition: ARMusic.h:56
ARMusic::AddTail
GuidoPos AddTail(ARMusicalVoice *newMusicalVoice)
ARMusic::getTempoList
size_t getTempoList(GuidoTempoList &tempi)
ARMusic::doAutoBreaks
void doAutoBreaks()
ARMusic::~ARMusic
virtual ~ARMusic()
TimeMapCollector
an abstract class to be provided by clients to collect time mappings
Definition: GUIDOScoreMap.h:147
ARMusic::adjustDuration
void adjustDuration(TYPE_DURATION newDuration)
ARMusic::ARMusic
ARMusic()
ARMusic::getName
const NVstring & getName() const
Definition: ARMusic.h:53
ARMusic
Translation of a GUIDO Segment into a class.
Definition: ARMusic.h:31
ARMusic::doOctavaCheck
void doOctavaCheck()

Guido Project Copyright © 2019 Grame-CNCM