GUIDOLib  1.7.7
Guido Engine Internal Documentation
ARBase.h
1 #ifndef ARBase_H
2 #define ARBase_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 "ARMusicalTag.h"
19 #include "ARPositionTag.h"
20 #include "ARMusicalEvent.h"
21 
24 class ARBase : public ARMusicalTag, public ARPositionTag
25 {
26 public:
28  virtual ~ARBase() {}
29 
30  virtual std::string getGMNName() const { return "\\ARBase(" + std::string(dur) + ", " + std::string(base) + ")"; };
31 
32  void setBaseDuration(const TYPE_DURATION & tmp) { dur = tmp; }
33  void setBase(const TYPE_DURATION & tmp) { base = tmp; }
34  const TYPE_DURATION & getBaseDuration() const { return dur; }
35  const TYPE_DURATION & getBase() const { return base; }
36 
37  void addEvent(const ARMusicalEvent * ev) { dur += ev->getDuration(); }
38 
39  // called, to finish a base. this calculates the equivalence ....
40  // different algorithms can be used (hindemith ...)
41  // right now, the next smaller note is taken
42  void finish() {}
43 
44 private:
45  // the parameters ...
46  TYPE_DURATION dur; // the dur of this tuplet
47  TYPE_DURATION base; // the base of this tuplet
48  // that is, a note of duration equiv1 is displayed
49  // as a note of duration equiv2,
50  // sample: 1/6 == 1/4 means, that a note of duration
51  // 1/6 is displayed as a quarter note.
52 };
53 
54 #endif
ARBase::addEvent
void addEvent(const ARMusicalEvent *ev)
Definition: ARBase.h:37
ARBase::~ARBase
virtual ~ARBase()
Definition: ARBase.h:28
ARBase::ARBase
ARBase()
Definition: ARBase.h:27
ARMusicalEvent
Class for musical events (events have an own duration tags not)
Definition: ARMusicalEvent.h:26
Fraction
Numerator and denominator.
Definition: Fraction.h:23
ARMusicalTag::rangesetting
RANGE rangesetting
Definition: ARMusicalTag.h:140
ARBase::setBase
void setBase(const TYPE_DURATION &tmp)
Definition: ARBase.h:33
ARMusicalTag::RA
Definition: ARMusicalTag.h:43
ARBase::setBaseDuration
void setBaseDuration(const TYPE_DURATION &tmp)
Definition: ARBase.h:32
ARBase
not yet documented
Definition: ARBase.h:24
ARBase::getGMNName
virtual std::string getGMNName() const
Definition: ARBase.h:30
ARMusicalTag
The base class for all musical tag classes.
Definition: ARMusicalTag.h:34
ARBase::getBaseDuration
const TYPE_DURATION & getBaseDuration() const
Definition: ARBase.h:34
ARMusicalObject::getDuration
virtual const TYPE_DURATION & getDuration() const
Definition: ARMusicalObject.h:45
ARPositionTag
The base class for all range tags.
Definition: ARPositionTag.h:26
ARBase::finish
void finish()
Definition: ARBase.h:42
ARMusicalTag::ONLY
Definition: ARMusicalTag.h:44
ARBase::getBase
const TYPE_DURATION & getBase() const
Definition: ARBase.h:35
ARMusicalTag::setAssociation
void setAssociation(ASSOCIATION p_assoc)
Definition: ARMusicalTag.h:71

Guido Project Copyright © 2019 Grame-CNCM