.* BUGS
. * .ly files
+. * input/star-spangled-banner
. * mutopia/J.S.Bach/wtk1-fugue2.ly
. * input/test/grace
-. * fix: text on rests: rediculous dims
+. * fix: text on rests: ridiculous dims
+. * m=\notes\relative c''{
+
+c1 | \break
+R1*5 |
+r2 r4 \bar "||"; \break r |
+c2 c |
+}
+
+\score{
+ \type StaffGroup <
+ \type Staff = staffi {\m}
+ \type Staff = staffii {\m}
+ >
+}
+. * m=\notes\relative c'''{
+ \time 2/4;
+
+ R2*4 | c2 | c2 | c2 | c2 | c2 | c2 | c2 | c2 | c2 | \break
+ <{R2*10}{s2 \mark "A"; }> | % Too narrow space for the first rest in
+1.1.29
+ r4 r8 [g16 \p ( a ] |
+[ ) g8-. fis16 ( g ][ ) fis8-. f16 ( g ] |
+[ ) f8-. e16 ( f ][ ) e8-. es16 ( f ] |
+[ ) es8 \f c16 ( d][es8 d16 c ] |
+) d4 r8 [g16 \p ( a ] |
+[ ) g8-. fis16 ( g ][ ) fis8-. f16 ( g ] | \break
+) c2 | c2 | c2 | c2 | c2 | c2 | c2 | c2 | c2 |
+}
+
+\score{
+ \m
+ \paper{
+ \translator{
+ \ScoreContext
+ SkipBars = 1;
+ }
+ \translator {
+ \OrchestralPartStaffContext
+ }
+ }
+}
+. * - Look at input/test/span-bars.ly. The staff lines extend too far
+ to the left on the note systems including the GrandStaff.
. * fix midi output:
. * default duration? d
duration must be not entered explicitely on first note.
. * fix dynamics decently, ie. use kerning & ligatures.
. * fix "I've been drinking too much"
. * support_l_arr_ empty in staff-margin's G_staff_side_item
-. * remove old preformats in RPM
. * minVerticalAlign for StaffGroups.
-. * I have tried the barAuto property to get barlines when
-typesetting rhythms. Lily prints all barlines except
-between first and second bar. Where is my mistake??
-
-\score{
- \type RhythmicStaff<
- \property RhythmicStaff.barAuto=1
- \notes{
- \time 3/4;
- c4 c c | c c c | c c c
- }
- >
-}
. * declaring \score
. * is \break broken? input/test/hara-kiri.ly
. * fix OrchestralScore and Hara-kiri (i.e., fix Coriolan)
.* TODO before 1.2
. * Check gcc 2.8.1 compatibility
+. * make "in-between" engraver (Tie, Extender)
. * use Drul_array for Interval.
. * ties to tie only notes of the same pitch, so that
-> < a~ a,> a
-> works as you'd expect it to.
+ < a~ a,> a
+works as you'd expect it to.
. * 1. Can Lily be told where to start numbering?
-. * The timpani part has rests the full first line. Is it possible
- to force lilypond to print all parts on the first page of the score
- but use the hara-kiri mechanism on the remaining pages?
. * do scaled fonts.
. * profile atom smobs
. * Try to use Killing_cons iso. Pointer_list
. * make dependencies () a virtual function.
-. * fix Repeated_music_iterator::ok() (constness.)
+. * fix Repeated_music design
. * one big ly2dvi input that includes *all* tests.
. * Don't use boolean properties (0,1), instead check existence
of property.
length?
-Why does my second extender request get junked in the following:
-
-\score{
-< \notes \relative c''{
- a4()b()c()d c()d()b()a }
- \type Lyrics \lyrics {
- foo1 __ bar2. __ _4 }
-> }
-
-It seems that \cr and \decr don't work any more.
-
-\score{
- \notes{
- a \cr b \rc c }
- \paper{linewidth=-1.;}
-}
-
-Gives me
-
-qq.ly:3:9: warning: can't find (de)crescendo to end:
- a \cr
- b \rc c }
-
-
Use of semicolons is still rather confusing. They are obligatory
after some types of assignments and illegal after others.
%union {
Array<Interval>* intarr;
Array<Musical_pitch> *pitch_arr;
+ Link_array<Request> *reqvec;
Array<String> * strvec;
Array<int> *intvec;
Notename_table *chordmodifiertab;
%type <outputdef> output_def
%type <scope> mudela_header mudela_header_body
-%type <i> open_request_parens close_request_parens
+%type <request> open_request_parens close_request_parens open_request close_request
%type <i> sub_quotes sup_quotes
%type <music> simple_element request_chord command_element Simple_music Composite_music
%type <music> Alternative_music Repeated_music
%type <duration> steno_duration notemode_duration
%type <duration> entered_notemode_duration explicit_duration
%type <intvec> intastint_list int_list
+%type <reqvec> pre_requests post_requests
%type <pitch> explicit_musical_pitch steno_musical_pitch musical_pitch absolute_musical_pitch
%type <pitch> steno_tonic_pitch
request_chord:
pre_requests simple_element post_requests {
- THIS->add_requests ((Simultaneous_music*)$2);//ugh
+ Music_sequence *l = dynamic_cast<Music_sequence*>($2);
+ for (int i=0; i < $1->size(); i++)
+ l->add_music ($1->elem(i));
+ for (int i=0; i < $3->size(); i++)
+ l->add_music ($3->elem(i));
$$ = $2;
+
}
| command_element
;
;
abbrev_command_req:
- '|' {
+ extender_req {
+ $$ = $1;
+ }
+ | '|' {
$$ = new Barcheck_req;
}
| COMMAND_IDENTIFIER {
post_requests:
{
- /* something silly happened. Junk this stuff*/
- if (!THIS->post_reqs.empty ())
- {
- warning ("Junking post-requests");
- THIS->post_reqs.clear ();
- }
+ $$ = new Link_array<Request>;
}
| post_requests structured_post_request {
$2->set_spot (THIS->here_input ());
- THIS->post_reqs.push ($2);
+ $$->push ($2);
}
- | post_requests close_request_parens {
- Link_array<Request> *r = THIS->get_parens_request ($2);
- for (int i = 0; i < r->size (); i++ )
- r->elem (i)->set_spot (THIS->here_input ());
- THIS->post_reqs.concat (*r);
- delete r;
+ | post_requests close_request {
+ $$->push ($2);
}
;
a->type_i_ = $1;
$$ = a;
}
- | extender_req {
- $$ = $1;
- }
+
;
optional_modality:
$$ ++;
}
;
+
sub_quotes:
',' {
$$ = 1;
EXTENDER {
if (!THIS->lexer_p_->lyric_state_b ())
THIS->parser_error (_ ("have to be in Lyric mode for lyrics"));
- Extender_req * e_p = new Extender_req;
- e_p->spantype_ = START;
- $$ = e_p;
- THIS->extender_req = e_p;
- };
+ $$ = new Extender_req;
+ }
+ ;
dynamic_req:
ABSDYNAMIC '{' STRING '}' {
}
| SPANDYNAMIC '{' int int '}' {
Span_dynamic_req * sp_p = new Span_dynamic_req;
- sp_p->spantype_ = (Direction)$4;
- sp_p-> dynamic_dir_ = (Direction)$3;
+ sp_p-> dynamic_dir_ = Direction($3);
+ sp_p->spantype_ = Direction($4);
$$ = sp_p;
}
;
-
+close_request:
+ close_request_parens {
+ $$ = $1;
+ dynamic_cast<Span_req*> ($$)->spantype_ = START;
+ }
+
close_request_parens:
'(' {
- $$='(';
+ $$= new Slur_req;
}
| E_SMALLER {
- $$ = '<';
+ Span_dynamic_req*s =new Span_dynamic_req;
+ $$ = s;
+ s->dynamic_dir_ = SMALLER;
}
| E_BIGGER {
- $$ = '>';
+ Span_dynamic_req*s =new Span_dynamic_req;
+ $$ = s;
+ s->dynamic_dir_ = BIGGER;
}
;
+open_request:
+ open_request_parens {
+ $$ = $1;
+ dynamic_cast<Span_req*> ($$)->spantype_ = STOP;
+ }
+ ;
open_request_parens:
E_EXCLAMATION {
- $$ = '!';
+ Span_dynamic_req *s = new Span_dynamic_req;
+ s->dynamic_dir_ = SMALLER;
+ $$ = s;
+
}
| ')' {
- $$=')';
+ $$= new Slur_req
}
;
pre_requests:
{
- if (THIS->extender_req)
- {
- Extender_req * e_p = new Extender_req;
- e_p->spantype_ = STOP;
- THIS->pre_reqs.push (e_p);
- THIS->extender_req = 0;
- }
-
+ $$ = new Link_array<Request>;
}
- | pre_requests open_request_parens {
- Link_array<Request>* r = THIS->get_parens_request ($2);
- for (int i = 0; i < r->size (); i++ )
- r->elem (i)->set_spot (THIS->here_input ());
- THIS->pre_reqs.concat (*r);
- delete r;
+ | pre_requests open_request {
+ $$->push ($2);
}
;
breve = \duration { -1 0 }
longa = \duration { -2 0 }
-\include "dynamic.ly"
\include "nederlands.ly" % dutch
\include "chord-modifiers.ly"
\include "script.ly"
right = 1
up = 1
down = -1
+start = -1
+stop = 1
+smaller = -1
+bigger = 1
-% zillie spellink?
center=0
break = { \penalty = 10000; }
major = 0
minor = 3
+\include "dynamic.ly"
\include "property.ly"
% declare the standard dynamic identifiers.
%
-pppppp = \absdynamic { "pppppp" } % Yeah yeah, \absdynamic "foo"; would/should also work.
-
+pppppp = \absdynamic { "pppppp" }
ppppp = \absdynamic { "ppppp" }
pppp = \absdynamic { "pppp" }
ppp = \absdynamic { "ppp" }
p = \absdynamic { "p" }
mp = \absdynamic { "mp" }
mf = \absdynamic { "mf" }
-f = \absdynamic { "f" }
+f = \absdynamic { "e" } % see feta-din layout
ff = \absdynamic { "ff" }
fff = \absdynamic { "fff" }
ffff = \absdynamic { "ffff" }
fffff = \absdynamic { "fffff" }
ffffff = \absdynamic { "ffffff" }
-
fp = \absdynamic { "fp" }
sf = \absdynamic { "sf" }
sff = \absdynamic { "sff" }
spp = \absdynamic { "spp" }
rfz = \absdynamic { "rfz" }
-cr = \spandynamic { 1 1 }
-decr = \spandynamic { -1 1 }
-rc = \spandynamic { 1 2 } % stop a crescendo
-rced = \spandynamic { 1 2 } % stop a decrescendo
+% 1st arg dynamic (louder/softer). 2nd arg spantype
+cr = \spandynamic { \bigger \start }
+decr = \spandynamic { \smaller \start }
+rc = \spandynamic { \bigger \stop }
+rced = \spandynamic { \smaller \stop }