]> git.donarmstrong.com Git - lilypond.git/commitdiff
release: 1.3.46 release/1.3.46
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Mon, 17 Apr 2000 11:20:52 +0000 (13:20 +0200)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Mon, 17 Apr 2000 11:20:52 +0000 (13:20 +0200)
======

1.3.45.j

50 files changed:
CHANGES
Documentation/user/properties.itely
VERSION
debian/GNUmakefile
debian/changelog
debian/control [deleted file]
debian/control.foka
debian/copyright
debian/doc-base [deleted file]
debian/emacsen-startup [new file with mode: 0644]
debian/ex.doc-base [new file with mode: 0644]
debian/ex.prerm [new file with mode: 0644]
debian/postinst
debian/prerm [deleted file]
debian/rules
input/bugs/accidental-collision.ly [new file with mode: 0644]
input/bugs/auto-staff-switch.ly [deleted file]
input/bugs/b.ly [deleted file]
input/bugs/core.ly [deleted file]
input/bugs/direction.ly
input/bugs/k.fly [deleted file]
input/bugs/k.ly [deleted file]
input/bugs/p.ly
input/bugs/ps.ly
input/bugs/s.ly [deleted file]
input/bugs/staccato-quantisation.ly [new file with mode: 0644]
input/bugs/staccato-quantisation.sly [deleted file]
input/bugs/staff-margin.ly [deleted file]
input/bugs/steep-beam.ly [new file with mode: 0644]
input/bugs/updownstem.ly [deleted file]
input/bugs/volta.ly [new file with mode: 0644]
input/trip.ly
lily/bar-number-engraver.cc
lily/bar-script-engraver.cc [deleted file]
lily/include/bar-number-engraver.hh [deleted file]
lily/include/bar-script-engraver.hh [deleted file]
lily/include/key-engraver.hh
lily/include/note-column.hh
lily/include/rhythmic-head.hh
lily/key-engraver.cc
lily/mark-engraver.cc
lily/parser.yy
lily/side-position-interface.cc
lily/system-start-delimiter-engraver.cc
lily/timing-engraver.cc
lily/volta-spanner.cc
ly/engraver.ly
make/out/lilypond.lsm
make/out/lilypond.spec
scm/generic-property.scm

diff --git a/CHANGES b/CHANGES
index d2c573bfadb49ad4300466027c3448802c0d7bf6..7250774b624d1c89650468bc04a1319078b3824b 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,19 +1,37 @@
+1.3.46
+======
+
 1.3.45.jcn2
+===========
 
 * Fixed chord-name customisation and made small chord-name build fixes.
 
-1.3.45.jcn1
-===========
-
 * Accidentals with chord-names smaller and as superscript.
 
 * Do some extra footify (works only once) while making html docs.  
-  When I do
 
-     make out=www -C Documentation/out-www/regression-test.html
+1.3.45.hwn1
+===========
+
+* Debian patch (Thanks Anthony)
+
+* Rewrote Bar_number_engraver and Mark_engraver and removed
+Bar_script_engraver as baseclass. Both Bar_number_engraver and
+Mark_engraver are simpler and more robust.
+
+* Fixed precedence of \property verticalDirection and dynamicDirection
 
-  I expect a footified and white-backgrounded .html.
+* Fixed keys without barlines 
 
+* Fixed StaffGroups: removing `\consistsend "Axis_group_engraver"'
+puts alignment in function again
+
+* Fixed StaffGroup + GrandStaff combination.
+
+* Music is now mandatory as the first tihng in a \score{} block
+
+1.3.45
+======
 1.3.44.jcn2
 ===========
 
@@ -23,9 +41,6 @@
 
 * Junked old lyrics in star-spangled-banner.
 
-1.3.44.jcn1
-===========
-
 * Added a Piano_pedal_engraver.
 
 * Removed some empty files.
@@ -43,9 +58,6 @@
 1.3.43
 ======
 
-1.3.43.hwn1
-===========
-
 * Put global element list into Line_of_score, instead of
 Paper_score. post processing (the stage after line breaking) is now
 truly done per-system, and we got rid of an ugly hack to get font
@@ -100,7 +112,7 @@ Also updated index.texi.
 * Change all occurances of Staff_margin_engraver to
 Instrument_name_engraver, add a convert-mudela rule
 
-* Change status == busy assert into programming sample/sample/error
+* Change status == busy assert into programming error
 
 1.3.42
 ======
index a73d49e5c97404cd4a031cf988eac7f3f7fc07d0..815f1a65fbc310de55df348f097f83e6ea76d67c 100644 (file)
@@ -7,6 +7,10 @@ property is listed in parentheses after the property name.
  (\t\)
 @end macro
 
+
+TODO:
+
+
 @table @samp
   @item @code{Generic_property_list}
     Defines names and types for generic properties. These are properties
@@ -591,6 +595,9 @@ no clef is printed upon creation.
 
 @cindex properties!Score
 
+
+
+
 @table @samp
   @item @code{skipBars}@indexcode{skipBars} @propertytype{boolean}
     Set to 1 to skip the empty bars that are produced by
@@ -621,6 +628,28 @@ r1 r1*3 R1*3\property Score.skipBars=1 r1*3 R1*3
          "Time_signature"
        )
 @end example
+
+
+@item @code{timing}@indexcode{timing} @propertytype{boolean}
+  Keep administration of measure length, position, bar number, etc?
+Switch off for cadenzas.
+
+@item @code{currentBarNumber}@indexcode{currentBarNumber} @propertytype{integer}
+  Contains the current barnumber. This property is incremented at
+every barline.
+
+@item @code{measurePosition}@indexcode{measurePosition} @propertytype{Moment}
+
+  How much of the current measure (measured in whole notes) have we had?
+
+@item @code{oneBeat}@indexcode{oneBeat} @propertytype{Moment}
+
+  How long does one beat in the current time signature last?
+
+@item @code{measureLength}@indexcode{measureLength} @propertytype{Moment}
+
+  How long does one measure in the current time signature last?
+
 @end table
 
 @subsubheading ChordNamesVoice properties
diff --git a/VERSION b/VERSION
index 561e316769dd90f3e6256eea363cae80ba884f7d..c46c2dd215f3613a2f8199f377cc6cf30dcc3b2e 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1,8 +1,8 @@
 PACKAGE_NAME=LilyPond
 MAJOR_VERSION=1
 MINOR_VERSION=3
-PATCH_LEVEL=45
-MY_PATCH_LEVEL=jcn2
+PATCH_LEVEL=46
+MY_PATCH_LEVEL=
 
 # use the above to send patches: MY_PATCH_LEVEL is always empty for a
 # released version.
index 929f049b15c6180b7147c024b27440d936227b23..7575f87fc2d84c8e6cbd0ce99d1470ad56f80ae7 100644 (file)
@@ -6,8 +6,10 @@ NAME = debian
 at-dir = $(outdir)/
 at-ext =
 
-EXTRA_DIST_FILES = README.Debian TODO $(CONF_FILES) $(OUT_DIST_FILES) control.foka
-CONF_FILES = changelog copyright doc-base preinst postinst postrm prerm rules watch 
+EXTRA_DIST_FILES = README.Debian TODO $(CONF_FILES)  \
+       control.foka ex.prerm ex.doc-base
+CONF_FILES = changelog  copyright emacsen-startup \
+       preinst postinst postrm rules watch
 #OUTCONF_FILES = $(addprefix $(outdir)/, $(basename $(CONF_FILES))) $(OUTIN_FILES)
 OUTCONF_FILES = $(OUTIN_FILES)
 OUT_DIST_FILES = $(OUTIN_FILES)
index e2a8301b10341e1bbea99656cbae03976b6ae0b9..7d6b2976ffd6950d1444b514b78c73f70ba89b73 100644 (file)
@@ -1,19 +1,26 @@
-lilypond1.3 (1.3.41-1) frozen unstable; urgency=low
+lilypond1.3 (1.3.45-1) unstable; urgency=low
 
-  * New upstream development release.
+  * New upstream release.
+
+ -- Anthony Fok <foka@debian.org>  Fri, 14 Apr 2000 21:39:40 -0600
+
+lilypond1.3 (1.3.44-1) unstable; urgency=low
+
+  * New upstream development release with numerous bug fixes, small
+    enhancements, and updates to documentation.
   * [debian/postinst]: Fixed the pathname to README.Debian.  Thanks to
       Olivier Abad for the bug report (closes: Bug#58674).
   * [debian/rules]: Now configure with --enable-optimise again.
       Yes, it appears that LilyPond and glibc2.1.3 finally get along
       nicely even with optimisation turned on.  Hurray!  :-)
   * [Documentation/user/*]: Fixed some formatting bugs in the texinfo files.
-  * [debian/control]: Modified description to hint that 1.3.41 is better
+  * [debian/control]: Modified description to hint that 1.3.43 is better
       than 1.2.17.  :-)
   * [debian/{rules,emacsen-startup}]: Added an Emacs startup file
       /etc/emacs/site-start.d/50lilypond1.3.el so that lilypond-mode is
       automatically loaded for *.ly files.
 
- -- Anthony Fok <foka@debian.org>  Sat,  1 Apr 2000 03:49:31 -0700
+ -- Anthony Fok <foka@debian.org>  Wed, 12 Apr 2000 21:22:31 -0600
 
 lilypond1.3 (1.3.24-1) frozen unstable; urgency=low
 
diff --git a/debian/control b/debian/control
deleted file mode 100644 (file)
index 12d811e..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-Source: lilypond1.3
-Build-Depends: debhelper (>= 2.0.71), python-base (>= 1.5.2-4), libguile6-dev, tetex-bin (>= 1.0.5-1), tetex-base (>= 1.0-1), tetex-extra (>= 1.0-1), flex (>= 2.5.4a-1), bison (>= 1:1.28-1), texinfo (>= 4.0-1)
-Section: tex
-Priority: optional
-Maintainer: Anthony Fok <foka@debian.org>
-Standards-Version: 3.1.0
-
-Package: lilypond1.3
-Architecture: any
-Replaces: lilypond
-Provides: lilypond
-Depends: ${shlibs:Depends}, tetex-bin (>= 1.0.5-1)
-Recommends: python-base (>= 1.5.2-4), tetex-base (>= 1.0-1), tetex-extra (>= 1.0-1)
-Conflicts: lilypond, musixtex-fonts
-Description: A program for printing sheet music.
- LilyPond is a music typesetter.  It produces beautiful sheet music
- using a high level description file as input.  LilyPond is part of 
- the GNU Project.
- .
- This is the unstable 1.3 branch of LilyPond.  It is not intended for
- use with stable projects!
- .
-  URLs: http://www.cs.uu.nl/~hanwen/lilypond/
-        http://www.xs4all.nl/~jantien/lilypond/
-        http://sca.uwaterloo.ca/~praetzel/lilypond/
-        http://www.lilypond.org/
-  Authors: Han-Wen Nienhuys <hanwen@cs.uu.nl>
-           Jan Nieuwenhuizen <janneke@gnu.org>
index 12d811e7909c809c2a5e07b31f8d390d765c336c..546898f10327663eb81c27bfb3b162b16a1457b1 100644 (file)
@@ -1,24 +1,25 @@
 Source: lilypond1.3
-Build-Depends: debhelper (>= 2.0.71), python-base (>= 1.5.2-4), libguile6-dev, tetex-bin (>= 1.0.5-1), tetex-base (>= 1.0-1), tetex-extra (>= 1.0-1), flex (>= 2.5.4a-1), bison (>= 1:1.28-1), texinfo (>= 4.0-1)
+Build-Depends: debhelper (>= 2.0.71), python-base (>= 1.5.2-4), libguile6-dev, tetex-bin (>= 1.0.5-1), tetex-extra (>= 1.0-1), flex (>= 2.5.4a-1), bison (>= 1:1.28-1), texinfo (>= 4.0-1), groff, gs, netpbm, pnmtopng, m4, gettext (>= 0.10.35-13)
 Section: tex
 Priority: optional
 Maintainer: Anthony Fok <foka@debian.org>
-Standards-Version: 3.1.0
+Standards-Version: 3.1.1
 
 Package: lilypond1.3
 Architecture: any
 Replaces: lilypond
 Provides: lilypond
 Depends: ${shlibs:Depends}, tetex-bin (>= 1.0.5-1)
-Recommends: python-base (>= 1.5.2-4), tetex-base (>= 1.0-1), tetex-extra (>= 1.0-1)
+Recommends: python-base (>= 1.5.2-4), tetex-extra (>= 1.0-1)
 Conflicts: lilypond, musixtex-fonts
 Description: A program for printing sheet music.
  LilyPond is a music typesetter.  It produces beautiful sheet music
  using a high level description file as input.  LilyPond is part of 
  the GNU Project.
  .
- This is the unstable 1.3 branch of LilyPond.  It is not intended for
- use with stable projects!
+ This is the developmental 1.3 branch of LilyPond.  It is not intended for
+ use with stable projects, although arguably 1.3.45 is less buggy and much
+ more featureful than then the "stable" 1.2.17.
  .
   URLs: http://www.cs.uu.nl/~hanwen/lilypond/
         http://www.xs4all.nl/~jantien/lilypond/
index 50a67b39dc8ccce2b6330cefdf91085e134b1170..95bcbef88d19a351d1bbe4bea0e73d0399dfc3ea 100644 (file)
@@ -5,10 +5,10 @@ The development branch, lilypond1.3, is packaged separately
 on Tue,  9 Nov 1999 22:30:32 -0700
 
 It was downloaded from
-      ftp://ftp.lilypond.org/pub/LilyPond/v1.3/lilypond-1.3.41.tar.gz
+      ftp://ftp.lilypond.org/pub/LilyPond/v1.3/lilypond-1.3.45.tar.gz
 
 It is also available at: 
-      ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/v1.3/lilypond-1.3.41.tar.gz
+      ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/v1.3/lilypond-1.3.45.tar.gz
 
 For more information about GNU LilyPond, please visit:
       http://www.cs.uu.nl/~hanwen/lilypond/
diff --git a/debian/doc-base b/debian/doc-base
deleted file mode 100644 (file)
index 13016d1..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-Document: lilypond
-Title: LilyPond, the GNU Project music typesetter
-Author: Various
-Abstract: This documentation describes LilyPond (the GNU Project music
- typesetter), its language Mudela, and the Mutopia project, a.k.a.
- "Music To the People."
-Section: Apps/Music
-
-Format: info
-Index: /usr/share/info/lilypond.info.gz
-Files: /usr/share/info/lilypond.info*
diff --git a/debian/emacsen-startup b/debian/emacsen-startup
new file mode 100644 (file)
index 0000000..2a3812e
--- /dev/null
@@ -0,0 +1,3 @@
+(autoload 'lilypond-mode "lilypond-mode" nil t)
+(setq auto-mode-alist (cons '("\\.ly$" . lilypond-mode) auto-mode-alist))
+(add-hook 'lilypond-mode-hook (lambda () (turn-on-font-lock)))
diff --git a/debian/ex.doc-base b/debian/ex.doc-base
new file mode 100644 (file)
index 0000000..13016d1
--- /dev/null
@@ -0,0 +1,11 @@
+Document: lilypond
+Title: LilyPond, the GNU Project music typesetter
+Author: Various
+Abstract: This documentation describes LilyPond (the GNU Project music
+ typesetter), its language Mudela, and the Mutopia project, a.k.a.
+ "Music To the People."
+Section: Apps/Music
+
+Format: info
+Index: /usr/share/info/lilypond.info.gz
+Files: /usr/share/info/lilypond.info*
diff --git a/debian/ex.prerm b/debian/ex.prerm
new file mode 100644 (file)
index 0000000..0c66539
--- /dev/null
@@ -0,0 +1,6 @@
+#!/bin/sh
+set -e
+
+install-info --quiet --remove /usr/share/info/lilypond.info.gz
+
+#DEBHELPER#
index bf2f6503d0f7c11d2fbc157efd0923b473784ad4..32ba2706e43ba2e7f8709053664992407f5c5746 100755 (executable)
@@ -18,9 +18,9 @@ TEXMFMAIN=`/usr/bin/kpsewhich -expand-var '$TEXMFMAIN'`
 echo " Running /usr/bin/mktexlsr $TEXMFMAIN..."
 /usr/bin/mktexlsr $TEXMFMAIN
 
-install-info --description='LilyPond, the GNU Project music typesetter' \
-       --section "Music" "Music" \
-       --quiet /usr/share/info/lilypond.info.gz
+#install-info --description='LilyPond, the GNU Project music typesetter' \
+#      --section "Music" "Music" \
+#      --quiet /usr/share/info/lilypond.info.gz
 
 #DEBHELPER#
 
diff --git a/debian/prerm b/debian/prerm
deleted file mode 100644 (file)
index 0c66539..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-set -e
-
-install-info --quiet --remove /usr/share/info/lilypond.info.gz
-
-#DEBHELPER#
index d024ca3783d42ba2154b4f7c6214760b7c3551ec..531cebd089cbaa9ccde189abfc863b4fafa6db95 100755 (executable)
@@ -25,7 +25,7 @@ build: build-stamp
 build-stamp:
        dh_testdir
 
-       ./configure --disable-checking --disable-debugging \
+       ./configure --enable-checking --disable-debugging \
                --enable-printing --prefix=/usr --enable-optimise \
                --enable-shared \
                --infodir='$${prefix}/share/info' \
@@ -40,9 +40,10 @@ build-stamp:
 clean:
        dh_testdir
        dh_testroot
-       rm -f build-stamp install-stamp
+       rm -f build-stamp
        -$(MAKE) distclean
-       rm -f stepmake/stepmake/aclocal.m4
+       # Remove obsolete files which are still in the upstream tarball (1.3.42)
+       rm -f debian/control.in debian/doc-base debian/prerm
        dh_clean
 
        # Correct the owner of the out/dummy.dep files when built with sudo.
diff --git a/input/bugs/accidental-collision.ly b/input/bugs/accidental-collision.ly
new file mode 100644 (file)
index 0000000..63fdaa3
--- /dev/null
@@ -0,0 +1,13 @@
+
+
+\include "paper16.ly";
+\score {
+  \notes {
+    \relative c'' \context Voice \sequential {
+     <dis ais e>
+   }
+  }
+  \paper{
+      linewidth = 5.0\cm;
+  }
+}
diff --git a/input/bugs/auto-staff-switch.ly b/input/bugs/auto-staff-switch.ly
deleted file mode 100644 (file)
index cd4e3f2..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-
-\score  {
-\notes {
-       \context AutoSwitchGrandStaff \relative c' {
-       c8 d b a' a, f' g,4 ~ g
-
-       }
-}
-
-\paper {
-\translator { \ScoreContext
-\accepts AutoSwitchGrandStaff;
-}
-\translator{
-       \type "Engraver_group_engraver";
-       \name AutoSwitchGrandStaff;
-       \consists "Span_bar_engraver";
-       \consists "Vertical_align_engraver";
-       \consists "Piano_bar_engraver";
-       \consistsend "Axis_group_engraver";
-       minVerticalAlign = 2.*\staffheight;
-       maxVerticalAlign = 2.*\staffheight;     
-       switcherName = "Voice";
-       acceptorName = "Thread";
-       staffContextName = "Staff";
-
-       \accepts "AutoSwitchContext";
-       \accepts "Staff";
-}
-\translator {
-       \type "Engraver_group_engraver";
-       \name "AutoSwitchContext";
-       \consists "Staff_switching_translator";
-}
-
-}}
-
-\version "1.3.4"; 
diff --git a/input/bugs/b.ly b/input/bugs/b.ly
deleted file mode 100644 (file)
index 87ff53e..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-
-\score { \notes <{  [ r8 g''16 des'] [r8 c16 a] }>}
diff --git a/input/bugs/core.ly b/input/bugs/core.ly
deleted file mode 100644 (file)
index 2ad2caf..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-% core dumps 
-
-global = \notes {
-       \key a \minor;
-       \time 6/4;
-}
-
-\score{
-       \notes \context PianoStaff <
-               \global
-               \context Staff=up { c }
-               %\context Staff=down { \autochange Staff c }
-               \context Staff=down { c }
-       >
-       \paper {
-               \translator{ 
-                       \StaffContext
-               }
-       }
-}
-
index 47f6cd4ad53ba8712e8630c71db54a722ca5c58b..8b137891791fe96927ad78e64b0aad7bded08bdc 100644 (file)
@@ -1,18 +1 @@
-%
-% urg ik dacht dat jij generic-properties en dir had gefikst?
-% deze doet het wel in 1.3.37, voor je change + revert
-%
-\score{
-\context Voice=x \notes\relative c''{
-\property Voice.dynamicDirection = #-1
-\property Voice.verticalDirection = #1
 
-c\pp c c\< c \! c c \ff
-
-}
-\paper{
-}
-\midi{
-\tempo 1 = 60;
-}
-}
diff --git a/input/bugs/k.fly b/input/bugs/k.fly
deleted file mode 100644 (file)
index b7d1761..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-
-\key e; c2 \clef "treble";\key es;  c \break c1
diff --git a/input/bugs/k.ly b/input/bugs/k.ly
deleted file mode 100644 (file)
index 6709164..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-\score { \notes {
-c4 \clef bass ; c4}}
index bf4bedc6280709746dc4e028d589079972087d61..416e641c6e1f095c97f7e848324f595f47d4ece5 100644 (file)
@@ -1,31 +1,3 @@
-\header {
-  filename =    "praeludium-fuga-E.ly";
-  title =       "praeludium and fuga in E-major";
-  opus =        "BWV 566";
-  composer =    "Johann Sebastian Bach (1685-1750)";
-  enteredby =   "JCN";
-  copyright =   "public domain";
-}
-%{
-  description
-
-  Praeludium 3 bar excerpt,
-       2nd fuga transposed subject -- 4 bar excerpt. 
-        We try to imitate the Griepenkerl/Keller edition which
-       gives the best approximation to Bach's original layout
-
-%}
-%{
- Tested Features:
- purpose of this file is testing: 
-   * real-life collisions
-   * multi-voice input --- splitting?
-   * organ staff...
-%}
-
-\version "1.3.4";
-
-
 
 praeludium_commands = \notes {
   \time 4/4;
index db59c5ce54c9e58e2f5626d0a0bcaa68d0a92bdc..026b97485c2c3954cc5971187d13d5f0bc921f32 100644 (file)
@@ -5,7 +5,7 @@
       \notes { a' b' c' d' }
     }
 
-%    \break
+    \break
 
     \context PianoStaff <
       \context Staff = i {
diff --git a/input/bugs/s.ly b/input/bugs/s.ly
deleted file mode 100644 (file)
index b46c17e..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-
-\header {
-   tagline="";
-}
-\version "1.3.5"
-\include "paper16.ly";
-\score {
-  \notes {
-    \relative c'' \sequential {
-        \clef "violin";
-        \time 5/4;
-        \key c;
-     <c4-\cr( g e>~ <dis ais e> <e, gis b> f )g-\rc
-   }
-  }
-  \paper{
-      linewidth = 5.0\cm;
-  }
-}
diff --git a/input/bugs/staccato-quantisation.ly b/input/bugs/staccato-quantisation.ly
new file mode 100644 (file)
index 0000000..a8fd4cf
--- /dev/null
@@ -0,0 +1,4 @@
+\score { \notes \context Staff {
+\stemup
+f'-. g-. a-. b-. c-. d-. e-.
+}}
diff --git a/input/bugs/staccato-quantisation.sly b/input/bugs/staccato-quantisation.sly
deleted file mode 100644 (file)
index 1c290a4..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-\stemup
-f'-. g-. a-. b-. c-. d-. e-.
diff --git a/input/bugs/staff-margin.ly b/input/bugs/staff-margin.ly
deleted file mode 100644 (file)
index 1275f69..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-voice = \notes\relative c'{
-  \property Staff.instrument   = "Voice"
-  \property Staff.instr                = "V."
-
-  % Staff_margin_engraver kan be `fixed' by doing a silly request:
-  %\bar ".|";
-
-  c1\break c \bar "|.";
-} 
-
-soprano = \notes\relative c'{
-  \property Staff.instrument   = "Soprano"
-  \property Staff.instr                = "S."
-  c1 c \bar "|.";
-} 
-
-tenor = \notes \relative c'{
-  \property Staff.instrument   = "Tenor"
-  \property Staff.instr                = "T."
-  c1 c
-}
-
-\score
-{
-  \context StaffGroup< 
-    \context Staff = "voice"   \voice
-    \context GrandStaff< 
-      \context Staff = "soprano" \soprano
-      \context Staff = "tenor" \tenor
-    >
-  >
-
-  \paper {
-    indent = 50.0\mm;
-    linewidth = 100.0\mm;
-    \translator { \StaffContext \consists Staff_margin_engraver; }
-  }
-}
diff --git a/input/bugs/steep-beam.ly b/input/bugs/steep-beam.ly
new file mode 100644 (file)
index 0000000..ea7fe13
--- /dev/null
@@ -0,0 +1,3 @@
+
+
+\score { \notes <{  [ r8 g''16 des'] [r8 c16 a] }>}
diff --git a/input/bugs/updownstem.ly b/input/bugs/updownstem.ly
deleted file mode 100644 (file)
index 8d2cabc..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-% silly short upstem?
-\score{
-\context Staff \notes\relative c''{
-< a4 c e >
-}
-\paper{
-}
-}
diff --git a/input/bugs/volta.ly b/input/bugs/volta.ly
new file mode 100644 (file)
index 0000000..48889cf
--- /dev/null
@@ -0,0 +1,42 @@
+
+voice4 = \notes {
+\clef bass;
+ \property Staff.instrument = "Bass"
+ \property Staff.instr = "B"
+ \time 4/4;  f,2 (   ) f,8    r8   f8    e8    
+\repeat  volta 2
+{
+ d8.    d16    e8.    f16    f8    c8    c16    c8. 
+}
+\alternative
+{
+    {   f,2 (   ) f,8    r8   f8    e8 ( \break   }
+    {   ) f,2.    r8   c16    c16      |
+    }
+}
+}
+voicedefault = \notes {
+ \property Staff.timeSignatureStyle="C"
+ \time 4/4; \key f; 
+ \tempo 4 = 200;
+}
+\score{
+        \notes <
+
+
+        \context Staff="4"
+        {
+            \$voicedefault
+            \$voice4 
+        }
+
+    >
+        \paper {
+            font_normal = 12.;
+            \translator {
+                 \StaffContext 
+                 \consists Instrument_name_engraver;
+            }
+        }
+}
+
index 09ef7e35d889997c195fbf2f324641ef08b9b2fb..4ea9a9beae08dd5ef21ea6066cec3b9ff33d9795 100644 (file)
@@ -135,8 +135,8 @@ fugaIILeft = \notes {
     \context Voice = two { \stemdown s2 e4 |
       fis2 fis4 }
   >
-  \stemdown cis2 e4 |
-  b4. b8 b4 |
+  \stemboth cis2 [e16( fis a \clef "treble"; b] |
+  d'4 ) b8 b8 b4 |
   %19
 }
 
@@ -152,8 +152,6 @@ fugaIIPedal = \notes \relative c {
   %19
 }
 
-
-
 % these should be two separate scores...
 \score{
   \context Score  \notes <
@@ -166,14 +164,18 @@ fugaIIPedal = \notes \relative c {
 
 
        \property Score.midiInstrument = "church organ"
-        \praeludiumRight r1 \fugaIIRight }
-      \context Staff = bass { 
+        \praeludiumRight 
+        r1 \mark "B";
+          \fugaIIRight }
+      \context Staff = bass {
+       \property Staff.instrument = #"left"
+       \property Staff.instr = #"lt"
         \praeludiumLeft r1 \fugaIILeft }
     > 
     \context Staff = pedal \relative c  <
       {
-       \property Staff.instrument = #"left"
-       \property Staff.instr = #"lt"
+        \property Staff.instrument = #"bass"
+        \property Staff.instr = #"bs"  
 
         \time 4/4;
        \key e; 
@@ -197,7 +199,9 @@ fugaIIPedal = \notes \relative c {
 
   \paper {
 
-   \translator { \OrchestralScoreContext }
+       \translator {
+               \OrchestralScoreContext
+       }
        \translator { \PianoStaffContext
                \consists "Instrument_name_engraver";
        }
index 53d4cf47660164f21b5be150c2f14b35d75345b6..3aa50afbf22914da8eea7a5a42536f7d174f2eb6 100644 (file)
@@ -6,18 +6,34 @@
   (c)  1997--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
 */
 
-#include "bar-number-engraver.hh"
-#include "engraver-group-engraver.hh"
+
+#include "lily-guile.hh"
+#include "paper-column.hh"
+#include "paper-def.hh"
+#include "side-position-interface.hh"
+#include "staff-symbol.hh"
 #include "text-item.hh"
 #include "moment.hh"
+#include "engraver.hh"
+#include "protected-scm.hh"
 
-Bar_number_engraver::Bar_number_engraver()
+class Bar_number_engraver : public Engraver
 {
-  axis_ = Y_AXIS;
-  type_ = "barNumber";
-}
-
+protected:
+  Text_item* text_p_;
+  Protected_scm visibility_lambda_;
+  Protected_scm staffs_;
 
+protected:
+  virtual void do_creation_processing ();
+  virtual void do_pre_move_processing ();
+  virtual void acknowledge_element (Score_element_info);
+  void create_items();
+  void do_process_music ();
+public:
+  VIRTUAL_COPY_CONS(Translator);
+  Bar_number_engraver();
+};
 
 void
 Bar_number_engraver::do_process_music ()
@@ -30,13 +46,99 @@ Bar_number_engraver::do_process_music ()
   if (gh_number_p (bn) &&
       !mp && now_mom () > Moment (0))
     {
-      create_items (0);
+      create_items ();
 
       // guh.
       text_p_->set_elt_property ("text",
                                 ly_str02scm (to_str (gh_scm2int (bn)).ch_C()));
-                                
     }
 }
 
 ADD_THIS_TRANSLATOR(Bar_number_engraver);
+
+Bar_number_engraver::Bar_number_engraver ()
+{
+  text_p_ =0;
+  staffs_ = SCM_EOL;
+}
+
+void
+Bar_number_engraver::do_creation_processing ()
+{
+  String t = "barNumberVisibilityFunction";
+  SCM proc = get_property (t);
+
+  if (gh_procedure_p (proc))
+    visibility_lambda_ = proc;
+}
+
+
+                                              
+void
+Bar_number_engraver::acknowledge_element (Score_element_info inf)
+{
+  Score_element * s = inf.elem_l_;
+  if (dynamic_cast<Staff_symbol*> (s))
+    {
+      staffs_ = gh_cons (inf.elem_l_->self_scm_, staffs_);
+    }
+  else if (text_p_
+          && dynamic_cast<Item*> (s)
+          && s->get_elt_property ("break-align-symbol") == ly_symbol2scm ("Left_edge_item"))
+    {
+      /*
+       By default this would land on the Paper_column -- so why
+       doesn't it work when you leave this out?  */
+      text_p_->set_parent (s, X_AXIS);
+    }
+}
+
+void 
+Bar_number_engraver::do_pre_move_processing ()
+{
+  if (text_p_)
+    {
+      text_p_->set_elt_property ("side-support", staffs_);
+      typeset_element (text_p_);
+      text_p_ =0;
+    }
+}
+
+
+void
+Bar_number_engraver::create_items ()
+{
+  if (text_p_)
+    return;
+  
+  text_p_ = new Text_item;
+  text_p_->set_elt_property ("breakable", SCM_BOOL_T); // ugh
+  Side_position_interface staffside(text_p_);
+  staffside.set_axis (Y_AXIS);
+
+  SCM prop = get_property ("barNumberDirection");
+  if (!isdir_b (prop))
+    {
+      prop = gh_int2scm (UP);
+    }
+  text_p_->set_elt_property ("direction", prop);
+
+  SCM padding = get_property ("barNumberScriptPadding");
+  if (gh_number_p(padding))
+    {
+      text_p_->set_elt_property ("padding", padding);
+    }
+  else
+    {
+      text_p_
+       ->set_elt_property ("padding",
+                           gh_double2scm(paper_l ()->get_var ("interline")));
+    }
+
+  if (gh_procedure_p (visibility_lambda_))
+      text_p_->set_elt_property ("visibility-lambda",
+                                visibility_lambda_);
+
+  announce_element (Score_element_info (text_p_, 0));
+}
+
diff --git a/lily/bar-script-engraver.cc b/lily/bar-script-engraver.cc
deleted file mode 100644 (file)
index 521b23f..0000000
+++ /dev/null
@@ -1,156 +0,0 @@
-/*   
-  bar-script-engraver.cc --  implement Bar_script_engraver
-  
-  source file of the GNU LilyPond music typesetter
-  
-  (c) 1999--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-  
- */
-
-#include "bar-script-engraver.hh"
-#include "bar.hh"
-#include "clef-item.hh"
-#include "side-position-interface.hh"
-#include "text-item.hh"
-#include "lily-guile.hh"
-#include "paper-column.hh"
-#include "paper-def.hh"
-#include "dimension-cache.hh"
-#include "staff-symbol-referencer.hh"
-#include "side-position-interface.hh"
-#include "staff-symbol.hh"
-
-Bar_script_engraver::Bar_script_engraver ()
-{
-  axis_ = Y_AXIS;
-  text_p_ =0;
-}
-
-void
-Bar_script_engraver::do_creation_processing ()
-{
-  String t = type_  + "VisibilityFunction";
-  SCM proc = get_property (t);
-
-  if (gh_procedure_p (proc))
-      visibility_lambda_ = proc;
-}
-
-
-/*
-  Some interesting item came across.  Lets attach the text and the
-  positioner to the item.
-
-*/
-void
-Bar_script_engraver::attach_script_to_item (Item *i)
-{
-  Axis other_axis = Axis((axis_ + 1)%2);
-  if (text_p_ && !text_p_->parent_l(other_axis)) 
-    {
-      text_p_->set_parent (i,other_axis);
-      text_p_->set_parent (i,axis_);
-
-      if (!text_p_->parent_l(other_axis))
-       text_p_->set_parent (i,other_axis);
-
-      Side_position_interface (text_p_).add_support (i);
-
-      /*
-       How do we make sure that text_p_ has a dependency from
-       someone else? We can't use I for that,  so we use some other element.
-       */
-      // text_p_->set_elt_property ("dangling", SCM_BOOL_T)
-      get_staff_info ().command_pcol_l ()->add_dependency (text_p_);
-    }
-}
-
-/*
-  URG.
- */
-Item*
-Bar_script_engraver::cast_to_interesting_item (Score_element *e)
-{
-  Item * i =0;
-
-  /*
-    should do type lookup: if (e ->is_type (hang_on_type))
-   */
-  i = dynamic_cast<Bar*> (e);
-
-  return i;
-}
-                                              
-void
-Bar_script_engraver::acknowledge_element (Score_element_info inf)
-{
-  if (inf.origin_trans_l_arr (this).size () == 1)
-    {
-      Item *i=cast_to_interesting_item (inf.elem_l_);
-      if (!i)
-       return;
-
-      /* Only put numbers on bars that are at our own level (don't put
-        numbers over the staffs of a GrandStaff, only over the GrandStaff
-        itself */
-      if (inf.origin_trans_l_arr (this).size () != 1)
-       return;
-
-      attach_script_to_item (i);
-    }
-}
-
-void 
-Bar_script_engraver::do_pre_move_processing ()
-{
-  if (text_p_)
-    {
-      Staff_symbol * st = staff_symbol_referencer (text_p_).staff_symbol_l();
-      
-      if (st)
-       side_position (text_p_).add_support (st);
-      
-      typeset_element (text_p_);
-      text_p_ =0;
-    }
-}
-
-
-void
-Bar_script_engraver::create_items (Request *rq)
-{
-  if (text_p_)
-    return;
-  
-  text_p_ = new Text_item;
-  text_p_->set_elt_property ("breakable", SCM_BOOL_T); // ugh
-  Side_position_interface staffside(text_p_);
-  staffside.set_axis (axis_);
-
-  SCM prop = get_property (type_ + "Direction");
-  if (!isdir_b (prop))
-    {
-      prop = gh_int2scm (UP);
-    }
-  text_p_->set_elt_property ("direction", prop);
-
-  SCM padding = get_property (type_ + "ScriptPadding");
-  if (gh_number_p(padding))
-    {
-      text_p_->set_elt_property ("padding", padding);
-    }
-  else
-    {
-      text_p_
-       ->set_elt_property ("padding",
-                           gh_double2scm(paper_l ()->get_var ("interline")));
-    }
-
-  if (gh_procedure_p (visibility_lambda_))
-      text_p_->set_elt_property ("visibility-lambda",
-                                visibility_lambda_);
-  
-  announce_element (Score_element_info (text_p_, rq));
-}
-
diff --git a/lily/include/bar-number-engraver.hh b/lily/include/bar-number-engraver.hh
deleted file mode 100644 (file)
index 22c6c3e..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
-  bar-number-engraver.hh -- declare Bar_number_grav
-
-  source file of the GNU LilyPond music typesetter
-
-  (c)  1997--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-*/
-
-
-#ifndef BAR_NUMBER_GRAV_HH
-#define BAR_NUMBER_GRAV_HH
-
-#include "bar-script-engraver.hh"
-
-class Bar_number_engraver : public Bar_script_engraver {
-protected:
-  void do_process_music ();
-public:
-  VIRTUAL_COPY_CONS(Translator);
-  Bar_number_engraver();
-};
-#endif // BAR_NUMBER_GRAV_HH
diff --git a/lily/include/bar-script-engraver.hh b/lily/include/bar-script-engraver.hh
deleted file mode 100644 (file)
index 2e330e8..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-/*   
-  bar-script-engraver.hh -- declare Bar_script_engraver
-  
-  source file of the GNU LilyPond music typesetter
-  
-  (c) 1999--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-  
- */
-
-#ifndef BAR_SCRIPT_ENGRAVER_HH
-#define BAR_SCRIPT_ENGRAVER_HH
-#include "engraver.hh"
-#include "protected-scm.hh"
-
-/**
-  put stuff over or next to  bars.  Examples: bar numbers, marginal notes,
-  rehearsal marks.
- */
-class Bar_script_engraver : public Engraver
-{
-public:
-  VIRTUAL_COPY_CONS(Translator);
-protected:
-  Text_item* text_p_;
-  Protected_scm visibility_lambda_;
-  String type_;
-  Axis axis_;
-
-protected:
-  /**
-    Put the script on #it#
-   */
-  void attach_script_to_item (Item *it);
-  /**
-     Return non-nil if we want to hang something on this.
-   */
-  Item *cast_to_interesting_item (Score_element*);
-  Bar_script_engraver ();
-  virtual void do_creation_processing ();
-  virtual void do_pre_move_processing ();
-  virtual void acknowledge_element (Score_element_info);
-  void create_items(Request*);
-};
-
-
-#endif /* BAR_SCRIPT_ENGRAVER_HH */
-
index cbd80e8d423fb1ed52a375a33bfee6dee9707940..f91f7eea8bb422f60d731e38e4cbe244f376a6d1 100644 (file)
@@ -25,6 +25,10 @@ public:
   Key_engraver();
   
   VIRTUAL_COPY_CONS(Translator);
+
+  /*
+    TODO: move these into properties.
+   */
   Key key_;
   Key_change_req * keyreq_l_;
   Key_item * item_p_;
index 0d81e99399cb99ef18b93b8c1672769a83aa57aa..9ad0295ad70ae9bd1e9bb7b33b92f6597f5a2510 100644 (file)
@@ -31,7 +31,6 @@ public:
 
 
   Interval_t<int> head_positions_interval() const;
-  //  Interval width () const;
 
   void translate_rests(int dy);
   Note_head * first_head ()const;
index bb34f17efe4692791d876b907e5c95def2ee2a74..4733d5f1555c5b5e46c33dcaf5ec44bc61345ef1 100644 (file)
 
 #include "item.hh"
 
-/*
-  Why don't I have a 
-  VIRTUAL_COPY_CONS (Score_element);
-  see also note-head, rest.
-  ?
-*/
-
 class Rhythmic_head : public Item
 {
 public:
+
+  /*
+    Typically not used, since Rhythmic_head is not breakable.
+   */
+  VIRTUAL_COPY_CONS(Rhythmic_head);
   int balltype_i () const;
 
   void add_dots (Dots *);
index ac977363448f6fd14c7c401292bc97aa1c935e06..6d01fb2b6de72d73ec96049f9890a9a362314933 100644 (file)
@@ -94,13 +94,7 @@ Key_engraver::acknowledge_element (Score_element_info info)
   else if (dynamic_cast<Bar *> (info.elem_l_)
           && accidental_idx_arr_.size ()) 
     {
-      bool def =  (!item_p_);
       create_key ();
-      if (!def)
-       {
-         item_p_->set_elt_property ("visibility-lambda",
-                                   scm_eval (ly_symbol2scm  ("all-visible")));
-       }
     }
 
 }
@@ -119,6 +113,10 @@ Key_engraver::do_pre_move_processing ()
 { 
   if (item_p_) 
     {
+      if (keyreq_l_)
+       item_p_->set_elt_property ("visibility-lambda",
+                                  scm_eval (ly_symbol2scm  ("all-visible")));
+      
       typeset_element (item_p_);
       item_p_ = 0;
     }
@@ -126,7 +124,7 @@ Key_engraver::do_pre_move_processing ()
 
 
 /*
-  TODO Slightly hairy.  
+  TODO.  Use properties; and this is too hairy.
  */
 void
 Key_engraver::read_req (Key_change_req const * r)
index 1158daec6e39ffbabfbd866886958c650950c67a..0c2b543d465c02acc38006f2e221b4e11bf55466 100644 (file)
@@ -6,19 +6,41 @@
  (c) 1998--2000 Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
+
+#include "bar.hh"
+#include "clef-item.hh"
 #include "command-request.hh"
-#include "bar-script-engraver.hh"
+#include "dimension-cache.hh"
 #include "engraver-group-engraver.hh"
+#include "engraver.hh"
+#include "lily-guile.hh"
+#include "paper-column.hh"
+#include "paper-def.hh"
+#include "protected-scm.hh"
+#include "side-position-interface.hh"
+#include "staff-symbol-referencer.hh"
+#include "staff-symbol.hh"
 #include "text-item.hh"
 
-/**Print rehearsal marks.
-  */
-class Mark_engraver : public Bar_script_engraver 
+/**
+  put stuff over or next to  bars.  Examples: bar numbers, marginal notes,
+  rehearsal marks.
+ */
+class Mark_engraver : public Engraver
 {
 public:
-  Mark_engraver ();
   VIRTUAL_COPY_CONS(Translator);
+  Mark_engraver ();
 protected:
+  Text_item* text_p_;
+  Protected_scm visibility_lambda_;
+  Protected_scm staffs_;
+  
+protected:
+  virtual void do_creation_processing ();
+  virtual void do_pre_move_processing ();
+  virtual void acknowledge_element (Score_element_info);
+  void create_items(Request*);
   virtual bool do_try_music (Music *req_l);
   virtual void do_process_music ();
   virtual void do_post_move_processing ();
@@ -29,13 +51,94 @@ private:
 
 ADD_THIS_TRANSLATOR (Mark_engraver);
 
+
 Mark_engraver::Mark_engraver ()
 {
+  text_p_ =0;
   mark_req_l_ = 0;
-  axis_ = Y_AXIS;
-  type_ = "mark";
+  staffs_ = SCM_EOL;
+}
+
+void
+Mark_engraver::do_creation_processing ()
+{
+  String t = "markVisibilityFunction";
+  SCM proc = get_property (t);
+
+  if (gh_procedure_p (proc))
+    visibility_lambda_ = proc;
+}
+
+
+
+void
+Mark_engraver::acknowledge_element (Score_element_info inf)
+{
+  Score_element * s = inf.elem_l_;
+  if (dynamic_cast<Staff_symbol*> (s))
+    {
+      staffs_ = gh_cons (inf.elem_l_->self_scm_, staffs_);
+    }
+  else if (text_p_ && dynamic_cast<Bar*> (s))
+    {
+      /*
+       Ugh. Figure out how to do this right at beginning of line, (without
+       creating class Bar_script : public Text_item).
+      */
+      text_p_->set_parent (s, X_AXIS);
+    }
 }
 
+void 
+Mark_engraver::do_pre_move_processing ()
+{
+  if (text_p_)
+    {
+      text_p_->set_elt_property ("side-support" , staffs_);
+      typeset_element (text_p_);
+      text_p_ =0;
+    }
+}
+
+
+void
+Mark_engraver::create_items (Request *rq)
+{
+  if (text_p_)
+    return;
+  
+  text_p_ = new Text_item;
+  text_p_->set_elt_property ("breakable", SCM_BOOL_T); // ugh
+  Side_position_interface staffside(text_p_);
+  staffside.set_axis (Y_AXIS);
+
+  SCM prop = get_property ("markDirection");
+  if (!isdir_b (prop))
+    {
+      prop = gh_int2scm (UP);
+    }
+  text_p_->set_elt_property ("direction", prop);
+
+  SCM padding = get_property ("markScriptPadding");
+  if (gh_number_p(padding))
+    {
+      text_p_->set_elt_property ("padding", padding);
+    }
+  else
+    {
+      text_p_
+       ->set_elt_property ("padding",
+                           gh_double2scm(paper_l ()->get_var ("interline")));
+    }
+
+  if (gh_procedure_p (visibility_lambda_))
+      text_p_->set_elt_property ("visibility-lambda",
+                                visibility_lambda_);
+  
+  announce_element (Score_element_info (text_p_, rq));
+}
+
+
 void
 Mark_engraver::do_post_move_processing ()
 {
@@ -67,6 +170,9 @@ Mark_engraver::do_process_music ()
 
       String t;
 
+      /*
+       automatic marks.
+       */
       SCM m = (mark_req_l_->mark_label_ == SCM_UNDEFINED)
        ? get_property ("rehearsalMark")
        : SCM(mark_req_l_->mark_label_);
index 39019cbe2678906de78bb9f7bcf3c3217ee9a463..e5a7583522e26fb30d825678e32530e25f757cd2 100644 (file)
@@ -487,9 +487,11 @@ score_block:
        }
        ;
 
-score_body:            {
+score_body:
+       Music   {
                $$ = new Score;
                $$->set_spot (THIS->here_input ());
+               $$->music_p_ = $1;
        }
        | SCORE_IDENTIFIER {
                $$ = $1->access_content_Score (true);
@@ -497,11 +499,6 @@ score_body:                {
        | score_body mudela_header      {
                $$->header_p_ = $2;
        }
-       | score_body Music      {
-               if ($$->music_p_)
-                       $2->warning (_ ("More than one music block"));  
-               $$->music_p_ = $2;
-       }
        | score_body output_def {
                $$->add_output ($2);
        }
index f93dd1856fe12c73b95a04f049cf7973c830dea1..c11f2e8909ab363f96c40b3aacde3e13d6d28142 100644 (file)
@@ -71,7 +71,7 @@ Side_position_interface::side_position (Dimension_cache const * c)
   SCM support = me->get_elt_property ("side-support");
   for (SCM s = support; s != SCM_EOL; s = gh_cdr (s))
     {
-      Score_element * e  = unsmob_element ( gh_car (s));
+      Score_element * e  = unsmob_element (gh_car (s));
       if (e)
        common = common->common_refpoint (e, axis);
     }
index d8ec2aed2fa15e1996d4a7d549872c20ea7c2309..caa138477d667fde98a0101abc5bed05171a62ee 100644 (file)
 #include "paper-column.hh"
 #include "paper-def.hh"
 
-/*
-  TODO: rename this to system-open-engraver (or whatever.)
-
- */
 class System_start_delimiter_engraver : public Engraver
 {
 public:
   VIRTUAL_COPY_CONS(Translator);
   System_start_delimiter_engraver();
 
-  Spanner * spanbar_;
 protected:
-
+  Spanner * delim_;
   virtual void acknowledge_element (Score_element_info);
   virtual void do_creation_processing ();
   virtual void do_removal_processing ();
@@ -35,22 +30,21 @@ protected:
 
 ADD_THIS_TRANSLATOR(System_start_delimiter_engraver);
 
-
 void
 System_start_delimiter_engraver::acknowledge_element (Score_element_info inf)
 {
   if (dynamic_cast<Staff_symbol*> (inf.elem_l_))
     {
       /*
-       don't add as Axis_group_interface (spanbar_).add_element (),
+       don't add as Axis_group_interface (delim_).add_element (),
        because that would set the parent as well */
          
-      Group_interface (spanbar_).add_element (inf.elem_l_);
+      Group_interface (delim_).add_element (inf.elem_l_);
     }
   else if (System_start_delimiter * b = dynamic_cast<System_start_delimiter *> (inf.elem_l_))
     {
       SCM gl = b->get_elt_property ("glyph");
-      SCM my_gl = get_property ("spanBarGlyph");
+      SCM my_gl = delim_->get_elt_property ("glyph");
 
       /*
        UGH UGH
@@ -64,34 +58,39 @@ System_start_delimiter_engraver::acknowledge_element (Score_element_info inf)
 
 System_start_delimiter_engraver::System_start_delimiter_engraver()
 {
-  spanbar_ = 0;
+  delim_ = 0;
 }
 
 void
 System_start_delimiter_engraver::do_creation_processing()
 {
-  spanbar_ = new System_start_delimiter;
-  spanbar_->set_bound (LEFT, get_staff_info ().command_pcol_l ());
-  announce_element (Score_element_info (spanbar_,0));
-}
+  delim_ = new System_start_delimiter;
+  delim_->set_bound (LEFT, get_staff_info ().command_pcol_l ());
 
-void
-System_start_delimiter_engraver::do_removal_processing ()
-{
+  /*
+    You can't override the glyph using \property, you must do it in
+    the predefined context (ie. \translator { ... } )
+   */
   SCM s = get_property ("systemStartDelimiterGlyph");
   if (gh_symbol_p (s))
     {
-      spanbar_->set_elt_property ("glyph", s);
+      delim_->set_elt_property ("glyph", s);
     }
 
+  announce_element (Score_element_info (delim_,0));
+}
+
+void
+System_start_delimiter_engraver::do_removal_processing ()
+{
   // ugh, should have naming without bracket
   SCM collapse = get_property ("bracketCollapseHeight");
   if (gh_number_p (collapse))
-    spanbar_->set_elt_property ("collapse-height", collapse);
+    delim_->set_elt_property ("collapse-height", collapse);
   else
-    spanbar_->set_elt_property ("collapse-height", gh_double2scm (1));
+    delim_->set_elt_property ("collapse-height", gh_double2scm (1));
       
-  spanbar_->set_bound (RIGHT, get_staff_info ().command_pcol_l ());
-  typeset_element (spanbar_);
+  delim_->set_bound (RIGHT, get_staff_info ().command_pcol_l ());
+  typeset_element (delim_);
 }
 
index e64182a3a8955d84e095558b4bf0f408f1471d4c..aa5a4e697344efd3879e1e9c4643a98daae61e1f 100644 (file)
@@ -36,6 +36,7 @@ Timing_engraver::do_try_music (Music*m)
   
   return Timing_translator::do_try_music (m);
 }
+
 #if 0
 String
 Timing_engraver::do_process_music ()
@@ -54,6 +55,9 @@ Timing_engraver::do_process_music ()
 #endif
 
 
+/*
+  TODO make properties of this.
+ */
 String
 Timing_engraver::which_bar ()
 {
index b9467fb08144dab54c17aed5d3d83d6b80051e2f..f3cc65b459df303fa4a2dbab1971cef3dfd3cb13 100644 (file)
@@ -32,7 +32,12 @@ Volta_spanner::Volta_spanner ()
 
 /*
   this is too complicated. Yet another version of side-positioning,
-  badly implemented.  */
+  badly implemented.
+
+  --
+
+  Should look for system_start_delim to find left edge of staff.
+*/
 Molecule 
 Volta_spanner::do_brew_molecule () const
 {
index e32f472d022f98dd87178ba9525a1428b300b73b..72a0a5678e3ac725daeb42fefb1bf9c77bfdce27 100644 (file)
@@ -242,7 +242,7 @@ StaffGroupContext= \translator {
        systemStartDelimiterGlyph = #'bracket
        
 
-       \consistsend "Axis_group_engraver" ;
+
 
 
        \name StaffGroup;
@@ -372,6 +372,7 @@ ScoreContext = \translator {
          Time_signature
        )
        \consists "Spacing_engraver";
+
        \consists "Vertical_align_engraver";
        alignmentReference = \down;
        defaultClef = #"treble"
index 567db83af357f3fb79e27764c3b9adf394bd9935..e7a88e0a0582b1313eb0e50ae39ddb0300080da5 100644 (file)
@@ -1,15 +1,15 @@
 Begin3
 Title: LilyPond
-Version: 1.3.45
-Entered-date: 13APR00
+Version: 1.3.46
+Entered-date: 17APR00
 Description: 
 Keywords: music notation typesetting midi fonts engraving
 Author: hanwen@cs.uu.nl (Han-Wen Nienhuys)
        janneke@gnu.org (Jan Nieuwenhuizen)
 Maintained-by: hanwen@stack.nl (Han-Wen Nienhuys)
 Primary-site: sunsite.unc.edu /pub/Linux/apps/sound/convert
-       1000k lilypond-1.3.45.tar.gz 
+       1000k lilypond-1.3.46.tar.gz 
 Original-site: ftp.cs.uu.nl /pub/GNU/LilyPond/development/
-       1000k lilypond-1.3.45.tar.gz 
+       1000k lilypond-1.3.46.tar.gz 
 Copying-policy: GPL
 End
index d45871d1ef070ef2a6dbcfbf672b1f5975b64f0f..00c79003a4805f3dfb2edd6a3b86583728d80fe5 100644 (file)
@@ -1,9 +1,9 @@
 Name: lilypond
-Version: 1.3.45
+Version: 1.3.46
 Release: 1
 Copyright: GPL
 Group: Applications/Publishing
-Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.3.45.tar.gz
+Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.3.46.tar.gz
 Summary: A program for printing sheet music.
 URL: http://www.cs.uu.nl/~hanwen/lilypond
 # Icon: lilypond-icon.gif
index 3f9e26304e111c4887b46ad2c56732aabbb092bd..3145084cc77946b5437d8a959a64d16d62e6bce0 100644 (file)
 
 (define generic-crescendo-properties
   (cons "Crescendo" (list
-                    (list 'verticalDirection dir? 'direction)
                     (list 'dynamicDirection dir? 'direction)
+                    (list 'verticalDirection dir? 'direction)
                     (list 'dynamicPadding number? 'padding) 
                     (list 'dynamicMinimumSpace number? 'minimum-space) 
                     )))
   
 (define generic-dynamic-line-spanner-properties
   (cons "Dynamic_line_spanner" (list
-                    (list 'verticalDirection dir? 'direction)
                     (list 'dynamicDirection dir? 'direction)
+                    (list 'verticalDirection dir? 'direction)
                     (list 'dynamicPadding number? 'padding) 
                     (list 'dynamicMinimumSpace number? 'minimum-space) 
                     )))