CVSROOT: /cvsroot/lilypond Module name: lilypond Branch: Changes by: Jan Nieuwenhuizen <[EMAIL PROTECTED]> 05/08/18 09:26:26
Modified files: scm : define-grobs.scm define-grob-properties.scm lily : slur.cc slur-engraver.cc side-position-interface.cc phrasing-slur-engraver.cc input/regression: slur-script.ly Documentation/topdocs: NEWS.tely . : ChangeLog Log message: * scm/define-grob-properties.scm (avoid-slur): New property. * lily/phrasing-slur-engraver.cc (acknowledge_extra_object): * lily/slur-engraver.cc (acknowledge_extra_object): Invoke outside_slur_callback if avoid-slur != #'inside. * scm/define-grobs.scm (Fingering, Textscript): No inside-slur/outside-slur preference. (DynamicLineSpanner): Always outside slur. * input/regression/slur-script.ly: More tests. CVSWeb URLs: http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/scm/define-grobs.scm.diff?tr1=1.223&tr2=1.224&r1=text&r2=text http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/scm/define-grob-properties.scm.diff?tr1=1.112&tr2=1.113&r1=text&r2=text http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/slur.cc.diff?tr1=1.223&tr2=1.224&r1=text&r2=text http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/slur-engraver.cc.diff?tr1=1.114&tr2=1.115&r1=text&r2=text http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/side-position-interface.cc.diff?tr1=1.100&tr2=1.101&r1=text&r2=text http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/phrasing-slur-engraver.cc.diff?tr1=1.55&tr2=1.56&r1=text&r2=text http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/input/regression/slur-script.ly.diff?tr1=1.13&tr2=1.14&r1=text&r2=text http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/Documentation/topdocs/NEWS.tely.diff?tr1=1.67&tr2=1.68&r1=text&r2=text http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/ChangeLog.diff?tr1=1.4027&tr2=1.4028&r1=text&r2=text Patches: Index: lilypond/ChangeLog diff -u lilypond/ChangeLog:1.4027 lilypond/ChangeLog:1.4028 --- lilypond/ChangeLog:1.4027 Thu Aug 18 09:11:49 2005 +++ lilypond/ChangeLog Thu Aug 18 09:26:26 2005 @@ -1,3 +1,17 @@ +2005-08-18 Jan Nieuwenhuizen <[EMAIL PROTECTED]> + + * scm/define-grob-properties.scm (avoid-slur): New property. + + * lily/phrasing-slur-engraver.cc (acknowledge_extra_object): + * lily/slur-engraver.cc (acknowledge_extra_object): Invoke + outside_slur_callback if avoid-slur != #'inside. + + * scm/define-grobs.scm (Fingering, Textscript): No + inside-slur/outside-slur preference. + (DynamicLineSpanner): Always outside slur. + + * input/regression/slur-script.ly: More tests. + 2005-08-17 Graham Percival <[EMAIL PROTECTED]> * Documentation/user/lilypond-book: fix notime entry. @@ -138,7 +152,8 @@ * lily/rest-collision.cc (do_shift): spello. - * input/proportional.ly: use #'used property. Set break-overshoot property. + * input/proportional.ly: use #'used property. Set break-overshoot + property. * mf/feta-arrow.mf: center on arrow tip center, iso. tip edge. Index: lilypond/Documentation/topdocs/NEWS.tely diff -u lilypond/Documentation/topdocs/NEWS.tely:1.67 lilypond/Documentation/topdocs/NEWS.tely:1.68 --- lilypond/Documentation/topdocs/NEWS.tely:1.67 Tue Aug 16 23:35:09 2005 +++ lilypond/Documentation/topdocs/NEWS.tely Thu Aug 18 09:26:25 2005 @@ -50,13 +50,13 @@ @item Text scripts such as fingering instructions and dynamics avoid -collisions with Slurs +collisions with slurs @lilypond[fragment,relative=1] { - b_1( b <b d f>_1_3_5) + b_1( f'_1_2_3 c_3_4_5 a) + b( f'\p b,) c-2_\markup { \italic {"cresc."}}( f c) - c-3( c\f c) } @end lilypond Index: lilypond/input/regression/slur-script.ly diff -u lilypond/input/regression/slur-script.ly:1.13 lilypond/input/regression/slur-script.ly:1.14 --- lilypond/input/regression/slur-script.ly:1.13 Mon Aug 15 19:23:02 2005 +++ lilypond/input/regression/slur-script.ly Thu Aug 18 09:26:25 2005 @@ -1,12 +1,13 @@ \header { - texidoc = "A slur avoids collisions with scripts. Only articulations - go inside the slur, dynamic markings, fingerings texts etc. go outside - of slur. + texidoc = "A slur avoids collisions with scripts. Articulations + go inside the slur, dynamic markings go outside the slur. + Fingerings and texts are placed either inside or outside. - For different configurations, the scripts can be moved manually." - } + For different configurations, the defaults can be changed, and + scripts can be moved manually." + } \version "2.6.0" \layout { @@ -17,12 +18,15 @@ b4-.( b-. b-.) b(-. d-.) - b_1( b b_1_2_3) - %% Allow Fingering to go inside slur. - \override Fingering #'inside-slur = ##t - b( d_1 b) - c_\markup { \italic {"cresc."}}( f c) - c( c\f c) + b_1( f'_1_2_3 c_3_4_5 a) + b( f'\p b,) + + %% Do not force dynamics outside slur, only avoid collisions. + \override DynamicLineSpanner #'avoid-slur = #'() + \override DynamicLineSpanner #'padding = #0.3 + b( e\p e\f b) + + c_\markup { \italic {"cresc."}}( c c) \once \override Script #'padding = #1.2 b-.( b-. \once \override Script #'padding = #1.2 Index: lilypond/lily/phrasing-slur-engraver.cc diff -u lilypond/lily/phrasing-slur-engraver.cc:1.55 lilypond/lily/phrasing-slur-engraver.cc:1.56 --- lilypond/lily/phrasing-slur-engraver.cc:1.55 Mon Aug 15 19:23:02 2005 +++ lilypond/lily/phrasing-slur-engraver.cc Thu Aug 18 09:26:25 2005 @@ -94,16 +94,16 @@ Phrasing_slur_engraver::acknowledge_extra_object (Grob_info info) { Grob *e = info.grob (); - SCM inside = e->get_property ("inside-slur"); + SCM avoid = e->get_property ("avoid-slur"); if (Tie::has_interface (e) - || to_boolean (inside)) + || avoid == ly_symbol2scm ("inside")) { for (int i = slurs_.size (); i--;) Slur::add_extra_encompass (slurs_[i], e); for (int i = end_slurs_.size (); i--;) Slur::add_extra_encompass (end_slurs_[i], e); } - else if (inside == SCM_BOOL_F + else if (avoid != ly_symbol2scm ("inside") && e->name () != "DynamicText") { Grob *slur = slurs_.size () ? slurs_[0] : 0; Index: lilypond/lily/side-position-interface.cc diff -u lilypond/lily/side-position-interface.cc:1.100 lilypond/lily/side-position-interface.cc:1.101 --- lilypond/lily/side-position-interface.cc:1.100 Sat Aug 13 21:35:22 2005 +++ lilypond/lily/side-position-interface.cc Thu Aug 18 09:26:25 2005 @@ -263,4 +263,5 @@ "side-relative-direction " "side-support-elements " "slur-padding " - "staff-padding "); + "staff-padding " + ); Index: lilypond/lily/slur-engraver.cc diff -u lilypond/lily/slur-engraver.cc:1.114 lilypond/lily/slur-engraver.cc:1.115 --- lilypond/lily/slur-engraver.cc:1.114 Mon Aug 15 18:06:06 2005 +++ lilypond/lily/slur-engraver.cc Thu Aug 18 09:26:25 2005 @@ -93,16 +93,16 @@ Slur_engraver::acknowledge_extra_object (Grob_info info) { Grob *e = info.grob (); - SCM inside = e->get_property ("inside-slur"); + SCM avoid = e->get_property ("avoid-slur"); if (Tie::has_interface (e) - || to_boolean (inside)) + || avoid == ly_symbol2scm ("inside")) { for (int i = slurs_.size (); i--;) Slur::add_extra_encompass (slurs_[i], e); for (int i = end_slurs_.size (); i--;) Slur::add_extra_encompass (end_slurs_[i], e); } - else if (inside == SCM_BOOL_F + else if (avoid != ly_symbol2scm ("inside") && e->name () != "DynamicText") { Grob *slur = slurs_.size () ? slurs_[0] : 0; Index: lilypond/lily/slur.cc diff -u lilypond/lily/slur.cc:1.223 lilypond/lily/slur.cc:1.224 --- lilypond/lily/slur.cc:1.223 Fri Aug 12 00:04:45 2005 +++ lilypond/lily/slur.cc Thu Aug 18 09:26:25 2005 @@ -184,6 +184,7 @@ bool consider[] = { false, false, false }; Real ys[] = {0, 0, 0}; bool do_shift = false; + SCM avoid = script->get_property ("avoid-slur"); for (int d = LEFT, k = 0; d <= RIGHT; d++, k++) { @@ -201,8 +202,10 @@ consider[k] = true; /* Request shift if slur is contained script's Y, or if - script is fully inside slur. */ - if (yext.contains (ys[k]) || dir * ys[k] > dir * yext[-dir]) + script is inside slur and avoid == outside. */ + if (yext.contains (ys[k]) + || (avoid == ly_symbol2scm ("outside") + && dir * ys[k] > dir * yext[-dir])) do_shift = true; } } Index: lilypond/scm/define-grob-properties.scm diff -u lilypond/scm/define-grob-properties.scm:1.112 lilypond/scm/define-grob-properties.scm:1.113 --- lilypond/scm/define-grob-properties.scm:1.112 Mon Aug 15 13:07:32 2005 +++ lilypond/scm/define-grob-properties.scm Thu Aug 18 09:26:25 2005 @@ -276,9 +276,9 @@ (horizontal-shift ,integer? "An integer that identifies ranking of note-column for horizontal shifting. This is used by @internalsref{note-collision-interface}.") - (inside-slur ,boolean? "If set, this script should be inside the -slur. If set to false, the script places itself around the slur. If -unset, script and slur ignore each other ") + (avoid-slur ,symbol? "Method of handling slur collisions. +Choices are @{around}, @{ignore}, @{inside}, @{outside}. If +unset, script and slur ignore eachother.") (inspect-quants ,number-pair? "If debugging is set, set beam quant to this position, and print the respective scores.") Index: lilypond/scm/define-grobs.scm diff -u lilypond/scm/define-grobs.scm:1.223 lilypond/scm/define-grobs.scm:1.224 --- lilypond/scm/define-grobs.scm:1.223 Tue Aug 16 15:47:43 2005 +++ lilypond/scm/define-grobs.scm Thu Aug 18 09:26:25 2005 @@ -20,7 +20,7 @@ (Accidental . ( (print-function . ,Accidental_interface::print) - (inside-slur . #t) + (avoid-slur . inside) (cautionary-style . parentheses) (after-line-breaking-callback . ,Accidental_interface::after_line_breaking) (meta . ((class . Item) @@ -478,7 +478,7 @@ (Y-offset-callbacks . (,Side_position_interface::aligned_side)) (staff-padding . 0.1) (padding . 0.6) - (inside-slur . #f) + (avoid-slur . outside) (slur-padding . 0.3) (minimum-space . 1.2) (direction . -1) @@ -536,7 +536,6 @@ ;; sync with TextScript (?) (padding . 0.5) - (inside-slur . #f) (slur-padding . 0.2) (staff-padding . 0.5) (self-alignment-X . 0) @@ -1409,7 +1408,6 @@ (padding . 0.5) (staff-padding . 0.5) (before-line-breaking-callback . ,Script_interface::before_line_breaking) - (inside-slur . #f) (slur-padding . 0.5) (script-priority . 200) ;; todo: add X self alignment? _______________________________________________ Lilypond-cvs mailing list Lilypond-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-cvs