GUIDOLib  1.7.7
Guido Engine Internal Documentation
ARTremolo.h
1 #ifndef ARTremolo_H
2 #define ARTremolo_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 "ARMTParameter.h"
19 #include "ARPositionTag.h"
20 
21 class TagParameterInt;
22 class TagParameterFloat;
23 class TagParameterString;
24 
25 /*@mkdoc
26 
27 @group:Repeat Signs
28 
29 @tagname:\tremolo
30 @tagalias:\trem <br />tremBegin tremEnd <br />tremoloBegin tremoloEnd
31 @tagtype:R
32 @tagnotation:displays a tremolo
33 @tagdesc
34 @tagend
35 
36 @params:
37 @param:style:string:a strokes string:///:true
38 @param:speed:integer:the tremolo speed:32:true
39 @param:pitch:string:the pitch of the other note:*none*:true
40 @param:thickness:unit:the stroke thickness:0.75:true
41 @param:text:string:a string displayed over the strokes:*none*:true
42 @paramdesc
43 See the [Repeat Signs](@EXAMPLES/repeats/) example.
44 @paramend
45 
46 */
47 
51 class ARTremolo : public ARMTParameter, public ARPositionTag
52 {
53  public:
54  ARTremolo();
55  ARTremolo(const ARTremolo * tremolo);
56  virtual ~ARTremolo() {}
57 
58  virtual bool MatchEndTag(const char * s);
59  virtual void setTagParameters(const TagParameterMap& map);
60 
61  bool isSecondPitchCorrect() const;
62  bool isPitched() const { return !fPitch.empty(); }
63  int getNumberOfStrokes() const;
64 
65  const std::string& getStyle() const { return fStyle; }
66  int getSpeed() const { return fSpeed; }
67  const std::string& getPitch() const { return fPitch; }
68  float getThickness() const { return fThickness; }
69  const std::string& getText() const { return fText; }
70 
71 
72  virtual const char* getParamsStr() const { return kARTremoloParams; };
73  virtual const char* getTagName() const { return "ARTremolo"; };
74  virtual std::string getGMNName() const { return "\\tremolo"; };
75 
76  private:
77  void init();
78 
79  std::string fPitch;
80  std::string fText;
81  std::string fStyle;
82  int fSpeed;
83  float fThickness;
84 };
85 
86 #endif
ARTremolo::isSecondPitchCorrect
bool isSecondPitchCorrect() const
ARTremolo::getGMNName
virtual std::string getGMNName() const
Definition: ARTremolo.h:74
ARTremolo::getParamsStr
virtual const char * getParamsStr() const
Definition: ARTremolo.h:72
ARTremolo::getNumberOfStrokes
int getNumberOfStrokes() const
ARTremolo::~ARTremolo
virtual ~ARTremolo()
Definition: ARTremolo.h:56
ARTremolo::ARTremolo
ARTremolo()
ARTremolo::getStyle
const std::string & getStyle() const
Definition: ARTremolo.h:65
ARTremolo::getSpeed
int getSpeed() const
Definition: ARTremolo.h:66
ARTremolo
not yet documented
Definition: ARTremolo.h:51
ARMTParameter
not yet documented
Definition: ARMTParameter.h:24
ARTremolo::isPitched
bool isPitched() const
Definition: ARTremolo.h:62
TagParameterFloat
The floating point parameter type for Guido Tags.
Definition: TagParameterFloat.h:24
ARTremolo::setTagParameters
virtual void setTagParameters(const TagParameterMap &map)
TagParameterInt
not yet documented
Definition: TagParameterInt.h:24
ARTremolo::getThickness
float getThickness() const
Definition: ARTremolo.h:68
TagParameterString
A string-type tag parameter.
Definition: TagParameterString.h:25
ARPositionTag
The base class for all range tags.
Definition: ARPositionTag.h:26
TagParameterMap
A list of tag parameters represented as a map.
Definition: TagParameterMap.h:31
ARTremolo::getPitch
const std::string & getPitch() const
Definition: ARTremolo.h:67
ARTremolo::getTagName
virtual const char * getTagName() const
Definition: ARTremolo.h:73
ARTremolo::getText
const std::string & getText() const
Definition: ARTremolo.h:69
ARTremolo::MatchEndTag
virtual bool MatchEndTag(const char *s)

Guido Project Copyright © 2019 Grame-CNCM