From: Jan Nieuwenhuizen Date: Sun, 17 Jan 1999 16:40:23 +0000 (+0100) Subject: patch::: 1.1.22.jcn1: slur fixjes X-Git-Tag: release/1.1.23~5 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=3b9a2f280fb4dafdd3dfc69c7c5d6cb7b3818664;p=lilypond.git patch::: 1.1.22.jcn1: slur fixjes pl 22.jcn1 - bf's: cross-staff slur - bf: gnossienne-4 --- diff --git a/NEWS b/NEWS index ecef189c2c..99fb62d6e4 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,7 @@ +pl 22.jcn1 + - bf's: cross-staff slur + - bf: gnossienne-4 + pl 22 - fixed "already have a Beam" error diff --git a/TODO b/TODO index a8195481b2..659bbb3dfb 100644 --- a/TODO +++ b/TODO @@ -64,6 +64,8 @@ BUGS: * fix midi output. + * turn slope-damping on/off + * c4 \! \> c4 * tremolo stuff diff --git a/VERSION b/VERSION index a5e5c807b5..4e40843629 100644 --- a/VERSION +++ b/VERSION @@ -2,7 +2,7 @@ PACKAGE_NAME=LilyPond MAJOR_VERSION=1 MINOR_VERSION=1 PATCH_LEVEL=22 -MY_PATCH_LEVEL= +MY_PATCH_LEVEL=jcn1 # use the above to send patches: MY_PATCH_LEVEL is always empty for a # released version. diff --git a/aclocal.m4 b/aclocal.m4 index c6bcc95f08..0e035cad95 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -267,7 +267,7 @@ AC_DEFUN(AC_STEPMAKE_INIT, [ AC_SUBST(CONFIGSUFFIX) AC_CANONICAL_HOST - AC_CHECK_PROGS(MAKE, make gmake, error) + AC_CHECK_PROGS(MAKE, gmake make, error) AC_CHECK_PROGS(FIND, find, error) dnl system supplied INSTALL is unsafe; use our own install. @@ -287,7 +287,7 @@ dnl fi if test "$?" = 1 then AC_STEPMAKE_WARN(Please install *GNU* make) - fi + fi fi AC_CHECK_SEARCH_RESULT($PYTHON, python, You should install Python) diff --git a/input/bugs/beam-translator.ly b/input/bugs/beam-translator.ly new file mode 100644 index 0000000000..42802aa556 --- /dev/null +++ b/input/bugs/beam-translator.ly @@ -0,0 +1,25 @@ +\score{ + \type GrandStaff < + \type Staff=one \notes\relative c'{ + s1 + } + \type Staff=two \notes\relative c'{ + \clef bass; + s2 + \translator Staff=one \stemup [c8 c c c ] + % the translator switch below, intended for the next beam, + % affects (and breaks) the beam above + \translator Staff=two + } + > + \paper{ + % no slur damping + slur_slope_damping = 10.0; + \translator{ + \GrandStaffContext + minVerticalAlign = 3.0*\staffheight; + maxVerticalAlign = 3.0*\staffheight; + } + linewidth=-1.; + } +} diff --git a/input/test/slur-interstaff.ly b/input/test/slur-interstaff.ly index 4670c82701..ebf5b9c0a1 100644 --- a/input/test/slur-interstaff.ly +++ b/input/test/slur-interstaff.ly @@ -13,8 +13,10 @@ \translator Staff=two \stemup c4( \translator Staff=one c \break c )c r2 - r1 - r1 +% \stemdown c4( \translator Staff=two c c \translator Staff=one )c + \stemdown d4( \translator Staff=two c c \translator Staff=one )d + \translator Staff=two + \stemup c4( \translator Staff=one c c \translator Staff=two )c r1 } \type Staff=two \notes\relative c'{ diff --git a/lily/bow.cc b/lily/bow.cc index 66c1bfd562..bd4827ba91 100644 --- a/lily/bow.cc +++ b/lily/bow.cc @@ -88,6 +88,7 @@ Bow::do_height () const Real y = c[i][Y_AXIS]; iv.unite (Interval (y,y)); } + iv -= interstaff_f_; return iv; } diff --git a/lily/clef-engraver.cc b/lily/clef-engraver.cc index ca50b0dab2..737f4ff4ff 100644 --- a/lily/clef-engraver.cc +++ b/lily/clef-engraver.cc @@ -150,7 +150,8 @@ Clef_engraver::acknowledge_element (Score_element_info info) { if (Note_head * h = dynamic_cast(it_l)) { - h->position_i_ += c0_position_i_; + // h->position_i_ += c0_position_i_; + h->position_i_ = h->steps_i_ + c0_position_i_; } else if (Local_key_item *i = dynamic_cast (it_l)) { diff --git a/lily/encompass-info.cc b/lily/encompass-info.cc index 6adca21c22..6966495343 100644 --- a/lily/encompass-info.cc +++ b/lily/encompass-info.cc @@ -14,6 +14,7 @@ #include "encompass-info.hh" #include "slur.hh" #include "staff-sym.hh" +#include "note-head.hh" #include "debug.hh" Encompass_info::Encompass_info () @@ -23,6 +24,8 @@ Encompass_info::Encompass_info () Encompass_info::Encompass_info (Note_column const* note, Direction dir) { + interstaff_f_ = 0; + Paper_def* paper = note->paper (); Real interline = paper->interline_f (); // UGH @@ -57,25 +60,29 @@ Encompass_info::Encompass_info (Note_column const* note, Direction dir) if (stem_l->dir_ != dir) o_.y () += 1.0 * internote * dir; - Slur* slur_l_ = stem_l->slur_l_; - if (slur_l_->encompass_arr_.size () - && stem_l->staff_sym_l_ != slur_l_->encompass_arr_[0]->stem_l_->staff_sym_l_) + Slur* slur_l = stem_l->slur_l_; + if (slur_l->encompass_arr_.size () + && stem_l->staff_sym_l_ != slur_l->encompass_arr_[0]->stem_l_->staff_sym_l_) { if (stem_l->staff_sym_l_->dim_cache_[Y_AXIS].valid_b ()) { interstaff_f_ = stem_l->staff_sym_l_->absolute_coordinate (Y_AXIS) - - slur_l_->encompass_arr_[0]->stem_l_->staff_sym_l_->absolute_coordinate (Y_AXIS); + - slur_l->encompass_arr_[0]->stem_l_->staff_sym_l_->absolute_coordinate (Y_AXIS); } else { warning (_ ("invalid dimension cache: guessing staff position")); - if (slur_l_->vertical_align_drul_[MIN] != - slur_l_->vertical_align_drul_[MAX]) + if (slur_l->vertical_align_drul_[MIN] != + slur_l->vertical_align_drul_[MAX]) warning (_ ("minVerticalAlign != maxVerticalAlign: interstaff slurs may be broken")); - interstaff_f_ = slur_l_->vertical_align_drul_[MIN]; - // urg, guess staff order: - // if our stem ends higher, our staff is probably lower... - if (stem_l->chord_start_f () > slur_l_->encompass_arr_[0]->stem_l_->chord_start_f ()) + interstaff_f_ = slur_l->vertical_align_drul_[MIN]; + /* urg, guess staff order */ + int d = note->head_l_arr_.top ()->steps_i_ + - slur_l->encompass_arr_[0]->head_l_arr_[0]->steps_i_; + if (abs (d > 3)) + interstaff_f_ *= sign (d); + else if (stem_l->chord_start_f () > + slur_l->encompass_arr_[0]->stem_l_->chord_start_f ()) interstaff_f_ *= -1; } o_.y () += interstaff_f_; diff --git a/lily/heads-engraver.cc b/lily/heads-engraver.cc index b60f7f2b45..c2d52cf139 100644 --- a/lily/heads-engraver.cc +++ b/lily/heads-engraver.cc @@ -46,7 +46,8 @@ Note_heads_engraver::do_process_requests() dot_p_arr_.push (d); } - note_p->position_i_ = note_req_l->pitch_.steps (); + note_p->steps_i_ = note_req_l->pitch_.steps (); + // note_p->position_i_ = note_req_l->pitch_.steps (); Score_element_info itinf (note_p,note_req_l); diff --git a/lily/include/note-head.hh b/lily/include/note-head.hh index 1a34c99f23..1cc0bad9b8 100644 --- a/lily/include/note-head.hh +++ b/lily/include/note-head.hh @@ -18,8 +18,11 @@ class Note_head : public Rhythmic_head { public: - + /// position of top line (5 linestaff: 8) int position_i_; + + /// pitch in steps + int steps_i_; /// -1 = lowest, 0 = inside, 1 = top int extremal_i_; @@ -28,9 +31,6 @@ public: int staff_size_i_; Direction x_dir_; - /** - position of top line (5 linestaff: 8) - */ Note_head (); static int compare (Note_head * const &a, Note_head *const &b) ; diff --git a/lily/note-head.cc b/lily/note-head.cc index cbd0c69839..10cb7b1c25 100644 --- a/lily/note-head.cc +++ b/lily/note-head.cc @@ -20,6 +20,7 @@ Note_head::Note_head () { x_dir_ = CENTER; staff_size_i_= 8; // UGH + steps_i_ = 0; position_i_ = 0; extremal_i_ = 0; } diff --git a/mutopia/J.S.Bach/Petites-Preludes/preludes-1.ly b/mutopia/J.S.Bach/Petites-Preludes/preludes-1.ly index d544c730f7..274263993a 100644 --- a/mutopia/J.S.Bach/Petites-Preludes/preludes-1.ly +++ b/mutopia/J.S.Bach/Petites-Preludes/preludes-1.ly @@ -68,7 +68,8 @@ one = \type Voice=one \notes\relative c { [)d c'-5( f,-3 e-2] [d-1 b'-5 f-3 d-2] | [)c b'-5( e,-3 d-2] [c-1 a'-5 e-3 c-2] [)b-1 a'-5( d,-3 c-2] [b-1 g'-5 d-3 b-2] | - [)a g'-5 c,-4 b] [a-"poco a poco dim." fis'-5 c-2 a-1] +% [)a g'-5 c,-4 b] [a-"poco a poco dim." fis'-5 c-2 a-1] + [)a g'-5 c,-4 b] [a fis'-5 c-2 a-1] [b-2 f' d-4 c] [b f' d-4 b-2] | [g e' c-3 b] [a e'-5 c-3 a-1] [fis-2 d' b-3 a] [g-1 d'-5 b-4 g-2] | diff --git a/mutopia/gnossienne-4.ly b/mutopia/gnossienne-4.ly index 5545f5f943..b346daa8de 100644 --- a/mutopia/gnossienne-4.ly +++ b/mutopia/gnossienne-4.ly @@ -31,38 +31,40 @@ upper = \type Voice=one \notes \relative c''{ r2 r r r4 [a'8--(\< a--] [a-- a-- c-- \!b--] [a--\> fis g \!e] % grace hack - [es8 { \type Voice=urgnobeam \tiny b8*1/16 ~ \normalsize } )c*15/16] r4 r2 r + % urg, how to get grace in different voice, thus in different beam?? +% [es8 { \type Voice=urgnobeam \tiny b8*1/2 ~ \normalsize } )c*1/2] r4 r2 r + [es8 \type Voice=x \tiny b8*1/2 ~ \normalsize \type Voice=one )c*1/2] r4 r2 r r2 r r r4 [a'8--(\< a--] [a-- a-- c-- \!b--] [a--\> fis g \!e] - [es8 { \type Voice=urgnobeam \tiny b8*1/16 ~ \normalsize } )c*15/16] r4 r2 r + [es8 { \type Voice=urgnobeam \tiny b8*1/2 ~ \normalsize } )c*1/2] r4 r2 r r4 [g16( a bes a] [g a bes a g a bes a] [g a bes a g fis es fis] - )d4 \tiny fis8*1/16 ~ \normalsize gis4*31/32 ~ gis8 r r4 r2 + )d4 \tiny fis8*1/2 ~ \normalsize gis4*3/4 ~ gis8 r r4 r2 r4 [g16( a bes a] [g a bes a g a bes a] [g a bes a g fis es fis] - )d4 \tiny fis8*1/16 ~ \normalsize gis4*31/32 ~ gis8 r r4 r2 - \tiny a8*1/16 ~ \normalsize f4*31/32 ~ f8 r r2 r - r2 r4 [a8( b][c d c b] \tiny b8*1/16 ~ \normalsize [e8*15/16 - { \type Voice=urgnobeam \tiny a,8*1/16 ~ \normalsize } )g8*15/16] r4 r2 r + )d4 \tiny fis8*1/2 ~ \normalsize gis4*3/4 ~ gis8 r r4 r2 + \tiny a8*1/2 ~ \normalsize f4*3/4 ~ f8 r r2 r + r2 r4 [a8( b][c d c b] \tiny b8*1/2 ~ \normalsize [e8*1/2 + { \type Voice=urgnobeam \tiny a,8*1/2 ~ \normalsize } )g8*1/2] r4 r2 r r2 r4 [a8( b][c d c b] [a b c d][c b a b][c d c b] - \tiny b8*1/16 ~ \normalsize [e8*15/16 - { \type Voice=urgnobeam \tiny a,8*1/16 ~ \normalsize } )g8*15/16] r4 r2 r - a2( \tiny e'8*1/16 ~ \normalsize f4*31/32 ~ )f8 r r2 + \tiny b8*1/2 ~ \normalsize [e8*1/2 + { \type Voice=urgnobeam \tiny a,8*1/2 ~ \normalsize } )g8*1/2] r4 r2 r + a2( \tiny e'8*1/2 ~ \normalsize f4*3/4 ~ )f8 r r2 r2 r r - fis,4( \tiny dis8*1/16 \normalsize <)cis4*31/32 ais> r2 r - \tiny b'8*1/16 ~ \normalsize [a8*15/16 - { \type Voice=urgnobeam \tiny b8*1/16 ~ \normalsize } a8*15/16] r4 r2 r + fis,4( \tiny dis8*1/2 \normalsize <)cis4*3/4 ais> r2 r + \tiny b'8*1/2 ~ \normalsize [a8*1/2 + { \type Voice=urgnobeam \tiny b8*1/2 ~ \normalsize } a8*1/2] r4 r2 r r4 [a'8--(\< a--] [a-- a-- c-- \!b--] [a--\> fis g \!e] - [es8 { \type Voice=urgnobeam \tiny b8*1/16 ~ \normalsize } )c*15/16] r4 r2 r - d,4( \tiny fis8*1/16 ~ \normalsize gis4*31/32 ~ )gis8 r r4 r2 + [es8 { \type Voice=urgnobeam \tiny b8*1/2 ~ \normalsize } )c*1/2] r4 r2 r + d,4( \tiny fis8*1/2 ~ \normalsize gis4*3/4 ~ )gis8 r r4 r2 f4 ~ f8 r r2 r [f'8( g a b][a g f g][a b a g] - \tiny f8*1/16 ~ \normalsize [g8*15/16 - { \type Voice=urgnobeam \tiny d8*1/16 ~ \normalsize } )e8*15/16] r4 r2 r + \tiny f8*1/2 ~ \normalsize [g8*1/2 + { \type Voice=urgnobeam \tiny d8*1/2 ~ \normalsize } )e8*1/2] r4 r2 r [f8( g a b][a g f g][a b a g] - \tiny f8*1/16 ~ \normalsize [g8*15/16 - { \type Voice=urgnobeam \tiny d8*1/16 ~ \normalsize } )e8*15/16] r4 r2 r - a,2( \tiny e'8*1/16 ~ \normalsize f4*31/32 ~ )f8 r r2 + \tiny f8*1/2 ~ \normalsize [g8*1/2 + { \type Voice=urgnobeam \tiny d8*1/2 ~ \normalsize } )e8*1/2] r4 r2 r + a,2( \tiny e'8*1/2 ~ \normalsize f4*3/4 ~ )f8 r r2 r2 r r - fis,4( \tiny dis8*1/16 \normalsize <)cis4*31/32 ais> r2 r + fis,4( \tiny dis8*1/2 \normalsize <)cis4*3/4 ais> r2 r ~ } @@ -135,7 +137,7 @@ lower = \type Voice=two \notes \relative c{ textheight = 295.\mm; % no slur damping - slur_slope_damping = 10.0; + slur_slope_damping = 100.0; %hmm % \translator { \BarNumberingScoreContext } @@ -147,7 +149,8 @@ lower = \type Voice=two \notes \relative c{ minVerticalAlign = 3.0*\staffheight; maxVerticalAlign = 3.0*\staffheight; % don't display bars? - barAlways = 0.; + % hmm, this switches something else... + % barAlways = 0.; } \translator{ \StaffContext diff --git a/stepmake/VERSION b/stepmake/VERSION index 77de07ba24..397e3cf00f 100644 --- a/stepmake/VERSION +++ b/stepmake/VERSION @@ -1,7 +1,7 @@ PACKAGE_NAME=StepMake MAJOR_VERSION=0 MINOR_VERSION=1 -PATCH_LEVEL=66 +PATCH_LEVEL=67 MY_PATCH_LEVEL= # use the above to send patches, always empty for released version: diff --git a/stepmake/aclocal.m4 b/stepmake/aclocal.m4 index ff733a0c2d..7cab045e68 100644 --- a/stepmake/aclocal.m4 +++ b/stepmake/aclocal.m4 @@ -265,7 +265,7 @@ AC_DEFUN(AC_STEPMAKE_INIT, [ AC_SUBST(CONFIGSUFFIX) AC_CANONICAL_HOST - AC_CHECK_PROGS(MAKE, make gmake, error) + AC_CHECK_PROGS(MAKE, gmake make, error) AC_CHECK_PROGS(FIND, find, error) dnl system supplied INSTALL is unsafe; use our own install. @@ -285,7 +285,7 @@ dnl fi if test "$?" = 1 then AC_STEPMAKE_WARN(Please install *GNU* make) - fi + fi fi AC_CHECK_SEARCH_RESULT($PYTHON, python, You should install Python)