]> git.donarmstrong.com Git - lilypond.git/commitdiff
lilypond-1.1.31
authorfred <fred>
Tue, 26 Mar 2002 21:47:14 +0000 (21:47 +0000)
committerfred <fred>
Tue, 26 Mar 2002 21:47:14 +0000 (21:47 +0000)
TODO
lily/parser.yy
ly/declarations.ly
ly/dynamic.ly

diff --git a/TODO b/TODO
index f31959ee40a87f4217c8cb7ac45009813e36538a..92f7be13bface2e4b88de966f6c1a0f5a7a5c971 100644 (file)
--- 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.  
index 59193862adc9db5f08b52f787b3734ab2f1298c5..685cbe1ed8bc92f7d2725e57518d9e0af3a9e1e1 100644 (file)
@@ -91,6 +91,7 @@ Paper_def* current_paper = 0;
 %union {
     Array<Interval>* intarr;
     Array<Musical_pitch> *pitch_arr;
+    Link_array<Request> *reqvec;
     Array<String> * strvec;
     Array<int> *intvec;
     Notename_table *chordmodifiertab;
@@ -222,7 +223,7 @@ yylex (YYSTYPE *s,  void * v_l)
 
 %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
@@ -234,6 +235,7 @@ yylex (YYSTYPE *s,  void * v_l)
 %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
@@ -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<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
        ;
@@ -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<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);
        }
        ;
 
@@ -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<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
        }
        ;
 
@@ -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<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);
        }
        ;
 
index a76c0abcbbff6019e24ade0c77a16bc9d7545c9d..bb2f3d39d0264da0fcade9d5b8eb93daf4567c46 100644 (file)
@@ -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"
 
index 2602a61787de833f6c5c5e3914601cc0d206f934..0fae8e2a10817483b11bb4e1c86e23cd44882750 100644 (file)
@@ -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 }