diff options
author | Han-Wen Nienhuys <hanwen@xs4all.nl> | 1998-02-11 11:57:43 +0100 |
---|---|---|
committer | Han-Wen Nienhuys <hanwen@xs4all.nl> | 1998-02-11 11:57:43 +0100 |
commit | 283141cb7571b32a55a560265898920e03506b31 (patch) | |
tree | 338974ec42ac7725736a927bd6ed0e22806cb618 | |
parent | 56d6d541266c300b10a6e1b6c026a7682ad12b61 (diff) |
release: 0.1.45
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 @@ -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) @@ -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) @@ -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 |