summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--AUTHORS.txt4
-rw-r--r--Documentation/lilypond.pod2
-rw-r--r--Documentation/mudela-man.doc9
-rw-r--r--INSTALL.txt12
-rw-r--r--NEWS16
-rw-r--r--TODO6
-rw-r--r--VERSION2
-rw-r--r--bin/find-typenames.pl2
-rw-r--r--bin/lilypython.py6
-rw-r--r--bin/ly2dvi.sh46
-rw-r--r--bin/make-patch.py6
-rw-r--r--bin/make-website.py17
-rw-r--r--bin/mudela-book.pl2
-rw-r--r--bin/release.py6
-rw-r--r--debian/Makefile2
-rw-r--r--debian/TODO6
-rw-r--r--debian/changelog39
-rw-r--r--debian/control14
-rw-r--r--debian/copyright7
-rw-r--r--debian/info.ex15
-rw-r--r--debian/menu.ex1
-rw-r--r--debian/rules26
-rw-r--r--flower/Makefile8
-rw-r--r--flower/TODO2
-rwxr-xr-xflower/configure45
-rw-r--r--flower/configure.in5
-rw-r--r--flower/cpu-timer.cc6
-rw-r--r--init/performer.ly2
-rw-r--r--input/TODO2
-rw-r--r--input/sleur.ly17
-rw-r--r--input/twinkle.ly1
-rw-r--r--lib/Makefile2
-rw-r--r--lily/Stable.make1
-rw-r--r--lily/VERSION2
-rw-r--r--lily/audio-staff.cc2
-rw-r--r--lily/bow.cc26
-rw-r--r--lily/change-iterator.cc58
-rw-r--r--lily/command-request.cc1
-rw-r--r--lily/horizontal-vertical-group-item.cc (renamed from lily/elem-group-item.cc)4
-rw-r--r--lily/include/bow.hh3
-rw-r--r--lily/include/change-iterator.hh2
-rw-r--r--lily/include/col-info.hh28
-rw-r--r--lily/include/collision.hh2
-rw-r--r--lily/include/command-request.hh1
-rw-r--r--lily/include/horizontal-vertical-group-item.hh (renamed from lily/include/elem-group-item.hh)10
-rw-r--r--lily/include/lookup.hh4
-rw-r--r--lily/include/misc.hh2
-rw-r--r--lily/include/script-column.hh2
-rw-r--r--lily/include/slur.hh1
-rw-r--r--lily/lookup.cc2
-rw-r--r--lily/slur.cc76
-rw-r--r--lily/spring-spacer.cc13
-rw-r--r--lily/staff-performer.cc7
-rw-r--r--lily/staff-side.cc3
-rw-r--r--lily/tex-slur.cc7
-rw-r--r--lily/translator-group.cc2
-rw-r--r--make/Targets.make7
-rw-r--r--make/Toplevel.make.in3
-rw-r--r--make/lelievijver.lsm8
-rw-r--r--make/lilypond.lsm8
-rw-r--r--make/lilypond.spec7
-rw-r--r--make/lilypond.spec.in1
-rw-r--r--mf/Makefile4
-rw-r--r--mutopia/J.S.Bach/preludes-1.ly11
-rw-r--r--mutopia/J.S.Bach/preludes-2.ly10
-rw-r--r--mutopia/J.S.Bach/preludes-3.ly.m422
-rw-r--r--mutopia/J.S.Bach/preludes-4.ly127
-rw-r--r--mutopia/J.S.Bach/preludes.tex50
-rw-r--r--mutopia/standchen-20.tex3
-rw-r--r--mutopia/standje.ly22
-rw-r--r--tex/lily-ps-defs.tex12
71 files changed, 613 insertions, 277 deletions
diff --git a/AUTHORS.txt b/AUTHORS.txt
index d20b99bb41..2b410d68e1 100644
--- a/AUTHORS.txt
+++ b/AUTHORS.txt
@@ -61,7 +61,7 @@ CONTRIBUTORS
-29/Jan/98 LilyPond 0.1.44 1
+29/Jan/98 LilyPond 0.1.45 1
@@ -127,6 +127,6 @@ AUTHORS(1) LilyPond documentation AUTHORS(1)
-29/Jan/98 LilyPond 0.1.44 2
+29/Jan/98 LilyPond 0.1.45 2
diff --git a/Documentation/lilypond.pod b/Documentation/lilypond.pod
index 20a0e0b436..97e7854e23 100644
--- a/Documentation/lilypond.pod
+++ b/Documentation/lilypond.pod
@@ -121,7 +121,7 @@ Clef changes, meter changes, cadenza-mode, key changes, repeat bars.
=head1 DISCLAIMER AND COPYING POLICY
-GNU LilyPond is copyright 1996, 1997 by its authors. GNU LilyPond is
+GNU LilyPond is copyright 1996-1998 by its authors. GNU LilyPond is
distributed under the terms of the GNU General Public License. GNU LilyPond
is provided without any warranty what so ever.
GNU LilyPond may be freely distributed. For further information consult
diff --git a/Documentation/mudela-man.doc b/Documentation/mudela-man.doc
index 6895a30e1f..4434920ed7 100644
--- a/Documentation/mudela-man.doc
+++ b/Documentation/mudela-man.doc
@@ -487,8 +487,15 @@ processed with \verb+{+ and \verb+}+ enclosing the input.
\subsection{Durations}
A duration always starts with the duration type (1,2,4 etc), and then
-any optional multipliers/dots
+any optional multipliers/dots. Old fashioned durations can be entered
+as follows
+\begin{verbatim}
+'c\breve
+gis'\longa
+\end{verbatim}
+
+
\subsection{Meters/groupings}
A meter has this form:
diff --git a/INSTALL.txt b/INSTALL.txt
index c014f4300e..e49460518d 100644
--- a/INSTALL.txt
+++ b/INSTALL.txt
@@ -61,7 +61,7 @@ RECOMMENDED
-28/Jan/98 LilyPond 0.1.44 1
+28/Jan/98 LilyPond 0.1.45 1
@@ -127,7 +127,7 @@ CONFIGURING and COMPILING
-28/Jan/98 LilyPond 0.1.44 2
+28/Jan/98 LilyPond 0.1.45 2
@@ -193,7 +193,7 @@ INSTALL(1) LilyPond documentation INSTALL(1)
-28/Jan/98 LilyPond 0.1.44 3
+28/Jan/98 LilyPond 0.1.45 3
@@ -259,7 +259,7 @@ EXAMPLE
-28/Jan/98 LilyPond 0.1.44 4
+28/Jan/98 LilyPond 0.1.45 4
@@ -325,7 +325,7 @@ MUSIXTEX
-28/Jan/98 LilyPond 0.1.44 5
+28/Jan/98 LilyPond 0.1.45 5
@@ -391,6 +391,6 @@ AUTHORS
-28/Jan/98 LilyPond 0.1.44 6
+28/Jan/98 LilyPond 0.1.45 6
diff --git a/NEWS b/NEWS
index ce79217d60..0ca4e4d818 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,20 @@
+pl 45
+ - bf: translator switching
+ - SunOS and IRIX patches (AO)
+ - preludes bugfixes; preludes.tex ugh (JCN)
+ - shared lib numbering (AF)
+ - various fixes for debian (AF)
+ - ly2dvi .6.jaf (JAF)
+
+pl 44.jcn5
+ - bf: crescendo.cc: bigger and use bar_size
+ - slur: guess extra height for height limit for extending notes/stems
+ - ps: adjustable slur height limit, bf crescendo
+
+
+******
+feb 6
pl 44
- ly2dvi 0.6.hwn1
- ly2dvi 0.6 (JAF)
diff --git a/TODO b/TODO
index 8f1ce7fa1d..7a203a5307 100644
--- a/TODO
+++ b/TODO
@@ -11,8 +11,6 @@ grep for TODO and ugh/ugr
- configure.in
- clean-fonts.sh
- * check for abs()
-
* forced breakpoints
* --metafont
@@ -182,11 +180,11 @@ languages:
* cautionary accidental
* Output an output format independent (ofi) typeset file; and
- make ofi2 TeX, MusixTex, Display PostScript, PostScript,
+ make ofi2 TeX, MusiXTex, Display PostScript, PostScript,
Ascii... interpreters. (difficult)
- poor man's ascii output possible?
- - MusixTeX output possible? (would have to be done before break calc.)
+ - MusiXTeX output possible? (would have to be done before break calc.)
- NIFF ?
- Common Music Notation
- PostScript output (esp. Beams, Slurs, etc)
diff --git a/VERSION b/VERSION
index d0da0ec0d1..1a990573ab 100644
--- a/VERSION
+++ b/VERSION
@@ -1,6 +1,6 @@
TOPLEVEL_MAJOR_VERSION = 0
TOPLEVEL_MINOR_VERSION = 1
-TOPLEVEL_PATCH_LEVEL = 44
+TOPLEVEL_PATCH_LEVEL = 45
TOPLEVEL_MY_PATCH_LEVEL =
# use the above to send patches, always empty for released version:
diff --git a/bin/find-typenames.pl b/bin/find-typenames.pl
index e08fd00800..890f9cabd0 100644
--- a/bin/find-typenames.pl
+++ b/bin/find-typenames.pl
@@ -1,4 +1,4 @@
-#!/usr/bin/perl
+#!@PERL@
open GREP, "egrep -h '^struct|^class' *.hh *.cc|";
open OUT, "|sort | uniq";
diff --git a/bin/lilypython.py b/bin/lilypython.py
index a9055e5c27..6c4ad1ad70 100644
--- a/bin/lilypython.py
+++ b/bin/lilypython.py
@@ -105,8 +105,10 @@ class Lilydirs:
def __init__(self):
try:
self.topdir = os.environ['LILYPOND_SOURCEDIR'] + '/'
- except IndexError:
- self.topdir = os.environ['HOME'] + 'musix/current'
+
+ except KeyError:
+ print 'Please set LILYPOND_SOURCEDIR to the toplevel source, eg LILYPOND_SOURCEDIR=/home/foobar/lilypond-1.2.3/'
+ sys.exit(1)
self.release_dir = self.topdir + '../releases/'
self.patch_dir = self.topdir + '../patches/'
diff --git a/bin/ly2dvi.sh b/bin/ly2dvi.sh
index ab82f00919..9684014716 100644
--- a/bin/ly2dvi.sh
+++ b/bin/ly2dvi.sh
@@ -8,7 +8,7 @@
# Original LaTeX file made by Mats Bengtsson, 17/8 1997
#
-VERSION="0.6.hwn1"
+VERSION="0.6.jaf2"
NAME=ly2dvi.sh
IDENTIFICATION="$NAME $VERSION"
NOW=`date`
@@ -16,6 +16,9 @@ echo "$IDENTIFICATION" 1>&2
# NEWS
+# 0.6.hwn1.jaf
+# - LILYINCLUDE update
+#
# 0.6.hwn1
# - handle LILYINCLUDE
# - --output
@@ -420,31 +423,26 @@ $IDENTIFICATION: dvi file name is $RESULT
EOF
}
- # ugh. GF is side-effect.
+# ugh. GF is side-effect.
findInput() {
- # should check for LILYINCLUDE
- for lypath in `echo $LILYINCLUDE| sed 's/:/ /g'`
- do
- if [ x$lypath = x ]
- then
- lypath="."
- fi
-
- if [ -f "$lypath/$1" ]
- then
- GF="$lypath/$1"
- return
- fi
+# should check for LILYINCLUDE
+ for lypath in "." `echo $LILYINCLUDE| sed 's/:/ /g'`
+ do
+ if [ -f "$lypath/$1" ]
+ then
+ GF="$lypath/$1"
+ return
+ fi
- if [ -f "$lypath/$1.ly" ]
- then
- GF="$lypath/$1.ly"
- return
- fi
- done
- $debug_echo $IDENTIFICATION": Input file "$GF" not found"
- echo $NAME": Input file "$GF" not found" 1>&2
- exit 2
+ if [ -f "$lypath/$1.ly" ]
+ then
+ GF="$lypath/$1.ly"
+ return
+ fi
+ done
+ $debug_echo $IDENTIFICATION": Input file "$GF" not found"
+ echo $NAME": Input file "$GF" not found" 1>&2
+ exit 2
}
#
# Loop through all files
diff --git a/bin/make-patch.py b/bin/make-patch.py
index 047f8e37b7..6600ec2e7d 100644
--- a/bin/make-patch.py
+++ b/bin/make-patch.py
@@ -6,8 +6,10 @@ import os
lilypath =''
try:
lilypath = os.environ['LILYPOND_SOURCEDIR'] + '/'
-except IndexError:
- lilypath = os.environ['HOME'] + 'musix/current'
+except KeyError:
+ print 'Please set LILYPOND_SOURCEDIR to the toplevel source, eg LILYPOND_SOURCEDIR=/home/foobar/lilypond-1.2.3/'
+ sys.exit(1)
+
lilypath = lilypath + '/bin/'
sys.path.append(lilypath)
diff --git a/bin/make-website.py b/bin/make-website.py
index d7ee588e5a..15da0c6e43 100644
--- a/bin/make-website.py
+++ b/bin/make-website.py
@@ -11,7 +11,16 @@
stupid script to generate WWW site.
The WWW site is my test-suite for LilyPond, I usually don't
- distribute versions that fail to complete this script """
+ distribute versions that fail to complete this script
+
+You should set the following environment vars:
+
+LILYPOND_SOURCEDIR
+TEXINPUTS
+MAILADDRESS
+
+
+ """
import sys
import os
@@ -19,8 +28,10 @@ import os
lilypath =''
try:
lilypath = os.environ['LILYPOND_SOURCEDIR'] + '/'
-except IndexError:
- lilypath = os.environ['HOME'] + 'musix/current'
+except KeyError:
+ print 'Please set LILYPOND_SOURCEDIR to the toplevel source, eg LILYPOND_SOURCEDIR=/home/foobar/lilypond-1.2.3/'
+ sys.exit(1)
+
lilypath = lilypath + '/bin/'
sys.path.append(lilypath)
diff --git a/bin/mudela-book.pl b/bin/mudela-book.pl
index 37206c3c81..bf65dd7806 100644
--- a/bin/mudela-book.pl
+++ b/bin/mudela-book.pl
@@ -1,4 +1,4 @@
-#!@PERL@ -w
+#!@PERL@ -w
# -*-Perl-*-
my $mudcount = 0;
my $mudela_b = 0;
diff --git a/bin/release.py b/bin/release.py
index 26519263e2..fa6a9c4035 100644
--- a/bin/release.py
+++ b/bin/release.py
@@ -6,8 +6,10 @@ import os
lilypath =''
try:
lilypath = os.environ['LILYPOND_SOURCEDIR'] + '/'
-except IndexError:
- lilypath = os.environ['HOME'] + 'musix/current'
+except KeyError:
+ print 'Please set LILYPOND_SOURCEDIR to the toplevel source, eg LILYPOND_SOURCEDIR=/home/foobar/lilypond-1.2.3/'
+ sys.exit(1)
+
lilypath = lilypath + '/bin/'
sys.path.append(lilypath)
diff --git a/debian/Makefile b/debian/Makefile
index 7f35925fb6..531f1330c4 100644
--- a/debian/Makefile
+++ b/debian/Makefile
@@ -16,4 +16,4 @@ include ./$(depth)/make/Rules.make
EXTRA_DISTFILES = README.Debian TODO changelog control copyright \
- info.ex menu.ex postinst postinst.old.sh postrm preinst rules watch
+ postinst postinst.old.sh postrm preinst rules watch
diff --git a/debian/TODO b/debian/TODO
index a4fc50fdbc..8a5f21bd28 100644
--- a/debian/TODO
+++ b/debian/TODO
@@ -1,2 +1,4 @@
-* Move ly2dvi.sh to a proper place. It is currently placed in
- /usr/doc/lilypond. (1997-11-25)
+Fri, 6 Feb 1998 17:24:49 -0700:
+ * Compile mudela-mode.el into mudela-mode.elc
+ * Install /etc/emacs/site-start.d/50lilypond.el
+ * Figure out how to make mudela-mode work on my computer. :-)
diff --git a/debian/changelog b/debian/changelog
index dcc446cf8f..a7a0642d11 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,42 @@
+lilypond (0.1.44-1) unstable; urgency=low
+
+ * New upstream release
+
+ -- Anthony Fok <foka@debian.org> Fri, 6 Feb 1998 22:07:39 -0700
+
+lilypond (0.1.43-1) unstable; urgency=low
+
+ * New upstream release.
+ * Upgraded to standards version 2.4.0.0 (no changes).
+ * Minor fixes to the copyright file (GPL.gz -> GPL).
+ * Revised the package description based on the new lilypond.lsm.
+ * Now includes *.gif instead of *.xpm files.
+ * Other minor revisions to debian/rules.
+ * Added version numbering to the libflower shared library.
+ * Now installs /usr/lib/emacs/site-lisp/mudela-mode.el,
+ but I haven't figured out how to use it myself. <grin>
+
+ -- Anthony Fok <foka@debian.org> Fri, 6 Feb 1998 17:26:55 -0700
+
+lilypond (0.1.42-1) unstable; urgency=low
+
+ * New upstream release.
+ * Now places ly2dvi in /usr/bin.
+
+ -- Anthony Fok <foka@debian.org> Thu, 29 Jan 1998 02:50:36 -0700
+
+lilypond (0.1.41-1) unstable; urgency=low
+
+ * New upstream "The Birthday Release".
+
+ -- Anthony Fok <foka@debian.org> Wed, 21 Jan 1998 02:20:00 -0700
+
+lilypond (0.1.40-1) unstable; urgency=low
+
+ * New upstream release.
+
+ -- Anthony Fok <foka@debian.org> Mon, 12 Jan 1998 19:19:50 -0700
+
lilypond (0.1.39-2) unstable; urgency=low
* debian/control:
diff --git a/debian/control b/debian/control
index 5da70c7c86..a99665244f 100644
--- a/debian/control
+++ b/debian/control
@@ -2,18 +2,20 @@ Source: lilypond
Section: tex
Priority: optional
Maintainer: Anthony Fok <foka@debian.org>
-Standards-Version: 2.3.0.1
+Standards-Version: 2.4.0.0
Package: lilypond
Architecture: any
Depends: ${shlibs:Depends}
Recommends: tetex-base
Conflicts: musixtex-fonts
-Description: A music typesetting program.
- GNU LilyPond is a program which converts a music-script (mudela) into TeX
- output, or MIDI to produce multi-staff scores. Features include multiple
- meters, clefs, keys, lyrics, versatile input-language, cadenzas beams,
- slurs, triplets, multiple voices.
+Description: The GNU Project music typesetter.
+ LilyPond is the GNU Project music typesetter. The program generates
+ visual or auditive output from a music definition file: it can typeset
+ formatted sheet music to a TeX file and play (mechanical) performances
+ to a MIDI file. Features include multiple staffs, meters, clefs,
+ keys, lyrics, versatile input-language, cadenzas, beams, slurs,
+ triplets. It includes a nice font of musical symbols.
.
URL: http://www.stack.nl/~hanwen/lilypond/
Authors: Han-Wen Nienhuys <hanwen@stack.nl>
diff --git a/debian/copyright b/debian/copyright
index 613a8d3967..16c78c5b47 100644
--- a/debian/copyright
+++ b/debian/copyright
@@ -3,7 +3,7 @@ Wed, 6 Aug 1997 04:30:28 -0600
It was downloaded from
ftp://pcnov095.win.tue.nl/pub/lilypond/development/
- lilypond-0.1.39.tar.gz
+ lilypond-0.1.44.tar.gz
It is also available from:
ftp://alpha.gnu.org/gnu/
@@ -32,8 +32,7 @@ Copyright:
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
All the other scripts and control files for building and installing
@@ -41,4 +40,4 @@ GNU LilyPond under Debian GNU/Linux are also under the GNU General
Public License (GPL) version 2 or later.
On Debian GNU/Linux systems, the complete text of the GNU General
-Public License can be found in `/usr/doc/copyright/GPL.gz'.
+Public License can be found in `/usr/doc/copyright/GPL'.
diff --git a/debian/info.ex b/debian/info.ex
deleted file mode 100644
index 5a311f02bc..0000000000
--- a/debian/info.ex
+++ /dev/null
@@ -1,15 +0,0 @@
-# This is a configuration files for installing a .info menu
-# The Description to be placed into the directory
-DESCR="Description"
-
-# The section this info file should be placed in (Regexp) followed by
-# the new section name to be created if the Regexp does not match
-# (Optional. If not given the .info will be appended to the directory)
-#SECTION_MATCH="Regexp"
-#SECTION_NAME="New Section Name"
-
-# The file referred to from the Info directory
-FILE=lilypond.info
-
-# Optional. The files to be copied to /usr/info
-#FILES=*.info
diff --git a/debian/menu.ex b/debian/menu.ex
deleted file mode 100644
index 179992fae0..0000000000
--- a/debian/menu.ex
+++ /dev/null
@@ -1 +0,0 @@
-text Apps/Misc lilypond none "lilypond Description" /usr/bin/lilypond
diff --git a/debian/rules b/debian/rules
index f0d60cfc7c..b71ba55d43 100644
--- a/debian/rules
+++ b/debian/rules
@@ -8,9 +8,9 @@
# Currently maintained by Anthony Fok <foka@debian.org>
# for Debian GNU/Linux.
-package=lilypond
+package = lilypond
-SHELL=/bin/bash
+SHELL = /bin/bash
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
@@ -21,7 +21,8 @@ build-stamp:
./configure --disable-checking --disable-debugging \
--enable-printing --prefix=/usr --enable-optimise \
--enable-shared
- make all
+ $(MAKE) all
+ $(MAKE) -C Documentation gifs
touch build-stamp
clean:
@@ -29,10 +30,7 @@ clean:
dh_testroot
rm -f build-stamp
-$(MAKE) distclean
- # Don't put dh_clean before "make distclean"! dh_clean is
- # "too smart" and it deletes too many files!
dh_clean
- rm -f {,*/}out/{*,.build} flower/config.{log,status}
# Build architecture-independent files here.
binary-indep: build
@@ -41,14 +39,17 @@ binary-indep: build
binary-arch: build
dh_testdir
dh_testroot
- dh_installdirs usr/lib/texmf/doc
- $(MAKE) prefix=`pwd`/debian/tmp/usr install
+ dh_installdirs usr/lib/texmf/doc usr/lib/emacs/site-lisp
ln -fs ../../../doc/lilypond debian/tmp/usr/lib/texmf/doc/lilypond
+ $(MAKE) prefix=`pwd`/debian/tmp/usr install
+ cp -av bin/out/ly2dvi debian/tmp/usr/bin
+ cp -av mudela-mode.el debian/tmp/usr/lib/emacs/site-lisp
dh_installdocs ANNOUNCE ANNOUNCE-0.1 README NEWS ONEWS DEDICATION \
BUGS TODO \
- Documentation/out/*.text Documentation/*.doc \
- Documentation/lelie_logo.xpm bin/ly2dvi.sh
- dh_installexamples input/*.ly input/*.tex
+ Documentation/*.doc Documentation/out/{*.txt,*.gif}
+ dh_installexamples input/{*.ly,TODO}
+ cp -aPv `find mutopia \( -name '*.ly' -o -name '*.tex' -o -name 'TODO' \)` \
+ debian/tmp/usr/doc/lilypond/examples
# dh_installmenu
# dh_installcron
# dh_installmanpages
@@ -66,5 +67,8 @@ binary-arch: build
dh_md5sums
dh_builddeb
+source diff:
+ @echo >&2 'source and diff are obsolete - use dpkg-source -b'; false
+
binary: binary-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary
diff --git a/flower/Makefile b/flower/Makefile
index 13daeba0b8..0aa02c7cc8 100644
--- a/flower/Makefile
+++ b/flower/Makefile
@@ -64,16 +64,18 @@ localdist: configure
#
localdistclean:
- rm -f config.cache config.status
+ rm -f config.cache config.status config.log
localinstall: $(LIBFLOWER)
ifeq ($(LIB_SUFFIX),.so)
$(INSTALL) -d $(libdir)
- $(INSTALL) $(LIBFLOWER) $(libdir)
+ $(INSTALL) $(LIBFLOWER).$(VERSION) $(libdir)
+ ln -s $(LIB_PREFIX)flower$(LIB_SUFFIX).$(VERSION) $(libdir)/$(LIB_PREFIX)flower$(LIB_SUFFIX).$(MAJOR_VERSION)
+ ln -s $(LIB_PREFIX)flower$(LIB_SUFFIX).$(VERSION) $(libdir)/$(LIB_PREFIX)flower$(LIB_SUFFIX)
endif
localuninstall:
- rm -f $(libdir)/libflower.{so,a}
+ rm -f $(libdir)/libflower.{so*,a}
$(outdir)/flower-version.o: $(outdir)/version.hh
diff --git a/flower/TODO b/flower/TODO
index e572af7954..5586845c99 100644
--- a/flower/TODO
+++ b/flower/TODO
@@ -16,8 +16,6 @@
* Automake, libtool
- * version numbering for shared lib.
-
* LGPL?
* disable this auto conv: const pointer -> bool -> string
diff --git a/flower/configure b/flower/configure
index 920d8c0c08..68844fd368 100755
--- a/flower/configure
+++ b/flower/configure
@@ -535,6 +535,7 @@ cross_compiling=$ac_cv_prog_cxx_cross
optimise_b=yes
shared_b=no
LIB_SUFFIX=.a
+MODULE_CXXFLAGS="$MODULE_CXXFLAGS -D_REENTRANT"
if test x$host = xNONE; then
OUTDIR_NAME=${OUTDIR_NAME-"out"}
@@ -572,8 +573,8 @@ fi
if test $shared_b = yes; then
- MODULE_CXXFLAGS="$MODULE_CXXFLAGS -fPIC"
- MODULE_LDFLAGS="-shared -Wl,-soname,libflower.so "
+ MODULE_CXXFLAGS="$MODULE_CXXFLAGS -fPIC -DPIC"
+ MODULE_LDFLAGS="-shared -Wl,-soname,libflower.so.\$(VERSION) "
LIB_SUFFIX=.so
fi
@@ -590,7 +591,7 @@ 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:594: checking for $ac_word" >&5
+echo "configure:595: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CXX'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -621,7 +622,7 @@ test -n "$CXX" || CXX="gcc"
echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:625: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works" >&5
+echo "configure:626: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works" >&5
ac_ext=C
# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
@@ -631,11 +632,11 @@ ac_link='${CXX-g++} -o conftest $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $L
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
-#line 635 "configure"
+#line 636 "configure"
#include "confdefs.h"
main(){return(0);}
EOF
-if { (eval echo configure:639: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:640: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
ac_cv_prog_cxx_works=yes
# If we can't run a trivial program, we are probably using a cross compiler.
if (./conftest; exit) 2>/dev/null; then
@@ -655,12 +656,12 @@ if test $ac_cv_prog_cxx_works = no; then
{ echo "configure: error: installation or configuration problem: C++ compiler cannot create executables." 1>&2; exit 1; }
fi
echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:659: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:660: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler" >&5
echo "$ac_t""$ac_cv_prog_cxx_cross" 1>&6
cross_compiling=$ac_cv_prog_cxx_cross
echo $ac_n "checking whether we are using GNU C++""... $ac_c" 1>&6
-echo "configure:664: checking whether we are using GNU C++" >&5
+echo "configure:665: checking whether we are using GNU C++" >&5
if eval "test \"`echo '$''{'ac_cv_prog_gxx'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -669,7 +670,7 @@ else
yes;
#endif
EOF
-if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:673: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:674: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
ac_cv_prog_gxx=yes
else
ac_cv_prog_gxx=no
@@ -684,7 +685,7 @@ if test $ac_cv_prog_gxx = yes; then
ac_save_CXXFLAGS="$CXXFLAGS"
CXXFLAGS=
echo $ac_n "checking whether ${CXX-g++} accepts -g""... $ac_c" 1>&6
-echo "configure:688: checking whether ${CXX-g++} accepts -g" >&5
+echo "configure:689: checking whether ${CXX-g++} accepts -g" >&5
if eval "test \"`echo '$''{'ac_cv_prog_cxx_g'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -712,7 +713,7 @@ else
fi
echo $ac_n "checking for 8-bit clean memcmp""... $ac_c" 1>&6
-echo "configure:716: checking for 8-bit clean memcmp" >&5
+echo "configure:717: checking for 8-bit clean memcmp" >&5
if eval "test \"`echo '$''{'ac_cv_func_memcmp_clean'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -720,7 +721,7 @@ else
ac_cv_func_memcmp_clean=no
else
cat > conftest.$ac_ext <<EOF
-#line 724 "configure"
+#line 725 "configure"
#include "confdefs.h"
#ifdef __cplusplus
extern "C" void exit(int);
@@ -733,7 +734,7 @@ main()
}
EOF
-if { (eval echo configure:737: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:738: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
then
ac_cv_func_memcmp_clean=yes
else
@@ -751,12 +752,12 @@ echo "$ac_t""$ac_cv_func_memcmp_clean" 1>&6
test $ac_cv_func_memcmp_clean = no && LIBOBJS="$LIBOBJS memcmp.o"
echo $ac_n "checking for vprintf""... $ac_c" 1>&6
-echo "configure:755: checking for vprintf" >&5
+echo "configure:756: checking for vprintf" >&5
if eval "test \"`echo '$''{'ac_cv_func_vprintf'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 760 "configure"
+#line 761 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char vprintf(); below. */
@@ -782,7 +783,7 @@ vprintf();
; return 0; }
EOF
-if { (eval echo configure:786: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:787: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
eval "ac_cv_func_vprintf=yes"
else
@@ -806,12 +807,12 @@ fi
if test "$ac_cv_func_vprintf" != yes; then
echo $ac_n "checking for _doprnt""... $ac_c" 1>&6
-echo "configure:810: checking for _doprnt" >&5
+echo "configure:811: checking for _doprnt" >&5
if eval "test \"`echo '$''{'ac_cv_func__doprnt'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 815 "configure"
+#line 816 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char _doprnt(); below. */
@@ -837,7 +838,7 @@ _doprnt();
; return 0; }
EOF
-if { (eval echo configure:841: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:842: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
eval "ac_cv_func__doprnt=yes"
else
@@ -864,12 +865,12 @@ fi
for ac_func in memmem snprintf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:868: checking for $ac_func" >&5
+echo "configure:869: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 873 "configure"
+#line 874 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -895,7 +896,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:899: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:900: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
diff --git a/flower/configure.in b/flower/configure.in
index dd20827eae..d0bd09bbc2 100644
--- a/flower/configure.in
+++ b/flower/configure.in
@@ -6,6 +6,7 @@ AC_LANG_CPLUSPLUS
optimise_b=yes
shared_b=no
LIB_SUFFIX=.a
+MODULE_CXXFLAGS="$MODULE_CXXFLAGS -D_REENTRANT"
if test x$host = xNONE; then
OUTDIR_NAME=${OUTDIR_NAME-"out"}
@@ -34,8 +35,8 @@ AC_ARG_ENABLE(out-dir,
[])
if test $shared_b = yes; then
- MODULE_CXXFLAGS="$MODULE_CXXFLAGS -fPIC"
- MODULE_LDFLAGS="-shared -Wl,-soname,libflower.so "
+ MODULE_CXXFLAGS="$MODULE_CXXFLAGS -fPIC -DPIC"
+ MODULE_LDFLAGS="-shared -Wl,-soname,libflower.so.\$(VERSION) "
LIB_SUFFIX=.so
fi
diff --git a/flower/cpu-timer.cc b/flower/cpu-timer.cc
index c838fe5cc9..b288735c1d 100644
--- a/flower/cpu-timer.cc
+++ b/flower/cpu-timer.cc
@@ -10,7 +10,13 @@
// nextstep
#ifndef CLOCKS_PER_SEC
+#ifdef CLK_TCK
#define CLOCKS_PER_SEC CLK_TCK
+#elif defined _SC_CLK_TCK
+#define CLOCKS_PER_SEC sysconf(_SC_CLK_TCK)
+#else
+#error cannot determine CLOCKS_PER_SEC
+#endif
#endif
diff --git a/init/performer.ly b/init/performer.ly
index 90b3688412..87ce9ca7d8 100644
--- a/init/performer.ly
+++ b/init/performer.ly
@@ -47,7 +47,7 @@ Staff_group = \translator
Score = \translator {
\type "Score_performer";
- instrument = piano;
+% instrument = piano;
\accepts Staff;
\accepts Grandstaff;
\accepts Lyrics;
diff --git a/input/TODO b/input/TODO
index 94237dfc2d..d1af953ae3 100644
--- a/input/TODO
+++ b/input/TODO
@@ -1,5 +1,5 @@
- neaten/structure examples
- - rename/split into test/exapmles?
+ - rename/split into test/examples?
diff --git a/input/sleur.ly b/input/sleur.ly
index 1226a9b7c0..a0c895286c 100644
--- a/input/sleur.ly
+++ b/input/sleur.ly
@@ -30,12 +30,29 @@ beum = \melodic{
[c8 c] c4 c4 c4 |
}
+extend = {
+ c8(( c c )c c c c )c |
+ \[4/5c8( c c' c )c\]1/1 c c c c |
+ \[4/5c8( c c c c'\]1/1 c c c )c |
+ \[4/5c8( c c c c''\]1/1 c c c )c' |
+ \[4/5c8( c c c c'\]1/1 c c c )'c |
+ \[4/5c8( c c' c c\]1/1 c c c )c |
+ \[4/5c8( c c c ''c\]1/1 c c c )c |
+ \[4/5c8( c ''c c c\]1/1 c c c )c |
+}
+
\score{
\melodic{
\shortlong
\dirs
\complex
\beum
+ \stemup;
+ \octave c'';
+ \extend
+ \stemdown;
+ \octave c';
+ \extend
}
\paper{ }
}
diff --git a/input/twinkle.ly b/input/twinkle.ly
index 2575f80979..c302e05ac4 100644
--- a/input/twinkle.ly
+++ b/input/twinkle.ly
@@ -20,6 +20,7 @@ Tested Features: lyrics, interleaving lyrics and staffs
melody = \melodic{
\clef violin;
\octave c';
+ \property Staff.instrument = "alto sax"
c4 c | g g | a a | g g |
f f | e e | d d8.( e16 | )c2 | % :|
diff --git a/lib/Makefile b/lib/Makefile
index 9538b989ae..83dfc51d4f 100644
--- a/lib/Makefile
+++ b/lib/Makefile
@@ -40,6 +40,8 @@ VERSION_DEPENDENCY =#
EXTRA_DISTFILES = config.hh.in
#
+MODULE_CXXFLAGS += -D_REENTRANT
+
# list of custom libraries:
LOADLIBES +=
diff --git a/lily/Stable.make b/lily/Stable.make
index 6aebc2b0a5..40eaaf2211 100644
--- a/lily/Stable.make
+++ b/lily/Stable.make
@@ -5,6 +5,5 @@ stablecc=meter.cc boxes.cc \
keyword.cc leastsquares.cc \
lookup.cc meter.cc\
parser.cc notename-table.cc lexer.cc\
- qlp.cc qlpsolve.cc\
template*.cc version.cc tex-stream.cc tex.cc\
identifier.cc note.cc
diff --git a/lily/VERSION b/lily/VERSION
index 5602a9c772..0318f75fa8 100644
--- a/lily/VERSION
+++ b/lily/VERSION
@@ -1,4 +1,4 @@
MAJOR_VERSION = 0
MINOR_VERSION = 1
-PATCH_LEVEL = 44
+PATCH_LEVEL = 45
MY_PATCH_LEVEL =
diff --git a/lily/audio-staff.cc b/lily/audio-staff.cc
index 199657677c..6dc14d1180 100644
--- a/lily/audio-staff.cc
+++ b/lily/audio-staff.cc
@@ -24,7 +24,7 @@ Audio_staff::output (Midi_stream& midi_stream_r, int track_i)
Midi_track midi_track;
midi_track.number_i_ = track_i;
for (Midi_walker i (this, &midi_track); i.ok(); i++)
- i.process();
+ i.process();
midi_stream_r << midi_track;
}
diff --git a/lily/bow.cc b/lily/bow.cc
index 1f75bba5de..7f73df520c 100644
--- a/lily/bow.cc
+++ b/lily/bow.cc
@@ -11,7 +11,9 @@
#include "molecule.hh"
#include "lookup.hh"
-Bow::Bow()
+IMPLEMENT_IS_TYPE_B1(Bow,Directional_spanner);
+
+Bow::Bow ()
{
dy_f_drul_[LEFT] = dy_f_drul_[RIGHT] = 0;
dx_f_drul_[LEFT] = dx_f_drul_[RIGHT] = 0.0;
@@ -19,39 +21,41 @@ Bow::Bow()
Offset
-Bow::center() const
+Bow::center () const
{
Real dy = dy_f_drul_[RIGHT]-dy_f_drul_[LEFT];
- Real w = width().length ();
+ Real w = width ().length ();
return Offset (w/2,dy );
}
+Real
+Bow::height_f () const
+{
+ return 0;
+}
Molecule*
-Bow::brew_molecule_p() const
+Bow::brew_molecule_p () const
{
Molecule*output = new Molecule;
- Real w = width().length ();
+ Real w = width ().length ();
Real dy_f = dy_f_drul_[RIGHT] - dy_f_drul_[LEFT];
- Real nw_f = paper()->note_width ();
- Real nh_f = paper()->internote_f ();
+ Real nw_f = paper ()->note_width ();
w+= (dx_f_drul_[RIGHT] - dx_f_drul_[LEFT]);
Real round_w = w; // slur lookup rounds the slurwidth .
- Atom a = paper()->lookup_l ()->slur (dy_f, round_w, dir_);
+ Atom a = paper ()->lookup_l ()->slur (dy_f, round_w, height_f (), dir_);
Real error = w-round_w;
- a.translate (Offset ((dx_f_drul_[LEFT] + 0.5*nw_f)
+ a.translate (Offset ( (dx_f_drul_[LEFT] + 0.5*nw_f)
+ error/2,
dy_f_drul_[LEFT]));
output->add (a);
return output;
}
-
-IMPLEMENT_IS_TYPE_B1(Bow,Directional_spanner);
diff --git a/lily/change-iterator.cc b/lily/change-iterator.cc
index c6ebf2907f..883e963e9f 100644
--- a/lily/change-iterator.cc
+++ b/lily/change-iterator.cc
@@ -1,5 +1,5 @@
/*
- change-iterator.cc -- implement
+ change-iterator.cc -- implement Change_iterator
source file of the GNU LilyPond music typesetter
@@ -9,12 +9,28 @@
#include "change-iterator.hh"
#include "translator-group.hh"
#include "change-translator.hh"
+#include "debug.hh"
Change_iterator::Change_iterator (Change_translator *change_l)
{
change_l_ = change_l;
}
+void
+Change_iterator::error (String reason)
+{
+ String to_type = change_l_->change_to_type_str_;
+ String to_id = change_l_->change_to_id_str_;
+
+ String warn1 =
+ _ ("Can't change ") + to_type
+ + _(" to ") + "`" + to_id + "\': " + reason;
+ String warn2= "Change_iterator::process_and_next (): " + report_to_l ()->type_str_ + " = `"
+ + report_to_l ()->id_str_ + "\': ";
+ warning (warn2);
+ change_l_->warning (warn1);
+}
+
/*
move to construct_children ?
*/
@@ -23,20 +39,42 @@ Change_iterator::process_and_next (Moment m)
{
Translator_group * current = report_to_l ();
Translator_group * last = 0;
- while (current && current->type_str_ != change_l_->change_to_type_str_)
+
+ String to_type = change_l_->change_to_type_str_;
+ String to_id = change_l_->change_to_id_str_;
+
+ /* find the type of translator that we're changing.
+
+ If \translator Staff = bass, then look for Staff = *
+ */
+ while (current && current->type_str_ != to_type)
{
last = current;
current = current->daddy_trans_l_;
}
- if (current)
- {
- Translator_group * dest =
- report_to_l ()->find_create_translator_l (change_l_->change_to_type_str_,
- change_l_->change_to_id_str_);
- current->remove_translator_p (last);
- dest->add (last);
- }
+
+ if (current)
+ if (last)
+ {
+ Translator_group * dest =
+ report_to_l ()->find_create_translator_l (to_type, to_id);
+ current->remove_translator_p (last);
+ dest->add (last);
+ }
+ else
+ {
+
+ /*
+ We could change the current translator's id, but that would make
+ errors hard to catch
+
+ last->translator_id_str_ = change_l_->change_to_id_str_;
+ */
+ error ("I'm one myself");
+ }
+ else
+ error ("None of these in my family.");
Music_iterator::process_and_next (m);
}
diff --git a/lily/command-request.cc b/lily/command-request.cc
index ee9d345674..661a7fed9f 100644
--- a/lily/command-request.cc
+++ b/lily/command-request.cc
@@ -14,6 +14,7 @@ void
Command_script_req::do_print() const
{}
Command_script_req::Command_script_req(){}
+Command_script_req::~Command_script_req(){}
IMPLEMENT_IS_TYPE_B1(Command_script_req,Command_req);
diff --git a/lily/elem-group-item.cc b/lily/horizontal-vertical-group-item.cc
index 9209796cae..2b70f21c62 100644
--- a/lily/elem-group-item.cc
+++ b/lily/horizontal-vertical-group-item.cc
@@ -1,5 +1,5 @@
/*
- elem-group-item.cc -- implement Horizontal_vertical_group_item
+ horizontal-vertical-group-item.cc -- implement Horizontal_vertical_group_item
source file of the GNU LilyPond music typesetter
@@ -7,7 +7,7 @@
*/
-#include "elem-group-item.hh"
+#include "horizontal-vertical-group-item.hh"
#include "p-col.hh"
void
diff --git a/lily/include/bow.hh b/lily/include/bow.hh
index 5583156743..c2908836d5 100644
--- a/lily/include/bow.hh
+++ b/lily/include/bow.hh
@@ -20,7 +20,8 @@ protected:
Drul_array<Real> dy_f_drul_;
Drul_array<Real> dx_f_drul_;
- Molecule*brew_molecule_p() const;
+ virtual Real height_f () const;
+ virtual Molecule* brew_molecule_p () const;
public:
Bow();
DECLARE_MY_RUNTIME_TYPEINFO;
diff --git a/lily/include/change-iterator.hh b/lily/include/change-iterator.hh
index bde2628561..69bd360a7b 100644
--- a/lily/include/change-iterator.hh
+++ b/lily/include/change-iterator.hh
@@ -16,6 +16,8 @@
class Change_iterator : public Music_iterator
{
Change_translator *change_l_;
+
+ void error (String);
public:
DECLARE_MY_RUNTIME_TYPEINFO;
diff --git a/lily/include/col-info.hh b/lily/include/col-info.hh
index 46f6cf20c3..50944b6fc4 100644
--- a/lily/include/col-info.hh
+++ b/lily/include/col-info.hh
@@ -1,5 +1,5 @@
/*
- col-info.hh -- declare
+ col-info.hh -- declare Colinfo
source file of the GNU LilyPond music typesetter
@@ -16,19 +16,19 @@
/// helper struct for #Spacing_problem#
struct Colinfo {
- Paper_column *pcol_l_;
- P<Real> fixpos_p_;
- Interval width_;
- int rank_i_;
- /// did some tricks to make this column come out.
- bool ugh_b_;
- /* *************** */
- Colinfo();
- Colinfo (Paper_column *,Real const *);
-
- void print() const;
- bool fixed() const { return fixpos_p_.get_C();}
- Real fixed_position() const { return *fixpos_p_; }
+ Paper_column *pcol_l_;
+ P<Real> fixpos_p_;
+ Interval width_;
+ int rank_i_;
+ /// did some tricks to make this column come out.
+ bool ugh_b_;
+ /* *************** */
+ Colinfo();
+ Colinfo (Paper_column *,Real const *);
+
+ void print() const;
+ bool fixed() const { return fixpos_p_.get_C();}
+ Real fixed_position() const { return *fixpos_p_; }
};
#endif // COL_INFO_HH
diff --git a/lily/include/collision.hh b/lily/include/collision.hh
index 6ab5db3fad..08b0706572 100644
--- a/lily/include/collision.hh
+++ b/lily/include/collision.hh
@@ -10,7 +10,7 @@
#ifndef COLLISION_HH
#define COLLISION_HH
#include "lily-proto.hh"
-#include "elem-group-item.hh"
+#include "horizontal-vertical-group-item.hh"
/**
Resolve conflicts between various Note_columns (chords).
diff --git a/lily/include/command-request.hh b/lily/include/command-request.hh
index a32c861aab..1988dc9add 100644
--- a/lily/include/command-request.hh
+++ b/lily/include/command-request.hh
@@ -36,6 +36,7 @@ class Command_script_req : public Command_req, public Script_req {
public:
// huh?
Command_script_req();
+ ~Command_script_req();
REQUESTMETHODS(Command_script_req, commandscript);
};
diff --git a/lily/include/elem-group-item.hh b/lily/include/horizontal-vertical-group-item.hh
index ab79afea9c..733ff639bd 100644
--- a/lily/include/elem-group-item.hh
+++ b/lily/include/horizontal-vertical-group-item.hh
@@ -1,5 +1,5 @@
/*
- elem-group-item.hh -- declare Horizontal_vertical_group_item
+ horizontal-vertical-group-item.hh -- declare Horizontal_vertical_group_item
source file of the GNU LilyPond music typesetter
@@ -7,8 +7,8 @@
*/
-#ifndef ELEM_GROUP_ITEM_HH
-#define ELEM_GROUP_ITEM_HH
+#ifndef HORIZONTAL_VERTICAL_GROUP_ITEM_HH
+#define HORIZONTAL_VERTICAL_GROUP_ITEM_HH
#include "axis-group-item.hh"
#include "elem-group.hh"
@@ -22,7 +22,7 @@ protected:
virtual void do_print() const;
virtual void remove_all() { Horizontal_vertical_group_element::remove_all (); }
virtual void do_unlink () { Horizontal_vertical_group_element::do_unlink (); }
- SCORE_ELEM_CLONE(Horizontal_vertical_group_item);
+ SCORE_HORIZONTAL_VERTICAL_CLONE(Horizontal_vertical_group_item);
public:
virtual void add_element (Graphical_element*e) { Horizontal_vertical_group_element::add_element (e); }
virtual void remove_element (Graphical_element*e) { Horizontal_vertical_group_element::remove_element (e); }
@@ -30,4 +30,4 @@ public:
DECLARE_MY_RUNTIME_TYPEINFO;
};
-#endif // ELEM_GROUP_ITEM_HH
+#endif // HORIZONTAL_VERTICAL_GROUP_ITEM_HH
diff --git a/lily/include/lookup.hh b/lily/include/lookup.hh
index e5cf3f10e9..c290cbd64f 100644
--- a/lily/include/lookup.hh
+++ b/lily/include/lookup.hh
@@ -50,10 +50,10 @@ struct Lookup {
Atom bar (String, Real height) const;
Atom dots () const;
- Atom slur (Real &dy, Real &dx, Direction dir) const;
+ Atom slur (Real &dy, Real &dx, Real ht, Direction dir) const;
Atom plet (Real &dy, Real &dx, Direction dir) const;
Atom tex_slur (int dy, Real &dx, Direction dir) const;
- Atom ps_slur (Real dy, Real dx, Real dir) const;
+ Atom ps_slur (Real dy, Real dx, Real ht, Real dir) const;
Atom half_slur (int dy, Real &dx, Direction dir, int xpart) const;
Atom half_slur_middlepart (Real &dx, Direction dir) const;
Atom big_slur (int dy, Real &dx, Direction dir) const;
diff --git a/lily/include/misc.hh b/lily/include/misc.hh
index 0e8c148ef0..28e55399ec 100644
--- a/lily/include/misc.hh
+++ b/lily/include/misc.hh
@@ -10,10 +10,12 @@
Moment wholes (int dur, int dots);
double log_2(double x) ;
int intlog2(int d);
+#if ! defined(_ABS_)
inline int
abs (int i){
return (i < 0)?-i:i;
}
+#endif
inline int
sign (int i) {
if (i<0) return -1;
diff --git a/lily/include/script-column.hh b/lily/include/script-column.hh
index e5b83984b7..335ed551fe 100644
--- a/lily/include/script-column.hh
+++ b/lily/include/script-column.hh
@@ -10,7 +10,7 @@
#ifndef SCRIPT_COLUMN_HH
#define SCRIPT_COLUMN_HH
-#include "elem-group-item.hh"
+#include "horizontal-vertical-group-item.hh"
/** a struct for treating a group of noteheads (noteheads, stem
(chord) and scripts) as a single entity. */
diff --git a/lily/include/slur.hh b/lily/include/slur.hh
index 07b9093f9c..8d2212b294 100644
--- a/lily/include/slur.hh
+++ b/lily/include/slur.hh
@@ -25,6 +25,7 @@ protected:
virtual void do_add_processing ();
virtual void do_pre_processing ();
virtual void do_substitute_dependency (Score_elem*, Score_elem*);
+ virtual Real height_f () const;
SCORE_ELEM_CLONE(Slur);
DECLARE_MY_RUNTIME_TYPEINFO;
diff --git a/lily/lookup.cc b/lily/lookup.cc
index a4dc393ec0..da4083afe6 100644
--- a/lily/lookup.cc
+++ b/lily/lookup.cc
@@ -164,7 +164,7 @@ Lookup::hairpin (Real &wid, bool decresc, bool continued) const
Atom ret;
if (embedded_b)
{
- Real height = 2 PT;
+ Real height = paper_l_->get_var ("barsize") / 6;
embed = "\\embeddedps{\n" ;
embed += String (wid) + " "
+ String (height) + " "
diff --git a/lily/slur.cc b/lily/slur.cc
index cc2471bec7..88b2c6cc33 100644
--- a/lily/slur.cc
+++ b/lily/slur.cc
@@ -23,8 +23,6 @@
#include "debug.hh"
#include "boxes.hh"
-
-
void
Slur::add (Note_column*n)
{
@@ -33,25 +31,25 @@ Slur::add (Note_column*n)
}
void
-Slur::set_default_dir()
+Slur::set_default_dir ()
{
dir_ = DOWN;
- for (int i=0; i < encompass_arr_.size(); i ++)
+ for (int i=0; i < encompass_arr_.size (); i ++)
{
if (encompass_arr_[i]->dir_ < 0)
{
- dir_ =UP;
+ dir_ = UP;
break;
}
}
}
void
-Slur::do_add_processing()
+Slur::do_add_processing ()
{
- set_bounds(LEFT, encompass_arr_[0]);
+ set_bounds (LEFT, encompass_arr_[0]);
if (encompass_arr_.size () > 1)
- set_bounds(RIGHT, encompass_arr_.top());
+ set_bounds (RIGHT, encompass_arr_.top ());
}
void
@@ -64,28 +62,27 @@ void
Slur::do_substitute_dependency (Score_elem*o, Score_elem*n)
{
int i;
- while ((i = encompass_arr_.find_i ((Note_column*)o->item())) >=0)
+ while ((i = encompass_arr_.find_i ((Note_column*)o->item ())) >=0)
{
if (n)
- encompass_arr_[i] = (Note_column*)n->item();
+ encompass_arr_[i] = (Note_column*)n->item ();
else
encompass_arr_.del (i);
}
}
-
static int
Note_column_compare (Note_column *const&n1 , Note_column* const&n2)
{
- return Item::left_right_compare(n1, n2);
+ return Item::left_right_compare (n1, n2);
}
void
-Slur::do_post_processing()
+Slur::do_post_processing ()
{
encompass_arr_.sort (Note_column_compare);
if (!dir_)
- set_default_dir();
+ set_default_dir ();
Real interline_f = paper ()->interline_f ();
Real inter_f = interline_f / 2;
@@ -106,10 +103,10 @@ Slur::do_post_processing()
Drul_array<Note_column*> extrema;
extrema[LEFT] = encompass_arr_[0];
- extrema[RIGHT] = encompass_arr_.top();
+ extrema[RIGHT] = encompass_arr_.top ();
Direction d=LEFT;
- Real nw_f = paper()->note_width ();
+ Real nw_f = paper ()->note_width ();
do
{
@@ -120,17 +117,60 @@ Slur::do_post_processing()
}
else if (extrema[d]->stem_l_ && !extrema[d]->stem_l_->transparent_b_)
{
- dy_f_drul_[d] = (int)rint (extrema[d]->stem_l_->height()[dir_]);
+ dy_f_drul_[d] = (int)rint (extrema[d]->stem_l_->height ()[dir_]);
/* normal slur from notehead centre to notehead centre, minus gap */
dx_f_drul_[d] += -d * gap_f;
}
else
{
- dy_f_drul_[d] = (int)rint (extrema[d]->head_positions_interval()[dir_])* inter_f;
+ dy_f_drul_[d] = (int)rint (extrema[d]->head_positions_interval ()[dir_])* inter_f;
}
dy_f_drul_[d] += dir_ * interline_f;
}
while ((d *= -1) != LEFT);
}
+Real
+Slur::height_f () const
+{
+ /*
+ rather braindead way that of adjusting slur height
+ for heads/stems that extend beyond default slur
+ works quite good
+ */
+
+ Real interline_f = paper ()->interline_f ();
+ Real nh_f = interline_f / 2;
+ Real h = 0;
+ Real dx = width ().length ();
+ Real dy = dy_f_drul_[RIGHT] - dy_f_drul_[LEFT];
+ Stem* stem = encompass_arr_[0]->stem_l_;
+ Real lx = stem->hpos_f ();
+ Real centre = (width ().min () + width ().max ()) / 2;
+ Real ly = stem->dir_ == dir_ ? stem->stem_end_f () : stem->stem_begin_f ()
+ + dir_ * nh_f / 2;
+ for (int i = 0; i < encompass_arr_.size (); i++)
+ {
+ Stem* stem = encompass_arr_[i]->stem_l_;
+ Real sx = abs (centre - stem->hpos_f ());
+ Real sy = stem->dir_ == dir_ ? stem->stem_end_f ()
+ : stem->stem_begin_f () + dir_ * nh_f / 2;
+ sy = dir_ * (sy - (ly + ((stem->hpos_f () - lx) / dx) * dy));
+ /*
+ uhm, correct for guess bezier curve (more if further from centre)
+ forget the cos alpha...
+ */
+ if (sy > 0)
+ h = h >? sy * (1 + 2 * sx / dx);
+ }
+ Real ratio = 1.0/3; // duh
+ /*
+ correct h for slur ratio
+ */
+ Real staffheight = paper ()->get_var ("barsize");
+ if (h)
+ h *= ((h * interline_f) / dx ) / ratio;
+ return h;
+}
+
IMPLEMENT_IS_TYPE_B1(Slur,Spanner);
diff --git a/lily/spring-spacer.cc b/lily/spring-spacer.cc
index 3439557f2c..94fd515d39 100644
--- a/lily/spring-spacer.cc
+++ b/lily/spring-spacer.cc
@@ -242,13 +242,14 @@ Spring_spacer::set_fixed_cols (Mixed_qp &qp) const
for (int j=0; j < cols.size(); j++)
if (cols[j].fixed())
qp.add_fixed_var (j,cols[j].fixed_position());
-}
+}
// put the constraints into the LP problem
void
Spring_spacer::make_constraints (Mixed_qp& lp) const
{
int dim=cols.size();
+ Real nw_f = paper_l ()->note_width ();
for (int j=0; j < dim; j++)
{
Colinfo c=cols[j];
@@ -258,8 +259,9 @@ Spring_spacer::make_constraints (Mixed_qp& lp) const
c1(j)=1.0 ;
c1(j-1)=-1.0 ;
- lp.add_inequality_cons (c1,
- cols[j-1].width_[RIGHT] - cols[j].width_[LEFT]);
+
+ lp.add_inequality_cons (c1, cols[j-1].width_[RIGHT]
+ - cols[j].width_[LEFT]);
}
}
}
@@ -399,7 +401,8 @@ Spring_spacer::connect (int i, int j, Real d, Real h)
assert(h >=0);
Idealspacing * s = new Idealspacing;
- s->left_i_ = i;
+
+ s->left_i_ = i ;
s->right_i_ = j;
s->space_f_ = d;
s->hooke_f_ = h;
@@ -509,6 +512,7 @@ Spring_spacer::calc_idealspacing()
get_ruling_durations(shortest_playing_arr, context_shortest_arr);
Real interline_f = paper_l ()->interline_f ();
+ Real nw_f = paper_l ()->note_width ();
Array<Real> ideal_arr_;
Array<Real> hooke_arr_;
@@ -630,6 +634,7 @@ Spring_spacer::calc_idealspacing()
+ interline_f / 2;
dist = dist >? minimum;
}
+
ideal_arr_[i] = dist;
}
}
diff --git a/lily/staff-performer.cc b/lily/staff-performer.cc
index 99eed10c50..6c813df4ae 100644
--- a/lily/staff-performer.cc
+++ b/lily/staff-performer.cc
@@ -59,7 +59,14 @@ Staff_performer::do_removal_processing()
String
Staff_performer::instrument_str()
{
+ // mustn't ask Score for instrument: it will return piano!
return get_property ("instrument");
+
+/* ugh, but can't
+ if (properties_dict_.elt_b ("instrument"))
+ return properties_dict_["instrument"];
+ return "";
+*/
}
void
diff --git a/lily/staff-side.cc b/lily/staff-side.cc
index 980990cf65..06690a0334 100644
--- a/lily/staff-side.cc
+++ b/lily/staff-side.cc
@@ -68,7 +68,8 @@ Staff_side::get_position_f() const
Real inter_f = paper()-> internote_f ();
Interval v= support_height();
- y = v[dir_] + 2*dir_*inter_f; // ugh
+// y = v[dir_] + 2*dir_*inter_f; // ugh
+ y = v[dir_]; // ugh
return y;
}
diff --git a/lily/tex-slur.cc b/lily/tex-slur.cc
index b0c67cf95b..51af06c230 100644
--- a/lily/tex-slur.cc
+++ b/lily/tex-slur.cc
@@ -133,12 +133,13 @@ Lookup::half_slur (int dy, Real &dx, Direction dir, int xpart) const
}
Atom
-Lookup::ps_slur (Real dy , Real dx, Real dir) const
+Lookup::ps_slur (Real dy , Real dx, Real ht, Real dir) const
{
String ps = "\\embeddedps{\n";
ps += String_convert::double_str (dx) + " "
+ String_convert::double_str (dy) + " "
+ + String_convert::double_str (ht) + " "
+ String_convert::double_str (dir) +
" draw_slur}";
@@ -279,7 +280,7 @@ Lookup::big_slur (int dy , Real &dx, Direction dir) const
Atom
-Lookup::slur (Real &dy_f , Real &dx, Direction dir) const
+Lookup::slur (Real &dy_f , Real &dx, Real ht, Direction dir) const
{
if (dx < 0)
{
@@ -289,7 +290,7 @@ Lookup::slur (Real &dy_f , Real &dx, Direction dir) const
Atom s;
if (postscript_global_b)
- s = ps_slur (dy_f, dx, dir);
+ s = ps_slur (dy_f, dx, ht, dir);
else
{
Real nh = paper_l_->internote_f ();
diff --git a/lily/translator-group.cc b/lily/translator-group.cc
index dfd31f8469..8918a48543 100644
--- a/lily/translator-group.cc
+++ b/lily/translator-group.cc
@@ -215,6 +215,8 @@ Translator_group::terminate_translator (Translator*r_l)
Translator *
Translator_group::remove_translator_p (Translator*trans_l)
{
+ assert (trans_l);
+
PCursor<Translator*> trans_cur (trans_p_list_.find (trans_l));
Translator * t = trans_cur.remove_p();
/*
diff --git a/make/Targets.make b/make/Targets.make
index 60dce8dcdd..f72367cab9 100644
--- a/make/Targets.make
+++ b/make/Targets.make
@@ -57,8 +57,11 @@ SHAREDLIBRARY=$(outdir)/$(LIB_PREFIX)$(NAME).so
$(SHAREDLIBRARY): $(build) $(OFILES) $(MODULE_LIBDEPS)
$(INCREASE_BUILD)
$(MAKE) $(OFILES) $(SILENT_LOG)
- $(LD_COMMAND) $(OFILES) -o $@
-# ln -sf $(outdir)/$(LIB_PREFIX)$(NAME).so.$(VERSION) $(outdir)/$(LIB_PREFIX)$(NAME).so
+ $(LD_COMMAND) $(OFILES) -o $@.$(VERSION)
+ rm -f $@
+ ln -sf $(outdir)/$(LIB_PREFIX)$(NAME).so.$(VERSION) $@.$(MAJOR_VERSION)
+ ln -sf $(LIB_PREFIX)$(NAME).so.$(VERSION) $@
+
#
lib: $(LIBRARY)
#
diff --git a/make/Toplevel.make.in b/make/Toplevel.make.in
index 8f72d5cb62..d000ef9013 100644
--- a/make/Toplevel.make.in
+++ b/make/Toplevel.make.in
@@ -59,8 +59,9 @@ INSTALL.txt: check-doc-deps check-mf-deps
# all machine generated junk resides in out/
distclean:
set -e; for i in `find -type d -name 'out'`; do \
- rm -f $$i/*; done
+ rm -f $$i/* $$i/.build; done
rm -rf *-build-dir
+ ( cd flower && rm -f config.cache config.status config.log )
rm -f Makefile config.cache config.status config.log
diff --git a/make/lelievijver.lsm b/make/lelievijver.lsm
index 5d89631bc9..e57f4746fd 100644
--- a/make/lelievijver.lsm
+++ b/make/lelievijver.lsm
@@ -1,7 +1,7 @@
Begin3
Titel: LilyPond
-Versie: 0.1.44
-Inschrijf datum: 06FEB98
+Versie: 0.1.45
+Inschrijf datum: 11FEB98
Beschrijving: LilyPond is de muziek typesetter van het GNU Project.
Het programma genereert muziek in zichtbare of
hoorbare vorm uit uit een muzikale definitie file:
@@ -16,8 +16,8 @@ Auteur: hanwen@stack.nl (Han-Wen Nienhuys)
jan@digicash.com (Jan Nieuwenhuizen)
Onderhouden door: hanwen@stack.nl (Han-Wen Nienhuys)
Voornaamste plek: sunsite.unc.edu /pub/Linux/apps
- 395k lilypond-0.1.44.tar.gz
+ 395k lilypond-0.1.45.tar.gz
Oorspronkelijke plek: pcnov095.win.tue.nl /pub/lilypond/
- 395k lilypond-0.1.44.tar.gz
+ 395k lilypond-0.1.45.tar.gz
Copi"eer politie: GPL
End
diff --git a/make/lilypond.lsm b/make/lilypond.lsm
index 1e5b6dd7c8..7e7a32bf7e 100644
--- a/make/lilypond.lsm
+++ b/make/lilypond.lsm
@@ -1,7 +1,7 @@
Begin3
Title: LilyPond
-Version: 0.1.44
-Entered-date: 06FEB98
+Version: 0.1.45
+Entered-date: 11FEB98
Description: LilyPond is the GNU Project music typesetter. The program
generates visual or auditive output from a music
definition file: it can typeset formatted sheet music
@@ -15,8 +15,8 @@ Author: hanwen@stack.nl (Han-Wen Nienhuys)
jan@digicash.com (Jan Nieuwenhuizen)
Maintained-by: hanwen@stack.nl (Han-Wen Nienhuys)
Primary-site: sunsite.unc.edu /pub/Linux/apps/sound/convert
- 470k lilypond-0.1.44.tar.gz
+ 470k lilypond-0.1.45.tar.gz
Original-site: pcnov095.win.tue.nl /pub/lilypond/development/
- 470k lilypond-0.1.44.tar.gz
+ 470k lilypond-0.1.45.tar.gz
Copying-policy: GPL
End
diff --git a/make/lilypond.spec b/make/lilypond.spec
index 61a40557f2..4d75d14848 100644
--- a/make/lilypond.spec
+++ b/make/lilypond.spec
@@ -1,9 +1,9 @@
Name: lilypond
-Version: 0.1.44
+Version: 0.1.45
Release: 1
Copyright: GPL
Group: Applications/Publishing
-Source0: alpha.gnu.org:/gnu/lilypond/development/lilypond-0.1.44.tar.gz
+Source0: alpha.gnu.org:/gnu/lilypond/development/lilypond-0.1.45.tar.gz
Summary: A program for typesetting music.
URL: http://www.stack.nl/~hanwen/lilypond
Packager: Han-Wen Nienhuys <hanwen@stack.nl>
@@ -18,6 +18,7 @@ to a TeX file and play (mechanical) performances to a
MIDI file. Features include multiple staffs, meters,
clefs, keys, lyrics, versatile input-language,
cadenzas, beams, slurs, triplets.
+It includes a nice font of musical symbols.
%prep
%setup
@@ -30,7 +31,7 @@ strip lily/out/lilypond mi2mu/out/mi2mu
make -C Documentation gifs
make prefix="$RPM_BUILD_ROOT/usr" install
%files
-%doc Documentation/out/ANNOUNCE.txt Documentation/out/AUTHORS.txt Documentation/out/CodingStyle.txt Documentation/out/DEDICATION.txt Documentation/out/INSTALL.txt Documentation/out/MANIFESTO.txt Documentation/out/NEWS.txt Documentation/out/TODO.txt Documentation/out/cadenza.ly.txt Documentation/out/collisions.ly.txt Documentation/out/convert-mudela.txt Documentation/out/faq.txt Documentation/out/font16.ly.txt Documentation/out/font20.ly.txt Documentation/out/gallina.ly.txt Documentation/out/gnu-music.txt Documentation/out/index.txt Documentation/out/internals.txt Documentation/out/language.txt Documentation/out/lilypond.txt Documentation/out/links.txt Documentation/out/literature.txt Documentation/out/ly2dvi.txt Documentation/out/mi2mu.txt Documentation/out/mudela-book.txt Documentation/out/multi.ly.txt Documentation/out/mutopia.txt Documentation/out/other-packages.txt Documentation/out/preludes-1.ly.txt Documentation/out/preludes-2.ly.txt Documentation/out/rhythm.ly.txt Documentation/out/scsii-menuetto.ly.txt Documentation/out/standje.ly.txt Documentation/out/toccata-fuga-E.ly.txt Documentation/out/twinkle-pop.ly.txt Documentation/out/twinkle.ly.txt Documentation/out/wtk1-fugue2.ly.txt Documentation/out/wtk1-prelude1.ly.txt BUGS TODO NEWS DEDICATION ANNOUNCE README
+%doc Documentation/out/AUTHORS.txt Documentation/out/CodingStyle.txt Documentation/out/INSTALL.txt Documentation/out/MANIFESTO.txt Documentation/out/convert-mudela.txt Documentation/out/faq.txt Documentation/out/gnu-music.txt Documentation/out/index.txt Documentation/out/internals.txt Documentation/out/language.txt Documentation/out/lilypond.txt Documentation/out/links.txt Documentation/out/literature.txt Documentation/out/ly2dvi.txt Documentation/out/mi2mu.txt Documentation/out/mudela-book.txt Documentation/out/mutopia.txt Documentation/out/other-packages.txt BUGS TODO NEWS DEDICATION ANNOUNCE README
%doc input/beams.ly input/cadenza.ly input/collisions.ly input/coriolan-alto.ly input/denneboom.ly input/font-body.ly input/font.ly input/font11.ly input/font13.ly input/font16.ly input/font20.ly input/font26.ly input/gourlay.ly input/keys.ly input/kortjakje.ly input/multi.ly input/pedal.ly input/rhythm.ly input/scales.ly input/scripts.ly input/sleur.ly input/slurs.ly input/spacing.ly input/stem.ly input/toccata-fuga-E.ly input/twinkle-pop.ly input/twinkle.ly Documentation/mudela-course.doc Documentation/mudela-man.doc
%doc Documentation/out/lelie_logo.gif
/usr/bin/convert-mudela
diff --git a/make/lilypond.spec.in b/make/lilypond.spec.in
index 799b8758b8..1597e7794c 100644
--- a/make/lilypond.spec.in
+++ b/make/lilypond.spec.in
@@ -18,6 +18,7 @@ to a TeX file and play (mechanical) performances to a
MIDI file. Features include multiple staffs, meters,
clefs, keys, lyrics, versatile input-language,
cadenzas, beams, slurs, triplets.
+It includes a nice font of musical symbols.
%prep
%setup
diff --git a/mf/Makefile b/mf/Makefile
index b4d3a3e711..00b46f2f99 100644
--- a/mf/Makefile
+++ b/mf/Makefile
@@ -41,8 +41,8 @@ $(outdir)/%.log: %.mf
mv $(@F) $@
rm $(basename $< ).*gf
-$(lyout)/%.ly $(texout)/%.tex: $(outdir)/%.mf
- $(PYTHON) $(depth)/bin/mf-to-table.py --ly $(lyout)/$(<F:.mf=.ly) --tex $(texout)/$(<F:.mf=.tex) $<
+$(lyout)/%.ly $(texout)/%.tex: $(outdir)/%.log
+ $(PYTHON) $(depth)/bin/mf-to-table.py --ly $(lyout)/$(<F:.log=.ly) --tex $(texout)/$(<F:.log=.tex) $<
localinstall:
$(INSTALL) -d $(MFDIR)/public/lilypond
diff --git a/mutopia/J.S.Bach/preludes-1.ly b/mutopia/J.S.Bach/preludes-1.ly
index 1fd3aad026..c627ea5c5d 100644
--- a/mutopia/J.S.Bach/preludes-1.ly
+++ b/mutopia/J.S.Bach/preludes-1.ly
@@ -1,11 +1,14 @@
\header{
filename = "preludes-1.ly";
-title = "1";
+title = "DOUZE P\'ETITES PRELUDES";
+% tempo = "Moderato"
composer = "Johann Sebastian Bach (1685-1750)";
enteredby = "jcn";
copyright = "public domain";
}
+\include "paper20.ly"
+
rh = \melodic{
\octave c'';
\textstyle "italic";
@@ -66,8 +69,8 @@ lh = \melodic{
c4-5 e-3 [g32-1 fis-2 g8.-1] 'g4 |
d-5 f-3 [a32-1 gis a8.] 'a4 |
% ugh grouping32: 4..4
- e-5 e'-1 a-4 [e32-3 b c' b] [c' b a b] |
- c'4 e-4 fis [a32-1 gis fis gis] [ ais gis fis gis] |
+ e-5 e'-1 a-4 [a32-3 b c' b] [c' b a b] |
+ c'4 e-4 fis [a32-1 gis fis gis] [a gis fis gis] |
a4 c-4 d [d32 e f e] [f e d e] |
% ugh tril sign
% f4-1 e d-3\tr c |
@@ -106,6 +109,8 @@ global = \melodic{
>
>
\paper{
+ \paper_twenty
+ linewidth= 195.\mm;
}
\midi{
\tempo 4 = 70;
diff --git a/mutopia/J.S.Bach/preludes-2.ly b/mutopia/J.S.Bach/preludes-2.ly
index 98c4b5936b..e0e1f57595 100644
--- a/mutopia/J.S.Bach/preludes-2.ly
+++ b/mutopia/J.S.Bach/preludes-2.ly
@@ -6,6 +6,8 @@ enteredby = "jcn";
copyright = "public domain";
}
+\include "paper20.ly"
+
rh = \melodic{
\octave c'';
\textstyle "italic";
@@ -53,7 +55,7 @@ rh = \melodic{
g4-5\ff
\multi 2 <
{ \stemup; c2-5 'b4-4 }
- { \stemdown; 'g2 'd4 }
+ { \stemdown; 'g2-2 'd4-1 }
>
\stemboth;
\multi 2 <
@@ -72,7 +74,7 @@ lh = \melodic{
{ \stemdown; 'c1 ~ 'c ~ 'c }
>
\stemboth; |
- r8 [c-5( e-3 f-1] [e-3 c-5 c' e-4] |
+ r8 [c-5( e-3 g-1] [e-3 c-5 c' e-4] |
[)fis-3 d-5( fis-3 a-1] [fis-3 d-5 d' fis-4] |
)g2-3 r4 g-2( |
[)a8 'a-5( c-4 e-2] [c-4 'a-5 g e-3] |
@@ -111,8 +113,10 @@ global = \melodic{
>
>
\paper{
+ \paper_twenty
+ linewidth= 195.\mm;
}
\midi{
- \tempo 4 = 110;
+ \tempo 4 = 90;
}
}
diff --git a/mutopia/J.S.Bach/preludes-3.ly.m4 b/mutopia/J.S.Bach/preludes-3.ly.m4
index 3b99653102..0a85331b05 100644
--- a/mutopia/J.S.Bach/preludes-3.ly.m4
+++ b/mutopia/J.S.Bach/preludes-3.ly.m4
@@ -6,6 +6,8 @@ enteredby = "jcn";
copyright = "public domain";
}
+\include "paper20.ly"
+
define(comma, r16 [$1$4 $2 $3] [$2 $1 $2 $6$1] r $1$7 r $5$1 |)
define(s, `comma(translit($*,` ', `,'))')
define(t, r16 [$1$4 $2 $3] [$2 $1 $2 $6$1] r $1$7 r $5$1 |)
@@ -35,20 +37,25 @@ rh = \melodic{
s('a c fis)
s('a c fis)
s('bes d g)
+
+
s(c fis a -"poco\\_a\\_poco\\_cresc.")
s(d g bes)
s(d fis c')
+
s(cis g bes)
s(c es a !-"dim.")
s('bes e g)
s('a c g)
+
s('a c fis)
s('g 'bes e)
- s('fis a es)
+ s('fis 'a es)
+
s('g 'bes d -"dim.")
s('g 'a c)
- s('fis a c)
- s('fis a c)
+ s('fis 'a c)
+ s('fis 'a c)
r16\p ['g 'a c] ['b 'g 'b 'g] r 'g r 'g
s('a c fis -"poco\\_cresc.")
s(c fis a)
@@ -95,8 +102,9 @@ lh = \melodic{
'd4 r [d8 'a] |
'd4 r [d8 'bes] |
+
'd4 r [es8 c] |
- 'd4 r [es8 d] |
+ 'd4 r [g8 d] |
'd4 r [a8 fis] |
'd4 r [g8 es] |
@@ -108,7 +116,7 @@ lh = \melodic{
'd4 r [cis8 'bes] |
'd4 r [c!8 'a] |
- 'd4 r ['bes8 g] |
+ 'd4 r ['bes8 'g] |
'd4 r [es8 c] |
'd4 r [d8 c] |
@@ -124,7 +132,7 @@ lh = \melodic{
'g4 r [es8 c] |
'g4 r [es8 c] |
'g4 r r |
- 'g2.-\fermata
+ 'g2._\fermata
\bar "|.";
}
@@ -146,6 +154,8 @@ global = \melodic{
>
>
\paper{
+ \paper_twenty
+ linewidth= 195.\mm;
}
\midi{
\tempo 4 = 90;
diff --git a/mutopia/J.S.Bach/preludes-4.ly b/mutopia/J.S.Bach/preludes-4.ly
index 2d28e33f2a..6086842e71 100644
--- a/mutopia/J.S.Bach/preludes-4.ly
+++ b/mutopia/J.S.Bach/preludes-4.ly
@@ -6,46 +6,95 @@ enteredby = "jcn";
copyright = "public domain";
}
-rh = \melodic{
+\include "paper20.ly"
+
+one = \melodic{
\octave c'';
\textstyle "italic";
- % ugh, start in multi, because of slurring an tieing over bars
- \multi 2 <
- {
- r16\p_"legato"
- ['d-1( 'fis-3 'd-1] ['a-2 'b-3 cis-4 'a-3]
- [d-3 cis-2 d-1 e-2] [d-1 fis-3 e-2 d-1] |
- \textstyle "finger";
- \stemup;
- )cis4-2 fis-5 ~ [fis8 fis-4] e4-3 ~ |
- e( )d8-2 s s4 s4 |
- r8 d4-> cis8-1 ~ cis 'b4-1 'b8 |
- }
- {
-% s1
- \stemdown;
- r8 'a4 'a8 'b4.-"2\\_1" cis8 ~ |
- cis16\< ['a( cis 'a] [d-2 e fis d-1]
- [g-3 fis g a-4] [a-3 b a \!g] |
- )fis4-"2\\_3" [e8-2 a-5] <fis4-4 d-2> <gis-5 e-3> |
- }
- >
- \stemboth;
+ r16\p_"legato"
+ \textstyle "finger";
+ ['d-1( 'fis-3 'd-1] ['a-2 'b-3 cis-4 'a-3]
+ [d-3 cis-2 d-1 e-2] [d-1 fis-3 e-2 d-1] |
+ \textstyle "finger";
+ \stemup;
+ )cis4-2 fis-5 ~ [fis8 fis-4] e4-3 ~ |
+ e16\< \stemboth ['a16( cis 'a] [d-2 e fis d-1]
+ [g-3 fis g a-4] [a-3 b a \!g] |
+ \stemup
+ )fis4-"2\\_3" [e8-2 a-5] <fis4-4 d-2> <gis-5 e-3> |
+ <a4-5( e> <fis-4 d-2> <[)g!16-5 d> fis-2 g-3 a-4]
+ \stemboth
+ [g-3 b a g] |
+ \textstyle "italic";
+ [fis_"dim." e fis-3 g] [fis-3 a-5 g fis]
+ \textstyle "finger";
+ e4-"2\\_5" ~ e16 ['e( 'fis 'g ] |
+ \textstyle "italic";
+ ['a-4_"dim." 'g-1 'a 'b] ['a-2 c-4 'b 'a]
+ ['g-1 'fis-2 'g-3 'a] ['g-3 'b 'a 'g] |
+ \stemup
+ )'fis4\p r16 [''b-1\< d-2 ''b~] <'g4-5 'e-3 ''b>
+ r16 ['cis-1 'e-2 \!cis] | % cis wants ~
+
+}
+
+two = \melodic{
+ \textstyle "finger";
+% ugh: koor
+% \translator Staff=bass \octave c; \stemup
+ fis4-1( e8-2 a4 a4 gis8-2 |
+ ) a8
+ \translator Staff=treble \octave c''; \stemdown
+ 'a4 'a8 'b4.-"2\\_1" cis8 ~ |
+ cis8
+ \translator Staff=bass \octave c; \stemup
+ a8 ~ [a d'] ~ d' d'4-> c'8 |
+ d'8
+ \translator Staff=treble \octave c''; \stemdown
+ d4-> cis8-1 ~ cis 'b4-1 'b8 |
+ r8 'a4 'a8
+ \translator Staff=bass \octave c; \stemup
+ [g'8-1( fis'-2] )e'4-1 ~ |
+ e'4 d' ~ [d'16 d-1 cis'-2 g-1] cis'4-2 ~ |
+ [c'8 a-3] d'4.-1 d'4-> cis'8-2 |
+ \translator Staff=treble \octave c''; \stemdown
+ 'd4 \skip 4*3; |
+}
+
+three = \melodic{
+ \octave c;
+ \stemdown;
+ d4-3 c-4 'b e-3 |
+ a16 ['a-5\mf( c-3 'a-5] [d-2 e-1 fis-2 d-4]
+ [g-1 fis-3 g a] [g b a g] |
+ )fis4 fis e a-4 |
+ d'16 \stemboth [d-5\f( fis-3 d-5] [a-2 b-1 c'-2 a-4]
+ [d'-1 c'-3 d' e'] [d'-4 fis'-2 e'-1 ) d'] |
+ [cis'-3 b-4 cis'-3 d'-2] [c'-4 e'-2 d'-3 c'-4]
+ \stemdown b4-5 [cis'8-4 b-3(] |
+ [a-4 )fis-5 b-2 a-3] [gis-4 e-5 a-3 g-4] |
+ fis4. d8-5 e4-5 a4-3 |
+ \stemboth
+ r16 [d-4( fis-2 d-4] [)g8-.-1 'g-.-5]
+ r16 [e-4( g-2 e-4] [)a8-. 'a-.-5] |
+}
+
+rh = \melodic{
+ \one
\bar "|.";
}
+
lh = \melodic{
- \octave c;
- \clef bass;
- s1 | s1 | s1 | s1
-% \multi 2 <
-% { \stemup; }
-% { \stemdown; }
-% >
-% \stemboth; |
+ \clef "bass";
+ \multi 2 <
+ \two
+ \three
+ >
\bar "|.";
}
+
global = \melodic{
\meter 4/4;
\key fis cis;
@@ -55,16 +104,24 @@ global = \melodic{
% Allegretto
% it would be nice to shut-off fingering...
\melodic \type Grandstaff <
- <
+ \type Staff=treble <
\global
- \rh
+% huh? try these iso directly!
+ \lh
+% \one
+% \two
>
- <
+ \type Staff=bass <
\global
- \lh
+ \rh
+% or try \two having here, iso above!
+% \two
+% \three
>
>
\paper{
+ \paper_twenty
+ linewidth= 195.\mm;
}
\midi{
\tempo 4 = 110;
diff --git a/mutopia/J.S.Bach/preludes.tex b/mutopia/J.S.Bach/preludes.tex
new file mode 100644
index 0000000000..39d19a95be
--- /dev/null
+++ b/mutopia/J.S.Bach/preludes.tex
@@ -0,0 +1,50 @@
+\documentclass{article} %UGH
+\usepackage{a4}
+
+\advance\oddsidemargin-30mm
+\evensidemargin\oddsidemargin
+% ugh, centre
+\advance\textwidth60mm
+\hsize210mm
+\vsize269mm
+\advance\topmargin-25mm
+\advance\textheight45mm
+\pagestyle{empty}
+
+\input titledefs
+
+\input lilyponddefs
+\def\interscoreline{\vskip2mm}
+%ugh
+\staffheight=20pt
+
+\font\numfont=feta-nummer10 scaled \magstep2
+\def\piece#1#2#3{%
+% \hbox to0pt{\vbox to\staffheight{\vss}}
+% \nopagebreak
+ \vbox to 0pt{\large\bf#3\vss}
+ \nopagebreak
+ \vbox to0pt{\vbox to4.5\staffheight{\vss\numfont#1}\vss}
+ \nopagebreak
+ \input#2%
+}
+
+\begin{document}
+
+\title{DOUZE PETITS PR\'ELUDES\\
+ TWAALF KLEINE PRELUDI\"EN}
+\composer{J.S.\ Bach (1685-1750)}
+
+\makelilytitle
+\kern-\staffheight
+
+\piece{1}{preludes-1}{Moderato}
+\vskip2\staffheight
+\piece{2}{preludes-2}{Moderato}
+\newpage
+\piece{3}{preludes-3}{Semplice e non troppo legato}
+\newpage
+\piece{4}{preludes-4}{Allegretto}
+
+\end{document}
+
diff --git a/mutopia/standchen-20.tex b/mutopia/standchen-20.tex
index d295d2f834..ed2f7e9bc5 100644
--- a/mutopia/standchen-20.tex
+++ b/mutopia/standchen-20.tex
@@ -5,7 +5,8 @@
% UGH UGH
\advance\oddsidemargin-30mm
\evensidemargin\oddsidemargin
-\advance\textwidth30mm
+% ugh, centre
+\advance\textwidth60mm
\addtolength{\textheight}{20mm}
\pagestyle{empty}
\begin{document}
diff --git a/mutopia/standje.ly b/mutopia/standje.ly
index 4ac80c2032..ce1681d9cd 100644
--- a/mutopia/standje.ly
+++ b/mutopia/standje.ly
@@ -47,7 +47,7 @@ $vocal_verse1 = \melodic{
% [a3 2\grace b] )
[2/3 a!8( ) gis] a \] c'4. a8 |
g!2. |
- [2/3 d'8\f cis'] d \] f'4. b8 |
+ [2/3 d'8\f cis'] d' \] f'4. b8 |
c'!2. |
}
@@ -112,6 +112,8 @@ $lyric_verse2 = \lyric{
Sil-8. ber-16 t\"o-4. nen8
\[2/3 Jed-4 es8 \] wei-4. che8
Herz.2.
+ \[2/3 Jed-4 es8 \] wei-4. che8
+ Herz.2.
}
$lyric_through1 = \lyric{
@@ -175,7 +177,7 @@ $treble_eentje = \melodic{
<e4. g> <[e8-. g-.(> <e-. g-.> <e-. )g-.]> |
<f4. g> <['b8-. g-.(> <d-. g-.> <f-. )g-.]> |
<e2 g\pp> <e4 g> |
- <f2\mf a(> <[as8.( c'> <)f16 )a]> |
+ <f2\mf a(> <[a8.( c'> <)f16 )a]> |
<e4. g> <[e8-. g-.(> <e-. g-.> <e-. )g-.]> |
<f4. g> <['b8-. g-.(> <d-. g-.> <f-. )g-.]> |
<e2. g> |
@@ -236,23 +238,23 @@ global= \melodic {\meter 3 /4; \key bes es as; }
\score{
\melodic<
- \type Lyrics {
- \meter 3 /4;
- \skip 4 * 12;
- \$lyric_verse1
- \skip 4 * 24;
- \$lyric_verse2
- }
\type Staff { <
\global
{
+ \property Staff.instrument = "alto sax"
\skip 4 * 12;
\$vocal_verse1
\skip 4 * 24;
\$vocal_verse1
}
> }
-
+ \type Lyrics {
+ \meter 3 /4;
+ \skip 4 * 12;
+ \$lyric_verse1
+ \skip 4 * 24;
+ \$lyric_verse2
+ }
\type Grandstaff <
<
\global
diff --git a/tex/lily-ps-defs.tex b/tex/lily-ps-defs.tex
index f93da7cfd2..cab0aaa82c 100644
--- a/tex/lily-ps-defs.tex
+++ b/tex/lily-ps-defs.tex
@@ -82,6 +82,7 @@ def
bind def
/draw_cresc
{
+ staffrulethickness setlinewidth
/cresc_cont exch def
/cresc_ht exch def
/cresc_wd exch def
@@ -118,14 +119,14 @@ def
stroke
}
bind def
- staffheight 2 div
- /slurhtlimit exch def
+ staffheight 2 div /slurhtlimit exch def
/slurratio 0.3333 def
%
% (b*ratio)/(1 + b / htlimit)
/getslurcontrol
{
- slurhtlimit 90 div /slur_alpha exch def
+ slurhtlimit add /slurheight exch def
+ slurheight 90 div /slur_alpha exch def
slurratio 60 div slur_alpha div /slur_beta exch def
slur_beta mul 1 atan slur_alpha mul
} bind def
@@ -135,12 +136,13 @@ def
staffrulethickness setlinewidth
0 0 moveto
/slur_dir exch def
+ /slur_height exch def
/slur_dy exch def
/slur_dx exch def
slur_dy slur_dx lily_distance /slur_b exch def
- slur_b getslurcontrol
+ slur_b slur_height getslurcontrol
slur_dir mul /slur_ht exch def
- slur_b getslurcontrol /slur_indent exch def
+ slur_b slur_height getslurcontrol /slur_indent exch def
%
slur_dy slur_dx atan rotate
slur_indent slur_ht