From: fred Date: Tue, 26 Mar 2002 21:47:14 +0000 (+0000) Subject: lilypond-1.1.31 X-Git-Tag: release/1.5.59~2581 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=0280b4a067dff5a84e9dc8a8665faf11cfe965e2;p=lilypond.git lilypond-1.1.31 --- diff --git a/TODO b/TODO index f31959ee40..92f7be13bf 100644 --- a/TODO +++ b/TODO @@ -10,9 +10,53 @@ grep for TODO and ugh/ugr/urg .* 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. @@ -28,21 +72,7 @@ grep for TODO and ugh/ugr/urg . * 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) @@ -55,19 +85,17 @@ specify the third. Should there be? .* 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. @@ -100,30 +128,6 @@ about 2.5 whole notes? Is there a mechanism for getting this kind of 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. diff --git a/lily/parser.yy b/lily/parser.yy index 59193862ad..685cbe1ed8 100644 --- a/lily/parser.yy +++ b/lily/parser.yy @@ -91,6 +91,7 @@ Paper_def* current_paper = 0; %union { Array* intarr; Array *pitch_arr; + Link_array *reqvec; Array * strvec; Array *intvec; Notename_table *chordmodifiertab; @@ -222,7 +223,7 @@ yylex (YYSTYPE *s, void * v_l) %type output_def %type mudela_header mudela_header_body -%type open_request_parens close_request_parens +%type open_request_parens close_request_parens open_request close_request %type sub_quotes sup_quotes %type simple_element request_chord command_element Simple_music Composite_music %type Alternative_music Repeated_music @@ -234,6 +235,7 @@ yylex (YYSTYPE *s, void * v_l) %type steno_duration notemode_duration %type entered_notemode_duration explicit_duration %type intastint_list int_list +%type pre_requests post_requests %type explicit_musical_pitch steno_musical_pitch musical_pitch absolute_musical_pitch %type steno_tonic_pitch @@ -866,8 +868,13 @@ scalar: request_chord: pre_requests simple_element post_requests { - THIS->add_requests ((Simultaneous_music*)$2);//ugh + Music_sequence *l = dynamic_cast($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 ; @@ -887,7 +894,10 @@ command_req: ; abbrev_command_req: - '|' { + extender_req { + $$ = $1; + } + | '|' { $$ = new Barcheck_req; } | COMMAND_IDENTIFIER { @@ -975,23 +985,14 @@ verbose_command_req: post_requests: { - /* something silly happened. Junk this stuff*/ - if (!THIS->post_reqs.empty ()) - { - warning ("Junking post-requests"); - THIS->post_reqs.clear (); - } + $$ = new Link_array; } | 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 *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); } ; @@ -1012,9 +1013,7 @@ post_request: a->type_i_ = $1; $$ = a; } - | extender_req { - $$ = $1; - } + ; optional_modality: @@ -1034,6 +1033,7 @@ sup_quotes: $$ ++; } ; + sub_quotes: ',' { $$ = 1; @@ -1122,11 +1122,9 @@ extender_req: 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 '}' { @@ -1137,34 +1135,52 @@ dynamic_req: } | 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 ($$)->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 ($$)->spantype_ = STOP; + } + ; open_request_parens: E_EXCLAMATION { - $$ = '!'; + Span_dynamic_req *s = new Span_dynamic_req; + s->dynamic_dir_ = SMALLER; + $$ = s; + } | ')' { - $$=')'; + $$= new Slur_req } ; @@ -1258,21 +1274,10 @@ script_dir: 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; } - | pre_requests open_request_parens { - Link_array* 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); } ; diff --git a/ly/declarations.ly b/ly/declarations.ly index a76c0abcbb..bb2f3d39d0 100644 --- a/ly/declarations.ly +++ b/ly/declarations.ly @@ -3,7 +3,6 @@ breve = \duration { -1 0 } longa = \duration { -2 0 } -\include "dynamic.ly" \include "nederlands.ly" % dutch \include "chord-modifiers.ly" \include "script.ly" @@ -28,8 +27,11 @@ left = -1 right = 1 up = 1 down = -1 +start = -1 +stop = 1 +smaller = -1 +bigger = 1 -% zillie spellink? center=0 break = { \penalty = 10000; } @@ -37,6 +39,7 @@ nobreak = { \penalty = -10000; } major = 0 minor = 3 +\include "dynamic.ly" \include "property.ly" diff --git a/ly/dynamic.ly b/ly/dynamic.ly index 2602a61787..0fae8e2a10 100644 --- a/ly/dynamic.ly +++ b/ly/dynamic.ly @@ -2,8 +2,7 @@ % 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" } @@ -11,13 +10,12 @@ pp = \absdynamic { "pp" } 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" } @@ -26,7 +24,8 @@ sp = \absdynamic { "sp" } 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 }