]> git.donarmstrong.com Git - lilypond.git/commitdiff
release: 1.3.88 release/1.3.88
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Tue, 19 Sep 2000 22:59:45 +0000 (00:59 +0200)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Tue, 19 Sep 2000 22:59:45 +0000 (00:59 +0200)
===========

* Sequential_iterator::get_music (), part combiner now works.

* Changed paper variables into elt properties:
  Beam:
  - beam-space-function, Removed Paper_def::interbeam_f(), Smaller
  beams for grace notes.
  - beam-flag-width-function to Beam.

  Grace_align_item:
  -  horizontal-space: spacing of is configurable

  Volta_spanner:
  - height
  - thickness

  Multi_measure_rest:
  - expand-limit
  - minimum-width
  - padding

  Lyric_extender:
  - height

  Stem
  - thickness

  Collision
  -  note-width to Collision

* removed various obsolete variables from params.ly

* added input/test/bagpipe.ly

1.3

52 files changed:
CHANGES
Documentation/header.html.in
Documentation/topdocs/index.tely
VERSION
input/test/bagpipe.ly [new file with mode: 0644]
input/test/extender.ly [deleted file]
input/test/hyphen.ly [deleted file]
input/test/lyric-extender.ly [new file with mode: 0644]
input/test/lyric-hyphen.ly [new file with mode: 0644]
lily/align-note-column-engraver.cc
lily/beam.cc
lily/collision.cc
lily/grace-align-item.cc
lily/include/beam.hh
lily/include/collision.hh
lily/include/grace-align-item.hh
lily/include/lyric-extender.hh
lily/include/multi-measure-rest.hh
lily/include/music-iterator.hh
lily/include/paper-def.hh
lily/include/simple-music-iterator.hh
lily/include/slur.hh
lily/include/volta-spanner.hh
lily/lyric-engraver.cc
lily/lyric-extender.cc
lily/multi-measure-rest.cc
lily/music-iterator.cc
lily/paper-def.cc
lily/request-chord-iterator.cc
lily/sequential-music-iterator.cc
lily/simple-music-iterator.cc
lily/slur.cc
lily/stem-tremolo.cc
lily/stem.cc
lily/tuplet-spanner.cc
lily/volta-spanner.cc
ly/declarations.ly
ly/engraver.ly
ly/paper-as5.ly
ly/paper-as9.ly
ly/paper11.ly
ly/paper13.ly
ly/paper16.ly
ly/paper20.ly
ly/paper23.ly
ly/paper26.ly
ly/params-as.ly
ly/params.ly
make/out/lilypond.lsm
make/out/lilypond.spec
scm/basic-properties.scm [new file with mode: 0644]
scm/lily.scm

diff --git a/CHANGES b/CHANGES
index 79a11c407876f3cfd7c3d29e0914a20c71f365d4..0ceb0ebc13aad2631815e559b657f25749fd725a 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,23 +1,42 @@
-1.3.87.jcn2
+1.3.87.hwn1
 ===========
 
-* Added skip (M) to music-iterator which fixes ugly non-const hack 
-  of get-music (M).
+* Sequential_iterator::get_music (), part combiner now works.
 
-1.3.87.jcn1
-===========
+* Changed paper variables into elt properties:
+  Beam:
+  - beam-space-function, Removed Paper_def::interbeam_f(), Smaller
+  beams for grace notes.
+  - beam-flag-width-function to Beam.
+
+  Grace_align_item:
+  -  horizontal-space: spacing of is configurable
+
+  Volta_spanner: 
+  - height
+  - thickness 
+
+  Multi_measure_rest:
+  - expand-limit
+  - minimum-width
+  - padding
 
-* Made bugfix in Simple-music-iterator copy constructor.
+  Lyric_extender:
+  - height
 
-* Fixed get_music for sequential-music-iterator and request-chord-iterator.
+  Stem
+  - thickness 
 
+  Collision
+  -  note-width to Collision
+
+* removed various obsolete variables from params.ly
+
+* added input/test/bagpipe.ly
 
 1.3.87
 ======
 
-1.3.86.jcn2
-================
-
 * Made fixes to part-combine examples and Coriolan.
 
 * Bugfix: don't dump core on unterminated (de)crescendo.
index 20bb08ced6531f4bb99c6ed97037b19a1955a935..1d72d5768399c26e613bc65e59a197d3e826fe0e 100644 (file)
@@ -38,7 +38,7 @@ which substitutes some @AT_VARIABLES@ as well.
       <tr><td bgcolor="#e8e8ff"><a href="@INDEX@"><b>Home</b></a></td></tr>
       <tr><td><font size=-1>
         <a href="http://www.cs.uu.nl/~hanwen/lilypond">Development</a><br>
-        <a href="http://appel.dyndns.org/lilypond">Hacking</a><br>
+        <a href="http://appel.lilypond.org/lilypond">Hacking</a><br>
         <a href="http://www.gnu.org">GNU Project</a><br>
         <a href="http://www2.iro.umontreal.ca/~pinard/po/registry.cgi?domain=lilypond">Translations</a><br>
         <a href="http://www.lilypond.org">LilyPond dot org</a><br>
@@ -53,7 +53,7 @@ which substitutes some @AT_VARIABLES@ as well.
        <a href="@TOP@Documentation/out-www/faq.html">FAQ</a><br>
        <a href="@TOP@Documentation/user/out-www/lilypond.html">User manual</a><br>
        <a href="@TOP@Documentation/out-www/regression-test.html">Features</a><br>
-       <a href="http://appel.dyndns.org/lilypond/todo.html">Todo</a><br>
+       <a href="http://appel.lilypond.org/lilypond/todo.html">Todo</a><br>
        <br>
       </td></tr>
       <tr><td bgcolor="#e8e8ff">
@@ -73,7 +73,7 @@ which substitutes some @AT_VARIABLES@ as well.
        <a href="ftp://ftp.debian.org/debian/dists/unstable/main/binary-i386/tex">Debian i386</a><br>
        <a href="ftp://ftp.debian.org/debian/dists/unstable/main/binary-powerpc/tex">Debian PowerPC</a><br>
        <a href="http://home.austin.rr.com/jbr/jeff/lilypond/">Windows Stable</a><br>
-       <a href="http://appel.dyndns.org/lilypond/gnu-windows">Windows Testing</a><br>
+       <a href="http://appel.lilypond.org/lilypond/gnu-windows">Windows Testing</a><br>
        <br>
       </td></tr>
       <tr><td bgcolor="#e8e8ff">
@@ -92,9 +92,10 @@ which substitutes some @AT_VARIABLES@ as well.
         <a href="@INDEX@#mailing-lists"><b>Mailing Lists</b></a>
       </td></tr>
       <tr><td><font size=-1>
-       <a href="http://www.mail-archive.com/gnu-music-discuss@gnu.org">Discussion</a><br>
-       <a href="http://www.mail-archive.com/help-gnu-music@gnu.org">Help</a><br>
-       <a href="http://www.mail-archive.com/bug-gnu-music@gnu.org">Bugs</a><br>
+       <a href="http://mail.gnu.org/mailman/listinfo/gnu-music-discuss/">Discussion</a><br>
+        <a href="http://mail.gnu.org/mailman/listinfo/help-gnu-music">Help</a><br>
+        <a href="http://mail.gnu.org/mailman/listinfo/bug-gnu-music/">Bugs</a><br>
+        <a href="http://mail.gnu.org/mailman/listinfo/info-gnu-music">Announcements</a><br>
        <br>
       </td></tr>
     </table>
index 91e850230a1167b1350f6438930a298fef6e0e56..c67e55cf873025fe26d3e5da4897b3712871683e 100644 (file)
@@ -122,7 +122,7 @@ Debian GNU/Linux i386}
 @uref{ftp://ftp.debian.org/debian/dists/unstable/main/binary-powerpc/tex,
 Debian GNU/Linux PowerPC} 
 @item @uref{http://home.austin.rr.com/jbr/jeff/lilypond/, Windows Stable}
-@item @uref{http://appel.dyndns.org/lilypond/gnu-windows, Windows
+@item @uref{http://appel.lilypond.org/lilypond/gnu-windows, Windows
 Testing}
 @end itemize
 
@@ -143,7 +143,7 @@ is a low-volume list for information on the GNU Music project.
     This list is moderated; ask 
     @email{drl@@gnu.org, David R. Linn} or
     @email{hanwen@@cs.uu.nl, Han-Wen} to send announcements for this list.
-@item @uref{http://mail.gnu.org/mailman/listinfo/help-gnu-music,@samp{help-gnu-music@@gnu.org}}
+@item @uref{http://mail.gnu.org/mailman/listinfo/help-gnu-music,help-gnu-music@@gnu.org}
     For help with using LilyPond.
 @item @uref{http://mail.gnu.org/mailman/listinfo/bug-gnu-music,bug-gnu-music@@gnu.org}
 If you have bugreports, you should send them to this list.  
diff --git a/VERSION b/VERSION
index 4055f6ef3f3735a463263b019ac17407262018a9..b283fed4ca9b5dface0cd3240658d3a22f6088ea 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1,8 +1,8 @@
 PACKAGE_NAME=LilyPond
 MAJOR_VERSION=1
 MINOR_VERSION=3
-PATCH_LEVEL=87
-MY_PATCH_LEVEL=jcn2
+PATCH_LEVEL=88
+MY_PATCH_LEVEL=
 
 # use the above to send patches: MY_PATCH_LEVEL is always empty for a
 # released version.
diff --git a/input/test/bagpipe.ly b/input/test/bagpipe.ly
new file mode 100644 (file)
index 0000000..25afad8
--- /dev/null
@@ -0,0 +1,103 @@
+% bagpipe music.
+
+\header
+{
+ title="Flower of Scotland";
+}
+
+\paper {
+  linewidth = 14.0 \cm;
+  indent = 0.0 \cm;
+  \translator {
+       \GraceContext
+
+       basicNoteHeadProperties \push #'font-size = #-2
+       basicNoteHeadProperties \push #'font-size = #-2 
+        basicStemProperties \push #'flag-style = ##f
+    % The following determines the length of stems without beams
+    % default is between 2.8 and 4.0 depending on the number of flags
+         basicStemProperties \push #'length = #6       
+        basicStemProperties \push #'font-size = #-2
+       basicGraceAlignItemProperties \push #'horizontal-space = #1
+       basicStemProperties \push #'flag-style = #""
+  }
+  \translator { \StaffContext
+       basicTimeSignatureProperties \push #'style = #"C4/4"
+       basicTimeSignatureProperties \push #'visibility-function = #begin-of-line-visible
+  }    
+}
+
+
+\notenames #'(
+       (g . ( 0 4 0 ))
+        (a . ( 0 5 0 ))
+        (b . ( 0 6 0 ))
+        (c . ( 1 0 0 ))
+        (d . ( 1 1 0 ))
+        (e . ( 1 2 0 ))
+        (f . ( 1 3 0 ))
+)
+
+
+
+taor = \notes{ \grace { [g32 d g e]}}
+grip = \notes{ \grace { [g32 b g ]}}
+thrd = \notes{ \grace { [g32 d c] }}
+birl = \notes{ \grace { [g32 a g] }}
+gstd = \notes{ \grace { [g'32 d g] }}
+ lgg = \notes{ \grace { g32 }}
+ lag = \notes{ \grace { a32 }}
+ fgg = \notes{ \grace { [f32 g'32] }}
+dblb = \notes{ \grace { [g'32 b d] }}
+dblc = \notes{ \grace { [g'32 c d] }}
+dble = \notes{ \grace { [g'32 e f] }}
+dblf = \notes{ \grace { [g'32 f g'] }}
+dblg = \notes{ \grace { [g'32 f] }}
+dbla = \notes{ \grace { [a'32 g'] }}
+cg   = \notes{ \grace { c32 }}
+eg   = \notes{ \grace { e32 }}
+gg   = \notes{ \grace { g'32 }}
+dg   = \notes{ \grace { d32 }}
+hag  = \notes{ \grace { a'32 }}
+gefg = \notes{ \grace { [g'32 e f] }}
+efg  = \notes{ \grace { [e32 f] }}
+gdcg = \notes{ \grace { [g'32 d c]}}
+gcdg = \notes{ \grace { [g'32 c d]}}
+
+
+
+% 
+\score {
+  \notes { \time 6/8; \partial 4;
+  \property Voice.tieVerticalDirection = \up
+  \slurup
+f4 |
+\gg f4 e8 \thrd d4. |
+\eg a4.()a4 d8 |
+\gg d4 f8 \dble e4. ( | \nobreak
+)e8 d4 \gg d4 e8 |
+
+\break
+\time 9/8;
+\dblf f2.( )f4 d8 |
+\time 6/8;
+\dblg g'4 a'8 \gg a'4. |
+\thrd d4.( )d4 \eg a8 |
+\time 9/8;
+\dble e4 \lag e8 \gg [e16 d8. e8] \gg f4 g'8 |
+
+\break
+\time 6/8;
+\gg f4 e8 \thrd d4. |
+\eg a4.( )a4 d8 |
+\dblg g'4 a'8 \gg a'4. |
+\thrd d4.( )d4 f8 |
+
+\break
+\dblg g'4 e4 \dblf [f8. e16] |
+\thrd d4.( )d4 \cg d8 |
+\gg c4 e8 \thrd d4.( |
+)d4. \gdcg d4.
+  }
+}
diff --git a/input/test/extender.ly b/input/test/extender.ly
deleted file mode 100644 (file)
index a088a49..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-\score{
-       <
-       \context Staff \notes { c () c () c c }
-       \context Lyrics \lyrics { bla __ alb xxx __ yyy }
-       >
-}
-
-\version "1.3.59"; 
diff --git a/input/test/hyphen.ly b/input/test/hyphen.ly
deleted file mode 100644 (file)
index 45db2af..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-\score{
-       <
-       \context Staff \notes { c' () c' () c' c' }
-       \context Lyrics \context LyricVoice \lyrics { bla -- alb xxx -- yyy }
-       >
-}
-
-\version "1.3.59"; 
-
-
-
diff --git a/input/test/lyric-extender.ly b/input/test/lyric-extender.ly
new file mode 100644 (file)
index 0000000..a088a49
--- /dev/null
@@ -0,0 +1,8 @@
+\score{
+       <
+       \context Staff \notes { c () c () c c }
+       \context Lyrics \lyrics { bla __ alb xxx __ yyy }
+       >
+}
+
+\version "1.3.59"; 
diff --git a/input/test/lyric-hyphen.ly b/input/test/lyric-hyphen.ly
new file mode 100644 (file)
index 0000000..45db2af
--- /dev/null
@@ -0,0 +1,11 @@
+\score{
+       <
+       \context Staff \notes { c' () c' () c' c' }
+       \context Lyrics \context LyricVoice \lyrics { bla -- alb xxx -- yyy }
+       >
+}
+
+\version "1.3.59"; 
+
+
+
index d29bc1d78cccba3919aef6299211a76d04730e34..162d74441ce85b9beb9116d0fd82ffce18df6ab0 100644 (file)
@@ -92,6 +92,9 @@ Align_note_column_engraver::process_acknowledged ()
 
         B. it has no pscore_l_ field.
 
+
+        UGH UGH: separate note-spacing into  separate class,  and
+        use that to space grace notes.  
       */
       SCM grsp = get_property ("graceAccidentalSpace");
       if (gh_number_p(grsp))
index ad90e51814c5b3a6e38d566eb55915d3b83bf938..f619e04b9c4fdd4cbc3db45384f3934b3c8d097f 100644 (file)
@@ -446,13 +446,17 @@ Beam::calc_slope_damping_f (Score_element*me,Real dy)
 Real
 Beam::calc_stem_y_f (Score_element*me,Item* s, Real y, Real dy) 
 {
-  Real thick = gh_scm2double (me->get_elt_property ("beam-thickness"));
-  thick *= me->paper_l ()->get_var ("staffspace");
-  
   int beam_multiplicity = get_multiplicity (me);
   int stem_multiplicity = (Stem::flag_i (s) - 2) >? 0;
 
-  Real interbeam_f = me->paper_l ()->interbeam_f (beam_multiplicity);
+  Real staffspace = me->paper_l ()->get_var ("staffspace");
+  
+  SCM space_proc = me->get_elt_property ("beam-space-function");
+  SCM space = gh_call1 (space_proc, gh_int2scm (beam_multiplicity));
+
+  Real thick = gh_scm2double (me->get_elt_property ("beam-thickness")) *staffspace;
+  Real interbeam_f = gh_scm2double (space) * staffspace;
+
   // ugh -> use commonx
   Real x0 = first_visible_stem (me)->relative_coordinate (0, X_AXIS);
   Real dx = last_visible_stem (me)->relative_coordinate (0, X_AXIS) - x0;
@@ -643,11 +647,13 @@ Beam::stem_beams (Score_element*me,Item *here, Item *next, Item *prev)
 
   Real staffline_f = me->paper_l ()->get_var ("stafflinethickness");
   int multiplicity = get_multiplicity (me);
+  Real staffspace =me->paper_l ()->get_var ("staffspace");
 
+  SCM space_proc = me->get_elt_property ("beam-space-function");
+  SCM space = gh_call1 (space_proc, gh_int2scm (multiplicity));
 
-  Real interbeam_f = me->paper_l ()->interbeam_f (multiplicity);
-  Real thick = gh_scm2double (me->get_elt_property ("beam-thickness"));
-  thick *= me->paper_l ()->get_var ("staffspace");
+  Real thick = gh_scm2double (me->get_elt_property ("beam-thickness")) *staffspace;
+  Real interbeam_f = gh_scm2double (space) * staffspace;
     
   Real bdy = interbeam_f;
   Real stemdx = staffline_f;
@@ -662,16 +668,19 @@ Beam::stem_beams (Score_element*me,Item *here, Item *next, Item *prev)
   Molecule leftbeams;
   Molecule rightbeams;
 
-  // UGH
+  /*
+    UGH: make a property of this.
+  */
   Real nw_f;
   if (!Stem::first_head (here))
     nw_f = 0;
-  else if (Stem::type_i (here)== 1)
-    nw_f = me->paper_l ()->get_var ("wholewidth");
-  else if (Stem::type_i (here) == 2)
-    nw_f = me->paper_l ()->get_var ("notewidth") * 0.8;
-  else
-    nw_f = me->paper_l ()->get_var ("quartwidth");
+  else {
+    int t = Stem::type_i (here); 
+
+    SCM proc = me->get_elt_property ("beam-flag-width-function");
+    SCM result = gh_call1 (proc, gh_int2scm (t));
+    nw_f = gh_scm2double (result) * staffspace;
+  }
 
 
   Direction dir = Directional_element_interface::get (me);
index c0bec3356d87cea6d52fad9362f7ba91fbf79ea1..728ffbb9330c54c303af115493c11dcf25752d01 100644 (file)
@@ -50,7 +50,10 @@ Collision::do_shifts(Score_element* me)
   
   Link_array<Score_element> done;
   
-  Real wid = me->paper_l ()->get_var ("collision_note_width"); // elt prop
+  Real wid
+    = gh_scm2double (me->get_elt_property ("note-width"))
+      * me->paper_l ()->get_var ("staffspace");
+  
   for (; gh_pair_p (hand); hand =gh_cdr (hand))
     {
       Score_element * s = unsmob_element (gh_caar (hand));
index d37bdb4d77943ab319743c3659bb607a8c995d71..d58bd8e7b3c4192dddd7b733438b616b45ef83c9 100644 (file)
 #include "paper-column.hh"
 #include "paper-def.hh"
 
-/*
-  TODO: cfg-able
- */
 MAKE_SCHEME_CALLBACK(Grace_align_item,before_line_breaking);
 SCM
 Grace_align_item::before_line_breaking (SCM smob)
 {
   Score_element*me = unsmob_element (smob);
-  Real nhw = // lookup_l ()->notehead (2, "")..extent (X_AXIS).length();
-    me->paper_l ()->get_var ("quartwidth");
+
+  SCM space = me->get_elt_property ("horizontal-space");
+  Real ss = me->paper_l ()->get_var ("staffspace");
   
   me->set_elt_property ("threshold",
-                   gh_cons (gh_double2scm (nhw* 1.5),
+                   gh_cons (gh_double2scm (ss  *gh_scm2double (space)),
                             gh_double2scm (infinity_f)));
   dynamic_cast<Item*>(me)->column_l ()->set_elt_property ("contains-grace", SCM_BOOL_T);
 
index 5a434fd9ed41eb40306aa9cfab30214203b27cdc..2310752807e88100c5da759bbe9b3a356dabf963 100644 (file)
 
    damping -- amount of beam slope damping. (int)
    should beam slope be damped? 0: no, 1: yes, 100000: horizontal beams 
+
+
+   molecule-callback --
+
+   beam-thickness -- weight of beams, in staffspace
+
+   beam-space-function -- function of type multiplicity -> real (in staffspace)
+
+   default-neutral-direction -- which direction to choose if we're in
+     the middle of the staff
+   
+   after-line-breaking-callback --
+
+   damping -- damping factor (real).
+
+   
 */
 class Beam
 {
index 10c5397a6eb57df8709a2b1131d966cc8643a7cf..650a80f14fbf31ea34175f139e8514ff5f68c0d5 100644 (file)
@@ -34,6 +34,8 @@
   
   force-hshift -- amount of collision_note_width that overides automatic collision settings.
   Read and removed from elements.
+
+  note-width -- unit for horizontal translation, measured in staff-space.
   
 */
 class Collision                        // interface
index 74cc870a29fc8e40409a5213cd0e46a74e657e9f..3e446295e33827fb5f0bd92bfb3d273f7047508b 100644 (file)
 #include "lily-guile.hh"
 #include "lily-proto.hh"
 
+/*
+  horizontal-space -- amount of space to add after a note (in staff-space)
+ */
+
 class Grace_align_item
 {
 public:
index 8f0c746b8650214cbeceeaa69b5d2b0cd911144e..1a71a1e7cb85edf88a8163d0907ece422fabb271 100644 (file)
   with the left side of the last note of the melissima, and not
   extend beond, lasting the whole duration of the melissima
   (as in MUP, urg).
+
+  Properties:
+  
+  word-space --
+
+  height -- in stafflinethickness
+
+  right-trim-amount --
+  
   */
 class Lyric_extender // interface
 {
index 4803ce3437764eb5a1aea5960c94b2c5f6b55111..ba805eadd06e3c76926760eb2686ef6ac5fe8b9b 100644 (file)
   properties:
 
   columns -- list of paper-columns
- */
+
+ expand-limit -- int : max number of measures expanded in church rests
+
+ minimum-width -- Real in staffspace
+
+ padding -- staffspace
+*/
 class Multi_measure_rest
 {
 public:
index 25d099ecccd105416885da1ceb89a8d829aebad8..2f9c6cf7cc887f3109c0b8353a75972315dbc396 100644 (file)
     thus changing the state of the interpretation context.
 
   get_music (M) -- return all events starting at M (pre: no events
-    before M).
+    before M).  Side effects:
 
-  skip (M) -- remove all events at M from the pending queue.
+    * This removes all events at M from the pending queue.
 
+  Because next (M) is rolled into process () as a side effect,
+  we need to roll next (M) into get_music too.  Urg.
+    
 */
 class Music_iterator
 {
@@ -72,7 +75,6 @@ public:
   virtual bool ok () const;
   virtual SCM get_music (Moment until)const;
   virtual void process (Moment until);
-  virtual void skip (Moment until);
 
   /**
     Construct sub-iterators, and set the translator to 
index 94bf6dd94f0fb09438afa29a41609b48bc5a0048..3898a1ae18c89fc186fcfe9b7d272c2d68726f39 100644 (file)
@@ -65,10 +65,6 @@ public:
   void set_lookup (int, SCM lookup_smob);
   Paper_def (Paper_def const&);
 
-  /** The distance between beams of multiplicity_i
-      JUNKME
-  */
-  Real interbeam_f (int multiplicity_i) const;
   Interval line_dimensions_int (int) const;
   void print () const;
   Lookup const * lookup_l (int sz) const;      // TODO naming
index c9b861dce39c6b58a081acd47dce24d31d0e66b0..6d86c1c35cddb93f57bca56ce245bf6165512d46 100644 (file)
@@ -21,8 +21,7 @@ public:
   Simple_music_iterator ();
   Simple_music_iterator (Simple_music_iterator const &);
   virtual void process (Moment);
-  virtual bool ok ()const;
-  virtual void skip (Moment);
+  virtual bool ok()const;
   virtual Moment pending_moment ()const;
   virtual void construct_children ();
 };
index abc1b55b33d9b07e79084d10cec1955a7dd660db..001c8fa19f1d2b4fef5b8c8a426cb458079bd307 100644 (file)
 #include "lily-proto.hh"
 #include "rod.hh"
 
+/**
+
+   de-uglify-parameters -- list of 3 real constants. They define the
+     valid areas for the middle control points. Used in de_uglyfy.
+     They are a bit empirical.
+
+     
+ */
 class Slur
 {
 public:
index 4697b8d8b6214ad6b268b1d3c5982e3032f00cdd..8955f1b24794aaa3bff267334a4cf8ddc6a40d75 100644 (file)
@@ -16,6 +16,10 @@ properties:
 
 bars -- list of barline ptrs.
 
+thickness -- in stafflinethickness
+
+height -- in staffspace 
+
 */
 
 class Volta_spanner
index e31edb695029819d0e6c00f4f9428d28419ac46c..3f9da4327dfe27cb92ea316ba8ca8e559b7c8965 100644 (file)
@@ -51,8 +51,11 @@ Lyric_engraver::do_process_music()
       /*
        We can't reach the notehead where we're centered from here. So
        we kludge.
+
+       (UGH UGH, pulled amount of space out of thin air value )
       */
-      text_p_->translate_axis (paper_l()->get_var ("quartwidth")/2, X_AXIS);
+      
+      text_p_->translate_axis (paper_l()->get_var ("staffspace")*0.66, X_AXIS);
       
       announce_element (text_p_, req_l_);
     }
index 43230acfc6ab007ec1b91f6856eefade3037e814..456f8a53172b40d7211d8000bec4973a31b2bfda 100644 (file)
@@ -24,6 +24,7 @@ Lyric_extender::brew_molecule (SCM smob)
   
   Real leftext = sp->get_bound (LEFT)->extent (X_AXIS).length ();
   Real ss = sp->paper_l ()->get_var ("staffspace");
+  Real sl = sp->paper_l ()->get_var ("stafflinethickness");  
   Real righttrim = 0.5; // default to half a staffspace gap on the right
   SCM righttrim_scm = sp->get_elt_property("right-trim-amount");
   if (gh_number_p (righttrim_scm)) {
@@ -37,7 +38,7 @@ Lyric_extender::brew_molecule (SCM smob)
     }
   Real w = sp->spanner_length () - leftext - righttrim*ss;
   
-  Real h = sp->paper_l ()->get_var ("extender_height");
+  Real h = sl * gh_scm2double (sp->get_elt_property  ("height"));
   Molecule  mol (sp->lookup_l ()->filledbox ( Box (Interval (0,w), Interval (0,h))));
   mol.translate (Offset (leftext, 0));
   return mol.create_scheme();
index 5f86f849c14b2ea23226e52ebc26e2b9c810573c..7655ed74a87174b9dfc0911310df7c0a11a7fe46 100644 (file)
@@ -82,7 +82,8 @@ Multi_measure_rest::brew_molecule (SCM smob)
     }
   
 
-  if (measures <= me->paper_l() ->get_var ("multi_measure_rest_expand_limit"))
+  SCM limit = me->get_elt_property ("expand-limit");
+  if (measures <= gh_scm2int (limit))
     {
       /*
        Build a rest from smaller parts. Distances inbetween are
@@ -109,8 +110,8 @@ Multi_measure_rest::brew_molecule (SCM smob)
            }
 
          Real pad = s.empty_b ()
-           ? 0.0 : me->paper_l ()->get_var ("multi_measure_rest_padding");
-      
+           ? 0.0 : gh_scm2double (me->get_elt_property ("padding")) * staff_space;
+
          Molecule r (me->lookup_l ()->afm_find ("rests-" + to_str (k)));
          if (k == 0)
            r.translate_axis (staff_space, Y_AXIS);
@@ -189,7 +190,7 @@ Multi_measure_rest::set_spacing_rods (SCM smob)
          should do something more advanced.
         */
       rod.distance_f_ = l->extent (X_AXIS)[BIGGER] - r->extent (X_AXIS)[SMALLER]
-       + me->paper_l ()->get_var ("multi_measure_rest_x_minimum");
+       + gh_scm2double (me->get_elt_property ("minimum-width"));
   
       rod.add_to_cols ();
     }
index 3806c4e7f7e69a30d47ad029a184428b9dca5a46..51ae61f1ce333ff0c6bd46d767dfb3492989f3e0 100644 (file)
@@ -85,12 +85,6 @@ Music_iterator::pending_moment () const
 }
 
 
-void
-Music_iterator::skip (Moment)
-{
-  assert (0);
-}
-
 void
 Music_iterator::process (Moment)
 {
index 698daf4585f39c01089ca15f10203fe7492463ba..fb01b677857a6be81ceb0b2cef4c4c8407990197 100644 (file)
@@ -94,18 +94,6 @@ Paper_def::set_lookup (int i, SCM l)
 }
 
 
-/*
-  junkme.
- */
-Real
-Paper_def::interbeam_f (int multiplicity_i) const
-{
-  if (multiplicity_i <= 3)
-    return get_var ("interbeam");
-  else
-    return get_var ("interbeam4");
-}
-
 
 void
 Paper_def::print () const
index 080240a8b519b726b25d9dc6d8e1e3fe58d0009c..f463190a342dc3223c4939a5cdf54c902aba8516 100644 (file)
@@ -45,8 +45,9 @@ Request_chord_iterator::elt_l () const
   return (Request_chord*) music_l_;
 }
 
+
 SCM
-Request_chord_iterator::get_music (Moment) const
+Request_chord_iterator::get_music (Moment)const
 {
   SCM s = SCM_EOL;
   if (music_l_)
@@ -64,6 +65,7 @@ Request_chord_iterator::get_music (Moment) const
 void
 Request_chord_iterator::process (Moment m)
 {
+  last_processed_mom_ = m;
   if (music_l_)
     {
       for (SCM s = dynamic_cast<Music_sequence *> (music_l_)->music_list ();
@@ -81,6 +83,7 @@ Request_chord_iterator::process (Moment m)
            mus->origin ()->warning (_f ("Huh?  Not a Request: `%s'",
                                         classname (mus)));
        }
+
+     music_l_ =0;
     }
-  skip (m);
 }
index 18d9a4915a7d25967ce726543de47c52b1211d61..975f46018739ba7563b7f213e61e33e5485a25c5 100644 (file)
@@ -88,40 +88,57 @@ Sequential_music_iterator::set_sequential_music_translator()
     set_translator (child_report);
 }
 
+/*
+  [todo: translate]
+  
+  Hier staat in feite: haal alle muziek op (startend op tijd HERE) tot
+  je iets met lengte L > 0 tegenkomt.  Aangezien de preconditie is dat
+  UNTIL het eerstvolgende event is, weet je (per definitie)
+
+  L >= (UNTIL - HERE)
+
+  en iets wat hierna komt (op tijd T) komt dus na tijd
+
+  HERE + L >= HERE + (UNTIL - HERE) = UNTIL
+
+  Dus als je een L>0 tegenkomt, wil je de rest niet meer. Aangezien
+  alles wat tot nu toe hebt gespaard op HERE begint, is dat precies wat
+  je nodig hebt.
+
+  Misschien kan je deze comment erbij stoppen, en moeten we de
+  eigenschappen van het muziek datatype wat formaliseren, zodat deze
+  redenering helderder is.
+*/
 
 SCM
-Sequential_music_iterator::get_music (Moment until) const
+Sequential_music_iterator::get_music (Moment until)const
 {
-  Sequential_music_iterator* i = dynamic_cast<Sequential_music_iterator *> (this->clone ());
   SCM s = SCM_EOL;
-  while (1) 
-      {
-       Moment local_until = until - i->here_mom_;
-       while (i->iter_p_->ok ()) 
-         {
-           Moment here = i->iter_p_->pending_moment ();
-           if (here != local_until)
-             goto finalise;
-           
-           s = gh_append2 (i->iter_p_->get_music (local_until), s);
-           i->iter_p_->skip (local_until);
-         }
-         
-         if (!i->iter_p_->ok ()) 
-           {
-             i->leave_element ();
-             
-             if (gh_pair_p (i->cursor_))
-               i->start_next_element ();
-             else
-               goto finalise;
-           }
-       }
- finalise:
-  delete i;
+  SCM curs = cursor_;
+  Music_iterator * iter = iter_p_->clone ();
+  while (1)
+    {
+      SCM nm = iter->get_music (until - here_mom_);
+      s = gh_append2 (nm, s);
+      
+      Moment m = 0;
+      for (SCM i = nm; gh_pair_p(i); i = gh_cdr (i))
+       m = m >? unsmob_music (gh_car (i))->length_mom ();
+
+      delete iter;
+
+      curs = gh_cdr (curs);
+
+      if (!gh_pair_p (curs) ||  m > Moment (0))
+       return s;
+      else
+       {
+         iter = get_iterator_p (unsmob_music (gh_car (curs)));
+       }      
+    }
   return s;
 }
-
 void
 Sequential_music_iterator::process (Moment until)
 {
index b185f8ac24b6c97cb0532ba0a49aa138b9947222..a25147d4e9e7f6a0a806c40733cd8baf830dcd22 100644 (file)
@@ -20,8 +20,7 @@ Simple_music_iterator::Simple_music_iterator ()
 Simple_music_iterator::Simple_music_iterator (Simple_music_iterator const &src)
   : Music_iterator (src)
 {
-  last_processed_mom_ = src.last_processed_mom_;
-  length_mom_ = src.length_mom_;
+  last_processed_mom_ = -1;
 }
 
 void
@@ -45,13 +44,6 @@ Simple_music_iterator::pending_moment ()const
     return length_mom_;
 }
 
-void
-Simple_music_iterator::skip (Moment m)
-{
-  music_l_ = 0;
-  last_processed_mom_ = m;
-}
-
 void
 Simple_music_iterator::process (Moment m)
 {
@@ -67,5 +59,6 @@ Simple_music_iterator::process (Moment m)
                                          classname (music_l_)));
     }
 #endif
-  skip (m);
+  music_l_ = 0;
+  last_processed_mom_ = m;
 }
index 5be17a25d6bc12d845283bd18be40b4bb52cd8ab..ca200b2b243ca80fd342b74e70794c9e1cf9d0d1 100644 (file)
@@ -67,9 +67,12 @@ Slur::de_uglyfy (Score_element*me, Slur_bezier_bow* bb, Real default_height)
       Real h = bb->curve_.control_[i][Y_AXIS] * ff / length;
 
       Real f = default_height / length;
-      Real c1 = me->paper_l ()->get_var ("bezier_control1");
-      Real c2 = me->paper_l ()->get_var ("bezier_control2");
-      Real c3 = me->paper_l ()->get_var ("bezier_control3");
+      SCM up = me->get_elt_property ("de-uglify-parameters");
+      
+      Real c1 = gh_scm2double (gh_car (up));
+      Real c2 = gh_scm2double (gh_cadr (up));
+      Real c3 = gh_scm2double (gh_caddr (up)); 
+      
       if (h > c1 * f)
        {
          h = c1 * f; 
index e2cd5c6b2c3bea76ca2dcbce2608ed8a458d2bd8..2bfd4dfcbe423176dfff102c54b43dcfd362656f 100644 (file)
@@ -78,7 +78,11 @@ Stem_tremolo::brew_molecule (SCM smob)
     tremolo_flags = 1;
 
   int mult = beam ? Beam::get_multiplicity (beam) : 0;
-  Real interbeam_f = me->paper_l ()->interbeam_f (mult);
+  SCM space_proc = me->get_elt_property ("beam-space-function");
+  SCM space = gh_call1 (space_proc, gh_int2scm (mult));
+  Real interbeam_f = gh_scm2double (space) * ss;
+
+
   Molecule mol; 
   for (int i = 0; i < tremolo_flags; i++)
     {
index b64f89bafacbf81b40311789b1855ab428700ef2..68c93dad18b1b2bb2c18ff6c4bb19eea17108a20 100644 (file)
@@ -472,7 +472,7 @@ Stem::brew_molecule (SCM smob)
   
   if (!invisible_b (me))
     {
-      Real stem_width = me->paper_l ()->get_var ("stemthickness");
+      Real stem_width = gh_scm2double (me->get_elt_property ("thickness")) * me->paper_l ()->get_var ("stafflinethickness");
       Molecule ss =me->lookup_l ()->filledbox (Box (Interval (-stem_width/2, stem_width/2),
                                                 Interval (stem_y[DOWN]*dy, stem_y[UP]*dy)));
       mol.add_molecule (ss);
@@ -499,7 +499,7 @@ Stem::off_callback (Score_element * me, Axis)
       if (to_boolean (me->get_elt_property ("stem-centered")))
        return head_wid.center ();
       
-      Real rule_thick = me->paper_l ()->get_var ("stemthickness");
+      Real rule_thick = gh_scm2double (me->get_elt_property ("thickness")) * me->paper_l ()->get_var ("stafflinethickness");
       Direction d = get_direction (me);
       r = head_wid[d] - d * rule_thick ;
     }
@@ -532,10 +532,14 @@ Stem::calc_stem_info (Score_element*me)
 
   Real staff_space = Staff_symbol_referencer::staff_space (me);
   Real half_space = staff_space / 2;
-  Real interbeam_f = me->paper_l ()->interbeam_f (Beam::get_multiplicity (beam));
-  Real thick = gh_scm2double (beam->get_elt_property ("beam-thickness"));
   int multiplicity = Beam::get_multiplicity (beam);
 
+
+  SCM space_proc = beam->get_elt_property ("beam-space-function");
+  SCM space = gh_call1 (space_proc, gh_int2scm (multiplicity));
+  Real interbeam_f = gh_scm2double (space) * staff_space;
+
+  Real thick = gh_scm2double (beam->get_elt_property ("beam-thickness"));
   Stem_info info; 
   info.idealy_f_ = chord_start_f (me);
 
index 4600df3e2ddcea5d697657590725385eb92204f3..f154c010e54e613903877c2fcf7792940a3cd871 100644 (file)
 #include "directional-element-interface.hh"
 #include "spanner.hh"
 
-
-
 void
 Tuplet_spanner::set_interface (Score_element*me)
 {
+  me->set_interface (ly_symbol2scm ("tuplet-bracket"));
 }
 
 /*
index c2d6c7511be00bbddd782b83cc6ea8a762f33fcd..e244e6ad7ca7f9259b99715e37591d32760f4588 100644 (file)
@@ -64,11 +64,12 @@ Volta_spanner::brew_molecule (SCM smob)
 #endif
 
   Real staff_space = me->paper_l ()->get_var ("interline");
+  Real staff_thick = me->paper_l ()->get_var ("stafflinethickness");  
   Real half_space = staff_space / 2;
   Real left = dynamic_cast<Spanner*>(me)->get_broken_left_end_align ();
   Real w = dynamic_cast<Spanner*>(me)->spanner_length () - left - half_space;
-  Real h = me->paper_l()->get_var ("volta_spanner_height");
-  Real t = me->paper_l ()->get_var ("volta_thick");
+  Real h = staff_space * gh_scm2double (me->get_elt_property ("height"));
+  Real t = staff_thick * gh_scm2double (me->get_elt_property ("thickness"));
 
   /*
     ugh: should build from line segments.
index 408a512e26163c719b6ba7d966a12a5e314b3c67..a5af61a2c011d6c753159d77ee635f9f29bd4e9b 100644 (file)
@@ -1,29 +1,18 @@
-#(gc)
-  
 breve = \duration #'( -1 0)
 longa = \duration #'( -2 0 )
 maxima = \duration #'( -3 0 )
 
-#(gc)
 
-#(eval-string (ly-gulp-file "generic-property.scm"))
-
-#(gc)
-
-% urg, move to basic property?
-#(eval-string (ly-gulp-file "slur.scm"))
-
-#(gc)
+#(begin
+  (eval-string (ly-gulp-file "slur.scm"))
+  (eval-string (ly-gulp-file "generic-property.scm"))
+  (eval-string (ly-gulp-file "basic-properties.scm"))
+ )
 
 \include "nederlands.ly"               % dutch
-
-#(gc)
-
 \include "chord-modifiers.ly"
-#(gc)
-
 \include "script.ly"
-#(gc)
+
 
 
 % declarations for standard directions
@@ -48,6 +37,7 @@ melismaEnd = \property Staff.melismaBusy = ##f
 
 
 papersize = "a4"
+
 \include "generic-paper.ly"
 \include "paper20.ly"
 
index b21a4d5f43cd45b0e87edcc777394120cda8c7d8..0fdd838bea38dc310be20df3c92b87a1653bf8fd 100644 (file)
@@ -64,13 +64,13 @@ StaffContext=\translator {
 
 RhythmicStaffContext=\translator{
        \type "Engraver_group_engraver";
-       numberOfStaffLines  = #1
+       
        \consists "Property_engraver";
        \consists "Output_property_engraver";   
 
        Generic_property_list = #generic-staff-properties
        
-       barSize =   4.0 * \staffspace ; % urg: pt
+       barSize =   4.0 * \staffspace ; % JUNKME
 
        \consists "Pitch_squash_engraver";
        \consists "Separating_line_group_engraver";     
@@ -78,8 +78,7 @@ RhythmicStaffContext=\translator{
 
        basicVoltaSpannerProperties \push #'minimum-space =  #15  % urg, in \pt
        basicVoltaSpannerProperties \push #'padding =  #5  % urg, in \pt
-
-
+       basicStaffSymbolProperties \push #'line-count = #1      
 
        \consists "Repeat_engraver";
        \consists "Bar_engraver";
@@ -171,9 +170,11 @@ GraceContext=\translator {
        basicTextScriptProperties \push #'font-size = #-1
        basicSlurProperties \push #'font-size = #-1
        basicLocalKeyProperties \push #'font-size = #-1
-
-       weAreGraceContext = ##t 
-       graceAccidentalSpace= 1.5 * \staffspace;
+       basicBeamProperties \push #'beam-thickness = #0.3
+       basicBeamProperties \push #'beam-space-function = #(lambda (x) 0.5)
+       
+       weAreGraceContext = ##t   
+       graceAccidentalSpace= 1.5 * \staffspace; % JUNKME
 };
 
 \translator{\GraceContext}
@@ -207,6 +208,8 @@ PianoStaffContext = \translator{\GrandStaffContext
        alignmentReference = \center;
 
        \consists "Vertical_align_engraver";
+
+       % JUNKME
        minVerticalAlign = 3.0*\staffheight;
        maxVerticalAlign = 3.0*\staffheight;
 
@@ -455,17 +458,7 @@ ScoreContext = \translator {
                (name . "barnumber")
        )
 
-       basicBeamProperties = #`(
-               (molecule-callback . ,Beam::brew_molecule)
-               (beam-thickness . 0.42) ; staff-space
-               (before-line-breaking-callback . ,Beam::before_line_breaking)
-               (after-line-breaking-callback . ,Beam::after_line_breaking)
-               (default-neutral-direction . 1)
-               (interfaces . (beam-interface))
-               (damping . 1)
-               (name . "beam")         
-       )
-
+       basicBeamProperties = #basic-beam-properties
        basicBreakAlignProperties = #`(
                (breakable . #t)
                (interfaces . (break-align-interface))
@@ -504,6 +497,7 @@ ScoreContext = \translator {
        basicCollisionProperties = #`(
                (axes 0 1)
                (interfaces . (collision-interface))
+               (note-width . 1.65)
                (name . "note collision")
        )
        basicCrescendoProperties = #`(
@@ -545,8 +539,10 @@ ScoreContext = \translator {
                (name . "left edge")
        )
        basicGraceAlignItemProperties = #`(
-               (axes . (0))
                (interfaces . (axis-group-interface align-interface))
+               (axes . (0))
+               (horizontal-space . 1.2)
+               (padding . 1.0)
                (before-line-breaking-callback . ,Grace_align_item::before_line_breaking)
                (name . "grace alignment")
        )
@@ -593,6 +589,7 @@ ScoreContext = \translator {
        basicLyricExtenderProperties = #`(
                (interfaces . (lyric-extender-interface))
                (molecule-callback . ,Lyric_extender::brew_molecule)
+               (height . 0.8) ; stafflinethickness;
                (right-trim-amount . 0.5)
                (name . "extender line")
        )
@@ -616,6 +613,10 @@ ScoreContext = \translator {
                (spacing-procedure . ,Multi_measure_rest::set_spacing_rods)             
                (molecule-callback . ,Multi_measure_rest::brew_molecule)
                (staff-position . 0)
+               (expand-limit . 10)
+               (padding . 2.0) ; staffspace
+               (minimum-width . 12.5) ; staffspace
+
                (name . "multi-measure rest")
        )
        basicNoteColumnProperties = #`(
@@ -675,6 +676,8 @@ ScoreContext = \translator {
                (spacing-procedure . ,Slur::set_spacing_rods)           
                (minimum-length . 1.5)
                (after-line-breaking-callback . ,Slur::after_line_breaking)
+
+               (de-uglify-parameters . ( 1.5  0.8  -2.0))
                (name . "slur")
        )
        basicSpacingSpannerProperties =#`(
@@ -779,12 +782,14 @@ ScoreContext = \translator {
                (molecule-callback . ,Stem_tremolo::brew_molecule)
                (beam-width . 2.0) ; staff-space
                (beam-thickness . 0.42) ; staff-space
+               (beam-space-function . ,default-beam-space-function)
                (name . "stem tremolo")
        )
        basicStemProperties = #`(
                (interfaces . (stem-interface))
                (before-line-breaking-callback . ,Stem::before_line_breaking)
                (molecule-callback . ,Stem::brew_molecule)
+               (thickness . 0.8)
 
                ; if stem is on middle line, choose this direction.
                (default-neutral-direction . 1)
@@ -819,6 +824,8 @@ ScoreContext = \translator {
                (interfaces . (volta-spanner-interface side-position-interface))
                (direction . 1)
                (padding . 5)
+               (thickness . 1.6)  ;  stafflinethickness
+               (height . 2.0) ; staffspace;
                (minimum-space . 25)
                (name . "volta brace")
        )       
index 60e416847497ae9385b44e5f2ed7f1ac23afe816..0e956f669a18a86a04c13656e0dbe30871acf969 100644 (file)
@@ -23,9 +23,6 @@ paper_as_five = \paper {
        % Ugh
        magnification_dynamic = 2.;
        
-       % ugh see table20 for sizes
-       quartwidth =  3.\char;
-       wholewidth = 3.\char;
 
        -2 = \font "as5"
        -1 = \font "as5"
index 4f34c73c75c3f2323017e014264dc182b77c02ce..ba07ca88323b739483d97d8d7852d093729a85fb 100644 (file)
@@ -23,9 +23,6 @@ paper_as_nine = \paper {
        % Ugh
        magnification_dynamic = 2.;
        
-       % ugh see table20 for sizes
-       quartwidth =  3.\char;
-       wholewidth = 3.\char;
 
        -2 = \font "as9"
        -1 = \font "as9"
index 1920524ca455cee4fae8fd4ba92d936cd4f25bb2..321b7b6e85d08cc77f0d76eb9268f359e2034f2c 100644 (file)
@@ -5,9 +5,6 @@
 paper_eleven = \paper {
        staffheight = 11.0\pt;
 
-        % ugh see table11 for sizes
-       quartwidth = 3.63 \pt;
-       wholewidth = 5.45 \pt;
 
        font_Large = 8.;
        font_large = 6.;
index 19891aa063b32076e4448359defb0deec26ac2b8..bd3855fcef14603229d74583817c195bfa51ec37 100644 (file)
@@ -5,10 +5,6 @@
 paper_thirteen = \paper {
        staffheight = 13.0\pt;
 
-       % ugh see table13 for sizes
-       quartwidth = 4.29\pt;
-       wholewidth = 6.44\pt;
-
 
        font_Large = 8.;
        font_large = 6.;
index 5ffce3b97c04a811c69f658e929768c7372ca489..6cb1bdaedceba5cdfcc04fbf5546ad4a2c397394 100644 (file)
@@ -6,11 +6,6 @@
 
 paper_sixteen = \paper {
        staffheight = 16.0\pt;
-
-       % ugh, see table16 for sizes
-       quartwidth = 5.28\pt;
-       wholewidth = 7.92\pt;
-       
        font_Large = 12.;
        font_large = 10.;
        font_normal = 8.;
index 8e12496d467d48886b348e047de888315f4e9750..40fe2f2067347ed8e7df58b01485a1c60814b9f8 100644 (file)
@@ -26,10 +26,6 @@ paper_twenty = \paper {
        % Ugh
        magnification_dynamic = 2.;
        
-       % ugh see table20 for sizes
-       quartwidth =  6.61\pt;
-       wholewidth = 9.90\pt;
-
        0 = \font "feta20"
        -1 = \font "feta16"
        -2 = \font "feta13"
index 07493d853d3daf51dbde7d343a86ada1bbb56bcf..61889b9c0f46cf88215f6c0f527a69ba8ed9b249 100644 (file)
@@ -18,10 +18,6 @@ paper_twentythree = \paper {
 
        % Ugh
        magnification_dynamic = 3.;
-       
-       % ugh see table20 for sizes
-       quartwidth =  6.61\pt;
-       wholewidth = 9.90\pt;
 
        -2 = \font "feta16"
        -1 = \font "feta20"
index fd8fc947923f4c68387afc27801abba2b48da665..484042d99649bfb77c1ba7ffd8896ab2096e66de 100644 (file)
@@ -4,10 +4,6 @@
 
 paper_twentysix = \paper {
        staffheight = 26.0\pt;
-
-       quartwidth = 8.59\pt;
-       wholewidth = 12.87\pt;
-       
        font_Large = 17.;       
        font_large = 14.;
        font_normal = 12.;
index 01e44e8281163ccf3a922dda3c0f0e50ac08bd9d..58ab2b6bd28bb7f41bb153c1eedc53f5c0f8f566 100644 (file)
@@ -15,15 +15,6 @@ indent = 8.0\char;
 staffspace = (\staffheight - 1.0 ) / 4.0;
 stafflinethickness = \staffspace / 2.0;
 
-% deprecated
-interline = \staffspace;
-
-% urg, need grace_ versions of these too?
-beam_thickness = 0.52 * (\staffspace - \stafflinethickness);
-
-interbeam = (2.0 * \staffspace + \stafflinethickness - \beam_thickness) / 2.0;
-interbeam4 = (3.0 * \staffspace - \beam_thickness) / 3.0;
-
 %{
 The space taken by a note is determined by the formula 
 
@@ -103,11 +94,6 @@ tie_y_gap = 0.25 * \staffspace;
 % length of a tie that's a staffspace high
 tie_staffspace_length = 4.0 * \staffspace;
 
-% ugh: rename to bow (in bezier.cc and fonts.doc too...)
-
-% used to be 1.4 .
-slur_thickness = 1.2 * \stafflinethickness;
-tie_thickness = 1.2 * \stafflinethickness;
 
 %{
  Specifies the maximum height of slurs.
@@ -128,51 +114,15 @@ slur_clip_height = 3.0 * \staffheight;
 slur_clip_angle = 100.0;
 slur_rc_factor = 2.4;
 
-% ugh
-notewidth = 3.0\char;
-
-gourlay_energybound = 100000.;
-%{
-Maximum number of measures per line to try when using Gourlay
-method. 
-%}
-gourlay_maxmeasures = 10.;
-
 % vertical space between lines.
 line_kern = \staffspace;
 
-volta_thick = 1.0\char;
-volta_spanner_height = 1.0\char;
-
-% relative thickness of thin lines  1.6 : 1 : 0.8
-stemthickness = 1.0\char;
-rulethickness = 1.0\char;
-
-
-extender_height = 0.8*\stafflinethickness;
-
-hyphen_thickness = 0.05*\font_normal;
-hyphen_height = 0.2*\font_normal;
-hyphen_minimum_length = 0.25*\font_normal;
-
-% Multi-measure rests
-multi_measure_rest_x_minimum = 2.5*\staffheight;
-multi_measure_rest_padding = 2.0 *\staffspace;
-multi_measure_rest_expand_limit = 10.0;
 
 % chop off this much when next to pp / ff sign.
 crescendo_shorten = 4.0 * \staffspace;
 crescendo_thickness   = \stafflinethickness;
 crescendo_height = 0.666 * \staffspace;
 
-% in internote.
-restcollision_minimum_dist = 3.0;
-restcollision_minimum_beamdist = 1.5;
-
-
-% unit for note collision resolving
-collision_note_width = \notewidth;     %ugh.
-
 % deprecated!
 postBreakPadding = 0.0;
 
@@ -217,9 +167,6 @@ compression_energy_factor = 0.6;
 % if stem is on middle line, choose this direction.
 stem_default_neutral_direction = 1.0;
 
-% in staffspace
-articulation_script_padding_default = 1.0;
-
 % Backward compatibility -- has no function; 
 Gourlay = 0.0;
 Wordwrap =0.0;
index e8643883668d7d6071cf9ec0ca131944cc7cc39a..85661e39d6938e61f1f0e31edb7ceff7cb42f088 100644 (file)
@@ -22,15 +22,6 @@ stafflinethickness = \staffspace / 10.0;
 % deprecated
 interline = \staffspace;
 
-
-% urg, need grace_ versions of these too?
-beam_thickness = 0.52 * (\staffspace - \stafflinethickness);
-
-
-
-interbeam = (2.0 * \staffspace + \stafflinethickness - \beam_thickness) / 2.0;
-interbeam4 = (3.0 * \staffspace - \beam_thickness) / 3.0;
-
 %{
 The space taken by a note is determined by the formula 
 
@@ -72,8 +63,9 @@ If you want to space your music wider, use something like:
 
 %}
 % We use 0.9*\quartwidth, because 1.0 seems to wide.
+% quartwidth == 1.32 * staffspace
 % We don't adjust arithmetic_basicspace accordingly (why not?)
-arithmetic_multiplier = 0.9 * \quartwidth ;
+arithmetic_multiplier = 0.9 * 1.32 * \staffspace ;
 arithmetic_basicspace = 2.0;
 
 
@@ -93,6 +85,8 @@ beam_steep_slope = 0.2 / 1.0;
   Slur parameters.
   
   See Documentation/programmer/fonts.doc
+
+  TODO: -> elt-properties.
 %}
 % Height-limit (h_inf) = factor * staff_space
 slur_height_limit_factor = 2.0;
@@ -113,13 +107,6 @@ slur_y_gap = 0.25 * \staffspace;
 slur_y_free = 0.75 * \staffspace;
 slur_x_minimum = 1.5 * \staffspace;
 
-
-% The constants that define the valid areas for the middle control points
-% Used in de_uglyfy.  Bit empirical.
-bezier_control1 = 1.5;
-bezier_control2 = 0.8;
-bezier_control3 = -2.0;
-
 % URG: the magic constants for area asymmetry
 bezier_pct_c0 = -0.2;
 bezier_pct_c3 = 0.000006;
@@ -136,40 +123,12 @@ tie_height_limit_factor = 1.0 ;
 tie_ratio = \slur_ratio;
 
 % OSU: tie gap == slur gap
-tie_x_gap = \slur_x_gap;
-
+tie_x_gap = 0.2 * \staffspace;
 tie_staffline_clearance = 2.0 *\slur_thickness;
 
-
-% ugh
-notewidth = (\quartwidth + \wholewidth) / 2.0;
-
-gourlay_energybound = 100000.;
-%{
-Maximum number of measures per line to try when using Gourlay
-method. 
-%}
-gourlay_maxmeasures = 10.;
-
-% vertical space between lines.
+% vertical space between lines of text.
 line_kern = \staffspace;
 
-volta_thick = 1.6*\stafflinethickness;
-volta_spanner_height = 2.0 *\staffspace;
-
-% relative thickness of thin lines  1.6 : 1 : 0.8
-stemthickness = 0.8*\stafflinethickness;
-rulethickness = \stafflinethickness;
-
-
-extender_height = 0.8*\stafflinethickness;
-
-
-% Multi-measure rests
-multi_measure_rest_x_minimum = 2.5*\staffheight;
-multi_measure_rest_padding = 2.0 *\staffspace;
-multi_measure_rest_expand_limit = 10.0;
-
 % chop off this much when next to pp / ff sign.
 crescendo_shorten = 4.0 * \staffspace;
 crescendo_thickness   = \stafflinethickness;
@@ -177,11 +136,6 @@ crescendo_height = 0.666 * \staffspace;
 crescendo_dash_thickness = 1.2*\stafflinethickness;
 crescendo_dash = 4.0*\staffspace;
 
-% in internote.
-
-
-% unit for note collision resolving
-collision_note_width = \notewidth;     %ugh.
 
 % optical correction amount.
 stemSpacingCorrection = 0.5*\staffspace;
@@ -221,8 +175,6 @@ will cause scores to be set looser
 
 compression_energy_factor = 0.6;
 
-% in staffspace
-articulation_script_padding_default = 1.0;
 
 
 \include "engraver.ly";
index 584f3fd32b4749c17b80396cdf6df27d7f9df1a9..bf81c2fc7d9c9ad86e9a76a2d023cf8bd0417883 100644 (file)
@@ -1,15 +1,15 @@
 Begin3
 Title: LilyPond
-Version: 1.3.87
-Entered-date: 18SEP00
+Version: 1.3.88
+Entered-date: 20SEP00
 Description: 
 Keywords: music notation typesetting midi fonts engraving
 Author: hanwen@cs.uu.nl (Han-Wen Nienhuys)
        janneke@gnu.org (Jan Nieuwenhuizen)
 Maintained-by: hanwen@stack.nl (Han-Wen Nienhuys)
 Primary-site: sunsite.unc.edu /pub/Linux/apps/sound/convert
-       1000k lilypond-1.3.87.tar.gz 
+       1000k lilypond-1.3.88.tar.gz 
 Original-site: ftp.cs.uu.nl /pub/GNU/LilyPond/development/
-       1000k lilypond-1.3.87.tar.gz 
+       1000k lilypond-1.3.88.tar.gz 
 Copying-policy: GPL
 End
index a087e0f6951919adf6f799351f24104a76b77506..479bbe52b21c1a14855d63fc1992391ab51276f3 100644 (file)
@@ -1,9 +1,9 @@
 Name: lilypond
-Version: 1.3.87
+Version: 1.3.88
 Release: 1
 Copyright: GPL
 Group: Applications/Publishing
-Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.3.87.tar.gz
+Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.3.88.tar.gz
 Summary: A program for printing sheet music.
 URL: http://www.cs.uu.nl/~hanwen/lilypond
 # Icon: lilypond-icon.gif
diff --git a/scm/basic-properties.scm b/scm/basic-properties.scm
new file mode 100644 (file)
index 0000000..28c1bec
--- /dev/null
@@ -0,0 +1,51 @@
+; Definition of backend properties (aka. element properties).
+
+;; See documentation of Item::visibility_lambda_
+(define (begin-of-line-visible d) (if (= d 1) '(#f . #f) '(#t . #t)))
+(define (spanbar-begin-of-line-invisible d) (if (= d -1) '(#t . #t) '(#f . #f)))
+(define (all-visible d) '(#f . #f))
+(define (all-invisible d) '(#t . #t))
+(define (begin-of-line-invisible d) (if (= d 1) '(#t . #t) '(#f . #f)))
+(define (end-of-line-invisible d) (if (= d -1) '(#t . #t) '(#f . #f)))
+
+
+(define mark-visibility end-of-line-invisible)
+
+; ugh: should calculate from beam-thickness.
+; result in staff-space
+
+;beam_thickness = 0.52 * (\staffspace - \stafflinethickness);
+;interbeam = (2.0 * \staffspace + \stafflinethickness - \beam_thickness) / 2.0;
+;interbeam4 = (3.0 * \staffspace - \beam_thickness) / 3.0;
+
+
+(define (default-beam-space-function multiplicity)
+  (if (<= multiplicity 3) 0.816 0.844)
+  )
+
+;
+; width in staff space.
+;
+(define (default-beam-flag-width-function type)
+  (cond
+   ((eq? type 1) 1.98)
+   ((eq? type 1) 1.65)
+   (else 1.32)
+   ))
+
+
+(define basic-beam-properties
+  `(
+    (interfaces . (beam-interface))
+    (molecule-callback . ,Beam::brew_molecule)
+    (beam-thickness . 0.42) ; staff-space, should use stafflinethick?
+    (before-line-breaking-callback . ,Beam::before_line_breaking)
+    (after-line-breaking-callback . ,Beam::after_line_breaking)
+    (default-neutral-direction . 1)
+    
+    (beam-flag-width-function . ,default-beam-flag-width-function)
+    (beam-space-function . ,default-beam-space-function)
+    (damping . 1)
+    (name . "beam")            
+    )
+  )
index 147f5b58503e94433432cca322b630fa225b376e..e4385c0eef5a451b22bfa76bf875eaf3dc3743fd 100644 (file)
 
 (define security-paranoia #f)
 
-
-;; See documentation of Item::visibility_lambda_
-(define (begin-of-line-visible d) (if (= d 1) '(#f . #f) '(#t . #t)))
-(define (spanbar-begin-of-line-invisible d) (if (= d -1) '(#t . #t) '(#f . #f)))
-(define (all-visible d) '(#f . #f))
-(define (all-invisible d) '(#t . #t))
-(define (begin-of-line-invisible d) (if (= d 1) '(#t . #t) '(#f . #f)))
-(define (end-of-line-invisible d) (if (= d -1) '(#t . #t) '(#f . #f)))
-
-
-(define mark-visibility end-of-line-invisible)
-
 ;; Spacing constants for prefatory matter.
 ;;
 ;; rules for this spacing are much more complicated than this. See [Wanske] page 126 -- 134, [Ross] pg 143 -- 147