GUIDOLib  1.7.7
Guido Engine Internal Documentation
ARTuplet.h
1 #ifndef ARTuplet_H
2 #define ARTuplet_H
3 
4 /*
5  GUIDO Library
6  Copyright (C) 2002 Holger Hoos, Juergen Kilian, Kai Renz
7  Copyright (C) 2004 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 <string>
19 
20 #include "ARMTParameter.h"
21 #include "ARPositionTag.h"
22 #include "TagParameterFloat.h"
23 
24 class ARBase;
25 class TagParameterString;
26 
27 /*@mkdoc
28 
29 @group:Notes
30 
31 @tagname:\tuplet
32 @tagalias:
33 @tagtype:R
34 @tagnotation:control tuplets format
35 @tagdesc
36 @tagend
37 
38 @params:
39 @param:format:string:a format string for shape control:*none*:false
40 @param:position:string:below or above:above:true
41 @param:dy1:unit:displacement of the left anchor point:0:true
42 @param:dy2:unit:displacement of the right anchor point:0:true
43 @param:lineThickness:float:the tuplet line thickness (if any):4:true
44 @param:bold:boolean:to use bold font:false:true
45 @param:textSize:float:the text size:1:true
46 @param:dispNote:string:a note duration:*none*:true
47 @paramdesc
48 - the **format** string must be in "x", "-x-", "x:y", "-x:y-", or "--"
49 where 'x' and 'y' are the numbers and '-' denotes the presence of left and right tuplet braces.
50 - **textSize** is a ratio: 1 is for nominal size
51 - **dispNote** is similar to [\displayDuration](#displayduration): it forces the notes appearance whatever their duration. The **dispNote** string must be in the form "/n", where n is a number (e.g. "/16" to display sixteenth notes)
52 
53 See the [notes](@EXAMPLES/notes/) example.
54 @paramend
55 
56 */
57 
58 #define kDefaultThickness 4.f
59 
61 class ARTuplet : public ARMTParameter, public ARPositionTag
62 {
63  public:
64  ARTuplet();
65  virtual ~ARTuplet() {}
66 
67  void setAuto();
68  const std::string getName() const { return fTupletFormat; }
69 
70  virtual void setTagParameters (const TagParameterMap& params);
71 
72  virtual const char* getParamsStr() const { return kARTupletParams; };
73  virtual const char* getTagName() const { return "ARTuplet"; };
74  virtual std::string getGMNName() const { return "\\tuplet"; };
75  virtual bool MatchEndTag(const char * s);
76 
77  void setupTuplet( ARBase * inBase );
79 
80  int getNumerator() const { return fBaseNumerator; }
81  int getDenominator() const { return fBaseDenominator; }
82 
87  int isPositionAbove() const;
88  float getDy1() const { return fDy1 ? fDy1->getValue() : 0.f; }
89  float getDy2() const { return fDy2 ? fDy2->getValue() : 0.f; }
90  float getThickness() const { return fLineThickness; }
91  float defaultThickness()const { return kDefaultThickness; }
92  bool isTextBold() const { return fTextBold; }
93  float getTextSize() const { return fTextSize; }
94  bool getLeftBrace() const { return fLeftBrace; }
95  bool getRightBrace() const { return fRightBrace; }
96  const std::string& getDispNote() const { return fDispNote; }
97  bool isDySet() const { return (fDy1 && fDy1->TagIsSet()) || (fDy2 && fDy2->TagIsSet()); }
98 
99  protected:
100  std::string fTupletFormat; // format string <"-x:y-">
105  bool fTextBold;
106  float fTextSize;
107  std::string fDispNote;
108 
113 };
114 
115 #endif
ARTuplet::~ARTuplet
virtual ~ARTuplet()
Definition: ARTuplet.h:65
ARTuplet::fTupletFormat
std::string fTupletFormat
Definition: ARTuplet.h:100
ARTuplet::getRightBrace
bool getRightBrace() const
Definition: ARTuplet.h:95
ARTuplet::setAuto
void setAuto()
TagParameterFloat::getValue
const TYPE_FLOATPARAMETER getValue(float curLSPACE=50.0f) const
ARTuplet::fLineThickness
float fLineThickness
Definition: ARTuplet.h:104
ARTuplet::getDenominator
int getDenominator() const
Definition: ARTuplet.h:81
ARTuplet::fTextBold
bool fTextBold
Definition: ARTuplet.h:105
ARTuplet::getLeftBrace
bool getLeftBrace() const
Definition: ARTuplet.h:94
ARTuplet::fRightBrace
bool fRightBrace
Definition: ARTuplet.h:112
ARTuplet::parseTupletFormatString
void parseTupletFormatString()
ARTuplet::getNumerator
int getNumerator() const
Definition: ARTuplet.h:80
ARTuplet::fDy2
const TagParameterFloat * fDy2
Definition: ARTuplet.h:103
ARTuplet::fLeftBrace
bool fLeftBrace
Definition: ARTuplet.h:111
ARMTParameter
not yet documented
Definition: ARMTParameter.h:24
ARTuplet
Abstract representation of a tuplet.
Definition: ARTuplet.h:61
ARTuplet::defaultThickness
float defaultThickness() const
Definition: ARTuplet.h:91
ARTuplet::getTagName
virtual const char * getTagName() const
Definition: ARTuplet.h:73
ARTuplet::isPositionAbove
int isPositionAbove() const
isPositionAbove
ARTuplet::getThickness
float getThickness() const
Definition: ARTuplet.h:90
ARTuplet::setupTuplet
void setupTuplet(ARBase *inBase)
ARTuplet::isDySet
bool isDySet() const
Definition: ARTuplet.h:97
ARTuplet::getTextSize
float getTextSize() const
Definition: ARTuplet.h:93
ARBase
not yet documented
Definition: ARBase.h:24
ARTuplet::getDispNote
const std::string & getDispNote() const
Definition: ARTuplet.h:96
ARTuplet::getName
const std::string getName() const
Definition: ARTuplet.h:68
ARTuplet::getParamsStr
virtual const char * getParamsStr() const
Definition: ARTuplet.h:72
ARTuplet::fTextSize
float fTextSize
Definition: ARTuplet.h:106
ARTuplet::isTextBold
bool isTextBold() const
Definition: ARTuplet.h:92
ARTuplet::ARTuplet
ARTuplet()
ARTuplet::fBaseNumerator
int fBaseNumerator
Definition: ARTuplet.h:109
TagParameterFloat
The floating point parameter type for Guido Tags.
Definition: TagParameterFloat.h:24
ARTuplet::getGMNName
virtual std::string getGMNName() const
Definition: ARTuplet.h:74
TagParameter::TagIsSet
bool TagIsSet() const
Definition: TagParameter.h:52
ARTuplet::MatchEndTag
virtual bool MatchEndTag(const char *s)
TagParameterString
A string-type tag parameter.
Definition: TagParameterString.h:25
ARTuplet::getDy1
float getDy1() const
Definition: ARTuplet.h:88
ARPositionTag
The base class for all range tags.
Definition: ARPositionTag.h:26
ARTuplet::setTagParameters
virtual void setTagParameters(const TagParameterMap &params)
TagParameterMap
A list of tag parameters represented as a map.
Definition: TagParameterMap.h:31
ARTuplet::fPosition
const TagParameterString * fPosition
Definition: ARTuplet.h:101
ARTuplet::fDy1
const TagParameterFloat * fDy1
Definition: ARTuplet.h:102
ARTuplet::fDispNote
std::string fDispNote
Definition: ARTuplet.h:107
ARTuplet::fBaseDenominator
int fBaseDenominator
Definition: ARTuplet.h:110
ARTuplet::getDy2
float getDy2() const
Definition: ARTuplet.h:89

Guido Project Copyright © 2019 Grame-CNCM