9 #include "identparent.hh"
13 int default_duration = 4, default_dots=0, default_octave=0;
14 int default_plet_type = 1, default_plet_dur = 1;
15 String textstyle="roman"; // in lexer?
17 /* triplet is '2/3' */
18 void set_plet(int num,int den)
20 assert(num >0&& den>0);
21 default_plet_dur = num;
22 default_plet_type = den;
26 get_text(String s) return t;
35 set_text_style(String s)
41 parse_octave (const char *a, int &j, int &oct)
56 parse_pitchmod( const char *a, int &j, int &oct, bool & overide_acc)
60 parse_octave(a,j,oct);
71 mtor << "oct " << oct;
72 mtor << "override: " << overide_acc<<'\n';
77 get_note_element(String pitch, int * notename, int * duration )
79 Voice_element*v = new Voice_element;
82 int dur = duration[0];
85 Note_req * rq = new Note_req;
88 Stem_req * st = new Stem_req(dur);
94 parse_pitchmod(pitch, i, oct, forceacc);
95 rq->name =notename[0];
96 rq->accidental = notename[1];
98 rq->forceacc = forceacc;
101 rq->plet_factor = Moment(default_plet_dur, default_plet_type);
110 get_rest_element(String, int * duration )
112 Voice_element*v = new Voice_element;
114 Rest_req * rq = new Rest_req;
115 rq->plet_factor = Moment(default_plet_dur, default_plet_type);
116 rq->balltype = duration[0];
117 rq->dots = duration[1];
125 get_default_duration(int *p)
127 *p++ = default_duration;
132 set_default_duration(int *p)
134 default_duration = *p++;
140 set_default_octave(String d)
144 parse_octave(d, i, default_octave);
155 Beam_req*b = new Beam_req;
156 if (default_plet_type != 1)
157 b->nplet = default_plet_type;
174 ret->span()->spantype = Span_req::START;
178 ret->span()->spantype = Span_req::STOP;
189 add_requests(Voice_element *v, svec<Request*> &req)
191 for (int i = 0; i < req.sz(); i++) {
198 get_scriptdef(char c)
202 case '^' : s = "marcato";
204 case '+' : s = "stopped";
206 case '-' : s = "portato";
208 case '|': s = "staccatissimo";
212 case '>' : s = "accent";
216 case '.' : s = "staccato";
219 return lexer->lookup_identifier(s)->script(1);
223 get_script_req(int d , Script_def*def)
225 return new Script_req(d, def);
230 get_text_req(int d , Text_def*def)
232 return new Text_req(d, def);