]> git.donarmstrong.com Git - lilypond.git/commitdiff
patch::: 1.1.22.jcn1: slur fixjes
authorJan Nieuwenhuizen <janneke@gnu.org>
Sun, 17 Jan 1999 16:40:23 +0000 (17:40 +0100)
committerJan Nieuwenhuizen <janneke@gnu.org>
Sun, 17 Jan 1999 16:40:23 +0000 (17:40 +0100)
pl 22.jcn1
- bf's: cross-staff slur
- bf: gnossienne-4

16 files changed:
NEWS
TODO
VERSION
aclocal.m4
input/bugs/beam-translator.ly [new file with mode: 0644]
input/test/slur-interstaff.ly
lily/bow.cc
lily/clef-engraver.cc
lily/encompass-info.cc
lily/heads-engraver.cc
lily/include/note-head.hh
lily/note-head.cc
mutopia/J.S.Bach/Petites-Preludes/preludes-1.ly
mutopia/gnossienne-4.ly
stepmake/VERSION
stepmake/aclocal.m4

diff --git a/NEWS b/NEWS
index ecef189c2c20566da40d0d09fde864ba6be1861f..99fb62d6e42072290133787f9ef151bd9c93ac7b 100644 (file)
--- 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 a8195481b239a412418a076913623a2cd9db7207..659bbb3dfb0aa3fec7886433f79b16726293602c 100644 (file)
--- 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 a5e5c807b541b761b37cbbaff5915d325e104f61..4e40843629516320f5e64a2a838931a5a0cd3a78 100644 (file)
--- 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.
index c6bcc95f0811c63a4526207c964a4c0f09c4e8df..0e035cad95d2b9779222afa8669a3012f661526e 100644 (file)
@@ -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 (file)
index 0000000..42802aa
--- /dev/null
@@ -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.;
+       }
+}
index 4670c827013193591abfbce5e11e758549b6f991..ebf5b9c0a10a6b5733e03e5fcd0e0a6ee0c5f20b 100644 (file)
                \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'{
index 66c1bfd5628eae1df82174df2c98ad3c2575a2e6..bd4827ba9169a7c5a617be83d16e446047b688a8 100644 (file)
@@ -88,6 +88,7 @@ Bow::do_height () const
       Real y = c[i][Y_AXIS];
       iv.unite (Interval (y,y));
     }
+  iv -= interstaff_f_;
   return iv;
 }
 
index ca50b0dab2acdc1e4ad333467c8fd04f08e59455..737f4ff4ff0fb70f51e77d9c0667dddf3f8d41de 100644 (file)
@@ -150,7 +150,8 @@ Clef_engraver::acknowledge_element (Score_element_info info)
     {
       if (Note_head * h = dynamic_cast<Note_head*>(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<Local_key_item*> (it_l))
        {
index 6adca21c22cb47bda6251b862338d7b5a76bf787..69664953434d1a300f465be416e8d36838229e79 100644 (file)
@@ -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_;
index b60f7f2b45acc07fd614aed89a49b9090fd94edc..c2d52cf13912e4aba58aad175d858f08dd855fa4 100644 (file)
@@ -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);
index 1a34c99f2330ed41deac29c3cab1c3a705a13738..1cc0bad9b891ffe129e7fd75d68cec4e745d53c0 100644 (file)
 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) ;
 
index cbd0c6983975c949a8d379e359a3846e67e7d9f6..10cb7b1c2518df970620ddd0f609c3b71448ff28 100644 (file)
@@ -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;
 }
index d544c730f772e9fef7e633e1cc925c9ba49cbf13..274263993a991c699816a5950b3afa4baecfc535 100644 (file)
@@ -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] |
index 5545f5f9431e43b83b2d657eb61a9371aeb5e63d..b346daa8de32831f0a4f05df6ebc7ac8c9f38709 100644 (file)
@@ -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
   <e1 g b e> ~ <e g b e>
 }
 
@@ -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
index 77de07ba243e5060b7f75c6d6bacc3ef363c064e..397e3cf00f53dfe4bfe6642803d3d2b3df339c24 100644 (file)
@@ -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:
index ff733a0c2d9a3b3ce70be43f3526b7d4bd3caf5a..7cab045e68808e483162996ae4a0118ad1d4ec71 100644 (file)
@@ -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)