CVSROOT:        /cvsroot/lilypond
Module name:    lilypond
Branch:         
Changes by:     Han-Wen Nienhuys <[EMAIL PROTECTED]>    05/10/09 15:28:35

Modified files:
        .              : ChangeLog VERSION 
        lily           : figured-bass-continuation.cc 
                         new-figured-bass-engraver.cc 
        ly             : engraver-init.ly 
        scm            : define-context-properties.scm 
                         define-grob-interfaces.scm 
                         define-grob-properties.scm 
                         define-markup-commands.scm lily.scm 
                         translation-functions.scm 
Added files:
        input/regression: figured-bass-implicit.ly 
        scm            : layout-beam.scm layout-page-layout.scm 
                         layout-slur.scm parser-clef.scm 
                         parser-ly-from-scheme.scm 
Removed files:
        scm            : bass-figure.scm beam.scm clef.scm 
                         ly-from-scheme.scm page-layout.scm slur.scm 

Log message:
        * scm/parser-ly-from-scheme.scm: rename from ly-from-scheme.scm
        
        * scm/parser-clef.scm (supported-clefs): rename from clef.scm
        
        * scm/layout-slur.scm: rename from slur.scm
        
        * scm/layout-page-layout.scm: rename from page-layout.scm
        
        * scm/layout-beam.scm: rename from beam.scm
        
        * scm/define-grob-interfaces.scm (bass-figure-interface): add
        bass-figure-interface
        
        * lily/new-figured-bass-engraver.cc (process_music): add
        implicitBassFigures property.
        
        * scm/define-markup-commands.scm (pad-x): new markup.
        
        * ly/engraver-init.ly (AncientRemoveEmptyStaffContext): set
        minimumVerticalExtent on FiguredBass context.
        
        * lily/figured-bass-continuation.cc (center_on_figures): kludge in
        case the continuation crosses a line break.

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/ChangeLog.diff?tr1=1.4164&tr2=1.4165&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/VERSION.diff?tr1=1.660&tr2=1.661&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/input/regression/figured-bass-implicit.ly?rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/figured-bass-continuation.cc.diff?tr1=1.3&tr2=1.4&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/new-figured-bass-engraver.cc.diff?tr1=1.5&tr2=1.6&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/ly/engraver-init.ly.diff?tr1=1.254&tr2=1.255&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/scm/layout-beam.scm?rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/scm/layout-page-layout.scm?rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/scm/layout-slur.scm?rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/scm/parser-clef.scm?rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/scm/parser-ly-from-scheme.scm?rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/scm/define-context-properties.scm.diff?tr1=1.54&tr2=1.55&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/scm/define-grob-interfaces.scm.diff?tr1=1.24&tr2=1.25&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/scm/define-grob-properties.scm.diff?tr1=1.123&tr2=1.124&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/scm/define-markup-commands.scm.diff?tr1=1.117&tr2=1.118&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/scm/lily.scm.diff?tr1=1.375&tr2=1.376&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/scm/translation-functions.scm.diff?tr1=1.13&tr2=1.14&r1=text&r2=text

Patches:
Index: lilypond/ChangeLog
diff -u lilypond/ChangeLog:1.4164 lilypond/ChangeLog:1.4165
--- lilypond/ChangeLog:1.4164   Sun Oct  9 08:05:05 2005
+++ lilypond/ChangeLog  Sun Oct  9 15:28:34 2005
@@ -1,3 +1,29 @@
+2005-10-09  Han-Wen Nienhuys  <[EMAIL PROTECTED]>
+
+       * scm/parser-ly-from-scheme.scm: rename from ly-from-scheme.scm
+
+       * scm/parser-clef.scm (supported-clefs): rename from clef.scm
+
+       * scm/layout-slur.scm: rename from slur.scm
+
+       * scm/layout-page-layout.scm: rename from page-layout.scm
+
+       * scm/layout-beam.scm: rename from beam.scm
+
+       * scm/define-grob-interfaces.scm (bass-figure-interface): add
+       bass-figure-interface
+
+       * lily/new-figured-bass-engraver.cc (process_music): add
+       implicitBassFigures property.
+       
+       * scm/define-markup-commands.scm (pad-x): new markup.
+
+       * ly/engraver-init.ly (AncientRemoveEmptyStaffContext): set
+       minimumVerticalExtent on FiguredBass context.
+
+       * lily/figured-bass-continuation.cc (center_on_figures): kludge in
+       case the continuation crosses a line break.
+
 2005-10-09  Jan Nieuwenhuizen  <[EMAIL PROTECTED]>
 
        * flower/file-name.cc (dos_to_posix)[__CYGWIN__]: Return
@@ -5,6 +31,8 @@
        absolute file name bug.  Backportme.
 
 2005-10-07  Han-Wen Nienhuys  <[EMAIL PROTECTED]>
+
+       * VERSION (PACKAGE_NAME): release 2.7.12
 
        * input/regression/figured-bass-continuation-center.ly: new file.
 
Index: lilypond/VERSION
diff -u lilypond/VERSION:1.660 lilypond/VERSION:1.661
--- lilypond/VERSION:1.660      Mon Oct  3 11:30:40 2005
+++ lilypond/VERSION    Sun Oct  9 15:28:34 2005
@@ -1,6 +1,6 @@
 PACKAGE_NAME=LilyPond
 MAJOR_VERSION=2
 MINOR_VERSION=7
-PATCH_LEVEL=12
+PATCH_LEVEL=13
 MY_PATCH_LEVEL=
 
Index: lilypond/lily/figured-bass-continuation.cc
diff -u lilypond/lily/figured-bass-continuation.cc:1.3 
lilypond/lily/figured-bass-continuation.cc:1.4
--- lilypond/lily/figured-bass-continuation.cc:1.3      Fri Oct  7 09:50:22 2005
+++ lilypond/lily/figured-bass-continuation.cc  Sun Oct  9 15:28:35 2005
@@ -36,10 +36,13 @@
   (void) axis;
   
   extract_grob_set (me, "figures", figures);
+  if (figures.is_empty ())
+    return scm_from_double (0.0);
   Grob *common = common_refpoint_of_array (figures, me, Y_AXIS);
 
   Interval ext = Axis_group_interface::relative_group_extent (figures, common, 
Y_AXIS);
-  
+  if (ext.is_empty ())
+    return scm_from_double (0.0);
   return scm_from_double (ext.center () - me->relative_coordinate (common, 
Y_AXIS));
 }
 
@@ -59,8 +62,13 @@
                                                        X_AXIS);
   do
     {
+      Item *bound = me->get_bound (d);
+      Direction extdir =
+       (d == LEFT && to_boolean (bound->get_property ("implicit")))
+       ? LEFT : RIGHT;
+
       spanned[d] 
-       = robust_relative_extent (me->get_bound (d), common, X_AXIS)[RIGHT]
+       = robust_relative_extent (bound, common, X_AXIS)[extdir]
        - me->relative_coordinate (common, X_AXIS);
     }
   while (flip (&d) !=  LEFT);
Index: lilypond/lily/new-figured-bass-engraver.cc
diff -u lilypond/lily/new-figured-bass-engraver.cc:1.5 
lilypond/lily/new-figured-bass-engraver.cc:1.6
--- lilypond/lily/new-figured-bass-engraver.cc:1.5      Fri Oct  7 11:57:34 2005
+++ lilypond/lily/new-figured-bass-engraver.cc  Sun Oct  9 15:28:35 2005
@@ -266,6 +266,7 @@
 
   if (!new_music_found_)
     return ;
+  
   new_music_found_ = false;
 
   /*
@@ -287,7 +288,6 @@
     {
       clear_spanners ();
     }
-
   
   int k = 0;
   for (int i = 0; i < new_musics_.size (); i++)
@@ -321,26 +321,28 @@
       Array<int> junk_continuations;
       for (int i = 0; i < groups_.size(); i++)
        {
-         if (groups_[i].is_continuation ())
+               Figure_group &group = groups_[i];
+
+         if (group.is_continuation ())
            {
-             if (!groups_[i].continuation_line_)
+             if (!group.continuation_line_)
                {
                  Spanner * line = make_spanner ("BassFigureContinuation", 
SCM_EOL);
-                 Item * item = groups_[i].figure_item_;
-                 groups_[i].continuation_line_ = line;
+                 Item * item = group.figure_item_;
+                 group.continuation_line_ = line;
                  line->set_bound (LEFT, item);
 
                  /*
                    Don't add as child. This will cache the wrong
                    (pre-break) stencil when callbacks are triggered.
                  */
-                 line->set_parent (groups_[i].group_, Y_AXIS);
+                 line->set_parent (group.group_, Y_AXIS);
                  Pointer_group_interface::add_grob (line, ly_symbol2scm 
("figures"), item);
-             
-                 groups_[i].figure_item_ = 0;
+
+                 group.figure_item_ = 0;
                }
            }
-         else if (groups_[i].continuation_line_) 
+         else if (group.continuation_line_) 
            junk_continuations.push (i); 
        }
 
@@ -391,6 +393,7 @@
            = make_item ("NewBassFigure",
                         group.current_music_->self_scm ());
 
+         
          SCM fig = group.current_music_->get_property ("figure");
          if (!group.group_)
            {
@@ -401,6 +404,11 @@
                                            
Align_interface::alignment_callback_proc);
            }
 
+         if (scm_memq (fig, get_property ("implicitBassFigures")) != 
SCM_BOOL_F)
+           {
+             item->set_property ("transparent", SCM_BOOL_T); 
+             item->set_property ("implicit", SCM_BOOL_T);
+           }
          
          group.number_ = fig;
          group.alteration_ = group.current_music_->get_property ("alteration");
@@ -450,6 +458,9 @@
                "bass-figure-event rest-event",
 
                /* read */
+               "implicitBassFigures "
+               "newFiguredBassFormatter "
+               "figuredBassAlterationDirection "
                "useBassFigureExtenders",
 
                /* write */
Index: lilypond/ly/engraver-init.ly
diff -u lilypond/ly/engraver-init.ly:1.254 lilypond/ly/engraver-init.ly:1.255
--- lilypond/ly/engraver-init.ly:1.254  Thu Oct  6 13:12:57 2005
+++ lilypond/ly/engraver-init.ly        Sun Oct  9 15:28:35 2005
@@ -551,7 +551,6 @@
   tablatureFormat = #fret-number-tablature-format
 
 %%
-  bassFigureFormatFunction = #format-bass-figure
   newFiguredBassFormatter = #format-new-bass-figure
   metronomeMarkFormatter = #format-metronome-markup
   graceSettings = #`(
@@ -594,7 +593,7 @@
 
 \context {
   \type "Engraver_group"
-  \name FiguredBass 
+  \name "FiguredBass"
 
 %%  \consists "Figured_bass_engraver"
   \consists "New_figured_bass_engraver"
@@ -603,6 +602,7 @@
   \consists "Separating_line_group_engraver"
   \consists "Hara_kiri_engraver"
   \override RemoveEmptyVerticalGroup #'remove-first = ##t
+  minimumVerticalExtent = #'(-0.5 . 2.5)
 }
 
 \context {
Index: lilypond/scm/define-context-properties.scm
diff -u lilypond/scm/define-context-properties.scm:1.54 
lilypond/scm/define-context-properties.scm:1.55
--- lilypond/scm/define-context-properties.scm:1.54     Fri Oct  7 09:50:22 2005
+++ lilypond/scm/define-context-properties.scm  Sun Oct  9 15:28:35 2005
@@ -239,6 +239,10 @@
 
      (ignoreBarChecks ,boolean? "Ignore bar checks")
      (ignoreMelismata ,boolean? "Ignore melismata for this 
@internalsref{Lyrics} line.")
+
+     (implicitBassFigures ,list? "List of bass figures that are not
+printed as numbers, but only as extender lines.")
+     
      (instr ,markup? "See @code{instrument}")
 
      (instrument ,markup? "The name to print left of a staff.  The
Index: lilypond/scm/define-grob-interfaces.scm
diff -u lilypond/scm/define-grob-interfaces.scm:1.24 
lilypond/scm/define-grob-interfaces.scm:1.25
--- lilypond/scm/define-grob-interfaces.scm:1.24        Wed Aug 24 12:49:53 2005
+++ lilypond/scm/define-grob-interfaces.scm     Sun Oct  9 15:28:35 2005
@@ -106,6 +106,11 @@
  "A stanza number, to be put in from of a lyrics line"
  '())
 
+(ly:add-interface
+ 'bass-figure-interface
+ "A bass figure text"
+ '(implicit))
+
 ;;; todo: this is not typesetting info. Move to interpretation.
 (ly:add-interface
  'tablature-interface
Index: lilypond/scm/define-grob-properties.scm
diff -u lilypond/scm/define-grob-properties.scm:1.123 
lilypond/scm/define-grob-properties.scm:1.124
--- lilypond/scm/define-grob-properties.scm:1.123       Thu Oct  6 10:27:27 2005
+++ lilypond/scm/define-grob-properties.scm     Sun Oct  9 15:28:35 2005
@@ -281,7 +281,7 @@
 and slur ignore eachother.")
      (inspect-quants ,number-pair? "If debugging is set,
 set beam quant to this position, and print the respective scores.")
-
+     (implicit ,boolean? "Is this an implicit bass figure?")
      (keep-inside-line ,boolean? "If set, this column cannot have
 things sticking into the margin.")
      (kern ,ly:dimension? "Amount of extra white space to add. For
Index: lilypond/scm/define-markup-commands.scm
diff -u lilypond/scm/define-markup-commands.scm:1.117 
lilypond/scm/define-markup-commands.scm:1.118
--- lilypond/scm/define-markup-commands.scm:1.117       Wed Oct  5 13:05:45 2005
+++ lilypond/scm/define-markup-commands.scm     Sun Oct  9 15:28:35 2005
@@ -643,6 +643,23 @@
                     (interval-widen x amount)
                     (interval-widen y amount))
    ))
+
+
+(def-markup-command (pad-x layout props amount arg) (number? markup?)
+
+  "Add padding @var{amount} around @var{arg} in the X-direction. "
+  (let*
+      ((m (interpret-markup layout props arg))
+       (x (ly:stencil-extent m X))
+       (y (ly:stencil-extent m Y)))
+    
+       
+    (ly:make-stencil (ly:stencil-expr m)
+                    (interval-widen x amount)
+                    y)
+   ))
+
+
 (def-markup-command (put-adjacent layout props arg1 axis dir arg2) (markup? 
integer? ly:dir?  markup?)
 
   "Put @var{arg2} next to @var{arg1}, without moving @var{arg1}.  "
@@ -652,6 +669,19 @@
 
     (ly:stencil-combine-at-edge m1 axis dir m2 0.0 0.0)
   ))
+
+(def-markup-command (transparent layout props arg) (markup?)
+  "Make the argument transparent"
+  (let*
+      ((m (interpret-markup layout props arg))
+       (x (ly:stencil-extent m X))
+       (y (ly:stencil-extent m Y)))
+    
+
+    
+    (ly:make-stencil ""
+                    x y)))
+
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; property
Index: lilypond/scm/lily.scm
diff -u lilypond/scm/lily.scm:1.375 lilypond/scm/lily.scm:1.376
--- lilypond/scm/lily.scm:1.375 Mon Aug 15 18:28:41 2005
+++ lilypond/scm/lily.scm       Sun Oct  9 15:28:35 2005
@@ -224,7 +224,6 @@
            "chord-generic-names.scm"
            "stencil.scm"
            "markup.scm"
-           "bass-figure.scm"
            "music-functions.scm"
            "part-combiner.scm"
            "autochange.scm"
@@ -232,15 +231,15 @@
            "auto-beam.scm"
            "chord-name.scm"
 
-           "ly-from-scheme.scm"
+           "parser-ly-from-scheme.scm"
            
            "define-context-properties.scm"
            "translation-functions.scm"
            "script.scm"
            "midi.scm"
-           "beam.scm"
-           "clef.scm"
-           "slur.scm"
+           "layout-beam.scm"
+           "parser-clef.scm"
+           "layout-slur.scm"
            "font.scm"
            "encoding.scm"
            
@@ -250,7 +249,7 @@
            "define-grobs.scm"
            "define-grob-interfaces.scm"
            "define-stencil-commands.scm"
-           "page-layout.scm"
+           "layout-page-layout.scm"
            "titling.scm"
            
            "paper.scm"
Index: lilypond/scm/translation-functions.scm
diff -u lilypond/scm/translation-functions.scm:1.13 
lilypond/scm/translation-functions.scm:1.14
--- lilypond/scm/translation-functions.scm:1.13 Fri Jul  8 19:16:12 2005
+++ lilypond/scm/translation-functions.scm      Sun Oct  9 15:28:35 2005
@@ -52,3 +52,54 @@
 (define-public (format-mark-box-barnumbers mark context)
   (make-bold-markup (make-box-markup
     (number->string (ly:context-property context 'currentBarNumber)))))
+
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; Bass figures.
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+(define-public (format-new-bass-figure figure event context)
+  (let* ((fig (ly:music-property event 'figure))
+        (fig-markup (if (number? figure)
+                        (markup #:number (number->string figure 10))
+                        #f
+                        ))
+        (alt (ly:music-property event 'alteration))
+        (alt-markup
+         (if (number? alt)
+             (markup
+                     #:general-align Y DOWN #:smaller #:smaller
+                     (alteration->text-accidental-markup alt))
+             
+             #f))
+        (alt-dir (ly:context-property context 'figuredBassAlterationDirection))
+        )
+
+    (if (and (not fig-markup) alt-markup)
+       (begin
+         (set! fig-markup (markup #:left-align #:pad-around 0.3 alt-markup))
+         (set! alt-markup #f)))
+
+
+    ;; hmm, how to get figures centered between note, and
+    ;; lone accidentals too?
+    
+    ;;    (if (markup? fig-markup)
+    ;; (set!
+    ;;  fig-markup (markup #:translate (cons 1.0 0)
+    ;;                     #:hcenter fig-markup)))
+
+    (if alt-markup
+       (set! fig-markup
+             (markup #:put-adjacent
+                     fig-markup X
+                     (if (number? alt-dir)
+                         alt-dir
+                         LEFT)
+                     #:pad-x 0.2 alt-markup
+                     )))
+
+    (if (markup?  fig-markup)
+       fig-markup
+       empty-markup)))
+


_______________________________________________
Lilypond-cvs mailing list
Lilypond-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-cvs

Reply via email to