]> git.donarmstrong.com Git - lilypond.git/commitdiff
release: 1.1.37 release/1.1.37
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Mon, 29 Mar 1999 07:03:09 +0000 (09:03 +0200)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Mon, 29 Mar 1999 07:03:09 +0000 (09:03 +0200)
144 files changed:
Documentation/tex/GNUmakefile
Documentation/tex/feta.tex
Documentation/tex/other-packages.bib
NEWS
TODO
VERSION
debian/changelog
debian/copyright
debian/postinst
debian/rules
flower/include/cons.hh [new file with mode: 0644]
flower/include/hash-table.hh
flower/include/killing-cons.tcc [new file with mode: 0644]
input/bugs/biem.ly [new file with mode: 0644]
input/test/bar-scripts.ly
input/test/big-test.ly [new file with mode: 0644]
input/test/font-body.ly
input/test/font16.ly
input/test/hara-kiri.ly
input/test/noteheadstyle.fly [new file with mode: 0644]
input/test/number-staff-lines.fly
lib/include/source.hh
lib/source.cc
lib/template.cc [deleted file]
lily/abbrev.cc
lily/abbreviation-beam-engraver.cc
lily/afm.cc
lily/align-element.cc
lily/auto-beam-engraver.cc
lily/axis-align-item.cc [new file with mode: 0644]
lily/axis-align-spanner.cc [new file with mode: 0644]
lily/axis-group-element.cc
lily/axis-group-spanner.cc
lily/bar-engraver.cc
lily/bar-script-engraver.cc
lily/bar.cc
lily/base-span-bar-engraver.cc
lily/beam-engraver.cc
lily/beam.cc
lily/bow.cc
lily/break-align-item.cc
lily/chord.cc
lily/collision.cc
lily/dot-column.cc
lily/encompass-info.cc
lily/g-staff-side.cc
lily/graphical-axis-group.cc
lily/hara-kiri-line-group-engraver.cc
lily/hara-kiri-vertical-group-spanner.cc
lily/heads-engraver.cc
lily/horizontal-align-item.cc [deleted file]
lily/horizontal-group-element.cc [deleted file]
lily/horizontal-group-item.cc [deleted file]
lily/horizontal-vertical-group-element.cc [deleted file]
lily/horizontal-vertical-group-item.cc [deleted file]
lily/include/afm.hh
lily/include/align-element.hh
lily/include/axis-align-item.hh [new file with mode: 0644]
lily/include/axis-align-spanner.hh [new file with mode: 0644]
lily/include/axis-group-element.hh
lily/include/axis-group-item.hh
lily/include/axis-group-spanner.hh
lily/include/bar-engraver.hh
lily/include/bar.hh
lily/include/base-span-bar-engraver.hh
lily/include/beam.hh
lily/include/bow.hh
lily/include/break-align-item.hh
lily/include/collision.hh
lily/include/cons.cc [deleted file]
lily/include/cons.hh [deleted file]
lily/include/dot-column.hh
lily/include/dots.hh
lily/include/g-staff-side.hh
lily/include/graphical-axis-group.hh
lily/include/hara-kiri-vertical-group-spanner.hh
lily/include/horizontal-align-item.hh [deleted file]
lily/include/horizontal-group-element.hh [deleted file]
lily/include/horizontal-group-item.hh [deleted file]
lily/include/horizontal-vertical-group-element.hh [deleted file]
lily/include/horizontal-vertical-group-item.hh [deleted file]
lily/include/key-engraver.hh
lily/include/key-item.hh
lily/include/killing-cons.tcc [deleted file]
lily/include/lily-guile.hh
lily/include/lily-proto.hh
lily/include/line-group-group-engraver.hh
lily/include/lookup.hh
lily/include/ly-symbols.hh
lily/include/molecule.hh
lily/include/note-head.hh
lily/include/p-col.hh
lily/include/script-column.hh
lily/include/span-score-bar.hh [deleted file]
lily/include/stem-info.hh
lily/include/stem.hh
lily/include/vertical-align-engraver.hh
lily/include/vertical-align-spanner.hh [deleted file]
lily/include/vertical-group-element.hh [deleted file]
lily/include/vertical-group-spanner.hh [deleted file]
lily/key-engraver.cc
lily/key-item.cc
lily/lily-guile.cc
lily/line-group-group-engraver.cc
lily/lookup.cc
lily/molecule.cc
lily/note-head.cc
lily/p-col.cc
lily/p-score.cc
lily/score-element.cc
lily/score-priority-engraver.cc
lily/script-column.cc
lily/slur-engraver.cc
lily/slur.cc
lily/span-bar.cc
lily/span-score-bar-engraver.cc
lily/stem-info.cc
lily/stem.cc
lily/text-engraver.cc
lily/tie.cc
lily/vertical-align-engraver.cc
lily/vertical-align-spanner.cc [deleted file]
lily/vertical-group-elem.cc [deleted file]
lily/vertical-group-spanner.cc [deleted file]
ly/declarations.ly
ly/dynamic.ly
ly/engraver.ly
ly/params.ly
make/out/lelievijver.lsm
make/out/lilypond.lsm
make/out/lilypond.spec
mf/feta-bolletjes.mf
mf/feta-generic.mf
mutopia/J.S.Bach/wtk1-fugue2.ly
mutopia/N.W.Gade/brass.ly
mutopia/N.W.Gade/strings.ly
mutopia/N.W.Gade/wood.ly
scripts/ly2dvi.py
stepmake/configure
stepmake/make/toplevel.make.in
stepmake/stepmake/toplevel-targets.make
stepmake/stepmake/yolily-toplevel-targets.make
tex/fetdefs.tex
tex/lilypond-plaintex.tex

index 4d5c1ecc18819e96d5152f137074f672ba54da12..aaea8b17a7c3568f6fcd99ff6e2debd884bdaff3 100644 (file)
@@ -74,3 +74,6 @@ $(outdir)/%.html: %.bib
 
 #out/%: $(outdir)/%
 #      cp -f $< $@
+
+localclean:
+       rm -f fonts.aux fonts.log feta*.tfm feta*.*pk
index 36633bea1ba8becbb53d2c23100df5fdde8ab155..c713e128af6ceed4b2d97f45c62c38c51461a76e 100644 (file)
@@ -14,7 +14,7 @@
 \font\title = cmbx12 scaled \magstep 4
 \font\subtitle = cmr9
 
-\def\lilyfooter{Lily was here, 1.1.0}
+\def\lilyfooter{Lily was here}
 \def\setchar#1#2{\hbox to\charwidth{\hss{#1\char#2}\hss}}
 
 \def\charsperline{6}
 \def\charwidth{60pt}
 
 \def\listfont#1#2#3{
-       \n=#2
-       \advance\n by-1
-       \advance\n by-\charsperline
+        \n=#2
+        \advance\n by-1
+        \advance\n by-\charsperline
         \loop\ifnum\n<#3
-       \advance\n by\charsperline
-       \i=0
-       {\vbox to\charheight{\vss\centerline{
-       {\loop\ifnum\i<\charsperline
-       \advance\i by1
-       \advance\n by1
+        \advance\n by\charsperline
+        \i=0
+        {\vbox to\charheight{\vss\centerline{
+        {\loop\ifnum\i<\charsperline
+        \advance\i by1
+        \advance\n by1
         {\setchar{#1}{\number\n}}
-       \repeat}}}}\repeat}
+        \repeat}}}}\repeat}
 
 
 \centerline{\title FETA}
 
-\centerline{\subtitle (definately not an abbreviation for Font-En-Tja)}
+\centerline{\subtitle (definitely not an abbreviation for Font-En-Tja)}
 
 \vskip5mm
 
index 866659ee0d12db72916206de4bf65eeb5c0e8c7d..e2c7aaafc99f80fa4f7a56dde9d6d0795ccca908 100644 (file)
@@ -168,7 +168,14 @@ html=                {http://www.musicwareinc.com/},
   note={A rewrite of MusicTeX.  After licensing quarrels, MusiXTeX has 
   been split into two (both still non-GNU GPL licensed) branches.},
 }
-  
+
+
+
+@Misc{opus,
+  title =       {opus},
+html={http://www.sincrosoft.com}
+}
+
 @misc{musixtex2,
   title = {MusiXTeX},
   HTML={http://www.gmd.de/Misc/Music/},
diff --git a/NEWS b/NEWS
index ab116dcc2c1731c7a4a06b81ba11cf195bc70b24..8c09cf7b0ee006dd4ab6f3316fd8dc6beea7c7be 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,31 @@
+
+       - diamond heads (probably really ugly).
+       - cross head.
+       - tweaked harmonic head a bit.
+       - property noteHeadStyle
+
+pl 36.mb2
+       - bf: timeSignatureStyle
+       - Added dynamic fz (forzando) to Lilypond
+       - bf: N.W.Gade, sfz -> fz
+
+pl 36.hwn1
+       - debian fixes.
+       - don't insert extra alignment space for empty stuff.
+       - Align_element derives from Axis_group_element
+       - junk all *{horizontal,vertical}* Score_element derived classes.
+       - G_staff_side_item::padding_f_ now generic property.
+       - some tweaking of beam & stem. 
+       - junk pointerlist in Sources
+       - junk Stem::mult_i_, Stem::beam_gap_i_, G_staff_side_item::padding
+       Bar::at_line_start_b_, Key_item::c_position_, Note_head::type_str_,
+       Note_head::staff_size, Stem::xdir_
+       
 pl 36.mb1
        - bf: N.W.Gade
 
+**************
+
 pl 35.uu1
        - more memory tweaks: don't do Score_element::line_l () when deleting lines.
        - more generic properties.
@@ -13,6 +38,7 @@ pl 35.uu1
 pl 35.jcn1
        - some ps fixes
 
+************
 pl 35
 
 pl 34.hwn2
diff --git a/TODO b/TODO
index 10fca2894a794ea323ae64fc6d103fc028670e8c..328e9d3615feff8c39a95794e13e268300e65957 100644 (file)
--- a/TODO
+++ b/TODO
@@ -10,8 +10,17 @@ Grep for TODO and ugh/ugr/urg.
 
 .* BUGS
 . * header for PS enteredby = "bla <bla@bar.com>"
+. * Hash_table::remove ().
+. * 1.  With "lilypond -f ps": The black notes with ledger lines seem to
+> have extra "blobs" over and to the left of them and all the ledger
+> lines from the staff to the note will have a blob too.  For example,
+> with the note "a4" there will be a black note at the ledger line where
+> "c" would be too.  However, only the "a4" will have the extra blob.
+
 . * ps/lily.ps
 . * AFM for BlueSky AFM files.
+. * devise standard for functioning of Vertical_align_element.
+. * fix interstaff slurs & beams.
 . * staff size for post/prebreaks
 . * .ly files
 .  * input/star-spangled-banner
@@ -49,7 +58,7 @@ Grep for TODO and ugh/ugr/urg.
   }
 }
 . * midi key.
-. *P.P.S. It can be cool in mudela-book to distinguish in pre,postMudelaExample,
+. * P.P.S. It can be cool in mudela-book to distinguish in pre,postMudelaExample,
 whether MudelaExample is epsed or not: ( if this fragment is floating eps, than 1,
 otherwise 2). say preMudelaExample[eps]{}, and change it in document body sometimes.
 . * fix singleStaffBracket
@@ -61,7 +70,7 @@ otherwise 2). say preMudelaExample[eps]{}, and change it in document body someti
 . * fix height of / collisions with lyrics (chords), 
     see input/test/vertical-text.ly; input/test/repeat.ly
 . * We need feta-din*.mf files for more sizes than 10.
-. * latex bla.tex broken (titles / \lilyfooter stuff?)
+. * latex bla.tex broken (titles / \lilyfooter stuff?
 . * fix dynamics decently, ie. use kerning & ligatures.  
 . * support_l_arr_ empty in staff-margin's G_staff_side_item
 . * minVerticalAlign for StaffGroups.
@@ -108,7 +117,6 @@ specify the third.  Should there be?
 .  * make "in-between" engraver (Tie, Extender)
 .  * make wide_spanner_engraver (line_group_spanne,r staff_symbol)
 . * remove Interval dim_ from Dimension_cache and rename the struct.
-.  * merge align_element  and axis_element_group.
 . * do scaled fonts generally 
 . * The Lilypond accidental symbols are available through the TeX macros, 
 \textflat, \textsharp and \textnatural defined in the init file
@@ -124,7 +132,7 @@ compilation.
 . * junk Script_def
 . * include examples in RPM.
 . * fix partial measures in meaningful way.
-. * working notehead style.
+
 . * add scripts to bars eg.  |^"bla" 
 . * relative mode for mi2mu
 . * uniformise recent feta contributions.
@@ -146,8 +154,6 @@ But what if I want a chord that lasts for 3 whole notes?  Or what
 about 2.5 whole notes?  Is there a mechanism for getting this kind of
 length?  
 
-
-
 . * fractional chord durs.
 . * hang Item on Spanner
 . * do --safe for PS output?
@@ -206,7 +212,6 @@ length?
 . * strip EXEs before installing
 . * zip target for binary windows dist (JBR)
 . * junking \skip req in lyrics
-. * percussion note heads
 . * mi2mu empty staffs.
 . * horizontal centering of dynamics 
 . * $DEPENDENCIES_OUTPUT support
@@ -222,7 +227,6 @@ gs: Operand stack:
        organ you want to be able to give stop indications on the way
        through, so the \property Voice.Instrument would be a stop,
        and \property GrandStaff.instrument would be PipeOrgan...)
-. * revise the Score_priority_align_engraver concept.  It sucks. 
 . * *.yo: fix pod manpage layout legacy
 . * text-items clash with stems/beams
 . * --include, -I option for ly2dvi (pass on to lily)
@@ -537,6 +541,7 @@ hesitate to ask.
 .  * specify number of lines
 
 .* INPUTLANGUAGE
+. * \rhythms 4 16 16 16 16; c c c c c -> c4 c16 etc. 
 . * Language:
 .  * \type -> \context ?
 .  * \translator -> ?
diff --git a/VERSION b/VERSION
index bba7d954508f0beb26c9083ba3e102f4aeb83efc..c24cec832a67a92e606f74f0a2c1f10756cef29f 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1,8 +1,8 @@
 PACKAGE_NAME=LilyPond
 MAJOR_VERSION=1
 MINOR_VERSION=1
-PATCH_LEVEL=36
-MY_PATCH_LEVEL=mb1
+PATCH_LEVEL=37
+MY_PATCH_LEVEL=
 
 # use the above to send patches: MY_PATCH_LEVEL is always empty for a
 # released version.
index c31123b6baeb0cf040bb8e2076a95f116b30195a..804e47bb20059c8ae028a5f5e14b6e2f9eed7024 100644 (file)
@@ -1,3 +1,17 @@
+lilypond (1.1.36-1) unstable; urgency=low
+
+  * New upstream release.
+  * [debian/rules]:
+      - Make and install info files.
+      - Removed "CC=egcc" because the default gcc on all platforms is
+        now the one from egcs.
+      - Install *.png instead of *.xpm.
+      - Minor clean-ups.
+  * Added debian/compress to make sure *.png are not compressed.
+  * Added debian/doc-base and postinst/prerm for the LilyPond info files.
+
+ -- Anthony Fok <foka@debian.org>  Sun, 21 Mar 1999 13:39:39 -0700
+
 lilypond (1.1.31-1) unstable; urgency=low
 
   * New upstream release.
index aa4d619705f6c0f1877d1f52a20e9c570fee15c4..dcd268aca52f9c983beb6a01d5fba18629022e59 100644 (file)
@@ -1,12 +1,8 @@
-This package was debianized by Anthony Fok <foka@debian.org> on
+This package was Debianized by Anthony Fok <foka@debian.org> on
 Wed,  6 Aug 1997 04:30:28 -0600
 
 It was downloaded from
-      ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/v1.1/lilypond-1.1.31.tar.gz
-
-It is also available from:
-
-      ftp://sca.uwaterloo.ca/pub/lilypond/development/
+      ftp://ftp.lilypond.org/pub/LilyPond/v1.1/lilypond-1.1.36.tar.gz
 
 For more information about GNU LilyPond, please visit:
       http://www.cs.uu.nl/~hanwen/lilypond/
index 7f781eb29597aaa95708fbf7cd89ccd7239dfa21..ac8e261b95432eaeef9e1c72746fb75f4f08ecae 100755 (executable)
@@ -19,6 +19,10 @@ TEXMFMAIN=`/usr/bin/kpsewhich -expand-var '$TEXMFMAIN'`
 echo " Running /usr/bin/mktexlsr ..."
 /usr/bin/mktexlsr
 
+install-info --description='LilyPond, the GNU Project music typesetter' \
+       --section "Music" "Music" \
+       --quiet /usr/info/lilypond.info.gz
+
 #DEBHELPER#
 
 # If we are the last package to use the old /usr/lib/texmf/doc,
index 38207cad73e2ab1d83c6898b258014fd0f51660d..7a94ca326ffe0ceeadbf6d0f54425c033f3c89e3 100755 (executable)
@@ -14,19 +14,6 @@ SHELL = /bin/sh
 r = debian/tmp
 d = usr/doc/$(package)
 
-strayfiles := stepmake/bin/*.pyc \
-       stepmake/stepmake/stepmake \
-       stepmake/stepmake/bin \
-       stepmake/stepmake/aclocal.m4 \
-       stepmake/GNUmakefile \
-       GNUmakefile \
-       config.h \
-       wwwlist \
-       Documentation/tex/fonts.aux \
-       Documentation/tex/fonts.log \
-       Documentation/tex/feta*.tfm \
-       Documentation/tex/feta*.*pk
-
 # Uncomment this to turn on verbose mode.
 #export DH_VERBOSE=1
 
@@ -34,15 +21,18 @@ build: build-stamp
 build-stamp:
        dh_testdir
 
-       CC=egcc ./configure --disable-checking --disable-debugging \
+       ./configure --disable-checking --disable-debugging \
                --enable-printing --prefix=/usr --disable-optimise \
                --enable-shared
        $(MAKE) all
-       # $(MAKE) htmldoc
+       $(MAKE) -C Documentation/pictures pngs
 
        # Remove the "-" and the "-k" once the \times segfault
        # bug is fixed.  (lilypond-1.1.31, 1999-02-17)
        -$(MAKE) -k -C Documentation/tex dvi
+       -$(MAKE) -C Documentation info
+
+       # $(MAKE) htmldoc
 
        touch build-stamp
 
@@ -51,11 +41,9 @@ clean:
        dh_testroot
        rm -f build-stamp install-stamp
        -$(MAKE) distclean
+       rm -f stepmake/stepmake/aclocal.m4
        dh_clean
 
-       # Remove the following line once the *.make files are fixed
-       rm -f $(strayfiles)
-
        # Correct the owner of the out/dummy.dep files when built with sudo.
        if [ -n "$$SUDO_USER" -a -n "$$SUDO_GID" ]; then \
                find . -user root | xargs -r chown --dereference $$SUDO_USER.$$SUDO_GID; \
@@ -80,7 +68,7 @@ install-stamp: build-stamp
        ln -s ../../../share/lilypond/tex $(r)/usr/lib/texmf/tex/lilypond
        ln -s ../../../../../share/lilypond/mf $(r)/usr/lib/texmf/fonts/source/public/lilypond
        ln -s ../../../../../share/lilypond/afm $(r)/usr/lib/texmf/fonts/afm/public/lilypond
-       ln -s ../../../../../share/lilypond/afm $(r)/usr/lib/texmf/fonts/tfm/public/lilypond
+       ln -s ../../../../../share/lilypond/tfm $(r)/usr/lib/texmf/fonts/tfm/public/lilypond
 
        touch install-stamp
 
@@ -92,9 +80,9 @@ binary-arch: build install
        dh_testdir
        dh_testroot
        cp -av mudela-mode.el $(r)/usr/lib/emacs/site-lisp
-       dh_installdocs ANNOUNCEMENT ANNOUNCE-0.1 NEWS-* DEDICATION \
+       dh_installdocs ANNOUNCE* NEWS-* DEDICATION \
                BUGS TODO *.txt \
-               Documentation/pictures/*.xpm \
+               Documentation/pictures/out/*.png \
                Documentation/out/*.txt \
                Documentation/tex/*.doc \
                Documentation/tex/*.bib \
@@ -110,7 +98,7 @@ binary-arch: build install
 #      dh_installmanpages
 #      dh_undocumented
        dh_installchangelogs -k NEWS
-#      dh_strip
+       dh_strip
        dh_compress
        dh_fixperms
        dh_suidregister
diff --git a/flower/include/cons.hh b/flower/include/cons.hh
new file mode 100644 (file)
index 0000000..6e62c4c
--- /dev/null
@@ -0,0 +1,123 @@
+/*   
+  cons.hh -- declare LISP like datatypes
+  
+  source file of the GNU LilyPond music typesetter
+  
+  (c) 1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+  
+ */
+
+#ifndef CONS_HH
+#define CONS_HH
+
+
+template<class T>
+class Cons
+{
+public:
+  T * car_;
+  Cons * next_;
+  Cons ()
+    {
+      car_=0;
+      next_ =0;
+    }
+  Cons (T*t, Cons<T>*c)
+    {
+      car_ = t;
+      next_ = c;
+    }
+ virtual ~Cons ()
+    {
+      delete next_;
+    }
+};
+
+template<class T>
+class Killing_cons : public Cons<T>
+{
+public:
+  Killing_cons (T *t, Cons<T> *p)
+    : Cons<T>( t,p)
+    {
+    }
+  virtual ~Killing_cons ();
+};
+
+
+/// remove the link pointed to by *p.
+template<class T>
+Cons<T> *remove_cons (Cons<T> **pp)
+{
+  Cons<T> *knip = *pp;
+  *pp = (*pp)->next_;
+  knip->next_ = 0;
+  return knip;
+}
+
+/**
+
+   Invariants:
+
+   (*tail_) is either the head_ pointer, or a next_ pointer from the list.
+   
+   **tail_ == NULL
+ */
+
+template<class T>
+class Cons_list
+{
+public:
+  Cons<T> * head_;
+  Cons<T> ** tail_;
+  Cons_list () { init_list (); }
+  void init_list () {head_ =0; tail_ = &head_; }
+  void append (Cons<T> *c)
+    {
+      assert (!c->next_);
+      *tail_ = c;
+      while (*tail_)
+       tail_ = &(*tail_)->next_;
+    }
+  /**
+     PRE: *pp should either be the head_ pointer, or the next_ pointer
+     from a list cell.
+  */
+  Cons<T> *remove_cons (Cons<T> **pp)
+    {
+      if (&(*pp)->next_ == tail_)
+       tail_ = pp;
+
+      return ::remove_cons (pp);
+    }
+  void junk ()
+    {
+      delete head_;
+      head_ =0;
+    }
+  ~Cons_list () { junk (); }
+};
+
+
+template<class T>
+void  copy_killing_cons_list (Cons_list<T>&, Cons<T> *src);
+template<class T>
+void
+clone_killing_cons_list (Cons_list<T>&, Cons<T> *src);
+
+template<class T> int cons_list_size_i (Cons<T> *l)
+{
+  int i=0;
+  while  (l)
+    {
+      l = l->next_;
+       i++;
+    }
+  return i;
+}
+
+
+
+
+#endif /* CONS_HH */
+
index ef497f1c757185607eefb6d23d395572e99fdaa4..3ce52c944ca2a43e066c95282822aca08ce6d8f6 100644 (file)
 
 unsigned int int_hash (int);
 unsigned long prime_list (int idx);
+
+template<class K>
+unsigned int
+pointer_hash (K *p)
+{
+  return int_hash ((unsigned int) p);
+}
+
 template<class K, class V>
 struct Hash_table_entry
 {
@@ -71,16 +79,19 @@ public:
   /// remove #s# from the hash table.  
   V remove (K s, unsigned int initial_hash)
     {
-      assert (false);          // Untested routine.
       int sz =dict_arr_.size ();
       int i = initial_hash % sz;
       int j = 0;
       V retval;
+
+      /*
+       duplicate with lookup, but we need value of j
+       */
+      
       while (j <= sz/2 && dict_arr_[i].key_ != s)
        {
          assert (!dict_arr_[i].free_b_);
-           
-       
+
          j ++;
          i = (i + j*j) % sz;
        }
@@ -187,8 +198,8 @@ public:
   V const_elem (K k) const
   {
       V retval;
-      if (elem_b (k))
-       retval = ((Hash_table<K,V>*)this)->elem (k);
+      assert (elem_b (k));
+      retval = ((Hash_table<K,V>*)this)->elem (k);
       return retval;
   }
   V& operator [] (K k)
diff --git a/flower/include/killing-cons.tcc b/flower/include/killing-cons.tcc
new file mode 100644 (file)
index 0000000..f6fcff7
--- /dev/null
@@ -0,0 +1,44 @@
+/*   
+  killing-cons.tcc -- declare Killing_cons
+  
+  source file of the GNU LilyPond music typesetter
+  
+  (c) 1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+  
+ */
+
+#ifndef KILLING_CONS_TCC
+#define KILLING_CONS_TCC
+
+#include "cons.hh"
+
+template<class T>
+Killing_cons<T>::~Killing_cons ()
+{
+  delete car_;
+}
+
+template<class T>
+void 
+copy_killing_cons_list (Cons_list<T> &dest, Cons<T> *src) 
+{
+  for (; src; src  = src->next_)
+    {
+      T *t = new T(*src->car_);
+      dest.append ( new Killing_cons<T> (t, 0));
+    }
+}
+
+template<class T>
+void
+clone_killing_cons_list (Cons_list<T> & dest, Cons<T> *src)
+{
+  for (; src; src  = src->next_)
+    {
+      T *t = src->car_->clone ();
+      dest.append (new Killing_cons<T> (t, 0));      
+    }
+}
+
+#endif /* KILLING_CONS_TCC */
+
diff --git a/input/bugs/biem.ly b/input/bugs/biem.ly
new file mode 100644 (file)
index 0000000..36a6cba
--- /dev/null
@@ -0,0 +1,32 @@
+basloopje = \notes\relative c{
+  [d,8 a' d f] [a\translator Staff=treble d f d] \translator Staff=bass 
+}
+
+
+
+lower = \type Voice=two \notes \relative c{
+  <  \basloopje  >
+}
+\score {
+    \type PianoStaff < 
+\notes      \type Staff = treble { c1  }
+
+      \type Staff = bass <
+       \clef bass;
+        \lower
+      >
+    >
+
+  \paper {
+    gourlay_maxmeasures = 4.;
+    indent = 8.\mm;
+    textheight = 295.\mm;
+
+    % no slur damping
+    slur_slope_damping = 100.0;
+  }
+  \midi {
+    \tempo 4 = 54;
+  }
+}
+
index d618a2073f65c0a8f111e5816c89dc041c4e7913..789a6e3aa900997aab09bf5ec3dba7cdf71d44ae 100644 (file)
@@ -1,5 +1,5 @@
 
-       \version "1.0.14";
+\version "1.0.14";
 
 onestaff = \type Staff = foo\notes  {
        \property Staff.instr = instr
@@ -29,4 +29,6 @@ stscore = \score { \onestaff \paper {
 }}
 
 %\score {\stscore}
-\score {\scscore}
+\score {\scscore
+\header { title = "bar scripts"; }
+}
diff --git a/input/test/big-test.ly b/input/test/big-test.ly
new file mode 100644 (file)
index 0000000..71e43ba
--- /dev/null
@@ -0,0 +1,16 @@
+
+\score { 
+\notes \relative c {
+\include "noteheadstyle.fly"
+}\header { title = "notehead style"; }
+}
+
+\score { 
+\notes \relative c {
+\include "number-staff-lines.fly"
+}\header { title = "number of staff lines"; }
+}
+
+\include "bar-scripts.ly"
+
+\include "font20.ly" 
index d8603fb2cfebd52d65ea605a8d6d37a22e38db3a..8578815cf71356f00c108a41bde7524d662754b2 100644 (file)
@@ -3,8 +3,8 @@
 FontBody=      \notes\transpose c''{ 
                \bar "|:";
                \time 4/4;
-               \type Staff  < { \stemup e'\longa a\breve | }
-               { \stemdown
+               \type Staff  < \type Voice = VB { \stemup e'\longa a\breve | }
+               \type Voice = VA { \stemdown
                c1 \clef "bass"; b,, \clef "violin"; c' a'
                c2 \clef "alto"; g c' \clef "violin"; a'
                } >
@@ -12,7 +12,7 @@ FontBody=     \notes\transpose c''{
                c4 g c' a' \bar ":|";
                a\ppp-\upbow a\pp-\downbow a\p^\turn a\mp^\fermata |
                a\mf_\fermata a\f-\stopped a\ff-\open a\fff^\trill|
-               a\fp-\reverseturn a4.\sf a4.\sfz | % a\fz a\rf
+               a\fp-\reverseturn a4.\sf a4.\sfz |  a\fz % a\rf
                [c8-\prall c-\mordent] [a'-\prallmordent a'-\prallprall]
                [c-\upprall a'-\downprall] [a' c] |
                [c \< d e f] [as' ges' f' e']
@@ -20,9 +20,9 @@ FontBody=     \notes\transpose c''{
                \clef "bass";
                  r\longa * 1/4 r\breve *1/2
                  r1 r2 r4 r8 r16 r32 r64 r128 r128 |
-               \type Staff < { \stemup r2 r2} {\stemdown c c }>
-               \type Staff < { \stemup c,,1 } {\stemdown r1}>          
-               \stemboth
+               \type Staff < \type Voice = VA { \stemup r2 c'2 c,,,1 }
+                               \type Voice = VB {\stemdown r2 c2  r1 }>
+                       \stemboth
                \clef "violin";
                e8_. g'8-> e16^^ g'16_^ 
                e32 _| g'32^| g''32-\ltoe g''32-\lheel
@@ -31,8 +31,13 @@ FontBody=    \notes\transpose c''{
                \transpose c'{
                        \time 4/4;
                        \property Voice . textstyle =  "finger"
-                       c4^"1" d^"2" e^"3" f^"4" g^"5"
-
+                       \property Voice . noteHeadStyle = "diamond"
+                       c1^"1" d2^"2" e4^"3"
+                       \property Voice . noteHeadStyle = "cross"
+                                                f4^"4"
+                       \property Voice . noteHeadStyle = "harmonic"
+                                                 g4^"5"
+                       \property Voice . noteHeadStyle = ""
                        % Music to the Martians!
                        < bes4^"6" e_"7" c_"8" >
                        a^"0"_"9"
index 49c4db509877e69a5c02272f9cc83df48be39843..0a742345a79a994d504dd55b36953acd499cd078 100644 (file)
@@ -8,6 +8,7 @@ description = "This file tests the Feta music font";
 }
 
 \version "1.0.14";
+\include "paper16.ly"
 \include "font-body.ly"
 
 \score{
@@ -15,6 +16,7 @@ description = "This file tests the Feta music font";
        \paper{ 
            % don't change this.
            % otherwise 16pt and 20pt layouts differ.
+           \paper_sixteen
            linewidth = 12.5 \cm;
            gourlay_maxmeasures =5.;
        }
index 0ab043ba5656ffec10103242b87f3d2befbaa102..3acad5cad57c7bbd297e5a205b8a7711e4c2fe31 100644 (file)
@@ -24,11 +24,9 @@ toeter_ii = \notes \relative c {
        g g g g
 }
 
-toeters = \type StaffGroup = xtoeters <
-       \type Staff = toeters <
+toeters = \type Staff = toeters <
        \toeter_i
        \toeter_ii
-       >
 >
  
 zager = \type Staff = zager \notes \relative c {
diff --git a/input/test/noteheadstyle.fly b/input/test/noteheadstyle.fly
new file mode 100644 (file)
index 0000000..c1fcca0
--- /dev/null
@@ -0,0 +1,10 @@
+
+c''4 c2 c8  c16 c16 c1 
+\property Voice.noteHeadStyle = "diamond"
+c4 c2 c8  c16 c16  c1
+\property Voice.noteHeadStyle = "transparent"
+c4 c2 c8  c16 c16  c1
+\property Voice.noteHeadStyle = "cross"
+c4 c2 c8  c16 c16  c1
+\property Voice.noteHeadStyle = "harmonic"
+c4 c2 c8  c16 c16  c1
index 50e188e55b416701cc77c2dfadd0769f4e27a0f3..4794afadc7f8b869f314af2898b3b0b1cb15bfd1 100644 (file)
@@ -1,2 +1,2 @@
 
-c c c \property Staff . numberOfStaffLines = 3
+c' c c \property Staff . numberOfStaffLines = 3
index 395a9d8bb46602c215e39c75a72f5213a537897a..7f4a21e7d1cabd2f118fbb8ae50ee08d69880d05 100644 (file)
@@ -5,9 +5,9 @@
 
 #ifndef SOURCE_HH
 #define SOURCE_HH
-
+#include "cons.hh"
 #include "proto.hh"
-#include "plist.hh"
+
 
 class Sources 
 {
@@ -22,7 +22,7 @@ public:
 
 private:
   const File_path * path_C_;
-  Pointer_list<Source_file*> sourcefile_p_list_;
+  Cons<Source_file> *sourcefile_p_list_;
   bool binary_b_ ;
 };
 
index ead33c63a952a7f9faf2b591abc0654c3c7a8043..66372945de4cc60ac2e7f8f47049828b83a4bdcc 100644 (file)
@@ -8,11 +8,10 @@
 
 
 #include <assert.h>
-
+#include "killing-cons.tcc"
 #include "binary-source-file.hh"
 #include "string.hh"
 #include "proto.hh"
-#include "plist.hh"
 #include "source-file.hh"
 #include "source.hh"
 #include "file-path.hh"
@@ -62,7 +61,7 @@ Sources::get_file_l (String &file_str) //UGH
 void
 Sources::add (Source_file* sourcefile_p)
 {
-  sourcefile_p_list_.bottom ().add (sourcefile_p);
+  sourcefile_p_list_ = new Killing_cons<Source_file> (sourcefile_p, sourcefile_p_list_);
 }
 
 /**
@@ -73,10 +72,10 @@ Sources::add (Source_file* sourcefile_p)
 Source_file*
 Sources::sourcefile_l (char const* ch_C)
 {
-  PCursor<Source_file*> sourcefile_l_pcur (sourcefile_p_list_.top ());
-  for (; sourcefile_l_pcur.ok (); sourcefile_l_pcur++)
-    if (sourcefile_l_pcur->in_b (ch_C))        
-      return *sourcefile_l_pcur;
+
+  for (Cons<Source_file> *i = sourcefile_p_list_; i; i = i->next_)
+    if (i->car_->in_b (ch_C))  
+      return i->car_;
   return 0;
 }
 
diff --git a/lib/template.cc b/lib/template.cc
deleted file mode 100644 (file)
index 3f6b91c..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
-  template.cc -- instantiate Pointer_list<Source_file*>
-
-  source file of the GNU LilyPond music typesetter
-
-  (c)  1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-*/
-
-#include "config.hh"
-#include "source-file.hh"
-#include "plist.tcc"
-#include "pcursor.tcc"
-#include "cursor.tcc"
-#include "list.tcc"
-
-#ifdef NEED_EXPLICIT_INSTANTIATION
-LIST_INSTANTIATE (void *);
-#endif
-
-POINTERLIST_INSTANTIATE (Source_file);
-
index b2ff4b8e75adf23cf46648180938457522c187dd..58f2fbe86a33c5e029c10c5f876c9833270d4850 100644 (file)
@@ -30,8 +30,16 @@ Abbreviation::do_print () const
 Molecule*
 Abbreviation::do_brew_molecule_p () const
 {
-  Real interbeam_f = paper_l ()->interbeam_f (stem_l_->mult_i_);
-  Real w = 1.5 * lookup_l ()->ball (2).dim_.x ().length ();
+  Beam * b = stem_l_->beam_l_;
+  int mult =0;
+  if (b)
+    {
+      Stem_info i = b->get_stem_info (stem_l_);
+      mult = i.mult_i_;
+    }
+  
+  Real interbeam_f = paper_l ()->interbeam_f (mult);
+  Real w = 1.5 * lookup_l ()->notehead (2, "").dim_.x ().length ();
   Real space = stem_l_->staff_line_leading_f ();
   Real internote_f = space/2;
   
index 6f67fab90a7a2c13a242055dbaae670659f8cc49..4b58b02be4b9c3857eead02fa81a0719cac17c47 100644 (file)
@@ -88,7 +88,8 @@ Abbreviation_beam_engraver::acknowledge_element (Score_element_info i)
 
   abeam_p_->multiple_i_ = s->flag_i_;
   if (s->type_i () != 1) // no abbrev gaps on half note
-    s->beam_gap_i_ = s->flag_i_ - ((s->type_i () >? 2) - 2);
+    s->set_elt_property (beam_gap_scm_sym,
+                        gh_int2scm(s->flag_i_ - ((s->type_i () >? 2) - 2)));
 
   abeam_p_->add_stem (s);
 }
index d9984847a60fbcaa0258854ce3e75f598f4114bb..8ba8b9703fe66b26fbc702924bd9237ee87eaa00 100644 (file)
@@ -122,9 +122,12 @@ Adobe_font_char_metric dummy_static_char_metric;
 Adobe_font_char_metric const &
 Adobe_font_metric::find_char (String nm, bool warn) const
 {
-  if (warn && !name_to_metric_dict_.elem_b (nm))
+  if (!name_to_metric_dict_.elem_b (nm))
     {
-      warning (_f ("can't find character called `%s'", nm.ch_C()));
+      if (warn)
+       {
+         warning (_f ("can't find character called `%s'", nm.ch_C()));
+       }
       return dummy_static_char_metric;
     }
   
index b637ebd5d0fab21dd7d5e8e39175928aeb3a0182..dc41b5de7f294dd754eaa9beb12e50f2d25e96fb 100644 (file)
 #include "interval.hh"
 #include "direction.hh"
 #include "debug.hh"
+#include "hash-table-iter.hh"
 
 struct Align_element_content {
-  Score_element * elem_l_;
+  Graphical_element * elem_l_;
   int priority_i_;
   
   static int compare (Align_element_content const &h1, 
@@ -20,7 +21,7 @@ struct Align_element_content {
     {
       return h1.priority_i_ - h2.priority_i_;
     }
-  Align_element_content (Score_element *elem_l, int p) 
+  Align_element_content (Graphical_element *elem_l, int p) 
     {
       priority_i_ = p;
       elem_l_ = elem_l;
@@ -36,7 +37,7 @@ struct Align_element_content {
 void
 Align_element::add_element (Score_element*el_l)
 {
-  int p = priority_i_arr_.size ();
+  int p = elem_l_arr_.size ();
   add_element_priority (el_l, p);
 }
 
@@ -44,8 +45,8 @@ void
 Align_element::add_element_priority (Score_element *el, int p)
 {
   assert (! contains_b (el));
-  elem_l_arr_.push (el);
-  priority_i_arr_.push (p);
+  Axis_group_element::add_element (el);
+  priority_i_hash_[el] = p;
   add_dependency (el);
 }
 
@@ -53,30 +54,32 @@ void
 Align_element::do_substitute_element_pointer (Score_element*o,
                                              Score_element*n)
 {
-  int i;
-  while ((i = elem_l_arr_.find_i (o))>=0) 
-    if (n) 
-      elem_l_arr_[i] = n;
-    else
-      elem_l_arr_.del (i);
-
+  Axis_group_element :: do_substitute_element_pointer (o,n);
   if (o == center_l_)
     {
       center_l_ = n;
     }
+  if (priority_i_hash_.elem_b (o))
+    {
+      priority_i_hash_[n] = priority_i_hash_[o];
+      /*
+       Huh? It seems the old pointers are still used.  Why?
+       */
+      // priority_i_hash_.remove (o);
+    }
 }
 
 void
 Align_element::do_post_processing()
 {
-  if (axis_ == Y_AXIS)
+  if (axis () == Y_AXIS)
     do_side_processing ();
 }
 
 void
 Align_element::do_pre_processing ()
 {
-  if (axis_ == X_AXIS)
+  if (axis () == X_AXIS)
     do_side_processing ();
 }
 
@@ -85,19 +88,22 @@ Align_element::do_side_processing ()
 {
   sort_elements ();
   Array<Interval> dims;
-  
+
+  Link_array<Score_element> elems;
   for (int i=0; i < elem_l_arr_.size(); i++) 
     {
-      Interval y = elem_l_arr_[i]->extent(axis_) ;
-      if (y.empty_b())
-       y = Interval (0,0);
-       
-      dims.push (y);
+      Interval y = elem_l_arr_[i]->extent(axis ());
+      if (!y.empty_b())
+       {
+         dims.push (y);
+         Score_element *e =dynamic_cast<Score_element*>(elem_l_arr_[i]);
+         elems.push (e);
+       }
     }
 
   Real where_f=0;
   Real center_f = 0.0;
-  for (int i=0 ;  i < elem_l_arr_.size(); i++) 
+  for (int i=0 ;  i < elems.size(); i++) 
     {
       Real dy = - stacking_dir_ * dims[i][-stacking_dir_];
       if (i)
@@ -109,33 +115,48 @@ Align_element::do_side_processing ()
            <? threshold_interval_[BIGGER];
        }
 
-      
       if (!i && align_dir_ == LEFT)
        center_f = where_f;
-      else if (align_dir_ == CENTER && elem_l_arr_[i] == center_l_)
+      else if (align_dir_ == CENTER && elems[i] == center_l_)
        center_f = where_f;
 
       where_f += stacking_dir_ * dy;
-      elem_l_arr_[i]->translate_axis (where_f, axis_);
+      elems[i]->translate_axis (where_f, axis ());
     }
 
+  if (dims.size ())
+    where_f += dims.top ()[stacking_dir_];
   if (align_dir_ == RIGHT)
     center_f = where_f;
-  
+  else if (align_dir_ == CENTER && !center_l_)
+    center_f = where_f / 2;
+    
   if (center_f)
-    for  (int i=0 ;  i < elem_l_arr_.size(); i++)
-      elem_l_arr_[i]->translate_axis (- center_f, axis_);
+    translate_axis ( - center_f, axis ());
+
+  dim_cache_[axis ()].invalidate ();
 }
 
 Align_element::Align_element()
 {
+  ordered_b_ = true;
   threshold_interval_ = Interval (0, Interval::infinity ());
-  set_elt_property (transparent_scm_sym, SCM_BOOL_T);
-  set_empty (true);
   stacking_dir_ = DOWN;
-  align_dir_ = LEFT;
-  axis_ = X_AXIS;
+  align_dir_ = CENTER;
   center_l_ =0;
+  priority_i_hash_.hash_func_ = pointer_hash;
+}
+
+Axis
+Align_element::axis () const
+{
+  return axes_[0];
+}
+
+void
+Align_element::set_axis (Axis a)
+{
+  set_axes (a,a);
 }
 
 
@@ -149,17 +170,21 @@ void
 Align_element::sort_elements ()
 {
   Array<Align_element_content> content;
-  for  (int i =0; i < elem_l_arr_.size(); i++) 
-    content.push (Align_element_content (elem_l_arr_[i], priority_i_arr_[i]));
+  for  (int i =0; i < elem_l_arr_.size(); i++)
+    {
+      Score_element * e = dynamic_cast<Score_element*> (elem_l_arr_[i]);
+      assert (priority_i_hash_.elem_b (e));
+      int p = priority_i_hash_[e];
+      content.push (Align_element_content (e, p));
+    }
   content.sort (Align_element_content::compare);
   
   elem_l_arr_.clear();
-  priority_i_arr_.clear();
+  priority_i_hash_.clear();
 
   for  (int i =0; i < content.size(); i++) 
     {
       elem_l_arr_.push (content[i].elem_l_);
-      priority_i_arr_.push (content[i].priority_i_);
     }
 }
 
@@ -176,10 +201,19 @@ Align_element::do_print () const
 Score_element*
 Align_element::get_elt_by_priority (int p) const
 {
-  for (int i=0; i < priority_i_arr_.size (); i++)
+  for (Hash_table_iter<Score_element*, int>  i(priority_i_hash_); i.ok (); i++)
     {
-      if (priority_i_arr_[i] == p)
-       return elem_l_arr_[i];
+      if (i.val () == p)
+       return i.key();
     }
   return 0;
 }
+
+int
+Align_element::get_priority (Score_element* e) const
+{
+  if ( priority_i_hash_.elem_b (e))
+    return priority_i_hash_[e];
+  else
+    return elem_l_arr_.find_i (e);
+}
index 1396f68e752cc61f244281f2857493d6902f5fa4..c38fd2c5313edc1d1e1409cdb33867e11c67e9fe 100644 (file)
@@ -179,16 +179,6 @@ Auto_beam_engraver::create_beam_p ()
   if (prop.isnum_b ()) 
     beam_p->quantisation_ = (Beam::Quantisation)(int)prop;
  
-  // must set minVerticalAlign = = maxVerticalAlign to get sane results
-  // see input/test/beam-interstaff.ly
-  prop = get_property ("minVerticalAlign", 0);
-  if (prop.isnum_b ())
-    beam_p->vertical_align_drul_[MIN] = prop;
-
-  prop = get_property ("maxVerticalAlign", 0);
-  if (prop.isnum_b ())
-    beam_p->vertical_align_drul_[MAX] = prop;
-
   announce_element (Score_element_info (beam_p, 0));
   return beam_p;
 }
diff --git a/lily/axis-align-item.cc b/lily/axis-align-item.cc
new file mode 100644 (file)
index 0000000..a8859ba
--- /dev/null
@@ -0,0 +1,14 @@
+/*   
+  axis-align-item.cc --  implement 
+  
+  source file of the GNU LilyPond music typesetter
+  
+  (c) 1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+  
+ */
+
+#include "axis-align-item.hh"
+
+Axis_align_item::Axis_align_item ()
+{
+}
diff --git a/lily/axis-align-spanner.cc b/lily/axis-align-spanner.cc
new file mode 100644 (file)
index 0000000..4aaf48e
--- /dev/null
@@ -0,0 +1,13 @@
+/*   
+  axis-align-spanner.cc --  implement 
+  
+  source file of the GNU LilyPond music typesetter
+  
+  (c) 1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+  
+ */
+#include "axis-align-spanner.hh"
+
+Axis_align_spanner::Axis_align_spanner()
+{
+}
index 0bce567acaaaf952045d94141c0d6f69903ef693..cd6000b464156d2b5ce33bb6fe81fd6279ff6d6e 100644 (file)
@@ -53,17 +53,40 @@ Axis_group_element::do_print() const
   Graphical_axis_group::do_print();
 }
 
-Axis_group_element::Axis_group_element(Axis a1, Axis a2)
-  : Graphical_axis_group (a1,a2)
+Axis_group_element::Axis_group_element()
 {
   set_elt_property (transparent_scm_sym, SCM_BOOL_T);
 }
 
-Axis_group_element::Axis_group_element ()
-  : Graphical_axis_group (X_AXIS, Y_AXIS)
+void
+Axis_group_element::set_axes (Axis a1, Axis a2)
 {
-  set_elt_property (transparent_scm_sym, SCM_BOOL_T);
+  Graphical_axis_group::set_axes (a1,a2);
+  dim_cache_[X_AXIS].set_empty ((a1 != X_AXIS && a2 != X_AXIS));
+  dim_cache_[Y_AXIS].set_empty ((a1 != Y_AXIS && a2 != Y_AXIS));
 }
 
 
+void
+Axis_group_element::do_substitute_element_pointer (Score_element*o,
+                                                  Score_element*n)
+{
+  int i;
+  while ((i = elem_l_arr_.find_i (o))>=0) 
+    if (n) 
+      elem_l_arr_[i] = n;
+    else
+      elem_l_arr_.del (i);
+}
+
+Interval
+Axis_group_element::do_height () const
+{
+  return Graphical_axis_group::extent (Y_AXIS);
+}
 
+Interval
+Axis_group_element::do_width () const
+{
+  return Graphical_axis_group::extent (X_AXIS);
+}
index c78cac0e118c7d7772e842c06d7245652a1d3e65..58214f51378b51387793665c6706196400957fbb 100644 (file)
@@ -131,5 +131,8 @@ Axis_group_spanner::do_print() const
 }
 
 
-
-
+Interval
+Axis_group_spanner::do_width () const
+{
+  return Spanner::do_width ();
+}
index 71655de8e16ebe774472356c3de2ffebeee836f2..434f5bb88da82269816579573415ab56cbce8f23 100644 (file)
@@ -38,15 +38,7 @@ Bar_engraver::do_try_music (Music*r_l)
 
 }
 
-void
-Bar_engraver::acknowledge_element (Score_element_info i)
-{
-  if (Bar *b = dynamic_cast<Bar *> (i.elem_l_))
-    {
-      // only bar-engraver should create bars
-      assert (0);
-    }
-}
+
 
 void
 Bar_engraver::create_bar ()
@@ -69,7 +61,7 @@ Bar_engraver::create_bar ()
       Scalar prop = get_property ("barAtLineStart", 0);
       if (prop.to_bool ())
        {
-         bar_p_->at_line_start_b_ = true;
+         bar_p_->set_elt_property (at_line_start_scm_sym, SCM_BOOL_T);
        }
       announce_element (Score_element_info (bar_p_, bar_req_l_));
     }
index a623c132e582fef1025a49447ce73cff1671108d..2fc8e86b177098475dc367d1b58ee49fd9ea6691 100644 (file)
@@ -138,7 +138,7 @@ Bar_script_engraver::create_items (Request *rq)
   Scalar padding = get_property (type_ + "ScriptPadding", 0);
   if (padding.length_i() && padding.isnum_b ())
     {
-      staff_side_p_->padding_f_ = Real(padding);
+      staff_side_p_->set_elt_property (padding_scm_sym, gh_double2scm(Real(padding)));
     }
 
   
index 7fb6d30530978244132d3eefa75bce3261c042e3..1d572e235e8ec5baca5fa4c906c22b1d18e8ccf5 100644 (file)
@@ -18,7 +18,6 @@ Bar::Bar ()
 {
   set_elt_property (breakable_scm_sym, SCM_BOOL_T);
   type_str_ = "|";
-  at_line_start_b_ = false;
 }
 
 void
@@ -57,7 +56,7 @@ static char const *bar_breaks[][3] ={
   {":|", ":|", ""},
   {"||", "||", ""},
   {".|.", ".|.", ""},
-  {"", "scorebar", "|"},
+  {"", "scorebar", "scorepostbreak"},
   {"", "{", "{"},
   {"", "[", "["},  
   {0,0,0}
@@ -71,7 +70,8 @@ Bar::do_pre_processing ()
       if (bar_breaks[i][1] == type_str_)
        {
          type_str_ = bar_breaks[i][break_status_dir ()+1];
-         if (at_line_start_b_ && (break_status_dir () == RIGHT) && (type_str_ == ""))
+         if (remove_elt_property (at_line_start_scm_sym)!= SCM_BOOL_F
+             && (break_status_dir () == RIGHT) && (type_str_ == ""))
            {
              type_str_ = "|";
            }
index e0716f15f2179fe6b111b8519711b0df0c2d9bb6..53aa547cd59427ab07451c7b7c9053a01b988d59 100644 (file)
@@ -9,7 +9,7 @@
 #include "lily-guile.hh"
 #include "span-bar.hh"
 #include "base-span-bar-engraver.hh"
-#include "vertical-align-spanner.hh"
+#include "axis-align-spanner.hh"
 
 Base_span_bar_engraver::Base_span_bar_engraver()
 {
@@ -71,10 +71,10 @@ Base_span_bar_engraver::acknowledge_element (Score_element_info i)
            spanbar_p_-> type_str_ = bar_l_arr_[0]->type_str_;
        }
     }
-  else if  (dynamic_cast<Vertical_align_spanner *> (i.elem_l_) 
+  else if  (dynamic_cast<Axis_align_spanner *> (i.elem_l_) 
            && i.origin_grav_l_arr_.size() <= 2) 
     {
-      valign_l_ = dynamic_cast<Vertical_align_spanner *> (i.elem_l_);
+      valign_l_ = dynamic_cast<Axis_align_spanner *> (i.elem_l_);
     }
 }
 
index 9afca27c9f750b5083aef816673ca661ec4b7826..4260dfc44c72a5adf20bfb63ec666665757c5b53 100644 (file)
@@ -79,16 +79,6 @@ Beam_engraver::do_process_requests ()
       if (prop.isnum_b ()) 
        beam_p_->quantisation_ = (Beam::Quantisation)(int)prop;
  
-      // must set minVerticalAlign == maxVerticalAlign to get sane results
-      // see input/test/beam-interstaff.ly
-      prop = get_property ("minVerticalAlign", 0);
-      if (prop.isnum_b ())
-       beam_p_->vertical_align_drul_[MIN] = prop;
-
-      prop = get_property ("maxVerticalAlign", 0);
-      if (prop.isnum_b ())
-       beam_p_->vertical_align_drul_[MAX] = prop;
-
       announce_element (Score_element_info (beam_p_, reqs_drul_[START]));
     }
 }
index d5f9d9e9a9c7ecde26fb6ce9cced66175b229b9a..53a5eb34e9176694d0d73f4326c0bb704144c394 100644 (file)
 
 /*
   [TODO]
-    * centre beam symbol
+    * center beam symbol
     * less hairy code
     * redo grouping 
- */
+
+TODO:
+
+The relationship Stem <-> Beam is way too hairy.  Let's figure who
+needs what, and what information should be available when.
+
+    */
 
 #include <math.h>
 
-#include "p-col.hh"
-#include "array.hh"
 #include "proto.hh"
 #include "dimensions.hh"
 #include "beam.hh"
-#include "abbreviation-beam.hh"
 #include "misc.hh"
 #include "debug.hh"
 #include "molecule.hh"
@@ -39,13 +42,17 @@ Beam::Beam ()
   left_y_ = 0;
   quantisation_ = NORMAL;
   multiple_i_ = 0;
-  vertical_align_drul_[MIN] = 0;
-  vertical_align_drul_[MAX] = -1;
 }
 
 void
 Beam::add_stem (Stem*s)
 {
+#if 0
+  if (!stems_.size ())
+    {
+      dim_cache_[Y_AXIS].parent_l_ = &s->dim_cache_[Y_AXIS];
+    }
+#endif
   stems_.push (s);
   s->add_dependency (this);
   s->beam_l_ = this;
@@ -56,6 +63,19 @@ Beam::add_stem (Stem*s)
     set_bounds (RIGHT,s);
 }
 
+Stem_info
+Beam::get_stem_info (Stem *s)
+{
+  Stem_info i;
+  for (int i=0; i < sinfo_.size (); i++)
+    {
+      if (sinfo_[i].stem_l_ == s)
+       return sinfo_[i];
+    }
+  assert (false);
+  return i;
+}
+
 Molecule*
 Beam::do_brew_molecule_p () const
 {
@@ -81,7 +101,7 @@ Beam::do_brew_molecule_p () const
 
   // correct if last note (and therefore reference point of beam)
   // is on different staff
-  Stem_info si =   sinfo_.top ();
+  Stem_info si = sinfo_.top ();
   mol_p->translate_axis (-si.interstaff_f_ * si.stem_l_->staff_line_leading_f ()/2,
                         Y_AXIS);
 
@@ -94,7 +114,7 @@ Beam::center () const
   Stem_info si = sinfo_[0];
   
   Real w= (si.stem_l_->note_delta_f () + extent (X_AXIS).length ())/2.0;
-  return Offset (w, (left_y_ + w* slope_f_) *
+  return Offset (w, ( w* slope_f_) *
                 si.stem_l_->staff_line_leading_f ()/2);
 }
 
@@ -216,9 +236,6 @@ Beam::set_default_dir ()
 void
 Beam::solve_slope ()
 {
-  /*
-    should use minimum energy formulation (cf linespacing)
-  */
   assert (sinfo_.size () > 1);
   DOUT << "Beam::solve_slope: \n";
 
@@ -284,7 +301,7 @@ Beam::set_steminfo ()
   for (int i=0; i < stems_.size (); i++)
     {
       Stem *s = stems_[i];
-      s->mult_i_ = multiple_i_;
+
       s->set_default_extents ();
       if (s->invisible_b ())
        continue;
@@ -306,7 +323,7 @@ Beam::set_steminfo ()
       if (s->invisible_b ())
        continue;
 
-      Stem_info info (s);
+      Stem_info info (s, multiple_i_);
       if (leftx == 0)
        leftx = info.x_;
       info.x_ -= leftx;
@@ -669,9 +686,13 @@ Beam::stem_beams (Stem *here, Stem *next, Stem *prev) const
       a.translate_axis( - stemdx/2, X_AXIS);
       int j = 0;
       Real gap_f = 0;
-      if (here->beam_gap_i_)
+
+      SCM gap = get_elt_property (beam_gap_scm_sym);
+      if (gap != SCM_BOOL_F)
        {
-         int nogap = rwholebeams - here->beam_gap_i_;
+         int gap_i = gh_scm2int (gap);
+         int nogap = rwholebeams - gap_i;
+         
          for (; j  < nogap; j++)
            {
              Molecule b (a);
index 9f198376d58566704f3192fb3ff8932ac4e46c72..046a95ee98812ddf1e971a61e1fd4842c02879de 100644 (file)
 #include "bezier.hh"
 #include "main.hh"
 
-
-
 Bow::Bow ()
 {
   dy_f_drul_[LEFT] = dy_f_drul_[RIGHT] = 0.0;
   dx_f_drul_[LEFT] = dx_f_drul_[RIGHT] = 0.0;
-  dash_i_ = 0;
-  interstaff_f_ = 0;
-  vertical_align_drul_[MIN] = 0;
-  vertical_align_drul_[MAX] = -1;
 }
 
 Molecule*
@@ -56,7 +50,6 @@ Bow::do_brew_molecule_p () const
 
   Molecule* mol_p = new Molecule;
   mol_p->add_molecule (a);
-  mol_p->translate_axis (-interstaff_f_, Y_AXIS);
 
   return mol_p;
 }
@@ -86,7 +79,6 @@ Bow::do_height () const
       Real y = c[i][Y_AXIS];
       iv.unite (Interval (y,y));
     }
-  iv -= interstaff_f_;
   return iv;
 }
 
index 598556daeecab28d7301cd041b1b4ba2dca6c6cf..8fd12ab3b6096355aa32aace57a436cf52a588d3 100644 (file)
@@ -13,9 +13,13 @@ void
 Break_align_item::do_pre_processing()
 {
   align_dir_ = break_status_dir();
-  threshold_interval_[SMALLER] = 1.5 PT;
   flip (&align_dir_);
-  Horizontal_align_item::do_pre_processing();
+  Axis_align_item::do_pre_processing();
 }
 
-
+Break_align_item::Break_align_item ()
+{
+  stacking_dir_ = RIGHT;
+  threshold_interval_[SMALLER] = 1.5 PT;
+  set_axis (X_AXIS);
+}
index e08ce282e65f36f5a6a0996b824446ab52beadef..03594ceed338a2e92701c02f04346c987458e424 100644 (file)
@@ -9,7 +9,7 @@
 #include "chord.hh"
 #include "warn.hh"
 
-// doesn't seem common, and we should know about this during purple hit
+// doesn't seem common, and we should know about this during parsing
 // #define INVERSION_ADDED_AS_BASE 1
 
 Chord::Chord (Array<Musical_pitch> pitch_arr)
index b995639eda8cac00f4a8757f2d8a8b0181e0cb66..706301aad1bd674051a19744d6dc528106a0e4fd 100644 (file)
@@ -13,6 +13,7 @@
 
 Collision::Collision()
 {
+  set_axes (X_AXIS, Y_AXIS);
 }
 
 void
index c2e1d912b036b83c90d4cee6588d2e9aadd4be86..b673b77092de22500c2a77fbef8c8d56658ba2ea 100644 (file)
@@ -54,3 +54,8 @@ Dot_column::do_pre_processing ()
 }
 
 
+
+Dot_column::Dot_column ()
+{
+  set_axes(X_AXIS,X_AXIS);
+}
index 02f5b2868601e85913ab1ec1e376c626161c8050..452d825aa6473c364d94c3e6bce842d4802098d2 100644 (file)
@@ -16,6 +16,7 @@
 #include "staff-symbol.hh"
 #include "note-head.hh"
 #include "debug.hh"
+#include "align-element.hh"
 
 Encompass_info::Encompass_info ()
 {
@@ -62,20 +63,36 @@ Encompass_info::Encompass_info (Note_column const* note, Direction dir, Slur con
   if (stem_l->dir_ != dir)
     o_.y () += 1.0 * internote * dir;
 
-  if (slur_l->encompass_arr_.size ()
-      && stem_l->staff_symbol_l () != slur_l->encompass_arr_[0]->stem_l_->staff_symbol_l ())
+
+  Dimension_cache *common = note->common_group (slur_l, Y_AXIS);
+  Align_element * align = dynamic_cast<Align_element*> (common->element_l ());
+  if (align && align->axis() == Y_AXIS)
     {
-      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 */
-      int d = note->head_l_arr_.top ()->position_i_
-       - slur_l->encompass_arr_[0]->head_l_arr_[0]->position_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 ())
+      if (align->threshold_interval_[MIN] != 
+         align->threshold_interval_[MAX])
+       warning (_ ("minVerticalAlign != maxVerticalAlign: interstaff beams/slurs may be broken"));
+
+      interstaff_f_ = align->threshold_interval_[MIN];
+
+      Dimension_cache * slur_refpoint = &slur_l->dim_cache_[Y_AXIS];
+      Dimension_cache * note_refpoint = &note->dim_cache_[Y_AXIS];
+
+      while (slur_refpoint->parent_l_ != common)
+       slur_refpoint = slur_refpoint->parent_l_;
+      while (note_refpoint->parent_l_ != common)
+       note_refpoint = note_refpoint->parent_l_;
+
+
+      int slur_prio =
+       align->get_priority (dynamic_cast<Score_element*> (slur_refpoint->element_l ()));
+      int stem_prio =
+       align->get_priority (dynamic_cast<Score_element*> (note_refpoint->element_l ()));
+
+      /*
+       our staff is lower -> interstaff_f_ *= -1
+       */
+      // ? Is this OK?
+      if (slur_prio < stem_prio)
        interstaff_f_ *= -1;
       o_.y () += interstaff_f_;
     }
index 4c3920dca1afa9c6c6b324fc68b8c543ffc5691c..20812e55ad33b661c37cd42cd5f563cca3758050 100644 (file)
@@ -15,7 +15,7 @@ G_staff_side_item::G_staff_side_item ()
   dir_ = CENTER;
   to_position_l_ = 0;
   set_elt_property (transparent_scm_sym, SCM_BOOL_T);
-  padding_f_ = 0;
+
   axis_ = Y_AXIS;
 }
 
@@ -86,8 +86,13 @@ G_staff_side_item::position_self ()
       common = dim_cache_[axis_].parent_l_;
     }
   Interval sym_dim = to_position_l_->extent (axis_);
-  Real off = dim_cache_[axis_].relative_coordinate (common) - padding_f_ * dir_;
-  
+  Real off = dim_cache_[axis_].relative_coordinate (common);
+
+  SCM pad =   remove_elt_property (padding_scm_sym);
+  if (pad != SCM_BOOL_F)
+    {
+      off -= gh_scm2double (SCM_CDR(pad)) * dir_;
+    }
   dim_cache_[axis_].set_offset (dim[dir_] - sym_dim[-dir_] - off);
 }
 
index c6a6137d3c776a5c7c77ceca1429d1e8c9d1a630..b26e8055187b40bbaad7c39d978bbf5156c5b732 100644 (file)
@@ -5,6 +5,7 @@
 
   (c)  1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
 */
+
 #include "interval.hh"
 #include "graphical-axis-group.hh"
 #include "axis-group-element.hh"
@@ -15,8 +16,8 @@
   Graphical_axis_group at one time.  */
 Graphical_axis_group::Graphical_axis_group (Graphical_axis_group const&s)
 {
-  axes_[0] = s.axes_[0];
-  axes_[1] = s.axes_[1];
+  axes_ = s.axes_;
+  ordered_b_ = s.ordered_b_;
 }
 
 bool 
@@ -42,6 +43,7 @@ Graphical_axis_group::add_element (Graphical_element*e)
   for (int i = 0; i < 2; i++)
     {
       Axis a = axes_[i];
+      assert (a>=0);
       Dimension_cache * &d = e->dim_cache_[a].parent_l_;
       assert (!d || d == &dim_cache_[a]);
       d = &dim_cache_[a];
@@ -57,7 +59,10 @@ void
 Graphical_axis_group::remove_element (Graphical_element*e)
 {
   assert (contains_b (e));
-  elem_l_arr_.unordered_substitute (e,0);
+  if (ordered_b_)
+    elem_l_arr_.substitute (e,0);
+  else
+    elem_l_arr_.unordered_substitute (e,0);
   
   for (int i=0; i<  2; i++)
     {
@@ -96,10 +101,16 @@ Graphical_axis_group::do_print() const
 #endif
 }
 
-Graphical_axis_group::Graphical_axis_group (Axis a1, Axis a2)
+Graphical_axis_group::Graphical_axis_group ()
 {
-  axes_[0] = a1;
-  axes_[1] = a2;
+  ordered_b_ = false;
+  axes_[0] = -1 ; 
+  axes_[1] = -1 ;
 }
 
-
+void
+Graphical_axis_group::set_axes (Axis a1, Axis a2)
+{
+  axes_[0] = a1 ; 
+  axes_[1] = a2 ;
+}
index 5fc4ede7b31710185598cb92393b510d16e026e1..2d9fe8a91603d09771f724ac64a80ca2024852da 100644 (file)
@@ -16,7 +16,8 @@ ADD_THIS_TRANSLATOR (Hara_kiri_line_group_engraver);
 void
 Hara_kiri_line_group_engraver::create_line_spanner ()
 {
-  staffline_p_ = new Hara_kiri_vertical_group_spanner;
+  staffline_p_ = new Hara_kiri_group_spanner;
+  
 }
 
 void
@@ -24,7 +25,7 @@ Hara_kiri_line_group_engraver::typeset_element(Score_element * e)
 {
   if (Rhythmic_head *h = dynamic_cast<Rhythmic_head *> (e))
     {
-      dynamic_cast<Hara_kiri_vertical_group_spanner*> (staffline_p_)
+      dynamic_cast<Hara_kiri_group_spanner*> (staffline_p_)
        ->add_interesting_item (h);
     }
   Line_group_engraver_group::typeset_element (e);
index 84872173a41ed72cc2240b2c88fae88f387b2650..5b80d2cddb44793435f1ab3841cfccb3a4db1f5d 100644 (file)
 #include "debug.hh"
 #include "item.hh"
 
-Hara_kiri_vertical_group_spanner::Hara_kiri_vertical_group_spanner()
+Hara_kiri_group_spanner::Hara_kiri_group_spanner()
 {
+  set_axes(Y_AXIS,Y_AXIS);
 }
 
 void 
-Hara_kiri_vertical_group_spanner::add_interesting_item (Item* n)
+Hara_kiri_group_spanner::add_interesting_item (Item* n)
 {
   add_dependency (n);
   interesting_items_.push (n);
 }
 
 void 
-Hara_kiri_vertical_group_spanner::do_post_processing ()
+Hara_kiri_group_spanner::do_post_processing ()
 {
   if (!interesting_items_.empty ())
     return;
@@ -39,7 +40,7 @@ Hara_kiri_vertical_group_spanner::do_post_processing ()
 }
 
 void
-Hara_kiri_vertical_group_spanner::do_substitute_element_pointer (Score_element*o, Score_element*n)
+Hara_kiri_group_spanner::do_substitute_element_pointer (Score_element*o, Score_element*n)
 {
   if (Item *it = dynamic_cast<Item *> (o))
     interesting_items_.substitute (it, dynamic_cast<Item *> (n));
@@ -47,7 +48,7 @@ Hara_kiri_vertical_group_spanner::do_substitute_element_pointer (Score_element*o
 
 
 void
-Hara_kiri_vertical_group_spanner::do_print () const
+Hara_kiri_group_spanner::do_print () const
 {
   Axis_group_spanner::do_print ();
 }
index ee5c040c3c5b50c3fb6b08820ae1b67bdbf086ae..fee3bd41b0301f22d6cfef464122e31434cb8e5e 100644 (file)
@@ -36,6 +36,7 @@ Note_heads_engraver::do_process_requests()
   if (note_p_arr_.size ())
     return ;
   
+  String noteheadstyle = get_property ("noteHeadStyle", 0);
   for (int i=0; i < note_req_l_arr_.size (); i++)
     {
       Note_head *note_p  = new Note_head;
@@ -53,10 +54,14 @@ Note_heads_engraver::do_process_requests()
       //      note_p->steps_i_ = note_req_l->pitch_.steps ();
       note_p->position_i_ = note_req_l->pitch_.steps ();
 
-      String noteheadstyle = get_property ("noteheadStyle", 0);
-      if (noteheadstyle.length_i ())
-        note_p->note_head_type_str_ = noteheadstyle;
-  
+
+      if (noteheadstyle == "transparent")
+       note_p->set_elt_property (transparent_scm_sym, SCM_BOOL_T);
+      else 
+        note_p->set_elt_property (style_scm_sym,
+                                 gh_str02scm (noteheadstyle.ch_C()));
+
+      
       Score_element_info itinf (note_p,note_req_l);
       announce_element (itinf);
       note_p_arr_.push (note_p);
diff --git a/lily/horizontal-align-item.cc b/lily/horizontal-align-item.cc
deleted file mode 100644 (file)
index 8a15780..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
-  horizontal-align-item.cc -- implement Horizontal_align_item
-
-  source file of the GNU LilyPond music typesetter
-
-  (c)  1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-*/
-
-#include "horizontal-align-item.hh"
-#include "debug.hh"
-
-
-
-void
-Horizontal_align_item::add_item (Item *i,int p)
-{
-  add_element_priority (i,p);
-}
-
-void
-Horizontal_align_item::do_print() const
-{
-#ifndef NPRINT
-  Item::do_print ();
-  Align_element::do_print ();
-#endif
-}
-
-
-Horizontal_align_item::Horizontal_align_item ()
-{
-  align_dir_ = CENTER;
-  stacking_dir_ = RIGHT;
-  axis_ = X_AXIS;
-}
diff --git a/lily/horizontal-group-element.cc b/lily/horizontal-group-element.cc
deleted file mode 100644 (file)
index 6801861..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-#include "horizontal-group-element.hh"
-#include "interval.hh"
-#include "item.hh"
-#include "debug.hh"
-
-
-
-
-Horizontal_group_element::Horizontal_group_element ()
-  : Axis_group_element (X_AXIS,X_AXIS)
-{
-}
-
-Interval
-Horizontal_group_element::do_width() const
-{
-  return Graphical_axis_group::extent (X_AXIS);
-}
-
diff --git a/lily/horizontal-group-item.cc b/lily/horizontal-group-item.cc
deleted file mode 100644 (file)
index 3919d28..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
-  horizontal-group-item.cc -- implement Horizontal_group_item
-
-  source file of the GNU LilyPond music typesetter
-
-  (c)  1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-*/
-
-#include "p-col.hh"
-#include "horizontal-group-item.hh"
-
-
-
-void
-Horizontal_group_item::do_print() const
-{ 
-  Axis_group_item::do_print(); 
-}
-
-Horizontal_group_item::Horizontal_group_item ()
-{
-  axes_[0] = axes_[1] = X_AXIS;
-}
diff --git a/lily/horizontal-vertical-group-element.cc b/lily/horizontal-vertical-group-element.cc
deleted file mode 100644 (file)
index b8b09b7..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-
-#include "horizontal-vertical-group-element.hh"
-#include "interval.hh"
-#include "item.hh"
-#include "debug.hh"
-
-Horizontal_vertical_group_element::Horizontal_vertical_group_element()
-{
-  axes_[0] = X_AXIS;
-  axes_[1] = Y_AXIS;    
-}
-
-
-
-
diff --git a/lily/horizontal-vertical-group-item.cc b/lily/horizontal-vertical-group-item.cc
deleted file mode 100644 (file)
index abb1c6f..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
-  horizontal-vertical-group-item.cc -- implement Horizontal_vertical_group_item
-
-  source file of the GNU LilyPond music typesetter
-
-  (c)  1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-*/
-
-
-#include "horizontal-vertical-group-item.hh"
-#include "p-col.hh"
-
-void
-Horizontal_vertical_group_item::do_print() const
-{
-  Horizontal_vertical_group_element::do_print();
-}
-
-
-
-Horizontal_vertical_group_item::Horizontal_vertical_group_item ()
-{
-  axes_[0] = X_AXIS;
-  axes_[1] = Y_AXIS;    
-}
index 305007eccdc197c109abdb5f6d212ed496163a7e..757ed776ee22f020f073086e34c1dc64c613e17d 100644 (file)
@@ -29,7 +29,6 @@ struct Adobe_font_char_metric : Character_metric {
   
   String str () const;
   Adobe_font_char_metric ();
-
   Box dimensions () const;
 };
 
@@ -56,7 +55,6 @@ struct Adobe_font_metric : Font_metric {
   Adobe_font_metric ();
   void read_char_metrics (Data_file &input, int size);
 
-
   Character_metric *get_char (int, bool) const;
 };
 
index fbb84f77d71b2b4771bae27335cbbbaa630cf416..edc88cab90f7a606bd4bf597e6d9d9c919437e9f 100644 (file)
 #ifndef VERTICAL_ALIGN_ITEM_HH
 #define VERTICAL_ALIGN_ITEM_HH
 
-#include "score-element.hh"
+#include "axis-group-element.hh"
 #include "interval.hh"
 #include "direction.hh"
 #include "axes.hh"
+#include "hash-table.hh"
 
 /**
   Order elements top to bottom/left to right/right to left etc..
 
   TODO: implement padding.
+
+  document usage of this.
  */
-class Align_element : virtual public Score_element {
-  Link_array<Score_element> elem_l_arr_;
-  Array<int> priority_i_arr_;
+class Align_element : public virtual Axis_group_element {
+  Hash_table<Score_element*,int> priority_i_hash_;
   void sort_elements ();
 public:
   Interval threshold_interval_ ;
@@ -34,21 +36,25 @@ public:
   Direction stacking_dir_;
 
   /**
-     Which side to align? 
-     -1: left side, 0: centered (around center_l_ if not nil), 1: right side
+     Which side to align?  -1: left side, 0: centered (around
+     center_l_ if not nil, or around center of width), 1: right side
+
+     URG. Unintuitive if stacking_dir_ == -1 
   */
 
   Direction align_dir_;
   
-  Axis axis_;
+  Axis axis () const;
   Score_element * center_l_;
   
   Align_element ();
+  void set_axis (Axis);
   void add_element (Score_element*);
   void add_element_priority (Score_element*, int);
   bool contains_b (Score_element const*) const;
 
   Score_element *get_elt_by_priority (int) const;
+  int get_priority (Score_element*) const;
 protected:
   virtual void do_print() const;
   virtual void do_substitute_element_pointer (Score_element*,Score_element*);
diff --git a/lily/include/axis-align-item.hh b/lily/include/axis-align-item.hh
new file mode 100644 (file)
index 0000000..6599194
--- /dev/null
@@ -0,0 +1,25 @@
+/*   
+  axis-align-item.hh -- declare Axis_align_item
+  
+  source file of the GNU LilyPond music typesetter
+  
+  (c) 1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+  
+ */
+
+#ifndef AXIS_ALIGN_ITEM_HH
+#define AXIS_ALIGN_ITEM_HH
+
+#include "align-element.hh"
+#include "axis-group-item.hh"
+
+class Axis_align_item : public virtual Align_element,
+                       public virtual Axis_group_item
+{
+public:
+  Axis_align_item ();
+protected:
+  virtual  void do_print () const {}
+};
+#endif /* AXIS_ALIGN_ITEM_HH */
+
diff --git a/lily/include/axis-align-spanner.hh b/lily/include/axis-align-spanner.hh
new file mode 100644 (file)
index 0000000..04ebf26
--- /dev/null
@@ -0,0 +1,25 @@
+/*
+  vertical-align-spanner.hh -- declare Vertical_align_spanner
+
+  source file of the GNU LilyPond music typesetter
+
+  (c)  1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+*/
+
+
+#ifndef VERTICAL_ALIGN_SPANNER_HH
+#define VERTICAL_ALIGN_SPANNER_HH
+
+#include "spanner.hh"
+#include "align-element.hh"
+#include "axis-group-spanner.hh"
+
+class Axis_align_spanner : public virtual Align_element,
+                          public virtual Axis_group_spanner
+{
+public:
+  VIRTUAL_COPY_CONS(Score_element);
+  Axis_align_spanner ();
+  virtual void do_print() const {}
+};
+#endif // VERTICAL_ALIGN_SPANNER_HH
index ed80677fae0bd5acd93fde85955400e8e23f62af..d38c0d19609e012a8261bb3693a9b89a12aa97ee 100644 (file)
   This is a wrapper around Axis_group_administration
   */
 class Axis_group_element : public virtual Score_element,
-                          public Graphical_axis_group {
+                          public virtual Graphical_axis_group {
 protected:
   virtual void do_print() const;
   virtual Link_array<Score_element> get_extra_dependencies() const;
 
+  virtual Interval do_height () const;
+  virtual Interval do_width () const;  
 public:
+  virtual void do_substitute_element_pointer (Score_element*,Score_element*);
   virtual Link_array<Score_element> elem_l_arr() const;
-  Axis_group_element(Axis,Axis);
-  Axis_group_element();  
+  Axis_group_element ();
+  virtual void set_axes (Axis,Axis);
+
   virtual Link_array<Score_element> get_children ();
 };
 
index 9d0852b64a028600e4ae850ed0e44cfbab51b8ad..b3701a15348025759f647929fec696386f9a3c88 100644 (file)
   A grouping item. Its special support is in do_breakable_col_processing().
  */
 
-class Axis_group_item : public virtual Axis_group_element, public Item {
+class Axis_group_item : public virtual Axis_group_element,
+                       public virtual Item {
 protected:
   virtual void do_breakable_col_processing();
   void OK() const;
   virtual void do_print() const;
+public:
+  VIRTUAL_COPY_CONS(Score_element);
 };
 
 #endif // AXIS_ITEM_HH
index 138c58787a5da57e6337dd84e707929fe872c03d..40753a8a9a2267a68d8bcd27b24ac1a8682dd78a 100644 (file)
 
 /** An element which groups a line in a certain direction. The most
   useful example of this is the Vertical_group_spanner */
-class Axis_group_spanner : public Spanner, public virtual Axis_group_element
+class Axis_group_spanner : public virtual Axis_group_element,
+                          public virtual Spanner
+
 {
   void do_break_processing_if_unbroken();
 protected:
   virtual void do_break_processing();
   virtual void do_print() const;
+  virtual Interval do_width () const;
 
 public:
-  
+  VIRTUAL_COPY_CONS(Score_element);
 };
 
 #endif // SPAN_AXIS_GROUP_HH
index 647a47e05d252db17a6ee030e98aaa1b99fbff39..bbb26c7c70562e976eb25149c1bb6c18c4fd7c5d 100644 (file)
@@ -24,7 +24,6 @@ public:
   void request_bar (String type_str);
     
 protected:
-  virtual void acknowledge_element (Score_element_info i);
   virtual void do_creation_processing ();
   virtual void do_removal_processing ();
   virtual bool do_try_music (Music *req_l);
index 08e48d2f6e31a48340d4bc767bbdeb08fa931868..3c43bc0dcd92139465b020c96fc12e564a00b18c 100644 (file)
@@ -14,9 +14,6 @@
 class Bar:public Item {
 public:
   String type_str_;
-  bool at_line_start_b_;
-
-  
   VIRTUAL_COPY_CONS(Score_element);
   Bar ();
 
@@ -24,6 +21,7 @@ protected:
   virtual void do_pre_processing ();
   virtual Molecule* do_brew_molecule_p () const;
   virtual Real get_bar_size () const;
+
 private:
   void do_print () const;
 };
index cf992c8fb9d5df33c2401a9378f6122823199fd4..47c274d758c2528a74d6825d8f7d517f794acf85 100644 (file)
@@ -11,7 +11,7 @@
 #define SPAN_BAR_GRAV_HH
 
 #include "engraver.hh"
-
+class Axis_align_spanner;
 /** 
 
   Make bars that span multiple "staffs". Catch bars, and span a
@@ -22,7 +22,7 @@ class Base_span_bar_engraver : public Engraver
 {
   Span_bar * spanbar_p_;
   Array<Bar*> bar_l_arr_;
-  Vertical_align_spanner * valign_l_;
+  Axis_align_spanner * valign_l_;
 public:
   VIRTUAL_COPY_CONS(Translator);
   
index 3b99b4e08301c15d46ab40ed08f5d73ef134c375..fcf477430e5241d3f3ee0ce5e0a4bd9a167ee56f 100644 (file)
@@ -51,13 +51,11 @@ public:
   /// maximum number of beams (for opening-up of beam-spacing)
   int multiple_i_;
 
-  /// vertical align distance between staffs
-  Drul_array<Real> vertical_align_drul_;
-
   Array<Stem_info> sinfo_;
   
   Beam();
   void add_stem (Stem*);
+  Stem_info get_stem_info (Stem*);
 
   void set_grouping (Rhythmic_grouping def, Rhythmic_grouping current);
   void set_stemlens ();
index c6b946e87b284c80c769374cdc57939cf4f84cef..dd3426ce10665930d582f810c2f468abfede4ec7 100644 (file)
 /**
   Base class for anything that looks like a slur.
   Anybody with a better name?
+
+  UGH. Fixme.  Should junk
+
+    dy_f_drul_ , dx_f_drul_
+  
   */
 class Bow : public Directional_spanner
 {
@@ -23,10 +28,6 @@ public:
   Bow ();
   Offset center () const;  
 
-  int dash_i_;
-  Real interstaff_f_;
-  Drul_array<Real> vertical_align_drul_;
-
 protected:
   virtual Molecule* do_brew_molecule_p () const;
   //  virtual Interval do_width () const;    
index d127e7879b6bea4e8413a092e28770636370ab89..d2b98fa7ce4f97d62bcaeffaf916f0b0f9e96f1f 100644 (file)
 #ifndef BREAK_ALIGN_ITEM_HH
 #define BREAK_ALIGN_ITEM_HH
 
-#include "horizontal-align-item.hh"
+#include "axis-align-item.hh"
 
 /// align breakable items (clef, bar, etc.)
-class Break_align_item : public Horizontal_align_item {
+class Break_align_item : public Axis_align_item {
 
 protected:
-    virtual void do_pre_processing();
+  virtual void do_pre_processing();
 public:
-    
-    VIRTUAL_COPY_CONS(Score_element);
+  Break_align_item ();
+  VIRTUAL_COPY_CONS(Score_element);
        
 };
 #endif // BREAK_ALIGN_ITEM_HH
index 832ac89704443844d533e64d872234a0cbbd0ae0..42b14277cfe4403044b088af78795e8dcde2bc8e 100644 (file)
@@ -10,7 +10,7 @@
 #ifndef COLLISION_HH
 #define COLLISION_HH
 #include "lily-proto.hh"
-#include "horizontal-vertical-group-item.hh"
+#include "axis-group-item.hh"
 
 /**
   Resolve conflicts between various Note_columns (chords).
@@ -20,7 +20,7 @@
   multistaff support (see Chlapik: equal noteheads should be on the
   same hpos.)  
 */
-class Collision : public Horizontal_vertical_group_item {
+class Collision : public Axis_group_item {
 protected:
     virtual void do_substitute_element_pointer (Score_element*,Score_element*);
     virtual void do_pre_processing();
diff --git a/lily/include/cons.cc b/lily/include/cons.cc
deleted file mode 100644 (file)
index 39ed309..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-/*   
-  cons.cc --  implement 
-  
-  source file of the GNU LilyPond music typesetter
-  
-  (c) 1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-  
- */
-
-#include "cons.hh"
diff --git a/lily/include/cons.hh b/lily/include/cons.hh
deleted file mode 100644 (file)
index 7e2a995..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-/*   
-  cons.hh -- declare LISP like datatypes
-  
-  source file of the GNU LilyPond music typesetter
-  
-  (c) 1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-  
- */
-
-#ifndef CONS_HH
-#define CONS_HH
-
-
-template<class T>
-class Cons
-{
-public:
-  T * car_;
-  Cons * next_;
-  Cons ()
-    {
-      car_=0;
-      next_ =0;
-    }
-  Cons (T*t, Cons<T>*c)
-    {
-      car_ = t;
-      next_ = c;
-    }
- virtual ~Cons ()
-    {
-      delete next_;
-    }
-};
-
-template<class T>
-class Killing_cons : public Cons<T>
-{
-public:
-  Killing_cons (T *t, Cons<T> *p)
-    : Cons<T>( t,p)
-    {
-    }
-  virtual ~Killing_cons ();
-};
-
-
-/// remove the link pointed to by *p.
-template<class T>
-Cons<T> *remove_cons (Cons<T> **pp)
-{
-  Cons<T> *knip = *pp;
-  *pp = (*pp)->next_;
-  knip->next_ = 0;
-  return knip;
-}
-
-
-template<class T>
-class Cons_list
-{
-public:
-  Cons<T> * head_;
-  Cons<T> ** tail_;
-  Cons_list () { init_list (); }
-  void init_list () {head_ =0; tail_ = &head_; }
-  void append (Cons<T> *c)
-    {
-      assert (!c->next_);
-      *tail_ = c;
-      while (*tail_)
-       tail_ = &(*tail_)->next_;
-    }
-  Cons<T> *remove_cons (Cons<T> **pp)
-    {
-      if (&(*pp)->next_ == tail_)
-       tail_ = pp;
-
-      return ::remove_cons (pp);
-    }
-  void junk ()
-    {
-      delete head_;
-      head_ =0;
-    }
-  ~Cons_list () { junk (); }
-};
-
-
-template<class T>
-void  copy_killing_cons_list (Cons_list<T>&, Cons<T> *src);
-template<class T>
-void
-clone_killing_cons_list (Cons_list<T>&, Cons<T> *src);
-
-template<class T> int cons_list_size_i (Cons<T> *l)
-{
-  int i=0;
-  while  (l)
-    {
-      l = l->next_;
-       i++;
-    }
-  return i;
-}
-
-
-
-
-#endif /* CONS_HH */
-
index 67a62429c263438445c189bec7f7ec873ed29008..374181e0142fa0ceb2c7f5821fb51811ad679bfc 100644 (file)
 #ifndef DOT_COLUMN_HH
 #define DOT_COLUMN_HH
 
-#include "horizontal-group-item.hh"
+#include "axis-group-item.hh"
 
 /**
   Group dots.  This is needed because, the dots have to be aligned per voice
  */
-class Dot_column : public Horizontal_group_item
+class Dot_column : public Axis_group_item
 {
   Link_array<Rhythmic_head> head_l_arr_;
   Link_array<Dots> dot_l_arr_;
@@ -24,7 +24,7 @@ public:
   
   void add_head (Rhythmic_head*);
   void add_dots (Dots*);
-
+  Dot_column ();
 protected:
   virtual void do_pre_processing ();
   virtual void do_substitute_element_pointer (Score_element *o, Score_element*n);
index 2ff6f061700a4619248ee19dd7669434bd6c95ac..919da6fb8ddcbad7071926401f8c715c201d55a5 100644 (file)
@@ -24,7 +24,6 @@ protected:
 public:
   int no_dots_i_;
   int position_i_;
-
   
   Dots ();
 };
index 6334233f1158f8e9f341b6a7a067be321df8c65a..c463360e273d1a80124d46e3a4c4162264a5b0f9 100644 (file)
@@ -20,7 +20,6 @@ public:
   Score_element * to_position_l_;
   Direction dir_;
   Link_array<Score_element> support_l_arr_;
-  Real padding_f_;
   Axis axis_;
   
   G_staff_side_item ();
index 73249862b60ef52405c7415e2da0ec7bf7c1ea81..c21995c39c1ee509ed6a3332bdc1640469614b46 100644 (file)
  */
 class Graphical_axis_group : public virtual Graphical_element {
 public:
+  // keep array in order.
+  bool ordered_b_;             
   Link_array<Graphical_element> elem_l_arr_;
   Axis axes_[2];
     
   Interval extent (Axis) const;
   virtual void do_print() const;
   Graphical_axis_group (Graphical_axis_group const&);
-  Graphical_axis_group (Axis,Axis);
+  Graphical_axis_group ();
+  virtual void set_axes (Axis,Axis);
   void remove_all ();
 
   bool contains_b (Graphical_element const *) const;
   void add_element (Graphical_element*);
   void remove_element (Graphical_element*);
-  
 };
 
 #endif // Graphical_axis_group_HH
index 3f5031ba48824c31d1d990fa071d7ddbd180379c..7479e90b29deb4d2f5f2d1942645e0c1eef32887 100644 (file)
 #ifndef HARA_KIRI_VERTICAL_GROUP_SPANNER_HH
 #define HARA_KIRI_VERTICAL_GROUP_SPANNER_HH
 
-#include "vertical-group-spanner.hh"
+#include "axis-group-spanner.hh"
 
 /** 
   As Vertical_group_spanner, but keep track of interesting items.  If
   we don't contain any interesting items after linebreaking, then
   gracefully commit suicide.  Objective: don't disgrace Lily by
   typesetting empty lines in orchestral scores.  */
-class Hara_kiri_vertical_group_spanner : public Vertical_group_spanner
+class Hara_kiri_group_spanner : public Axis_group_spanner
 {
 public:
-  Hara_kiri_vertical_group_spanner ();
+  Hara_kiri_group_spanner ();
   virtual void do_post_processing ();
   void add_interesting_item (Item* n);
 protected:
diff --git a/lily/include/horizontal-align-item.hh b/lily/include/horizontal-align-item.hh
deleted file mode 100644 (file)
index ae2ff01..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
-  horizontal-align-item.hh -- declare Horizontal_align_item
-
-  source file of the GNU LilyPond music typesetter
-
-  (c)  1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-*/
-
-
-#ifndef HORIZONTAL_ALIGN_ITEM_HH
-#define HORIZONTAL_ALIGN_ITEM_HH
-
-#include "item.hh"
-#include "align-element.hh"
-
-/**
-  Order elems left to right.
-
-  TODO: insert (order, elem)
-  */
-class Horizontal_align_item : public Item , public Align_element {
-public:
-  
-  VIRTUAL_COPY_CONS(Score_element);
-  void add_item (Item*, int p);
-  Horizontal_align_item();
-  virtual void do_print() const;
-
-};
-#endif // HORIZONTAL_ALIGN_ITEM_HH
diff --git a/lily/include/horizontal-group-element.hh b/lily/include/horizontal-group-element.hh
deleted file mode 100644 (file)
index ed2e393..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-/*   
-  horizontal-group-element.hh -- declare Horizontal_group_element      
-  
-  source file of the GNU LilyPond music typesetter
-  
-  (c)  1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-  
- */
-
-#ifndef HORIZONTAL_GROUP_ELEM_HH
-#define HORIZONTAL_GROUP_ELEM_HH
-
-#include "axis-group-element.hh"
-
-/**
-  Treat a group of elements a unity in horizontal sense .
-  A column is a typical Vertical_group.
- */
-class Horizontal_group_element : public virtual Axis_group_element {
-protected:
-  virtual Interval do_width() const;
-
-public:
-  Horizontal_group_element ();
-  
-};
-
-
-#endif /* HORIZONTAL_GROUP_ELEM_HH */
-
diff --git a/lily/include/horizontal-group-item.hh b/lily/include/horizontal-group-item.hh
deleted file mode 100644 (file)
index 0c96d29..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
-  horizontal-group-item.hh -- declare Horizontal_group_item
-
-  source file of the GNU LilyPond music typesetter
-
-  (c)  1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-*/
-
-
-#ifndef HORIZONTAL_GROUP_ITEM_HH
-#define HORIZONTAL_GROUP_ITEM_HH
-
-#include "horizontal-group-element.hh"
-#include "axis-group-item.hh"
-
-/**
-  Group stuff in horizontal sense. Example: Paper_column
- */
-class Horizontal_group_item : public Axis_group_item, public Horizontal_group_element {
-protected:
-  virtual void do_print() const;
-public:
-  Horizontal_group_item ();
-  
-  VIRTUAL_COPY_CONS(Score_element);
-};
-
-#endif // HORIZONTAL_GROUP_ITEM_HH
diff --git a/lily/include/horizontal-vertical-group-element.hh b/lily/include/horizontal-vertical-group-element.hh
deleted file mode 100644 (file)
index 90043a7..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-/*   
-  horizontal-vertical-group-element.hh -- declare Horizontal_vertical_group_element
-  
-  source file of the GNU LilyPond music typesetter
-  
-  (c)  1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-  
- */
-
-#ifndef HORIZONTAL_VERTICAL_GROUP_ELEM_HH
-#define HORIZONTAL_VERTICAL_GROUP_ELEM_HH
-
-#include "vertical-group-element.hh"
-#include "horizontal-group-element.hh"
-
-/** A class to treat a group of elements as a single entity. The
-  dimensions are the unions of the dimensions of what it contains.
-  Translation means translating the contents.
-  */
-class Horizontal_vertical_group_element : public Vertical_group_element, 
-                                         public Horizontal_group_element 
-{  
-protected:
-public:
-  Horizontal_vertical_group_element ();
-  
-      
-};
-
-
-#endif /* HORIZONTAL_VERTICAL_GROUP_ELEM_HH */
-
-
diff --git a/lily/include/horizontal-vertical-group-item.hh b/lily/include/horizontal-vertical-group-item.hh
deleted file mode 100644 (file)
index e5f7bbf..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
-  horizontal-vertical-group-item.hh -- declare Horizontal_vertical_group_item
-  
-  source file of the GNU LilyPond music typesetter
-
-  (c)  1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-*/
-
-
-#ifndef HORIZONTAL_VERTICAL_GROUP_ITEM_HH
-#define HORIZONTAL_VERTICAL_GROUP_ITEM_HH
-
-#include "axis-group-item.hh"
-#include "horizontal-vertical-group-element.hh"
-
-
-/**
-  Treat a collection of items as a unity
- */
-class Horizontal_vertical_group_item  : public Axis_group_item, public Horizontal_vertical_group_element {
-protected:
-  virtual void do_print() const;
-  VIRTUAL_COPY_CONS(Score_element);
-public:
-  Horizontal_vertical_group_item ();
-
-  
-};
-
-#endif // HORIZONTAL_VERTICAL_GROUP_ITEM_HH
index e93907886c17431e82b65245f0bed3f06cd78fdc..aef3f27fafed8495335910b6562197b8dacce756 100644 (file)
@@ -27,11 +27,11 @@ public:
   VIRTUAL_COPY_CONS(Translator);
   Key key_;
   Key_change_req * keyreq_l_;
-  Key_item * kit_p_;
+  Key_item * item_p_;
   Array<Musical_pitch> accidental_idx_arr_;
   Array<Musical_pitch> old_accidental_idx_arr_;
-  bool default_key_b_;
-  bool change_key_b_;
+
+
     
 protected:
   virtual bool do_try_music (Music *req_l);
index 0833aca9612cc90e0b9fc11f9e7cc341bb612fa9..82f72cb871c8d5795c4b7c98798b5599265e42c2 100644 (file)
 
 /// An item which places accidentals at the start of the line
 class Key_item :public  Item, public Staff_symbol_referencer {
-public:
-  
   Array<int> pitch_arr_;
   Array<int> acc_arr_;
   Array<int> old_pitch_arr_;
   Array<int> old_acc_arr_;
+  int c0_position_;
+
+
+public:
+  bool multi_octave_b_;  
 
-  // ugh.  Naming 
-  int c_position;
-  // see above.
-  int c0_position;
-  bool default_b_;
-  bool multi_octave_b_;
+  int get_c_position () const;
     
   
   VIRTUAL_COPY_CONS(Score_element);
@@ -37,7 +35,6 @@ public:
   int calculate_position(int p, int a) const;
 
 protected:
-  virtual void do_pre_processing();
   virtual Molecule* do_brew_molecule_p() const;
 };
 
diff --git a/lily/include/killing-cons.tcc b/lily/include/killing-cons.tcc
deleted file mode 100644 (file)
index f6fcff7..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-/*   
-  killing-cons.tcc -- declare Killing_cons
-  
-  source file of the GNU LilyPond music typesetter
-  
-  (c) 1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-  
- */
-
-#ifndef KILLING_CONS_TCC
-#define KILLING_CONS_TCC
-
-#include "cons.hh"
-
-template<class T>
-Killing_cons<T>::~Killing_cons ()
-{
-  delete car_;
-}
-
-template<class T>
-void 
-copy_killing_cons_list (Cons_list<T> &dest, Cons<T> *src) 
-{
-  for (; src; src  = src->next_)
-    {
-      T *t = new T(*src->car_);
-      dest.append ( new Killing_cons<T> (t, 0));
-    }
-}
-
-template<class T>
-void
-clone_killing_cons_list (Cons_list<T> & dest, Cons<T> *src)
-{
-  for (; src; src  = src->next_)
-    {
-      T *t = src->car_->clone ();
-      dest.append (new Killing_cons<T> (t, 0));      
-    }
-}
-
-#endif /* KILLING_CONS_TCC */
-
index 097a77af143ab8b1fe8266c2d651d94d270439e9..56207190420c2872b77ae7c07b564836b47e2121 100644 (file)
@@ -24,7 +24,7 @@ SCM ly_eval (SCM a);
 SCM ly_func_o (char const* name);
 SCM ly_quote_scm (SCM s);
 void ly_display_scm (SCM s);
-
+String ly_scm2string (SCM s);
 
 #include "array.hh"
 #include "scalar.hh"
index 545ba25af6bd5519cd8d744dc856d3c2287a29ef..367ff2febd78a04b8c990210aecf118c8630af5c 100644 (file)
@@ -89,13 +89,9 @@ struct Graphical_element;
 struct Graphical_axis_group;
 struct Global_translator;
 struct Hara_kiri_line_group_engraver;
-struct Hara_kiri_vertical_group_spanner;
+struct Hara_kiri_group_spanner;
 struct Head_column;
 
-struct Horizontal_align_item;
-struct Horizontal_group_element;
-struct Horizontal_group_item;
-struct Horizontal_vertical_group;
 struct Idealspacing;
 struct Identifier;
 struct Input_file;
@@ -257,10 +253,7 @@ struct Translator_group;
 struct Timing_req;
 struct Vertical_brace;
 struct Vertical_spanner;
-struct Vertical_group_element;
-struct Vertical_group_spanner;
-struct Vertical_align_spanner;
-struct Vertical_align_engraver;
+
 struct Volta_spanner;
 struct Align_element;
 struct Sequential_music;
index 24d1dd668c52f68a41a22fea3b6741a2ecc5f9e7..93e917310b809c696e568cd398a70693e4767386 100644 (file)
@@ -18,7 +18,7 @@
   */
 class Line_group_engraver_group : public Engraver_group_engraver {
 protected:
-  Vertical_group_spanner *staffline_p_;   
+  Axis_group_spanner *staffline_p_;   
 
   virtual void create_line_spanner ();
   virtual void do_creation_processing();
index 9b988f4978eb5d45a36bab4355d72eed5668c291..9290359b1ee802da7b17fff4a50ffa836a7a5b18 100644 (file)
@@ -23,13 +23,11 @@ public:
   Lookup ();
   Lookup (Lookup const&);
 
-
-  
-  Molecule special_ball (int, String) const;
   Molecule simple_bar (String s, Real w) const;
   Molecule accidental (int, bool cautionary) const;
   Molecule afm_find (String, bool warn=true) const;
-  Molecule ball (int) const;
+  Molecule notehead  (int, String) const;
+
   Molecule bar (String, Real height) const;
   Molecule beam (Real, Real, Real) const;
   Molecule clef (String) const;
index 3dfe3025d45eb8f108c323f3835f6429d2443ccd..1e2c85eecb6e05b0f1ebf961da3b92215d65722f 100644 (file)
 #define DECLARE_LY_SYMBOL(a) extern SCM a ## _scm_sym
 #endif
 
+DECLARE_LY_SYMBOL(at_line_start);
 DECLARE_LY_SYMBOL(beam);
 DECLARE_LY_SYMBOL(beam_thickness);
 DECLARE_LY_SYMBOL(beam_dir);
+DECLARE_LY_SYMBOL(beam_gap);
 DECLARE_LY_SYMBOL(bracket);
 DECLARE_LY_SYMBOL(break_helper_only);
 DECLARE_LY_SYMBOL(break_priority);
@@ -25,6 +27,7 @@ DECLARE_LY_SYMBOL(char);
 DECLARE_LY_SYMBOL(change);
 DECLARE_LY_SYMBOL(damping);
 DECLARE_LY_SYMBOL(dashed);
+DECLARE_LY_SYMBOL(extremal);
 DECLARE_LY_SYMBOL(dir_forced);
 DECLARE_LY_SYMBOL(extender_height);
 DECLARE_LY_SYMBOL(filledbox);
@@ -39,11 +42,13 @@ DECLARE_LY_SYMBOL(notewidth);
 DECLARE_LY_SYMBOL(non_default);
 DECLARE_LY_SYMBOL(octave_dir);
 DECLARE_LY_SYMBOL(output);
+DECLARE_LY_SYMBOL(padding);
 DECLARE_LY_SYMBOL(pianobrace);
 DECLARE_LY_SYMBOL(placebox);
 DECLARE_LY_SYMBOL(rulesym);
 DECLARE_LY_SYMBOL(rulethickness);
 DECLARE_LY_SYMBOL(staffheight);
+DECLARE_LY_SYMBOL(style);
 DECLARE_LY_SYMBOL(text);
 DECLARE_LY_SYMBOL(transparent);
 DECLARE_LY_SYMBOL(tuplet);
index 8390326addf0247de84804eba089329b247309ca..5727661321a0e1d55ea2608fbcb1605a0bbbab11 100644 (file)
@@ -48,5 +48,6 @@ public:
   Molecule (const Molecule&s);
   void print() const;
   void operator=(const Molecule&);  
+  bool empty_b() const;
 };
 #endif
index a48792349d61e81c52d615801858f5a449ca41b0..e931ede0ea9931b7674b848b99afc1dce43f3905 100644 (file)
 
 class Note_head : public Rhythmic_head {
 public:
-  
-  String note_head_type_str_;
-
-  /// position of top line (5 linestaff: 8)
   int position_i_;
 
-  /// -1 = lowest, 0 = inside, 1 = top
-  int extremal_i_;
-    
-  /// needed for the help-lines
-  int staff_size_i_;
-  Direction x_dir_;
-    
   Note_head ();
+  void flip_around_stem (Direction);
   static int compare (Note_head * const &a, Note_head *const &b) ;
 protected:
   virtual Interval do_width () const;
index 3f3f35e5177b2cf474f36ec3f2560221538c228c..fd379a33471af56158328e341019cecf1fce9cd9 100644 (file)
@@ -10,7 +10,7 @@
 #ifndef P_COL_HH
 #define P_COL_HH
 
-#include "horizontal-group-item.hh"
+#include "axis-group-item.hh"
 #include "rod.hh"
 
 
@@ -27,7 +27,7 @@
     \end{itemize}
   */
 
-class Paper_column : public Horizontal_group_item { 
+class Paper_column : public Axis_group_item { 
 public:
   VIRTUAL_COPY_CONS(Score_element);
   Drul_array<Array<Column_rod> > minimal_dists_arr_drul_;
index 94d1e481e1b517a994a3ec988814d6fb0317ea1d..74ba090bad69189bd5548f9cc937dd12e2160321 100644 (file)
 #ifndef SCRIPT_COLUMN_HH
 #define SCRIPT_COLUMN_HH
 
-#include "horizontal-vertical-group-item.hh"
+#include "axis-group-item.hh"
 
 /** a struct for treating a group of noteheads (noteheads, stem
   (chord) and scripts) as a single entity.  */
-class Script_column : public Horizontal_vertical_group_item {
+class Script_column : public Axis_group_item {
 
 protected:
-    virtual void do_print() const;
-    virtual void do_substitute_element_pointer (Score_element*, Score_element*);
-    virtual void do_pre_processing() ;
+  virtual void do_print() const;
+  virtual void do_substitute_element_pointer (Score_element*, Score_element*);
+  virtual void do_pre_processing() ;
 public:
-    Link_array<Script> script_l_arr_;
-    Link_array<Item> support_l_arr_;
+  Link_array<Script> script_l_arr_;
+  Link_array<Item> support_l_arr_;
     
    
-    virtual void add_script (Script *);
-    void add_support (Item*);
+  virtual void add_script (Script *);
+  void add_support (Item*);
+  Script_column ();
 };
 
 #endif // SCRIPT_COLUMN_HH
diff --git a/lily/include/span-score-bar.hh b/lily/include/span-score-bar.hh
deleted file mode 100644 (file)
index 164c1f5..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
-  span-score-bar.hh -- declare Span_score_bar
-
-  source file of the GNU LilyPond music typesetter
-
-  (c)  1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-*/
-
-
-#ifndef SPAN_SCORE_BAR_HH
-#define SPAN_SCORE_BAR_HH
-
-#include "span-bar.hh"
-#include "score-bar.hh"
-
-class Span_score_bar : public Span_bar, public Score_bar
-{
-public:
-  
-  VIRTUAL_COPY_CONS(Score_element);
-  Span_score_bar();
-
-protected:
-  virtual void do_pre_processing();
-};
-
-
-
-#endif // SPAN_SCORE_BAR_HH
index b73ef582cd1cba6d179b18587bd767f1e795b96e..a909ac952e39062e93f9c5d686652fb8552b45c2 100644 (file)
@@ -23,8 +23,9 @@ struct Stem_info {
   Real interstaff_f_;
   Stem* stem_l_;
 
+
   Stem_info ();
-  Stem_info (Stem *);
+  Stem_info (Stem *, int);
 };
 
 #endif // STEM_INFO_HH
index 003922789efe33c6b2d2764a0d9c7d9dd1c38959..f5e74a609dd7b9cf5cd62b3340745e3e742e58d8 100644 (file)
 
   dir_force: is direction explicitely specified? (bool)
 
+  /// how many abbrev beam don't reach stem?
+  int beam_gap_i_;
+
+
+  
   */
 // todo: remove baseclass Staff_symbol_referencer, since stem
 // can be across a staff.
@@ -43,19 +48,10 @@ class Stem : public Item, public Staff_symbol_referencer {
     */
   Drul_array<Real> yextent_drul_;
 
-  /**
-    geen gedonder, jij gaat onder.
-    -1 stem points down, +1: stem points up
-    */
-  Direction  stem_xdir_;
-
   Link_array<Note_head> head_l_arr_;
   Link_array<Rest> rest_l_arr_;
     
 public:
-  /// how many abbrev beam don't reach stem?
-  int beam_gap_i_;
-
   /// log of the duration. Eg. 4 -> 16th note -> 2 flags
   int flag_i_;
 
@@ -67,9 +63,6 @@ public:
 
   Drul_array<int> beams_i_drul_;
 
-  /// maximum number of beams
-  int mult_i_;
-
   /// direction stem (that's me)
   Direction dir_;
 
@@ -79,8 +72,6 @@ public:
   /// ensure that this Stem also encompasses the Notehead #n#
   void add_head (Rhythmic_head*n);
 
-  
-
   Real hpos_f () const;
   Real chord_start_f () const;
   
index 23b8dd85a56578679c54b9ee4aac23ab68470eb9..4115bc66dd2b331ee0afe82e62476c556e0de600 100644 (file)
@@ -11,9 +11,9 @@
 #define VERTICAL_ALIGN_GRAV_HH
 
 #include "engraver.hh"
-
+class Axis_align_spanner;
 class Vertical_align_engraver : public Engraver {
-  Vertical_align_spanner * valign_p_;
+  Axis_align_spanner * valign_p_;
     
 public:
   VIRTUAL_COPY_CONS(Translator);
diff --git a/lily/include/vertical-align-spanner.hh b/lily/include/vertical-align-spanner.hh
deleted file mode 100644 (file)
index d1a67b4..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
-  vertical-align-spanner.hh -- declare Vertical_align_spanner
-
-  source file of the GNU LilyPond music typesetter
-
-  (c)  1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-*/
-
-
-#ifndef VERTICAL_ALIGN_SPANNER_HH
-#define VERTICAL_ALIGN_SPANNER_HH
-
-#include "spanner.hh"
-#include "align-element.hh"
-
-class Vertical_align_spanner : public Align_element, public Spanner
-{
-public:
-  
-  VIRTUAL_COPY_CONS(Score_element);
-  Vertical_align_spanner ();
-  virtual void do_print() const ;
-    
-};
-#endif // VERTICAL_ALIGN_SPANNER_HH
diff --git a/lily/include/vertical-group-element.hh b/lily/include/vertical-group-element.hh
deleted file mode 100644 (file)
index a4066aa..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-/*   
-  vertical-group-element.hh -- declare 
-  
-  source file of the GNU LilyPond music typesetter
-  
-  (c)  1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-  
- */
-
-#ifndef VERTICAL_GROUP_ELEM_HH
-#define VERTICAL_GROUP_ELEM_HH
-
-#include "axis-group-element.hh"
-/**
-  Like Horizontal_group_element, but in X direction
- */
-class Vertical_group_element : public virtual Axis_group_element {
-protected:
-  virtual Interval do_height() const;
-
-public:
-  Vertical_group_element () ;
-  
-};
-
-#endif /* VERTICAL_GROUP_ELEM_HH */
-
diff --git a/lily/include/vertical-group-spanner.hh b/lily/include/vertical-group-spanner.hh
deleted file mode 100644 (file)
index 9726ca6..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
-  vertical-group-spanner.hh -- declare Vertical_group_spanner
-
-  source file of the GNU LilyPond music typesetter
-
-  (c)  1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-*/
-
-
-#ifndef SPAN_VERTICAL_GROUP_HH
-#define SPAN_VERTICAL_GROUP_HH
-
-#include "axis-group-spanner.hh"
-#include "vertical-group-element.hh"
-
-/** An element which groups a line. 
- */
-class Vertical_group_spanner : public Axis_group_spanner, public Vertical_group_element
-{
-protected:
-  VIRTUAL_COPY_CONS(Score_element);
-public:
-  
-  Vertical_group_spanner ();
-};
-
-
-#endif // SPAN_VERTICAL_GROUP_HH
index 248dca07c5679a21cc78a8acab166ac302c4a004..519d8f9500060b609f547cc2aaadd726152a54f5 100644 (file)
 
 Key_engraver::Key_engraver ()
 {
-  kit_p_ = 0;
+  item_p_ = 0;
   do_post_move_processing ();
 }
 
 void
 Key_engraver::create_key ()
 {
-  if (!kit_p_) 
+  if (!item_p_) 
     {
-      kit_p_ = new Key_item;
-      kit_p_->set_elt_property (break_priority_scm_sym, gh_int2scm(-1)); // ugh
-      kit_p_->multi_octave_b_ = key_.multi_octave_b_;
-      announce_element (Score_element_info (kit_p_,keyreq_l_));
+      item_p_ = new Key_item;
+      item_p_->set_elt_property (break_priority_scm_sym, gh_int2scm(-1)); // ugh
+      item_p_->multi_octave_b_ = key_.multi_octave_b_;
+      announce_element (Score_element_info (item_p_,keyreq_l_));
       
 
       for (int i = 0; i < accidental_idx_arr_.size(); i++) 
@@ -37,9 +37,9 @@ Key_engraver::create_key ()
          Musical_pitch m_l =accidental_idx_arr_[i];
          int a =m_l.accidental_i_;      
          if (key_.multi_octave_b_)
-           kit_p_->add (m_l.steps (), a);
+           item_p_->add (m_l.steps (), a);
          else
-           kit_p_->add (m_l.notename_i_, a);
+           item_p_->add (m_l.notename_i_, a);
        }
 
       for (int i = 0 ; i< old_accidental_idx_arr_.size(); i++) 
@@ -47,9 +47,9 @@ Key_engraver::create_key ()
          Musical_pitch m_l =old_accidental_idx_arr_[i];
          int a =m_l.accidental_i_;
          if (key_.multi_octave_b_)
-           kit_p_->add_old (m_l.steps  (), a);
+           item_p_->add_old (m_l.steps  (), a);
          else
-           kit_p_->add_old (m_l.notename_i_, a);
+           item_p_->add_old (m_l.notename_i_, a);
        }
     }
 }      
@@ -81,9 +81,13 @@ Key_engraver::acknowledge_element (Score_element_info info)
   else if (dynamic_cast<Bar *> (info.elem_l_)
           && accidental_idx_arr_.size ()) 
     {
-      if (!keyreq_l_)
-       default_key_b_ = true;
+      bool def =  (!item_p_);
       create_key ();
+      if (def)
+       {
+         item_p_->set_elt_property (visibility_lambda_scm_sym,
+                                   gh_eval_str ("postbreak_only_visibility"));
+       }
     }
 
 }
@@ -100,11 +104,10 @@ Key_engraver::do_process_requests ()
 void
 Key_engraver::do_pre_move_processing ()
 { 
-  if (kit_p_) 
+  if (item_p_) 
     {
-      kit_p_->default_b_ = default_key_b_;
-      typeset_element (kit_p_);
-      kit_p_ = 0;
+      typeset_element (item_p_);
+      item_p_ = 0;
     }
 }
 
@@ -200,7 +203,6 @@ void
 Key_engraver::do_post_move_processing ()
 {
   keyreq_l_ = 0;
-  default_key_b_ = false;
   old_accidental_idx_arr_.clear ();
 }
 
index 34061b63838439f593fe3e024705e07af4281ef1..7fc7f2accfc438c2837309f3b7ef6ab9e679ba7f 100644 (file)
@@ -23,19 +23,24 @@ Key_item::Key_item ()
 {
   multi_octave_b_ = false;
   set_elt_property (breakable_scm_sym, SCM_BOOL_T);
-  default_b_ = false;
   set_c_position (0);
 }
 
-void 
-Key_item::set_c_position (int c0)
+int
+Key_item::get_c_position () const
 {
-  c0_position = c0;
   // Find the c in the range -4 through 2
-  int from_bottom_pos = c0 + 4;        
+  int from_bottom_pos = c0_position_ + 4;      
   from_bottom_pos = from_bottom_pos%7;
   from_bottom_pos = (from_bottom_pos + 7)%7; // Precaution to get positive.
-  c_position  = from_bottom_pos - 4;
+  return from_bottom_pos - 4;
+}
+
+
+void 
+Key_item::set_c_position (int c0)
+{
+  c0_position_ = c0;
 }
 
 
@@ -59,16 +64,16 @@ Key_item::calculate_position(int p, int a) const
 {
   if (multi_octave_b_) 
     {
-      return p + c0_position;
+      return p + c0_position_;
     }
   else {
-    if ((a<0 && ((p>FLAT_TOP_PITCH) || (p+c_position>4)) && (p+c_position>1)) 
+    if ((a<0 && ((p>FLAT_TOP_PITCH) || (p+get_c_position ()>4)) && (p+get_c_position ()>1)) 
        ||
-       (a>0 && ((p>SHARP_TOP_PITCH) || (p+c_position>5)) && (p+c_position>2))) 
+       (a>0 && ((p>SHARP_TOP_PITCH) || (p+get_c_position ()>5)) && (p+get_c_position ()>2))) 
       {
        p -= 7; /* Typeset below c_position */
       }
-    return p + c_position;
+    return p + get_c_position ();
   }
 }
 
@@ -133,15 +138,3 @@ Key_item::do_brew_molecule_p() const
 
 
 
-void 
-Key_item::do_pre_processing()
-{
-  if (default_b_) 
-    {
-      bool transparent = (break_status_dir() != RIGHT);
-      set_empty (transparent);
-
-      if (transparent)
-       set_elt_property (transparent_scm_sym, SCM_BOOL_T);
-    }
-}
index 5bac21d9179709f81acdb892149d4eaf808713bb..22c271c8928a14e5186a93bda2e0b4bdc694bf00 100644 (file)
@@ -88,3 +88,14 @@ ly_display_scm (SCM s)
   gh_display (s);
   gh_newline ();
 }
+
+String
+ly_scm2string (SCM s)
+{
+  int len; 
+  char * p = gh_scm2newstr (s , &len);
+  
+  String r (p);
+  delete p;
+  return r;
+}
index 4779cbfa13f171517c8b10d960791c72fbc7e81f..606fa918b905f9d67063610dabccd48c0b557451 100644 (file)
@@ -7,7 +7,7 @@
 */
 
 #include "staff-symbol.hh"
-#include "vertical-group-spanner.hh"
+#include "axis-group-spanner.hh"
 #include "command-request.hh"
 #include "bar.hh"
 #include "debug.hh"
@@ -51,7 +51,8 @@ Line_group_engraver_group::do_creation_processing()
 void
 Line_group_engraver_group::create_line_spanner ()
 {
-  staffline_p_ = new Vertical_group_spanner ;
+  staffline_p_ = new Axis_group_spanner ;
+  staffline_p_->set_axes (Y_AXIS,Y_AXIS);
 }
 
 void
index 5bffa992cfc0354b178ccbeaa45b9bc1f8823b0b..b4ae24acb55ebce0498034d1adb193cbc2f3a13d 100644 (file)
@@ -120,12 +120,12 @@ Lookup::afm_find (String s, bool warn) const
 }
 
 Molecule
-Lookup::ball (int j) const
+Lookup::notehead (int j, String type) const
 {
   if (j > 2)
     j = 2;
 
-  return afm_find (String ("noteheads-") + to_str (j));
+  return afm_find (String ("noteheads-") + to_str (j) + type);
 }
 
 Molecule
@@ -162,6 +162,10 @@ Lookup::bar (String str, Real h) const
     {
       return fill (Box (Interval(0, 0), Interval (-h/2, h/2)));
     }
+  if (str == "scorepostbreak")
+    {
+      return simple_bar ("score", h);
+    }
   else if (str == "|")
     {
       return thin;
@@ -336,12 +340,12 @@ Lookup::special_time_signature (String s, int n, int d) const
   String symbolname = "timesig-" + s + to_str (n) + "/" + to_str (d);
   
   Molecule m = afm_find (symbolname, false);
-  if (!m.dim_[X_AXIS].empty_b ()) 
+  if (!m.empty_b()) 
     return m;
 
   // Second guess: s contains the full signature name
   m = afm_find ("timesig-"+s, false);
-  if (!m.dim_[X_AXIS].empty_b ()) 
+  if (!m.empty_b ()) 
     return m;
 
   // Resort to default layout with numbers
@@ -408,10 +412,7 @@ Lookup::text (String style, String text) const
   SCM l = gh_eval_str (("(style-to-cmr \"" + style + "\")").ch_C());
   if (l != SCM_BOOL_F)
     {
-      int len ;
-      char * s = gh_scm2newstr(SCM_CDR (l), &len);
-      style = String (s) + to_str  ((int)font_h);
-      delete s;
+      style = ly_scm2string (SCM_CDR(l)) +to_str  ((int)font_h);
     }
 
   Real w = 0;
@@ -605,12 +606,3 @@ Lookup::volta (Real w, bool last_b) const
 }
 
 
-Molecule
-Lookup::special_ball (int j, String kind_of_ball) const
-{
-  if (j > 2)
-    j = 2;
-
-  return afm_find (String ("noteheads-") + kind_of_ball);
-}
-
index 61bf50837c6b68f61c33681f14c011020633e124..33ff2188335792d8af0430122b935adf09da8122 100644 (file)
@@ -149,3 +149,9 @@ Molecule::add_at_edge (Axis a, Direction d, Molecule const &m, Real padding)
   toadd.translate_axis (offset + d * padding, a);
   add_molecule (toadd);
 }
+
+bool
+Molecule::empty_b() const
+{
+  return atom_list_ == MOL_EOL;
+}
index 9b53dc498ea13d68b30e0752affdff1b0eeedc55..f881c6134c9a4d58553a6dbd63f0e0edb9ff968d 100644 (file)
 #include "dots.hh"
 #include "note-head.hh"
 #include "debug.hh"
-#include "paper-def.hh"
 #include "lookup.hh"
 #include "molecule.hh"
 #include "musical-request.hh"
 
+void
+Note_head::flip_around_stem (Direction d)
+{
+  translate_axis (do_width ().length () * d, X_AXIS);
+}
 
 Note_head::Note_head ()
 {
-  x_dir_ = CENTER;
   position_i_ = 0;
-  extremal_i_ = 0;
 }
 
 void
@@ -39,12 +41,14 @@ Note_head::compare (Note_head *const  &a, Note_head * const &b)
   return a->position_i_ - b->position_i_;
 }
 
+/**
+ Don't account for ledgerlines in the width.
+ */
 Interval
 Note_head::do_width () const
 {
-  Molecule a =  lookup_l ()->ball (balltype_i_);
+  Molecule a =  lookup_l ()->notehead (balltype_i_, ""); // UGH
   Interval i = a.dim_[X_AXIS];
-  i+= x_dir_ * i.length ();
   return i;
 }
 
@@ -52,28 +56,25 @@ Molecule*
 Note_head::do_brew_molecule_p() const 
 {
   Molecule*out = 0;
-  Paper_def *p = paper_l ();
   Real inter_f = staff_line_leading_f ()/2;
   int sz = lines_i ()-1;
-  // ugh
+
   int streepjes_i = abs (position_i_) < sz 
     ? 0
     : (abs(position_i_) - sz) /2;
-  
-  Molecule head; 
 
-  if (note_head_type_str_.length_i ()) {
-    if (note_head_type_str_ == "normal") // UGH
-      note_head_type_str_ = "";
-    head = lookup_l()->special_ball (balltype_i_, note_head_type_str_);
+
+  String type; 
+  SCM style  =get_elt_property (style_scm_sym);
+  if (style != SCM_BOOL_F)
+    {
+      type = ly_scm2string (SCM_CDR(style));
     }
-  else
-    head = lookup_l()->ball (balltype_i_);
   
-  out = new Molecule (Molecule (head));
-  out->translate_axis (x_dir_ * head.dim_[X_AXIS].length (), X_AXIS);
-
+  Molecule head (lookup_l()->notehead (balltype_i_, type));
 
+  
+  out = new Molecule (Molecule (head));
 
   if (streepjes_i) 
     {
index 4981cac3424c7cfc7d5a5a75565dd2c413f49109..98891d885d829712db4c9a0e69c00c395044f434 100644 (file)
@@ -104,6 +104,8 @@ Paper_column::breakpoint_b() const
 
 Paper_column::Paper_column()
 {
+  set_axes (X_AXIS, X_AXIS);
+
   line_l_=0;
   rank_i_ = -1;
 }
index 1e2e45226c8aea2efb6ec73e161b4340abd53c3d..8a075e7a249535a76876c7ea35a94614f9fce4df 100644 (file)
@@ -41,10 +41,10 @@ Paper_score::Paper_score (Paper_score const &s)
 
 Paper_score::~Paper_score ()
 {
-  for (int i=0; i < span_p_arr_.size (); i++)
+  /*  for (int i=0; i < span_p_arr_.size (); i++)
     delete span_p_arr_[i];
   for (int i=0; i < elem_p_arr_.size (); i++)
-    delete elem_p_arr_[i];
+  delete elem_p_arr_[i];*/
 }
 
 void
@@ -151,16 +151,17 @@ delete_array_contents (Link_array<Score_element> &to_remove, Dictionary<int> &ty
       Score_element * e = to_remove[i];
       String nm = e->name();
       if (type_stats.elem_b (nm))
-          type_stats[nm] ++;
-        else
-          type_stats[nm] = 1;
-
-        if (dynamic_cast<Item*> (e))
-          type_stats["Item"] ++;
-        else if (dynamic_cast<Spanner*>(e))
-          type_stats["Spanner"] ++;
-        type_stats["Total"] ++;
-       }
+       type_stats[nm] ++;
+      else
+       type_stats[nm] = 1;
+
+      if (dynamic_cast<Item*> (e))
+       type_stats["Item"] ++;
+      else if (dynamic_cast<Spanner*>(e))
+       type_stats["Spanner"] ++;
+      type_stats["Total"] ++;
+ //      delete e; //TODO!
+    }
 
   to_remove.clear ();
   to_remove.tighten_maxsize ();
index 117b69327946e385409dffea925c822b6592833b..986ede9eabc51c64d15b878fc729add948e7d183 100644 (file)
@@ -61,6 +61,7 @@ Score_element::Score_element (Score_element const&s)
 
 Score_element::~Score_element()
 {
+  element_property_alist_ = SCM_EOL; // try to be nice to GC.
   delete output_p_; 
   assert (status_i_ >=0);
   status_i_  = -1;
@@ -170,7 +171,6 @@ Score_element::lookup_l () const
        ? gh_scm2int (SCM_CDR (sz))
        : 0;
 
-
       me->lookup_l_ =  pscore_l_->paper_l_->lookup_l (i);
     }
   return lookup_l_;
index 0ed5caee1d0435859f5467f6ecdaf638d990cfb2..1082aa83086a12e34e81b9527c8a7442ddbc6819 100644 (file)
@@ -7,7 +7,7 @@
 */
 
 
-#include "horizontal-group-item.hh"
+#include "axis-group-item.hh"
 #include "score-priority-engraver.hh"
 #include "item.hh"
 #include "dictionary-iter.hh"
@@ -47,7 +47,7 @@ Score_priority_engraver::add_horizontal_group (Item* it, int priority)
   if (priority == 0)
     halign_p_->center_l_ = it;
 
-  halign_p_->add_item (it, priority);
+  halign_p_->add_element_priority (it, priority);
 
   column_p_arr_.push (it);
 }
@@ -70,33 +70,31 @@ Score_priority_engraver::acknowledge_element (Score_element_info inf)
       if (!breakable)
        return ;
       
-      int priority = SCM_CDR (pr);
-      /*
-       Don't try to eat up our (probable) parent.
-      */
-      if (inf.origin_grav_l_arr_.size () <= 1 &&
-         dynamic_cast<Break_align_item *> (item_l))
-       return; 
-
+      int priority = gh_scm2int (SCM_CDR (pr));
       
       Score_element * column_l = 0;
       if (halign_p_)
        column_l = halign_p_->get_elt_by_priority (priority);
-      Horizontal_group_item * hg;
+      Axis_group_item * hg=0;
       if (column_l)
        {
-         hg = dynamic_cast<Horizontal_group_item*> (column_l);
+         hg = dynamic_cast<Axis_group_item*> (column_l);
        }
       else
        {
-         hg = new Horizontal_group_item;
+         hg = new Axis_group_item;
+         hg->set_axes (X_AXIS,X_AXIS);
+         hg->set_elt_property (ly_symbol("origin"),
+                               SCM_EOL);
          announce_element (Score_element_info (hg,0));
          add_horizontal_group (hg, priority);
-         hg->set_elt_property (breakable_scm_sym, SCM_BOOL_T);
        }
       
-
+      hg->set_elt_property (ly_symbol("origin"),
+                           scm_cons (gh_str02scm (item_l->name()),
+                                     hg->get_elt_property (ly_symbol ("origin"))));
       hg->add_element (item_l);
+      
     }
 }
 
index 0609ca5260c9ac820dfc5d85da086c6a38910815..16eccc8a41acea70a62d33ce9af7de1877b18856 100644 (file)
@@ -42,6 +42,12 @@ idx (bool inside, int dir)
   return j;
 }
 
+
+Script_column::Script_column ()
+{
+  set_axes (X_AXIS,X_AXIS);
+}
+
 void
 Script_column::do_pre_processing()
 {
index a82d866834981959eea89dd44ed242576432bc2d..4d4fb48d0a50696eaa255b42538a6bb9f6a56d79 100644 (file)
@@ -76,15 +76,7 @@ Slur_engraver::do_process_requests()
          Slur * s_p =new Slur;
          Scalar prop = get_property ("slurdash", 0);
          if (prop.isnum_b ()) 
-           s_p->dash_i_ = prop;
-
-         prop = get_property ("minVerticalAlign", 0);
-         if (prop.isnum_b ())
-           s_p->vertical_align_drul_[MIN] = prop;
-
-         prop = get_property ("maxVerticalAlign", 0);
-         if (prop.isnum_b ())
-           s_p->vertical_align_drul_[MAX] = prop;
+           s_p->set_elt_property (dashed_scm_sym, gh_int2scm(prop));
 
          requests_arr_.push (slur_req_l);
          start_slur_l_arr_.push (s_p);
index 3e2b5d1abb2c034a1de719c7a96f409d6e05f247..0f9beffe3e0b5e4d6d15cfce29e2d0b9a287dc30 100644 (file)
@@ -150,7 +150,7 @@ Slur::do_post_processing ()
          if (d == RIGHT)
            {
              dx_f_drul_[LEFT] = spanned_drul_[LEFT]->extent (X_AXIS).length ();
-
+             
              // urg -- check if needed
              if (encompass_arr_.size () > 1)
                dx_f_drul_[RIGHT] += notewidth_f;
@@ -312,18 +312,15 @@ Slur::get_encompass_offset_arr () const
       notes.push (info.o_ - left);
     }
   Encompass_info info (encompass_arr_.top (), dir_, this);
+  Real inter_staff = info.interstaff_f_;
   
-  // urg:
-  Slur* urg = (Slur*)this;
-  urg->interstaff_f_ = info.interstaff_f_;
-  
-  d[Y_AXIS] += interstaff_f_;
+  d[Y_AXIS] += inter_staff;
 
   // prebreak
-  if (interstaff_f_ && (encompass_arr_.top () != spanned_drul_[RIGHT]))
+  if (inter_staff && (encompass_arr_.top () != spanned_drul_[RIGHT]))
     {
       Encompass_info info (encompass_arr_[encompass_arr_.size () - 1], dir_, this);
-      d[Y_AXIS] -= info.o_[Y_AXIS] - interstaff_f_;
+      d[Y_AXIS] -= info.o_[Y_AXIS] - inter_staff;
     }
 
   notes.push (d);
index 73944e140cd35e8e4809069d479768d5fba88371..487f2b11d427f61aa4fdddd1f7afbea96b57ea42 100644 (file)
@@ -31,6 +31,10 @@ void
 Span_bar::set_align (Align_element *a)
 {
   add_dependency (a);
+  Score_element * e = dynamic_cast<Score_element*>(a);
+  Item * i = dynamic_cast<Item*> (e);
+  e = dynamic_cast<Score_element*> (a);
+  i = dynamic_cast<Item*>(e);
 }
 
 Interval
index 4ed52a89247662a230cc4d27bbf24a0272acaab7..863d33d789574bc2df41dbe40f6d1c96ae25e16e 100644 (file)
@@ -16,7 +16,9 @@ Span_score_bar_engraver::get_span_bar_p () const
 {
   Span_bar*s =  new Span_bar;
   s->type_str_ = "scorebar";
-    
+  s->set_elt_property (break_priority_scm_sym,
+                      gh_int2scm (-4));
+
   return s;
 }
 
index a0914f000b75248dbd272d183100195917d0fbef..708c6b4f450da3f0e803a758e5d8cabbd3c4a122 100644 (file)
@@ -11,6 +11,7 @@
 #include "misc.hh"
 #include "debug.hh"
 
+#include "align-element.hh"
 #include "stem.hh"
 #include "paper-def.hh"
 #include "lookup.hh"
@@ -22,15 +23,14 @@ Stem_info::Stem_info ()
 {
 }
 
-Stem_info::Stem_info (Stem*s)
+Stem_info::Stem_info (Stem*s, int mult)
 {
+  mult_i_ =mult;
   stem_l_ = s;
   x_ = stem_l_->hpos_f ();
   dir_ = stem_l_->dir_;
   SCM bd = stem_l_->remove_elt_property (beam_dir_scm_sym);
   beam_dir_ = gh_scm2int (SCM_CDR(bd));
-  
-  mult_i_ = stem_l_->mult_i_;
   interstaff_f_ = 0;
 
   Paper_def* paper_l = stem_l_->paper_l ();
@@ -106,21 +106,37 @@ Stem_info::Stem_info (Stem*s)
   idealy_f_ = miny_f_ >? idealy_f_;
 
   // interstaff beam
-  Beam* beam_l_ = stem_l_->beam_l_;
-  if (beam_l_->sinfo_.size ()
-      && stem_l_->staff_symbol_l () != beam_l_->sinfo_[0].stem_l_->staff_symbol_l ())
+  Beam* beam_l = stem_l_->beam_l_;
+  Dimension_cache *common = stem_l_->common_group (beam_l, Y_AXIS);
+  Align_element * align = dynamic_cast<Align_element*> (common->element_l ());
+  if (align && align->axis() == Y_AXIS)
     {
-       {
-         //      warning (_ ("invalid dimension cache: guessing staff position"));
-         if (beam_l_->vertical_align_drul_[MIN] != 
-             beam_l_->vertical_align_drul_[MAX])
-           warning (_ ("minVerticalAlign != maxVerticalAlign: interstaff slurs may be broken"));
-         interstaff_f_ = beam_l_->vertical_align_drul_[MIN] / internote_f;
-         // urg, guess staff order:
-         // if our stem ends higher, our staff is probably lower...
-         if (idealy_f_ * beam_dir_ > beam_l_->sinfo_[0].idealy_f_ * beam_dir_)
-           interstaff_f_ *= -1;
-       }
+      if (align->threshold_interval_[MIN] != 
+         align->threshold_interval_[MAX])
+       warning (_ ("minVerticalAlign != maxVerticalAlign: interstaff beams/slurs may be broken"));
+
+      interstaff_f_ = align->threshold_interval_[MIN] / internote_f;
+
+      Dimension_cache * beam_refpoint = &beam_l->dim_cache_[Y_AXIS];
+      Dimension_cache * stem_refpoint = &stem_l_->dim_cache_[Y_AXIS];
+
+      while (beam_refpoint->parent_l_ != common)
+       beam_refpoint = beam_refpoint->parent_l_;
+      while (stem_refpoint->parent_l_ != common)
+       stem_refpoint = stem_refpoint->parent_l_;
+
+
+      int beam_prio =
+       align->get_priority (dynamic_cast<Score_element*> (beam_refpoint->element_l ()));
+      int stem_prio =
+       align->get_priority (dynamic_cast<Score_element*> (stem_refpoint->element_l ()));
+
+      /*
+       our staff is lower -> interstaff_f_ *= -1
+       */
+      if (beam_prio < stem_prio)
+       interstaff_f_ *= -1;
+      
       idealy_f_ += interstaff_f_ * beam_dir_;
       miny_f_ += interstaff_f_ * beam_dir_;
       maxy_f_ += interstaff_f_ * beam_dir_;
index c0221c73fde68c47ae737f5d1be8a7becaa79a4f..751220e7a6acfb7cdcc2b60c3398698eaa475b03 100644 (file)
@@ -26,14 +26,9 @@ Stem::~Stem ()
 Stem::Stem ()
 {
   beams_i_drul_[LEFT] = beams_i_drul_[RIGHT] = -1;
-  mult_i_ = 0;
-
   yextent_drul_[DOWN] = yextent_drul_[UP] = 0;
   flag_i_ = 2;
   dir_ = CENTER;
-  stem_xdir_ = LEFT;
-
-  beam_gap_i_ = 0;
   beam_l_ = 0;
 }
 
@@ -173,7 +168,7 @@ Stem::set_default_stemlen ()
     set_default_dir ();
   /* 
     stems in unnatural (forced) direction should be shortened, 
-    accoding to [Roush & Gourlay]
+    according to [Roush & Gourlay]
    */
   if (((int)chord_start_f ())
       && (dir_ != get_default_dir ()))
@@ -198,19 +193,8 @@ Stem::set_default_extents ()
   if (!stem_length_f ())
     set_default_stemlen ();
 
-
-  if (dir_ == UP)
-    stem_xdir_ = RIGHT;
-  if (invisible_b ())
-    stem_xdir_ = CENTER;
 }
 
-/*
-  TODO
-
-  move into note_column.cc
-
-  */
 void
 Stem::set_noteheads ()
 {
@@ -220,10 +204,13 @@ Stem::set_noteheads ()
   if (dir_ < 0)
     head_l_arr_.reverse ();
 
-  head_l_arr_[0]->extremal_i_ = -1;
-  head_l_arr_.top ()->extremal_i_ = 1;
+  Note_head * beginhead =   head_l_arr_[0];
+  beginhead->set_elt_property (extremal_scm_sym, SCM_BOOL_T);
+  if  (beginhead !=   head_l_arr_.top ())
+    head_l_arr_.top ()->set_elt_property (extremal_scm_sym, SCM_BOOL_T);
+  
   int parity=1;
-  int lastpos = head_l_arr_[0]->position_i_;
+  int lastpos = beginhead->position_i_;
   for (int i=1; i < head_l_arr_.size (); i ++)
     {
       int dy =abs (lastpos- head_l_arr_[i]->position_i_);
@@ -231,7 +218,7 @@ Stem::set_noteheads ()
       if (dy <= 1)
        {
          if (parity)
-           head_l_arr_[i]->x_dir_ = (stem_xdir_ == LEFT) ? LEFT : RIGHT;
+           head_l_arr_[i]->flip_around_stem (dir_);
          parity = !parity;
        }
       else
@@ -316,10 +303,10 @@ Stem::note_delta_f () const
       Interval head_wid(0,  head_l_arr_[0]->extent (X_AXIS).length ());
       Real rule_thick(paper_l ()->rule_thickness ());
       Interval stem_wid(-rule_thick/2, rule_thick/2);
-      if (stem_xdir_ == CENTER)
+      if (dir_ == CENTER)
        r = head_wid.center ();
       else
-       r = head_wid[stem_xdir_] - stem_wid[stem_xdir_];
+       r = head_wid[dir_] - stem_wid[dir_];
     }
   return r;
 }
@@ -330,29 +317,17 @@ Stem::hpos_f () const
   return note_delta_f () + Item::hpos_f ();
 }
 
-/*
-  TODO:  head_l_arr_/rest_l_arr_ in  
- */
 void
 Stem::do_substitute_element_pointer (Score_element*o,Score_element*n)
 {
   if (Note_head*h=dynamic_cast<Note_head*> (o))
-  head_l_arr_.substitute (h, dynamic_cast<Note_head*>(n));
+    head_l_arr_.substitute (h, dynamic_cast<Note_head*>(n));
   if (Rest *r=dynamic_cast<Rest*> (o))
     rest_l_arr_.substitute (r, dynamic_cast<Rest*>(n));
   if (Beam* b = dynamic_cast<Beam*> (o))
     {
       if (b == beam_l_) 
-       {
-         beam_l_ = dynamic_cast<Beam*> (n);
-         if (!beam_l_)
-           {
-             beams_i_drul_[LEFT] = 0;
-             beams_i_drul_[RIGHT] = 0;
-             mult_i_ = 0;
-           }
-       }
+       beam_l_ = dynamic_cast<Beam*> (n);
     }
   Staff_symbol_referencer::do_substitute_element_pointer (o,n);
-      
 }
index cf67bc47b26087fa921e88d5a6726cd9ed390726..16d5b76027993ba44cca120a517f74c77ade2ed5 100644 (file)
@@ -91,7 +91,7 @@ Text_engraver::do_process_requests ()
       Scalar padding = get_property ("textScriptPadding", 0);
       if (padding.length_i() && padding.isnum_b ())
        {
-         ss->padding_f_ = Real(padding);
+         ss->set_elt_property (padding_scm_sym, gh_double2scm(Real(padding)));
        }
 
       Scalar empty = get_property ("textEmptyDimension", 0);
index 83ba2c92b1b3d8fbe70f42d03f4da296ae1aec85..df313208cc6e0bee055aa4aae03b5e61e5882237 100644 (file)
@@ -93,7 +93,8 @@ Tie::do_post_processing()
   do
     {
       // tie attached to outer notehead
-      if (head_l_drul_[d] && head_l_drul_[d]->extremal_i_)
+      if (head_l_drul_[d]
+         && head_l_drul_[d]->remove_elt_property (extremal_scm_sym) != SCM_BOOL_F)
        {
          if (d == LEFT)
            dx_f_drul_[d] += notewidth;
index 67fdfda3ddf3e53131ed57cf4d3d72d1a6bf4299..036cb8d5d82ccebb21cd67a618979002209eb141 100644 (file)
@@ -8,8 +8,8 @@
 
 #include "p-col.hh"
 #include "vertical-align-engraver.hh"
-#include "vertical-align-spanner.hh"
-#include "vertical-group-spanner.hh"
+#include "axis-align-spanner.hh"
+#include "axis-group-spanner.hh"
 
 Vertical_align_engraver::Vertical_align_engraver()
 {
@@ -19,7 +19,10 @@ Vertical_align_engraver::Vertical_align_engraver()
 void
 Vertical_align_engraver::do_creation_processing()
 {
-  valign_p_ =new Vertical_align_spanner;
+  valign_p_ =new Axis_align_spanner;
+  valign_p_->set_axis (Y_AXIS);
+  valign_p_->stacking_dir_ = DOWN;
+  
   valign_p_->set_bounds(LEFT,get_staff_info().command_pcol_l ());
   announce_element (Score_element_info (valign_p_ , 0));
 }
@@ -38,7 +41,12 @@ Vertical_align_engraver::do_removal_processing()
     {
       valign_p_->threshold_interval_[SMALLER]  = Real (dist);
     }
-  
+
+  dist = get_property ("alignmentReference",0);
+  if (dist.length_i () && dist.isnum_b ())
+    {
+      valign_p_->align_dir_ = int (dist);
+    }
   valign_p_->set_bounds(RIGHT,get_staff_info().command_pcol_l ());
   typeset_element (valign_p_);
   valign_p_ =0;
@@ -47,12 +55,10 @@ Vertical_align_engraver::do_removal_processing()
 void
 Vertical_align_engraver::acknowledge_element (Score_element_info i)
 {
-  if (i.origin_grav_l_arr_.size() == 1
-      && dynamic_cast<Vertical_group_spanner *> (i.elem_l_)
+  if (i.origin_grav_l_arr_.size() == 1 &&
+      dynamic_cast<Axis_group_spanner *> (i.elem_l_)
       && !i.elem_l_->parent_l (Y_AXIS))
     {
-      assert (!valign_p_->contains_b (i.elem_l_));
-
       valign_p_->add_element (i.elem_l_);
     }
 }
diff --git a/lily/vertical-align-spanner.cc b/lily/vertical-align-spanner.cc
deleted file mode 100644 (file)
index 5419c79..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
-  vertical-align-spanner.cc -- implement Vertical_align_spanner
-
-  source file of the GNU LilyPond music typesetter
-
-  (c)  1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-*/
-
-#include "vertical-align-spanner.hh"
-
-
-
-
-Vertical_align_spanner::Vertical_align_spanner ()
-{
-  axis_ = Y_AXIS;
-}
-
-void
-Vertical_align_spanner::do_print ()const
-{
-    Align_element::do_print () ;
-}
diff --git a/lily/vertical-group-elem.cc b/lily/vertical-group-elem.cc
deleted file mode 100644 (file)
index 6beef88..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
-  vertical-group-elem.cc -- implement Horizontal_vertical_group_element
-
-  source file of the GNU LilyPond music typesetter
-
-  (c)  1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-*/
-
-#include "vertical-group-element.hh"
-#include "interval.hh"
-#include "item.hh"
-#include "debug.hh"
-
-
-Vertical_group_element::Vertical_group_element()
-  : Axis_group_element (Y_AXIS,Y_AXIS)
-{
-}
-
-Interval
-Vertical_group_element::do_height() const
-{
-  return Graphical_axis_group::extent (Y_AXIS);
-}
-
-
diff --git a/lily/vertical-group-spanner.cc b/lily/vertical-group-spanner.cc
deleted file mode 100644 (file)
index bab9311..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-/*
-  vertical-group-spanner.cc -- implement Vertical_group_spanner
-
-  source file of the GNU LilyPond music typesetter
-
-  (c)  1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-*/
-
-#include "vertical-group-spanner.hh"
-#include "item.hh"
-#include "p-col.hh"
-
-Vertical_group_spanner::Vertical_group_spanner ()
-{
-  axes_[0] = axes_[1] = Y_AXIS;
-}
index bb2f3d39d0264da0fcade9d5b8eb93daf4567c46..7d01eca86eefd183140f63d73b7599d6b01e1dc8 100644 (file)
@@ -10,18 +10,6 @@ longa = \duration { -2 0 }
 
 Gourlay = 1.0
 Wordwrap = 0.0
-
-papersize = "a4"
-
-\include "paper20.ly"
-
-\paper{
-       \paper_twenty
-}
-
-% ugh
-\include "midi.ly"
-
 % declarations for standard directions
 left = -1
 right = 1
@@ -39,6 +27,19 @@ nobreak = { \penalty = -10000; }
 
 major = 0
 minor = 3
+
+
+papersize = "a4"
+
+\include "paper20.ly"
+
+\paper{
+       \paper_twenty
+}
+
+% ugh
+\include "midi.ly"
+
 \include "dynamic.ly"
 
 \include "property.ly"
index 0fae8e2a10817483b11bb4e1c86e23cd44882750..17f5ed75fc6bcf984fc3253f4bab101b6349359b 100644 (file)
@@ -20,6 +20,7 @@ fp = \absdynamic { "fp" }
 sf = \absdynamic { "sf" }
 sff = \absdynamic { "sff" }
 sfz = \absdynamic { "sfz" }
+fz = \absdynamic { "fz" }
 sp = \absdynamic { "sp" }
 spp = \absdynamic { "spp" }
 rfz = \absdynamic { "rfz" }
index 7f6d4bc79652ca6c1d7a7f9ee8871b296fcb59a8..8f11a285f697477f0bc1445c813b548a1c355b63 100644 (file)
@@ -66,6 +66,7 @@ StaffContext=\translator {
        \type "Line_group_engraver_group";
        \name ChoirStaff;
        \consists "Vertical_align_engraver";
+       alignmentReference = \center;   
        \consists "Staff_group_bar_engraver";
        \accepts "Staff";
        \accepts "RhythmicStaff";
@@ -126,6 +127,7 @@ GrandStaffContext=\translator{
        \consists "Span_bar_engraver";
        \consists "Vertical_align_engraver";
        \consists "Piano_bar_engraver";
+       alignmentReference = \center;
        minVerticalAlign = 1.5*\staffheight;
 
        \accepts "Staff";
@@ -134,15 +136,19 @@ GrandStaffContext=\translator{
 \translator{\GrandStaffContext
        minVerticalAlign = 3.0*\staffheight;
        maxVerticalAlign = 3.0*\staffheight;
+
        \name "PianoStaff";
        
 }
 
 StaffGroupContext= \translator {
-       \type "Hara_kiri_line_group_engraver";
+%      \type "Hara_kiri_line_group_engraver";
 %      \type "Line_group_engraver_group";
+       \type "Engraver_group_engraver";
        \consists "Span_bar_engraver";
        \consists "Vertical_align_engraver";
+       alignmentReference = \center;
+       
        \consists "Staff_group_bar_engraver";
        \name StaffGroup;
        \accepts "Staff";
@@ -189,28 +195,6 @@ ChordNameContext = \translator {
 };
 \translator { \ChordNameContext }
 
-ScoreContext = \translator {
-       \type Score_engraver;
-       \name Score;
-
-       \consists "Timing_engraver";
-
-       \consists "Span_score_bar_engraver";
-       \consists "Score_priority_engraver";
-%      \consists "Priority_horizontal_align_engraver";
-       \consists "Vertical_align_engraver";
-
-
-       \accepts "StaffGroup";
-       \accepts "Staff";
-       \accepts "RhythmicStaff";       
-       \accepts "Lyrics";
-       \accepts "ChordNames";
-       \accepts "GrandStaff";
-       \accepts "ChoirStaff";
-       \accepts "PianoStaff";
-};
-\translator { \ScoreContext }
 
 ScoreWithNumbers = \translator {
        \type "Score_engraver";
@@ -266,31 +250,41 @@ OrchestralPartStaffContext = \translator {
        \consists "Bar_number_engraver";
 };
 
-OrchestralScoreContext= \translator {
+
+ScoreContext = \translator {
        \type Score_engraver;
        \name Score;
-       barScriptPadding = "2.0";       % dimension \pt
-       markScriptPadding = "4.0";
-       barColumnPriority = "-4";
-       markBreakPriority = "-4";
-       defaultClef = treble;
 
        \consists "Timing_engraver";
 
-       \consists "Bar_number_engraver";
-       \consists "Mark_engraver";
        \consists "Span_score_bar_engraver";
        \consists "Score_priority_engraver";
-
        \consists "Vertical_align_engraver";
+       alignmentReference = \down;
+       defaultClef = treble;
 
-       \accepts "ChoirStaff";
+       \accepts "Staff";
        \accepts "StaffGroup";
-       \accepts "HaraKiriStaff";
        \accepts "RhythmicStaff";       
        \accepts "Lyrics";
        \accepts "ChordNames";
        \accepts "GrandStaff";
+       \accepts "ChoirStaff";
        \accepts "PianoStaff";
+};
+
+\translator { \ScoreContext }
+
+OrchestralScoreContext= \translator {
+       \ScoreContext
+
+       barScriptPadding = "2.0";       % dimension \pt
+       markScriptPadding = "4.0";
        
+
+
+       \consists "Bar_number_engraver";
+       \consists "Mark_engraver";
+
+       \accepts "HaraKiriStaff";
 };
index 165a781726dddfefa22bd8b9a006a7d8439246e2..5dc91bbb19fbe113e941d0cb8f722f5005e92a19 100644 (file)
@@ -115,6 +115,7 @@ Ross. page 151
 bar_kern = 0.5 * \interline;
 bar_thinkern = 0.75 * \interline;
 barthick_thick = 0.5* \interline;
+barthick_score = 0.13333* \interline;
 barthick_thin = 0.1*\interline;
 Can't be, these are ugly!  Changed to old (TeX) values.
 
index 68a2e8333ea319779ea3346c1fbce3c63f9c95a4..6ee1defece26201ddf64c9505930f3cca6e994e6 100644 (file)
@@ -1,15 +1,15 @@
 Begin3
 Titel: LilyPond
-Versie: 1.1.36
-Inschrijf datum: 18MAR99
+Versie: 1.1.37
+Inschrijf datum: 29MAR99
 Beschrijving: @FLAPTEKST@
 Trefwoorden: muziek typezetten midi notatie
 Auteur: hanwen@stack.nl (Han-Wen Nienhuys)
        janneke@gnu.org (Jan Nieuwenhuizen)
 Onderhouden door: hanwen@cs.ruu.nl (Han-Wen Nienhuys)
 Voornaamste plek: sunsite.unc.edu /pub/Linux/apps
-       770k lilypond-1.1.36.tar.gz 
+       770k lilypond-1.1.37.tar.gz 
 Oorspronkelijke plek: ftp.cs.uu.nl /pub/GNU/LilyPond/development/
-       770k lilypond-1.1.36.tar.gz 
+       770k lilypond-1.1.37.tar.gz 
 Copi-eer voorwaarden: GPL
 End
index 6ec0240a5f3a3abddac2ca87033b089ac7b0c354..f9647a6ef0fc5ee149b2addb2f53a3d008a9a9d9 100644 (file)
@@ -1,7 +1,7 @@
 Begin3
 Title: LilyPond
-Version: 1.1.36
-Entered-date: 18MAR99
+Version: 1.1.37
+Entered-date: 29MAR99
 Description: 
 LilyPond is the GNU Project music typesetter.  This program can print
 beautiful sheet music from a music definition file.  It can also play
@@ -14,8 +14,8 @@ Author: hanwen@cs.ruu.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
-       770k lilypond-1.1.36.tar.gz 
+       770k lilypond-1.1.37.tar.gz 
 Original-site: ftp.cs.uu.nl /pub/GNU/LilyPond/development/
-       770k lilypond-1.1.36.tar.gz 
+       770k lilypond-1.1.37.tar.gz 
 Copying-policy: GPL
 End
index 4a5b57845a87e9008e737a1db4129a47e12ab881..293084848c92432b58f230748de8211cc5c2206e 100644 (file)
@@ -1,9 +1,9 @@
 Name: lilypond
-Version: 1.1.36
+Version: 1.1.37
 Release: 1
 Copyright: GPL
 Group: Applications/Publishing
-Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.1.36.tar.gz
+Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.1.37.tar.gz
 Summary: A program for printing sheet music.
 URL: http://www.cs.uu.nl/~hanwen/lilypond
 Packager: Han-Wen Nienhuys <hanwen@cs.uu.nl>
index 3aac7752a9f2e12a563bb7de9a445f557c02b4f3..922e0fa03ae02ee035a68bd699e7ea07375a7661 100644 (file)
@@ -84,7 +84,7 @@ set_char_box (5/2 ledgerlinethickness#, 5/2 ledgerlinethickness#,
        draw z1 .. z2;
 fet_endchar;
 
-fet_beginchar("Brevis notehead", "-1", "brevisball")
+fet_beginchar("Brevis notehead", "-1", "brevishead")
        draw_brevis(brevis_wid#);
 fet_endchar;
 
@@ -92,7 +92,7 @@ fet_endchar;
 % Some sources (eg Musix/OpusTeX think that the appendage should be on
 % the right, my only other ref [Willemze], shows an appendage to the left
 %
-fet_beginchar("Longa notehead", "-2", "longaball");
+fet_beginchar("Longa notehead", "-2", "longahead");
        draw_brevis(brevis_wid#);
        save theta;
        z7 = z5;
@@ -106,6 +106,8 @@ fet_beginchar("Longa notehead", "-2", "longaball");
 fet_endchar;
 
 
+% TODO: Document these!
+
 % setup user vars
 def setup_notehead_vars =
        save a_b,err_y_a,tilt,superness;
@@ -152,7 +154,7 @@ fi
 
 % whole note
 % Wanske, p.38
-fet_beginchar("Whole notehead", "0", "wholeball")
+fet_beginchar("Whole notehead", "0", "wholehead")
        setup_notehead_vars;
        
        a_b:=1.80;
@@ -183,7 +185,7 @@ fet_endchar;
 % half note
 % Wanske, p.39
 fet_beginchar("Half notehead", "1", 
-       "halfball")
+       "halfhead")
        setup_notehead_vars;
                % a_b:=1.49; % after text
        a_b:=1.50; % after drawing
@@ -211,7 +213,7 @@ fet_endchar;
 
 % quarter note
 % Wanske p.38
-fet_beginchar("Quart notehead", "2", "quartball")
+fet_beginchar("Quart notehead", "2", "quarthead")
        setup_notehead_vars;
        % a_b:=1.57; % after text
        a_b:=1.54; % after drawing
@@ -233,81 +235,164 @@ fet_beginchar("Quart notehead", "2", "quartball")
 fet_endchar;
 
 
+% whole note
+% Wanske, p.38
+fet_beginchar("Whole diamondhead", "0diamond", "wholediamondhead")
+       setup_notehead_vars;
+       
+       a_b:=1.80;
+       err_y_a:=0; % no slant
+       tilt:=0;
+       superness:=0.495;
+       ai_a:=0.400;
+       % ai_bi:=1.23;
+       ai_bi:=1.30; % jcn
+       % err_y_ai:=0.0938;
+       % err_x_bi:=0;
+       err_y_ai:=0;
+       err_x_bi:=0.115;
+       % inner_tilt:=135;
+       inner_tilt:=125; % jcn
+       % inner_superness:=0.69;
+       inner_superness:=0.6; % jcn
+       b_h:=1; %no rotate-> no height correction
+       a_w:=1; % no rotate-> no width correction
+
+       notehead_calc;
+       whole_notehead_width# := wd#;
+       notehead_draw;
+fet_endchar;
+
+
+% half note
+% Wanske, p.39
+fet_beginchar("Half diamondhead", "1diamond", 
+       "halfdiamondhead")
+       setup_notehead_vars;
+
+       a_b := 1.50; % after drawing
+       err_y_a:=0.157;
+
+       tilt:=34;
+       superness:=0.49; % jcn
+       ai_a:=0.550; % jcn
+       ai_bi:=3.30; % jcn
+
+       err_y_ai:=0;
+       err_x_bi:=-0.12;
+       inner_tilt:=tilt;
+       inner_superness:=0.80;
+
+       b_h:= 1.03;
+       a_w:= 1.2;
+
+       notehead_calc;
+       half_notehead_width# := wd#;
+       notehead_draw;
+fet_endchar;
+
+
+% quarter note
+% Wanske p.38
+fet_beginchar("Quart diamondhead", "2diamond", "diamondhead")
+       set_char_box(0, black_notehead_width#, noteheight#/2, noteheight#/2);
+       save a_b,err_y_a,tilt,superness;
+       save b_h,a_w;
+       save a,beta,ai,bi, ht, wd;
 
+       a_b:= 1.8;
+       err_y_a:=-0.044;
+       b_h:=0.90;
+       a_w:=1.1;
+       tilt:=35;
+       superness:=0.495;
 
+       ht# =noteheight#;
+       2beta#=ht#*b_h;
+       a# = beta#*a_b;
+
+       define_pixels(a,beta);
+
+       black := distorted_ellipse(.72 noteheight, .45 noteheight, -.2 noteheight ,   0, superness)
+                               
+%                      beta,a*err_y_a,0,superness);
+
+       black:=black rotated tilt;
+       black:=black shifted (w/2,0);
+       fill black;
+
+fet_endchar;
+
+fet_beginchar("Crossed notehead", "2cross", "crossedhead")
+       set_char_box(0, black_notehead_width#, noteheight#/2, noteheight#/2);
+       pickup pencircle scaled 1.5 stafflinethickness;
+       lft x1 = 0;
+       bot y1 = -d;
+       top y2 = h;
+       rt x2 = w;
+
+       draw z1 .. z2;
+       draw (z1 .. z2) yscaled -1;
+fet_endchar
 
-%if test = 0:
-%else:
 def draw_harmonic_notehead(expr harmwid) =
        save beamheight, head_width, head_char_width;
-       save holeheight, stem_width;
-       save serif_size, serif_protrude;
        save stemthick;
        save thin, thick;
-       save ht, schuif_op;
+       save ht;
        
-%      setup_notehead_vars;
-       
-%      a_b:=1.54;
-%      ai_a:=0;
-%      ai_bi:=1;
-%      b_h:=0.85;
-%      a_w:=1.09;
-
-%      notehead_calc;
-       
-
        head_width# = harmwid;
 
        define_pixels(head_width);
        
-%      ht# = noteheight#;
        head_char_width = 1.54 noteheight;
        head_char_width# := 1.54 ht#;
-       %schuif_op = head_char_width - head_width; %ugh
-       %schuif_op# := head_char_width# - head_width#;
-%      set_char_box(0, head_char_width#, noteheight#/2, noteheight#/2); 
+
+
        set_char_box(0, head_width#, head_width#/2, head_width#/2);
-%      2 beamheight + holeheight = noteheight;
-       thin = stafflinethickness;
-       thick = 2.2 stafflinethickness;
-%      serif_size = (holeheight - stafflinethickness)/2;
-%      serif_protrude = 1.5 serif_size;
+
+       thin = stafflinethickness - blot_diameter/2;
+       thick = 2.2 stafflinethickness - blot_diameter/2;
        penpos1(thick, 45);
        penpos2(thin, 315);
        penpos3(thin, 135);
-       penpos4(thick, 45);
+       penpos4(thick, 55);
        penpos5(thick, 225);
        penpos6(thin, 135);
        penpos7(thin, 315);
-       penpos8(thick, 225);
+       penpos8(thick, 235);
+
+       
+       pickup pencircle scaled blot_diameter;
+
+       lft x1l = 0;
+       y1l = 0;
 
-%      1.5 noteheight = head_width;
-       z1l = (0, 0);
        z2l = z1l;
-%      z3l = (head_width/2,-head_width/2);
-       z3l = (head_width/2, -noteheight/2);
+
+       bot y3l =  -noteheight/2;
+       x3l = head_width/2;
        z4l = z3l;
-       z5l = (head_width, 0);
+       rt x5l = head_width;
+       y5l =  0;
        z6l = z5l;
-%      z7l = (head_width/2, head_width/2);
-       z7l = (head_width/2, noteheight/2);
+
+       top y7l = noteheight/2;
+       x7l = (head_width/2); 
        z8l = z7l;
-       
-       pickup pencircle; %scaled stemthick;
+
        penlabels(1,2,3,4,5,6,7,8);
        test_grid;
-       fill z1l -- z2r -- z7r -- z7l -- cycle;
-       fill z1l -- z1r -- z4r -- z4l -- cycle;
-       fill z3r -- z3l -- z6l -- z6r -- cycle;
-       fill z5r -- z5l -- z8l -- z8r -- cycle;
+       filldraw z1l -- z2r -- z7r -- z7l -- cycle;
+       filldraw z1l -- z1r -- z4r -- z4l -- cycle;
+       filldraw z3r -- z3l -- z6l -- z6r -- cycle;
+       filldraw z5r -- z5l -- z8l -- z8r -- cycle;
 enddef;
 
-%save uitsteek;
-% uitsteek = .25;
 harmonic_wid# := interline#;
 
-fet_beginchar("Harmonic notehead","harmonic","harmonicball")
+fet_beginchar("Harmonic notehead","2harmonic","harmonichead")
        draw_harmonic_notehead(harmonic_wid#)
 fet_endchar;
 
index df9dc1ee074c59a5b1d8eceec52fa5317b3bc517..01d1cb2c7a9f7a09f73f5b764b5330fedb84c396 100644 (file)
@@ -1,4 +1,4 @@
-% 
+i
 % feta-generic.mf --  implement 
 % 
 % source file of the Feta (defintively not an abbreviation for Font-En-Tja)
@@ -42,5 +42,5 @@ else:
 %      input feta-schrift;
 %      input feta-schrift;
 %      input feta-haak;
-       input feta-timesig;
+%      input feta-timesig;
 fi
index 7166c55fdb3660d093354afe12f76e23e2984196..187bb83512713fea0b5749321e5aaa88ef4bedd1 100644 (file)
@@ -171,7 +171,7 @@ bassdux = \type Voice=three \notes \relative c' {
 
 \score {
  
-    \type GrandStaff < 
+    \type PianoStaff < 
        \type Staff = treble < 
            \global 
            \dux
@@ -189,11 +189,6 @@ bassdux = \type Voice=three \notes \relative c' {
        textheight = 295.\mm;
 
        \translator{ \OrchestralScoreContext }
-       \translator{ 
-           \GrandStaffContext
-           minVerticalAlign = 3.0*\staffheight;
-           maxVerticalAlign = 3.0*\staffheight;
-       }
     }
     \header{
        opus = "BWV 847";
index e61ea9bb122b810da80ece93a071ee4740e551cf..53fadb17a90ae3cae107a3e1ec0ba63135ce888e 100644 (file)
@@ -52,7 +52,7 @@ e,4. r8 |
 e'4. r8 |
 e r e r |
 e r e r |
-c4 \sfz r |
+c4 \fz r |
 R2*12 |
 r4 r8 g' ( |
 ) g,4. \f g8 ( |
@@ -72,8 +72,8 @@ r4 r8 e \f ( |
 R2*4 |
 d4. \f r8 |
 R2 |
-d4. \sfz r8 |
-d4. \sfz r8 |
+d4. \fz r8 |
+d4. \fz r8 |
 d4 d-> ~ |
 d4 d-> ~ |
 d g ( |
@@ -111,7 +111,7 @@ c r |
 e r |
 c8 r d r |
 es r d r |
-d \sfz r r4 |
+d \fz r r4 |
 R2*2 |
 d4 ( \p \< e |
 \! f g \> ~ |
@@ -172,7 +172,7 @@ g ~ |
 g ~ | 
 g | 
 R2*2 |
-d'2 \sfz \> ( |
+d'2 \fz \> ( |
 ) \! g, ~ |
 g \p ~ | 
 g | 
@@ -200,7 +200,7 @@ c4 r8 g ( |
 ) e'4 r8 g,8 ( |
 ) c4 r |
 R2 |
-e4 \sfz r^\fermata
+e4 \fz r^\fermata
 }
 
 corIhelp=\notes\relative c''' {
@@ -278,7 +278,7 @@ c,4. r8 |
 g'4. r8 |
 e r e r |
 e r e r |
-fis4 \sfz r |
+fis4 \fz r |
 R2*13 |
 r4 r8 g \f ( |
 ) g,4. r8 |
@@ -294,8 +294,8 @@ r4 r8 g' ( |
 R2*6 |
 d''4. \f r8 |
 R2 |
-c4. \sfz r8 |
-c4. \sfz r8 |
+c4. \fz r8 |
+c4. \fz r8 |
 g4 g,-> ~ |
 g g-> ~ |
 g g ~ |
@@ -331,7 +331,7 @@ c r |
 e r |
 c'8 r d r |
 es r d r |
-g, \sfz r r4 |
+g, \fz r r4 |
 R2*13 |
 c,4. \f c8 ( |
 )c,4. r8 |
@@ -350,7 +350,7 @@ c2:8 |
 c4.:8 e8 ( |
 ) g4. \f r8 |
 R2 |
-g4. \sfz r8 |
+g4. \fz r8 |
 g4. g8 ( |
 ) c r g4 ( |
 ) c8 r g4 ( |
@@ -378,7 +378,7 @@ g ~ |
 g ~ |
 g |
 R2*2 |
-g \sfz ~ |
+g \fz ~ |
 g ~ |
 g ~ |
 g |
@@ -406,7 +406,7 @@ e4 r8 g ( |
 ) c,4 r8 g'8 ( |
 ) e4 r |
 R2 |
-c'4-. \sfz r^\fermata
+c'4-. \fz r^\fermata
 }
 
 trpI=\notes\relative c'' {
@@ -463,7 +463,7 @@ e,4. r8 |
 e'4. r8 |
 e8 r e r |
 e r e r |
-d \sfz r r4 |
+d \fz r r4 |
 R2*13 |
 r4 g,8 \f r |
 [d'-. d16 ( e ] ) d8 r |
@@ -514,7 +514,7 @@ d-. r |
 d-. r |
 g, r |
 R2 |
-g4 \sfz r^\fermata
+g4 \fz r^\fermata
 }
 
 trpIhelp=\notes\relative c'' {
@@ -671,7 +671,7 @@ g-. r |
 g-. r |
 g r |
 R2 |
-g4 \sfz r^\fermata
+g4 \fz r^\fermata
 }
 
 timpani=\notes\relative c, {
@@ -748,7 +748,7 @@ f8 r r4 |
 R2 |
 f8 r r4 |
 R2*3 |
-c'4 \sfz r |
+c'4 \fz r |
 R2*12 |
 r4 r8 f, \p |
 [f \< f f \! f ] |
@@ -800,7 +800,7 @@ f2:32 ~ |
 f2:32 ~ |
 f8 r r4 |
 r2 |
-f4 \sfz r^\fermata 
+f4 \fz r^\fermata 
 }
 
 timphelp=\notes\relative c' {
index 251d0cbdf26662075429d13cf07f5eb2a743959f..31a6655e2bf8897e4a8b04ca1c3cde3caf69dc14 100644 (file)
@@ -55,7 +55,7 @@ r4 r^\fermata r8^\fermata [c'16 \pp ( d] | \time 2/4;
 [c d c b ][ ) a8 a,16 ( b ] |
 [) c8-. b16 ( c][ ) d8-. c16 ( d ] |
 [ es f es ) d ][c8-. d'16 ( e ] |
-[f! \sfz g f e][d \> e d c ] |
+[f! \fz g f e][d \> e d c ] |
 [ b c b \! a][g a g ) fis ] |
 f!4 ( \p \< g |
 \! a2 |
@@ -71,7 +71,7 @@ a4 \> ) g |
 R2 |
 r4 r8 a'-. \mf |
 [a-. \< a-. a-. \! a-. ] |
-b4. \sfz r8 |
+b4. \fz r8 |
 R2 |
 r4 r8 a-. \mf |
 [a-. \< a-. a-. \! a-. ] |
@@ -90,8 +90,8 @@ g4^\trill ( a^\trill |
 b^\trill \tiny [a16*1/2 b*1/2] \normalsize [) c8*1/2 bes' \f ( ] | 
 ) bes'4.-> a8 |
 [f-. e-. d-. f, ( ] |
-< ) d'4. \sfz a'> g,8 ( |
-< ) d'4. \sfz g> g,8 ( |
+< ) d'4. \fz a'> g,8 ( |
+< ) d'4. \fz g> g,8 ( |
 ) e' r g4-> ( |
 ) e8 r g4-> ( |
 ) e8 r es4 ( |
@@ -110,25 +110,25 @@ R2 |
 r4 e,-. \p |
 a ( \< ) e' |
 e-. () \! e-. |
-e \sfz \> [ d8 \! c ] |
+e \fz \> [ d8 \! c ] |
 b2 \p | % \p added
 \tiny e8*1/2 \normalsize g4 ( \> *3/4 dis | 
 \! e ) b |
 \tiny e8*1/2 \normalsize g4 ( \> *3/4 dis | 
 \! e ) b |
-\tiny d8*1/2 \normalsize f2 \sfz ( *7/8 |
+\tiny d8*1/2 \normalsize f2 \fz ( *7/8 |
 b,4 [c8 ) b] |
 a2-> ~ |
 gis4 e |
 a ( ) e' |
 e-.  \< () \! e-. |
-e ( \sfz \> [ d8 \! c ] |
+e ( \fz \> [ d8 \! c ] |
 ) b2 \p |
 \tiny e8*1/2 \normalsize g4 ( \> *3/4 dis |
 \! e ) b |
 \tiny e8*1/2 \normalsize g4 ( \> *3/4 dis |
 \! e ) b |
-\tiny d8*1/2 \normalsize f2 \sfz ( *7/8 |
+\tiny d8*1/2 \normalsize f2 \fz ( *7/8 |
 b,4 [c8 ) b] |
 a2 \p ~ |
 gis |
@@ -161,7 +161,7 @@ R2*4 |
 [f g f e][ ) d8 d,16 ( e ] |
 [ ) f8 e16 ( f][ ) g8 f16 ( g ] |
 [as bes as g][ ) f8 g'16 ( a! ] |
-[bes! \sfz c bes a][g a g ) f ] |
+[bes! \fz c bes a][g a g ) f ] |
 [e ( f e d][c d c ) b ] |
 bes!4 \p ( \< c | % \p added
 \! d2 ~ |
@@ -195,8 +195,8 @@ c4^\trill ( d^\trill |
 e^\trill \tiny [d16*1/2 e*1/2] \normalsize [f8 *1/2 ) es' \f ( ] |
 ) es'4. d8 |
 [bes-. a-. g-. bes, ( ] |
-) d'4. \sfz c,8 ( |
-) c'4. \sfz c,8 ( |
+) d'4. \fz c,8 ( |
+) c'4. \fz c,8 ( |
 ) a' r c4-> ( |
 ) a8 r c4-> ( |
 ) a8 r as4 ( |
@@ -215,7 +215,7 @@ f4 g |
 f ) e |
 es2 ~ |
 d4 r |
-\tiny f'8*1/2 \normalsize a4 \sfz ( *3/4 e |
+\tiny f'8*1/2 \normalsize a4 \fz ( *3/4 e |
 f b, |
 ) c r |
 R2 |
@@ -227,7 +227,7 @@ e8 r r [c'16 ( \pp d] |
 [ ) bes8-. a16 ( bes ][ ) a8-. e'16 ( f ] |
 [ ) e8-. d16 ( e ][ ) d8-. c16 \< ( d ] |
 [ ) c8-. b16 ( \! c ][ ) b8-. bes ] |
-bes'4. \sfz \> a8 |
+bes'4. \fz \> a8 |
 [g-. \! f-. ] [e-. c16 ( d ] | 
 [ ) c8-. b16 ( c ][ ) b8-. bes16 ( c ] |
 [ ) bes8-. a16 ( bes ][ ) a8-. c16 ( d ] |
@@ -255,7 +255,7 @@ c r a r |
 <a4 ) a'> r8 c, |
 f2 ~ |
 f ( |
-<f4 \sfz c' ) a'> r^\fermata
+<f4 \fz c' ) a'> r^\fermata
 
 }
 
@@ -356,8 +356,8 @@ g4^\trill ( \< \! a^\trill |
 b^\trill \> \tiny [a16*1/2 b*1/2] \normalsize [ ) \! c8 *1/2 g' \f ( ] |
 < ) g4.-> bes> a8 |
 [a a a f ( ] |
-<d'4. \sfz ) a'> g,8 ( |
-<d'4. \sfz ) g> g,8 ( |
+<d'4. \fz ) a'> g,8 ( |
+<d'4. \fz ) g> g,8 ( |
 <{ ) e r f4_> ( |
   ) e8 r f4_> ( |
   ) e8 }
@@ -398,13 +398,13 @@ b-> ( |
 ) e4 r |
 a,4:16 \p b4:16 |
 c2:16 \< |
-\! b2:16 \sfz \> |
+\! b2:16 \fz \> |
 \! b2:16 |
 b4:16 \p \< \! c4:16 \> |
 \! b2:16 |
 b4:16 \p \< \! c4:16 \> |
 \! b2:16 |
-\tiny d8*1/2 \normalsize f2 ( \sfz *7/8 |
+\tiny d8*1/2 \normalsize f2 ( \fz *7/8 |
 ) e |
 [ a,16 ( \p d a d ][a d a d] |
 [ b16 d b d ][b d b ) d] |
@@ -425,7 +425,7 @@ r4 r8 bes ( |
 [) g a () f c' ( ] |
 [) g a () f ] r |
 R2 |
-r4 r8 [c'16 \sfz ( d ] |
+r4 r8 [c'16 \fz ( d ] |
 [c d c a][f a c d] |
 [f8 d ) c f, ( ] |
 [f' d ) c ][f,16 ( g] |
@@ -439,8 +439,8 @@ r4 r8 [c'16 \sfz ( d ] |
 [f g f e ][ ) d8 d'16 ( e ] |
 [f g f e][ ) d8 d,16 ( e ] |
 [ ) f8 e16 ( f][ ) g8 f16 ( g ] |
-[as bes as g][ ) f8 g'16 ( a! ] | % misprint sfz to early
-[bes! \sfz c bes a][g a g ) f ] |
+[as bes as g][ ) f8 g'16 ( a! ] | % misprint fz to early
+[bes! \fz c bes a][g a g ) f ] |
 e r r8 r4 |
 <{e,2 \p ~ |
   e4 \< \! f |
@@ -463,7 +463,7 @@ e r r8 r4 |
 R2*2 |
 r4 r8 b \p |
 b2:8 \< |
-< \! g4 bes! \sfz > r |
+< \! g4 bes! \fz > r |
 R2 |
 r4 r8 b \p |
 b2:8 \< |
@@ -523,7 +523,7 @@ c d4 e8 ~ |
 e f4 c8 ~ |
 c d4 e8 ~ |
 e \< e4 \! e8 ( |
-) bes'!4. \sfz \> \! a8 |
+) bes'!4. \fz \> \! a8 |
 [g-. f-. e-.] r |
 R2 |
 r4 r8 es \p ~ |
@@ -558,7 +558,7 @@ es \< es4 \! d8 \f |
 <a4 ) a'> r8 c, |
 [a16 ( gis a gis][a gis a gis] |
 [a gis a gis][a gis a gis] |
-<) a4 f' \sfz > r^\fermata 
+<) a4 f' \fz > r^\fermata 
 }
 
 vla=\notes\relative c' {
@@ -622,7 +622,7 @@ f4. [a16 ( b] |
 [c d c b] ) a8 r |
 <f8 a> r <f a> r |
 <fis a> r <fis a> r |
-[<g \sfz d'> d'16 ( e][f g f e ] |
+[<g \fz d'> d'16 ( e][f g f e ] |
 [d e d c] ) b8 r |
 [as16 ( \p g as g] [fis g fis ) g ] |
 [f! ( g f g][e g e ) g] |
@@ -663,8 +663,8 @@ b4 r8 <c, \p g'> |
 <{[ \! c8 c c cis \f (]}{[g' g g s ]}> |
 ) cis'4.-> cis8 |
 [d a d <d ( g,> ] |
-<f4. ) d' \sfz > <d8 ( g,> |
-<f4. ) d' \sfz > g,8 ( |
+<f4. ) d' \fz > <d8 ( g,> |
+<f4. ) d' \fz > g,8 ( |
 [c,16 g' fis ) g] [c, (g' fis ) g ] |
 [c, ( g' fis ) g] [c, (g' fis ) g ] |
 [c, ( g' fis ) g] [c, (a' gis ) a ] |
@@ -688,7 +688,7 @@ g'4 \p ( [fis8 \< dis ] |
 g \> [fis8 ) \! dis ] |
 e4 \< ( \! fis |
 g \> [fis8 ) \! dis ] |
-<d!2 \sfz e, > ~ |
+<d!2 \fz e, > ~ |
 <d2 e, > |
 <d b > ~ |
 <d b > |
@@ -719,7 +719,7 @@ R2 |
 r4 r8 [c16 \p ( d ] |
 [ ) c8 c16 ( d ] [ ) c8 c16 ( d ] |
 [ ) c8 c16 ( d ] [ ) c8 c16 ( f ] |
-[c \sfz f c f][ c f c ) f ] |
+[c \fz f c f][ c f c ) f ] |
 [d ( f d f][ c f c ) f ] |
 [d ( f d f] ) c8 r |
 r4 r8 [ f16 () g ] |
@@ -733,7 +733,7 @@ bes4.-> [d16 ( e ] |
 [f g f e ] ) d8 r |
 <bes d> r <bes d> r |
 <b d> r <b d> r |
-[<c \sfz e^. > g'16 ( a ] [bes! \> c \! bes a ] |
+[<c \fz e^. > g'16 ( a ] [bes! \> c \! bes a ] |
 [g a g f ] ) e r r8 |
 [des16 ( \p c des c ] [ b c b c ] |
 [bes! \< c bes c ] [ \! a c a ) c ] |
@@ -773,8 +773,8 @@ r r8 <f \p c'> |
 <{[f8 f f fis \f ~ ]}{[c'8 c c s]}> |
 <a4. fis'4.> fis'8 |
 [g d g <g, ( c,> ] |
-<c4. \sfz ) g'> <g8 ( c,> |
-<c4. \sfz ) g'> c,8 ( |
+<c4. \fz ) g'> <g8 ( c,> |
+<c4. \fz ) g'> c,8 ( |
 [f16 c' b ) c ][ f, ( c' b ) c ] |
 [ f, ( c' b ) c ] [ f, ( c' b ) c ] |
 [ f, ( c' b ) c ] [ f, ( d' cis ) d ] |
@@ -804,7 +804,7 @@ a as4 g8 ~ |
 g f4 e8 ~ |
 e \< f4 e8 ~ |
 \! e d4 c8 ( |
-<g'4. \sfz ) e'> f8 |
+<g'4. \fz ) e'> f8 |
 [g-. a-. bes-. a ~ ] |
 a as4 g8 ~ |
 g f4 a!8 ~ |
@@ -832,7 +832,7 @@ a r c-. r |
 <f4 ) c'> r8 c, |
 [c'16 ( b c b][c b c b] |
 [c b c b][c b c b] |
-<c4 \sfz ) a'> r^\fermata 
+<c4 \fz ) a'> r^\fermata 
 }
 
 vlc=\notes\relative c' {
@@ -892,7 +892,7 @@ c-. r [f-. c'-. ] |
 ) e4. [a,16 ( b ] |
 [)c8 b16 ( c][)d8 c16 ( d] |
 [es f es d] ) c8 r |
-[g \sfz d''16 ( e] [f g f e] |
+[g \fz d''16 ( e] [f g f e] |
 [d e d c][b c b ) a] |
 [as \p ( g as g][fis g fis g ] |
 [f! \< g f g][e g e ) \! g] |
@@ -957,7 +957,7 @@ g4:16 \< \! a4:16 |
 g4:16 \> \! a4:16 |
 g4:16 \< \! a4:16 |
 g4:16 \> \! a4:16 |
-gis2 \sfz ~ |
+gis2 \fz ~ |
 gis |
 f! ( |
 [e8 d c ) b ] |
@@ -969,7 +969,7 @@ g4:16 \> \! a4:16 |
 g4:16 \< \! a4:16 |
 g4:16 \> a4:16 |
 g4:16 \! a4:16 |
-gis2 \sfz ~ |
+gis2 \fz ~ |
 gis ~ |
 f \p \> |
 \! e_"dim." |
@@ -1005,7 +1005,7 @@ a4. [d16 ( e] |
 ) a4. [d,16 ( e ] |
 [) f8-. e16 ( f] [) g8-. f16 ( g] |
 [)as ( bes as g ] ) f8 r |
-c \sfz r r [e'16 ( f ] |
+c \fz r r [e'16 ( f ] |
 [g a_"dim." g f][e f e ) d] |
 [des \p \< ( c des c][b c b \! ) c ] |
 [bes! ( c bes c][a c a ) c ] |
@@ -1102,7 +1102,7 @@ f4 r8 c8 ( |
 ) f4 r8 c8 ( |
 ) f,2 ~ |
 f ( |
-) f'4 \sfz r^\fermata
+) f'4 \fz r^\fermata
 }
 
 cb=\notes\relative c {
@@ -1155,7 +1155,7 @@ f,4.-> f'8 ( |
 ) e4. r8 |
 f,8 r f' r |
 fis r fis r |
-g \sfz r r4 |
+g \fz r r4 |
 R2*3 |
 r4 g, ( |
 ) c r |
@@ -1205,19 +1205,19 @@ e2 \< ~ |
 \! e4 \> \! r |
 e2 \< ~ |
 \! e4 \> \! r |
-e2 \sfz ~ |
+e2 \fz ~ |
 e |
 f! ( |
 [e8 d c ) b]
 a2 \p ~ |
 a |
-e' \sfz \> ~ |
+e' \fz \> ~ |
 \! e4 r |
 e2 \> ~ |
 \! e4 r |
 e2 \> ~ |
 \! e4 r |
-e2 \sfz ~ |
+e2 \fz ~ |
 e ~ |
 f \p ~ |
 e |
@@ -1247,7 +1247,7 @@ bes,4. bes'8 ( |
 ) a4. r8 |
 bes, r bes' r |
 b r b, r |
-c \sfz r r4 |
+c \fz r r4 |
 R2*3 |
 r4 c ( |
 ) f r |
@@ -1331,5 +1331,5 @@ f4 r8 c8 ( |
 ) f4 r8 c8 ( |
 ) f,2 ~ |
 f ( |
-) f'4 \sfz r^\fermata
-}
\ No newline at end of file
+) f'4 \fz r^\fermata
+}
index f2849a54b86410e4b142362a16801f587d393e40..ee1af5bc73a4b20565f4b1c59c80ce729264e5a7 100644 (file)
@@ -64,8 +64,8 @@ g-. r r [g16 \p ( a] |
 [ ) d8-. c16 ( d ] ) c8 bes! \f ( |
 ) bes'4. r8 |
 R2 |
-d,4. \sfz r8 |
-d4. \sfz r8 |
+d,4. \fz r8 |
+d4. \fz r8 |
 e8 r g4-> ( |
 ) e8 r g4-> ( |
 ) e8 r es4 ( |
@@ -80,7 +80,7 @@ R2*2 |
 r8 [g,-.^""^"solo" \p a-. b-. ] |
 c r r4 |
 R2*10 |
-\tiny d8 \sfz *1/2 \normalsize f2 \> ( *7/8 |
+\tiny d8 \fz *1/2 \normalsize f2 \> ( *7/8 |
 \! b,4 [c8 b] |
 a2-> |
 ) gis |
@@ -92,7 +92,7 @@ e ( \> [ d8 \! c ] |
 \! e ) b |
 \tiny e8*1/2 \normalsize g4 ( \> *3/4 dis |
 \! e_"dim." ) b |
-\tiny d!8 \sfz *1/2 \normalsize f2 ( \> *7/8 |
+\tiny d!8 \fz *1/2 \normalsize f2 ( \> *7/8 |
 b,4 [ \! c8 b] |
 a2 \p |
 ) gis |
@@ -143,8 +143,8 @@ r4 r8 d8 ( |
 [bes-. a-. \! a-. es' ( ] |
 ) a4. \f r8 |
 r4 r8 bes, ( |
-) g'4. \sfz c,8 ( |
-) g'4. \sfz c,8 ( |
+) g'4. \fz c,8 ( |
+) g'4. \fz c,8 ( |
 ) a' r c4-> ( |
 ) a8 r c4-> ( |
 ) a8 r as4 ( |
@@ -191,7 +191,7 @@ f4 r8 c ( |
 ) a'4 r8 c, ( |
 ) f4 r |
 R2 |
-f4-. \sfz r^\fermata
+f4-. \fz r^\fermata
 }
 
 
@@ -256,8 +256,8 @@ g-. [fis-. \< fis-.] f-. |
 f-. [e-. \! e-.] bes \f ( |
 ) bes'4.-> a8-. |
 [f'-. e-. d-.] f, ( |
-) f'4. \sfz g,8 ( |
-) g'4. \sfz g,8 ( |
+) f'4. \fz g,8 ( |
+) g'4. \fz g,8 ( |
 ) e' r g4-> ( |
 ) e8 r g4-> ( |
 ) e8 r es4-> ( |
@@ -328,8 +328,8 @@ c-. [b-. \<  b-.] bes-. |
 bes-. [a-. \! a-.] a( \f |
 ) es'4.-> d8 |
 [bes-. a-. g-.] bes, ( |
-) d'4. \sfz c,8 ( |
-) c'4. \sfz c,8 ( |
+) d'4. \fz c,8 ( |
+) c'4. \fz c,8 ( |
 ) a' r c4-> ( |
 ) a8 r c4-> ( |
 ) a8 r as4-> ( |
@@ -370,7 +370,7 @@ f4 r8 c' ( |
 ) a4 r8 c ( |
 ) f4 r |
 R2 |
-f4 \sfz r^\fermata
+f4 \fz r^\fermata
 
 }
 
@@ -451,8 +451,8 @@ cis4.-> fis8-. \p | % \p added
 ) e8 [\! d16 ( e ] ) d8-. c! \f ~ |
 c'4.-> b8 |
 [g-. fis-. e-.] g,8 ~ |
-b'4. \sfz a,8 ~ |
-a'4. \sfz a,8 ~ |
+b'4. \fz a,8 ~ |
+a'4. \fz a,8 ~ |
 fis' r a4-> ~ | % -> added
 fis8 r a4-> ~ |
 fis8 r f4 ~ |
@@ -472,7 +472,7 @@ fis ~ |
 fis ~ |
 fis4 r |
 R2*4 |
-e'2 \sfz \> ~ |
+e'2 \fz \> ~ |
 \! fis,4 r |
 b2 \> ~ |
 \! ais4 r |
@@ -481,7 +481,7 @@ fis2 \pp \< ~ |
 fis \> ~ |
 \! fis4 r |
 R2*4 |
-e'2 \sfz \> ~ |
+e'2 \fz \> ~ |
 \! fis,4 r |
 e'2 \p ~ |
 ais, |
@@ -550,7 +550,7 @@ r4 r8 [d,16 \p ( e] |
 ) a8-. [g16 ( as ] ) g8 b, \f ~ |
 f'4.-> r8 |
 r4 r8 c ~ |
-e'4. \sfz d,8 ~ |
+e'4. \fz d,8 ~ |
 d'4. d,8 ~ |
 b' r a4-> ~ |
 g8 r a4-> ~ |
@@ -580,7 +580,7 @@ R2*2 |
 d'8-. \p r cis-. r |
 c! r b r |
 R2*2 |
-d4. \sfz d8 \> |
+d4. \fz d8 \> |
 [d d \! d] r |
 R2*3 |
 r4 r8 c \f ~ |
@@ -606,7 +606,7 @@ g4 r8 d ~ |
 b'4 r8 d, ~ |
 g,2 ~ |
 g ~ |
-g'4-. \sfz r^\fermata
+g'4-. \fz r^\fermata
 }
 
 
@@ -679,8 +679,8 @@ r4 r8 a-. \mf |
 g [ fis-. fis-. ] fis \f ~ | % \f added
 dis'4.-> r8 |
 r4 r8 g,8 ~ |
-e'4. \sfz g,8 ~ |
-e'4. \sfz g,8 ~ |
+e'4. \fz g,8 ~ |
+e'4. \fz g,8 ~ |
 fis r a4-> ~ |
 a8 r a4-> ~ |
 a8 r gis4 ~ |
@@ -767,8 +767,8 @@ b-. [ais-. ais-. a-. ] |
 ) \! a8-. [g16 ( as ] ) g8 f \f ~ |
 b4.-> r8 |
 r4 r8 c ~ |
-a'4. \sfz c,8 ~ |
-a'4. \sfz c,8 ~ |
+a'4. \fz c,8 ~ |
+a'4. \fz c,8 ~ |
 b r c4-> ~ |
 b8 r c4-> ~ |
 b8 r bes4 ~ |
@@ -789,7 +789,7 @@ d_"dim." ~ |
 d ~ |
 d4. r8 |
 R2*6 |
-fis4. \sfz \> \! g8 |
+fis4. \fz \> \! g8 |
 [a-. b-. c-. ] r |
 R2*3 |
 r4 r8 e, \f ~ |
@@ -815,7 +815,7 @@ b4 r |
 d4 r8 d, ~ |
 g2 ~ |
 g ~ |
-b4-. \sfz r^\fermata 
+b4-. \fz r^\fermata 
 }
 
 fagotto=\notes\relative c' {
@@ -844,7 +844,7 @@ e4 r8 [ a16 ( b ] |
 e4 r8 a ~ |
 c r d r |
 es r d r |
-d4 \sfz r |
+d4 \fz r |
 R2*2 |
 d4 \p ( \< e |
 \! f b, \> |
@@ -903,7 +903,7 @@ e2 \p \< ~ |
 \! e \> ~ |
 \! e \< ~ |
 \! e \> |
-\tiny \! d'8 \sfz *1/2 ~ \normalsize f2 \> *7/8 ~ |
+\tiny \! d'8 \fz *1/2 ~ \normalsize f2 \> *7/8 ~ |
 \! e4. r8 |
 f,2 \> ( ~ |
 [ \! e8 d c ) b ] | 
@@ -915,7 +915,7 @@ e2 \p ~
 e ~ |
 e ~ |
 e |
-\tiny d'8 \sfz *1/2 ~ \normalsize f2 \> *7/8 ~ |
+\tiny d'8 \fz *1/2 ~ \normalsize f2 \> *7/8 ~ |
 \! e4. r8 |
 f,2 \p ~ |
 e4 r |
@@ -951,7 +951,7 @@ a4 r8 [d16 ( e ] |
 a4 r8 d ~ |
 f r g r |
 as r g r |
-c,4 \sfz r |
+c,4 \fz r |
 R2*6 |
 bes4 ( \p \< a |
 ) \! g r |
@@ -1005,7 +1005,7 @@ g8-. r r4 |
 R2*4 |
 a2 \p \< ~ |
 a4 ~ \! gis8 g ~ |
-c4. \sfz c8 \> |
+c4. \fz c8 \> |
 [c c \! c ] r8 |
 R2*2 |
 es2 \p \< ~ |
@@ -1032,7 +1032,7 @@ f,4 r8 c' ~ |
 f4 r8 c ~ |
 f,2 ~ |
 f ~ |
-c'4 \sfz r^\fermata
+c'4 \fz r^\fermata
 }
 
 oboehelp=\notes\relative c'' {
index 78d3e0e833d479398180dc3b87a838bb93af474e..21350aa9e1c2ef0027e312a2a9a3f8120babecfa 100644 (file)
@@ -443,7 +443,7 @@ class Properties:
             this.__set('include', tmp, 'environment')    
 
 
-        t=''
+        t= os.pathsep
        if os.environ.has_key ('TEXINPUTS'):
                t = os.environ['TEXINPUTS'] + os.pathsep
         os.environ['TEXINPUTS'] = t + \
index becb61e512e51a1ba13dd6c15ea2701b2c7c7d17..94dcac8c345b136d897429ea2d201e7a96a94396 100755 (executable)
@@ -54,11 +54,8 @@ fi
 
 
 
-
-
-
 # Guess values for system-dependent variables and create Makefiles.
-# Generated automatically using autoconf version 2.12 
+# Generated automatically using autoconf version 2.13 
 # Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
 #
 # This configure script is free software; the Free Software Foundation
@@ -112,6 +109,7 @@ mandir='${prefix}/man'
 # Initialize some other variables.
 subdirs=
 MFLAGS= MAKEFLAGS=
+SHELL=${CONFIG_SHELL-/bin/sh}
 # Maximum number of lines to put in a shell here document.
 ac_max_here_lines=12
 
@@ -395,7 +393,7 @@ EOF
     verbose=yes ;;
 
   -version | --version | --versio | --versi | --vers)
-    echo "configure generated by autoconf version 2.12"
+    echo "configure generated by autoconf version 2.13"
     exit 0 ;;
 
   -with-* | --with-*)
@@ -565,9 +563,11 @@ ac_ext=c
 # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
 cross_compiling=$ac_cv_prog_cc_cross
 
+ac_exeext=
+ac_objext=o
 if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
   # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
   if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
@@ -748,7 +748,7 @@ fi
      
     
 # Make sure we can run config.sub.
-if $ac_config_sub sun4 >/dev/null 2>&1; then :
+if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then :
 else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
 fi
 
@@ -760,14 +760,14 @@ case "$host_alias" in
 NONE)
   case $nonopt in
   NONE)
-    if host_alias=`$ac_config_guess`; then :
+    if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then :
     else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; }
     fi ;;
   *) host_alias=$nonopt ;;
   esac ;;
 esac
 
-host=`$ac_config_sub $host_alias`
+host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias`
 host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
 host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
 host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
@@ -785,8 +785,9 @@ else
   if test -n "$MAKE"; then
   ac_cv_prog_MAKE="$MAKE" # Let the user override the test.
 else
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
-  for ac_dir in $PATH; do
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
     test -z "$ac_dir" && ac_dir=.
     if test -f $ac_dir/$ac_word; then
       ac_cv_prog_MAKE="$ac_prog"
@@ -812,15 +813,16 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:816: checking for $ac_word" >&5
+echo "configure:817: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_FIND'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   if test -n "$FIND"; then
   ac_cv_prog_FIND="$FIND" # Let the user override the test.
 else
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
-  for ac_dir in $PATH; do
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
     test -z "$ac_dir" && ac_dir=.
     if test -f $ac_dir/$ac_word; then
       ac_cv_prog_FIND="$ac_prog"
@@ -848,15 +850,16 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:852: checking for $ac_word" >&5
+echo "configure:854: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_TAR'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   if test -n "$TAR"; then
   ac_cv_prog_TAR="$TAR" # Let the user override the test.
 else
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
-  for ac_dir in $PATH; do
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
     test -z "$ac_dir" && ac_dir=.
     if test -f $ac_dir/$ac_word; then
       ac_cv_prog_TAR="$ac_prog"
@@ -882,15 +885,16 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:886: checking for $ac_word" >&5
+echo "configure:889: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_BASH'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   if test -n "$BASH"; then
   ac_cv_prog_BASH="$BASH" # Let the user override the test.
 else
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
-  for ac_dir in $PATH; do
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
     test -z "$ac_dir" && ac_dir=.
     if test -f $ac_dir/$ac_word; then
       ac_cv_prog_BASH="$ac_prog"
@@ -915,7 +919,7 @@ test -n "$BASH" || BASH="/bin/sh"
     # Extract the first word of "${PYTHON:-python}", so it can be a program name with args.
 set dummy ${PYTHON:-python}; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:919: checking for $ac_word" >&5
+echo "configure:923: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_PYTHON'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -923,9 +927,13 @@ else
   /*)
   ac_cv_path_PYTHON="$PYTHON" # Let the user override the test with a path.
   ;;
+  ?:/*)                         
+  ac_cv_path_PYTHON="$PYTHON" # Let the user override the test with a dos path.
+  ;;
   *)
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
-  for ac_dir in $PATH; do
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do 
     test -z "$ac_dir" && ac_dir=.
     if test -f $ac_dir/$ac_word; then
       ac_cv_path_PYTHON="$ac_dir/$ac_word"
@@ -1078,7 +1086,7 @@ fi
 
 
     echo $ac_n "checking language""... $ac_c" 1>&6
-echo "configure:1082: checking language" >&5    
+echo "configure:1090: checking language" >&5    
     case "$language" in
       En* | en* | Am* | am* | US* | us*)
            lang=English;;
@@ -1111,15 +1119,16 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1115: checking for $ac_word" >&5
+echo "configure:1123: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_STRIPROFF'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   if test -n "$STRIPROFF"; then
   ac_cv_prog_STRIPROFF="$STRIPROFF" # Let the user override the test.
 else
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
-  for ac_dir in $PATH; do
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
     test -z "$ac_dir" && ac_dir=.
     if test -f $ac_dir/$ac_word; then
       ac_cv_prog_STRIPROFF="$ac_prog"
@@ -1145,15 +1154,16 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1149: checking for $ac_word" >&5
+echo "configure:1158: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_YODL'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   if test -n "$YODL"; then
   ac_cv_prog_YODL="$YODL" # Let the user override the test.
 else
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
-  for ac_dir in $PATH; do
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
     test -z "$ac_dir" && ac_dir=.
     if test -f $ac_dir/$ac_word; then
       ac_cv_prog_YODL="$ac_prog"
@@ -1179,15 +1189,16 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1183: checking for $ac_word" >&5
+echo "configure:1193: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_YODL2HTML'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   if test -n "$YODL2HTML"; then
   ac_cv_prog_YODL2HTML="$YODL2HTML" # Let the user override the test.
 else
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
-  for ac_dir in $PATH; do
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
     test -z "$ac_dir" && ac_dir=.
     if test -f $ac_dir/$ac_word; then
       ac_cv_prog_YODL2HTML="$ac_prog"
@@ -1213,15 +1224,16 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1217: checking for $ac_word" >&5
+echo "configure:1228: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_YODL2LATEX'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   if test -n "$YODL2LATEX"; then
   ac_cv_prog_YODL2LATEX="$YODL2LATEX" # Let the user override the test.
 else
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
-  for ac_dir in $PATH; do
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
     test -z "$ac_dir" && ac_dir=.
     if test -f $ac_dir/$ac_word; then
       ac_cv_prog_YODL2LATEX="$ac_prog"
@@ -1246,15 +1258,16 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1250: checking for $ac_word" >&5
+echo "configure:1262: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_YODL2MAN'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   if test -n "$YODL2MAN"; then
   ac_cv_prog_YODL2MAN="$YODL2MAN" # Let the user override the test.
 else
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
-  for ac_dir in $PATH; do
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
     test -z "$ac_dir" && ac_dir=.
     if test -f $ac_dir/$ac_word; then
       ac_cv_prog_YODL2MAN="$ac_prog"
@@ -1280,15 +1293,16 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1284: checking for $ac_word" >&5
+echo "configure:1297: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_YODL2MSLESS'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   if test -n "$YODL2MSLESS"; then
   ac_cv_prog_YODL2MSLESS="$YODL2MSLESS" # Let the user override the test.
 else
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
-  for ac_dir in $PATH; do
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
     test -z "$ac_dir" && ac_dir=.
     if test -f $ac_dir/$ac_word; then
       ac_cv_prog_YODL2MSLESS="$ac_prog"
@@ -1314,15 +1328,16 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1318: checking for $ac_word" >&5
+echo "configure:1332: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_YODL2TEXINFO'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   if test -n "$YODL2TEXINFO"; then
   ac_cv_prog_YODL2TEXINFO="$YODL2TEXINFO" # Let the user override the test.
 else
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
-  for ac_dir in $PATH; do
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
     test -z "$ac_dir" && ac_dir=.
     if test -f $ac_dir/$ac_word; then
       ac_cv_prog_YODL2TEXINFO="$ac_prog"
@@ -1348,15 +1363,16 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1352: checking for $ac_word" >&5
+echo "configure:1367: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_YODL2TXT'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   if test -n "$YODL2TXT"; then
   ac_cv_prog_YODL2TXT="$YODL2TXT" # Let the user override the test.
 else
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
-  for ac_dir in $PATH; do
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
     test -z "$ac_dir" && ac_dir=.
     if test -f $ac_dir/$ac_word; then
       ac_cv_prog_YODL2TXT="$ac_prog"
@@ -1406,15 +1422,16 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1410: checking for $ac_word" >&5
+echo "configure:1426: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_MAKEINFO'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   if test -n "$MAKEINFO"; then
   ac_cv_prog_MAKEINFO="$MAKEINFO" # Let the user override the test.
 else
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
-  for ac_dir in $PATH; do
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
     test -z "$ac_dir" && ac_dir=.
     if test -f $ac_dir/$ac_word; then
       ac_cv_prog_MAKEINFO="$ac_prog"
@@ -1462,7 +1479,7 @@ EOF
 # Ultrix sh set writes to stderr and can't be redirected directly,
 # and sets the high bit in the cache file unless we assign to the vars.
 (set) 2>&1 |
-  case `(ac_space=' '; set) 2>&1` in
+  case `(ac_space=' '; set | grep ac_space) 2>&1` in
   *ac_space=\ *)
     # `set' does not quote correctly, so add quotes (double-quote substitution
     # turns \\\\ into \\, and sed turns \\ into \).
@@ -1529,7 +1546,7 @@ do
     echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
     exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
   -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
-    echo "$CONFIG_STATUS generated by autoconf version 2.12"
+    echo "$CONFIG_STATUS generated by autoconf version 2.13"
     exit 0 ;;
   -help | --help | --hel | --he | --h)
     echo "\$ac_cs_usage"; exit 0 ;;
@@ -1548,9 +1565,11 @@ sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g;
  s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF
 $ac_vpsub
 $extrasub
+s%@SHELL@%$SHELL%g
 s%@CFLAGS@%$CFLAGS%g
 s%@CPPFLAGS@%$CPPFLAGS%g
 s%@CXXFLAGS@%$CXXFLAGS%g
+s%@FFLAGS@%$FFLAGS%g
 s%@DEFS@%$DEFS%g
 s%@LDFLAGS@%$LDFLAGS%g
 s%@LIBS@%$LIBS%g
index f471aaee77f9722dfae435a66fd97cecdc0160be..306eb8dea200782bf8356572b32c56d48556b630 100644 (file)
@@ -48,3 +48,7 @@ INSTALLATION_DIR=$(datadir)
 INSTALLATION_FILES=$(DIST_FILES) $(NON_ESSENTIAL_DIST_FILES) GNUmakefile config.make config.status
 include $(stepdir)/install-targets.make
 endif
+
+localclean:
+       rm -f bin/*.pyc
+       rm -f stepmake/stepmake stepmake/bin stepmake/aclocal.m4
index 1e739cb3af4608dd16a023a3f856f2dd9023419a..ac21d26e7614ad83ea91871022daf2e5a587448f 100644 (file)
@@ -4,8 +4,8 @@
 local-dist: configure 
 
 local-distclean: 
-       rm -f config.hh config.make Makefile config.cache \
-               config.status config.log index.html
+       rm -f config.h config.hh config.make Makefile GNUmakefile \
+               config.cache config.status config.log index.html
 
 local-maintainerclean:
        rm -f configure
index a11f4896c176c3272f0a2911e3e2d9d7603018f4..64e5d4960c403415873c0e097c0a32be14e31e00 100644 (file)
@@ -21,6 +21,8 @@ htmldoc:
        -ln -f $(depth)/$(distname).diff.gz out-www
        tar cfz $(outdir)/htmldoc.tar.gz  `cat wwwlist` `ls *.png out-www/$(distname).diff.gz $(ERRORLOG)`  index.html
 
+localclean:
+       rm -f wwwlist
 
 # if you fix this, please fix yodl too!
 check-top-web:
index ee03b11bcf68af0a5978d243c5ce063eb5fa340d..8fca01e38ff5418a721db4c4af2fe632e465b38c 100644 (file)
@@ -4,7 +4,10 @@
 \def\placebox#1#2#3{%
         \botalign{\hbox{\raise #1\leftalign{\kern #2{}#3}}}}%
 
-
+%
+%
+% UGH! JUNKME!
+%
 \def\fetsixteendefs{%
   \font\fetasixteen = feta16
   \font\fetanummersixteen = feta-nummer8
index 8646103bde31786f2fd038edf629857899882092..a05d5776146552b23ea37f391f8f5262ad1da886 100644 (file)
@@ -40,7 +40,7 @@
 }   
 
 \def\lilyfooterPlainTeX{
-          \footline={\ifnum\pageno=1\smalltextfont\mudelacopyright\hfil \LilyIdString
+          \footline={\ifnum\pageno=1\smalltextfont\mudelacopyright\hfil \mudelatagline
                 \else\hfil\the\pageno\hfil\fi}%
 }
 \advance\hoffset by -.6in