From 4eb6f42fc6ca20d65c788a73eb78dfcc22ea0453 Mon Sep 17 00:00:00 2001 From: Han-Wen Nienhuys Date: Sun, 1 Apr 2001 15:26:59 +0200 Subject: [PATCH] release: 1.3.145 ============ * Build fixes for icon, this fixes 'rpm' target. Tried to reinclude in rpm using (.png and) .xpm, but latest LinuxPPC release's rpm (3.0.6) Icon: tag handling is broken. * Fixes for update-lily script. * Bugfixes: refman, changed Ascii to ASCII. * Fixed ascii art output. Started some doco on different output formats. * Fixed scheme font lookup to handle new font lists with wildcards. * Fixes to point-and-click doco (Thanks, Laura Conrad). * Bugfixes: changed several (eval to (ly-eval for guile 1.4/1.4.x compatibility. * Fixes to buildscripts/clean-fonts.sh. 1.3.144.h --- CHANGES | 91 ++-- Documentation/GNUmakefile | 2 +- Documentation/misc/index.texi | 24 - Documentation/ntweb/GNUmakefile | 21 - Documentation/ntweb/angels.ly | 109 ----- .../ntweb/guile-1.4-gnu-windows.patch | 85 ---- Documentation/ntweb/index.texi | 245 ---------- Documentation/ntweb/lilypond-manpages.patch | 453 ------------------ Documentation/pictures/out/lilypond-icon.xpm | 141 ++++++ Documentation/regression-test.tely | 4 +- Documentation/topdocs/FAQ.texi | 19 - Documentation/topdocs/INSTALL.texi | 377 +++++---------- Documentation/topdocs/README.texi | 49 +- Documentation/topdocs/index.tely | 15 +- Documentation/user/glossary.tely | 429 +++++++++-------- Documentation/user/refman.itely | 172 ++++--- Documentation/user/tutorial.itely | 15 - FAQ.txt | 16 - INSTALL.txt | 366 +++++--------- README.txt | 44 +- VERSION | 4 +- aclocal.m4 | 31 +- configure | 265 +++++----- configure.in | 7 +- flower/dstream.cc | 209 -------- flower/file-path.cc | 6 +- flower/flower-debug.cc | 6 - flower/include/dstream.hh | 69 --- flower/include/flower-debug.hh | 26 - flower/include/interval.hh | 2 +- flower/include/interval.tcc | 8 - input/GNUmakefile | 2 +- input/ascii-art/asciscript5.ly | 0 input/bugs/crescendo-squash.ly | 9 - input/bugs/dynamic-collide.ly | 157 ------ input/bugs/dynamic-switch.ly | 1 + input/bugs/mb.ly | 38 -- input/bugs/minimal.ly | 12 - input/bugs/multiply.ly | 6 + input/bugs/pc-core.ly | 95 ---- input/bugs/pc-direction.ly | 3 + input/bugs/repeat.ly | 2 +- input/bugs/sbug.ly | 8 + input/bugs/script-dir.ly | 5 - input/bugs/script.ly | 8 - input/bugs/st.ly | 2 - input/bugs/stem-through-beam.ly | 80 ---- input/bugs/triplet.ly | 30 -- input/les-nereides.ly | 2 +- input/regression/dynamics-unbound-hairpin.ly | 11 + input/regression/key-signature-scordatura.ly | 15 + input/{tricks => test}/add-text-script.ly | 0 input/{tricks => test}/beam-count.ly | 0 input/{tricks => test}/beam-dir-function.ly | 0 .../beam-neutral-direction.ly | 0 input/{tricks => test}/beam-position.ly | 0 input/{tricks => test}/beam-rest.ly | 0 input/test/beam-slope.ly | 17 +- input/{tricks => test}/boxed-molecule.ly | 0 input/{tricks => test}/crescendo-text.ly | 0 input/{tricks => test}/drarn-slurs.ly | 0 input/{tricks => test}/drums.ly | 0 input/{tricks => test}/embedded-postscript.ly | 0 input/{tricks => test}/embedded-tex.ly | 0 input/test/fill-a4.ly | 2 +- input/{tricks => test}/follow-thread.ly | 0 input/{tricks => test}/improv.ly | 0 input/{tricks => test}/metronome.ly | 0 input/{tricks => test}/mmrest-collision.ly | 0 input/{tricks => test}/move-notehead.ly | 0 input/{tricks => test}/move-specific-text.ly | 0 input/{tricks => test}/no-bar-lines.ly | 0 input/{tricks => test}/no-staff.ly | 0 input/{tricks => test}/ottava.ly | 0 input/{tricks => test}/part-combine.ly | 0 input/{tricks => test}/partial-blank.ly | 0 input/{tricks => test}/reverse-music.ly | 0 .../slur-attachment-override.ly | 0 input/{tricks => test}/slur-attachment.ly | 0 input/{tricks => test}/slur-ugly.ly | 0 input/{tricks => test}/smart-transpose.ly | 0 input/{tricks => test}/staff-container.ly | 0 input/test/two-key.ly | 13 + input/test/vertical-extent.ly | 13 +- input/tricks/GNUmakefile | 6 - input/tricks/beam-slope.ly | 14 - input/trip.ly | 2 + input/tutorial/ly2dvi.ly | 0 lily/all-font-metrics.cc | 7 +- lily/axis-group-engraver.cc | 6 +- lily/bezier.cc | 2 +- lily/clef-engraver.cc | 20 +- lily/command-request.cc | 29 +- lily/custos-engraver.cc | 8 +- lily/debug.cc | 53 -- lily/dynamic-engraver.cc | 24 +- lily/hyphen-spanner.cc | 6 +- lily/include/command-request.hh | 3 +- lily/include/debug.hh | 3 +- lily/include/key-item.hh | 2 +- lily/key-engraver.cc | 14 +- lily/key-item.cc | 105 ++-- lily/lexer.ll | 18 +- lily/local-key-engraver.cc | 5 +- lily/main.cc | 1 - lily/multi-measure-rest-engraver.cc | 33 +- lily/my-lily-parser.cc | 2 +- lily/note-heads-engraver.cc | 23 +- lily/parser.yy | 49 +- lily/slur-bezier-bow.cc | 5 - lily/tie.cc | 25 +- ly/declarations-as.ly | 0 ly/engraver.ly | 28 +- ly/init-as.ly | 0 make/ly.make | 3 +- make/out/lilypond.lsm | 8 +- make/out/lilypond.spec | 21 +- scm/grob-description.scm | 7 +- scm/translator-description.scm | 14 +- scm/translator-property-description.scm | 32 +- scripts/convert-ly.py | 23 +- scripts/update-lily.py | 8 +- stepmake/aclocal.m4 | 29 +- 123 files changed, 1317 insertions(+), 3162 deletions(-) delete mode 100644 Documentation/misc/index.texi delete mode 100644 Documentation/ntweb/GNUmakefile delete mode 100644 Documentation/ntweb/angels.ly delete mode 100644 Documentation/ntweb/guile-1.4-gnu-windows.patch delete mode 100644 Documentation/ntweb/index.texi delete mode 100644 Documentation/ntweb/lilypond-manpages.patch create mode 100644 Documentation/pictures/out/lilypond-icon.xpm delete mode 100644 flower/dstream.cc delete mode 100644 flower/flower-debug.cc delete mode 100644 flower/include/dstream.hh delete mode 100644 flower/include/flower-debug.hh delete mode 100644 input/ascii-art/asciscript5.ly delete mode 100644 input/bugs/crescendo-squash.ly delete mode 100644 input/bugs/mb.ly delete mode 100644 input/bugs/pc-core.ly create mode 100644 input/bugs/sbug.ly delete mode 100644 input/bugs/st.ly delete mode 100644 input/bugs/stem-through-beam.ly delete mode 100644 input/bugs/triplet.ly create mode 100644 input/regression/dynamics-unbound-hairpin.ly create mode 100644 input/regression/key-signature-scordatura.ly rename input/{tricks => test}/add-text-script.ly (100%) rename input/{tricks => test}/beam-count.ly (100%) rename input/{tricks => test}/beam-dir-function.ly (100%) rename input/{tricks => test}/beam-neutral-direction.ly (100%) rename input/{tricks => test}/beam-position.ly (100%) rename input/{tricks => test}/beam-rest.ly (100%) rename input/{tricks => test}/boxed-molecule.ly (100%) rename input/{tricks => test}/crescendo-text.ly (100%) rename input/{tricks => test}/drarn-slurs.ly (100%) rename input/{tricks => test}/drums.ly (100%) rename input/{tricks => test}/embedded-postscript.ly (100%) rename input/{tricks => test}/embedded-tex.ly (100%) rename input/{tricks => test}/follow-thread.ly (100%) rename input/{tricks => test}/improv.ly (100%) rename input/{tricks => test}/metronome.ly (100%) rename input/{tricks => test}/mmrest-collision.ly (100%) rename input/{tricks => test}/move-notehead.ly (100%) rename input/{tricks => test}/move-specific-text.ly (100%) rename input/{tricks => test}/no-bar-lines.ly (100%) rename input/{tricks => test}/no-staff.ly (100%) rename input/{tricks => test}/ottava.ly (100%) rename input/{tricks => test}/part-combine.ly (100%) rename input/{tricks => test}/partial-blank.ly (100%) rename input/{tricks => test}/reverse-music.ly (100%) rename input/{tricks => test}/slur-attachment-override.ly (100%) rename input/{tricks => test}/slur-attachment.ly (100%) rename input/{tricks => test}/slur-ugly.ly (100%) rename input/{tricks => test}/smart-transpose.ly (100%) rename input/{tricks => test}/staff-container.ly (100%) create mode 100644 input/test/two-key.ly delete mode 100644 input/tricks/GNUmakefile delete mode 100644 input/tricks/beam-slope.ly delete mode 100644 input/tutorial/ly2dvi.ly delete mode 100644 lily/debug.cc delete mode 100644 ly/declarations-as.ly delete mode 100644 ly/init-as.ly diff --git a/CHANGES b/CHANGES index ea7da30601..9d10d4a5a6 100644 --- a/CHANGES +++ b/CHANGES @@ -1,6 +1,3 @@ ---- ../lilypond-1.3.144.jcn3/CHANGES Thu Mar 29 15:57:17 2001 -++ b/CHANGES Fri Mar 30 12:30:41 2001 -@@ -1,3 +1,12 @@ 1.3.144.jcn4 ============ @@ -10,46 +7,84 @@ in rpm using (.png and) .xpm, but latest LinuxPPC release's rpm * Fixes for update-lily script. - 1.3.144.jcn3 - ============ - --- ../lilypond-1.3.144/CHANGES Wed Mar 28 01:27:11 2001 -++ b/CHANGES Thu Mar 29 21:17:09 2001 -@@ -1,3 +1,8 @@ -1.3.144.mb1 -============ +* Bugfixes: refman, changed Ascii to ASCII. -* Fix ps specials to work together with \usepackage[french]{babel} +* Fixed ascii art output. Started some doco on different output formats. - 1.3.143.jcn3 - ============ - 1.3.144.jcn3 -============ +* Fixed scheme font lookup to handle new font lists with wildcards. -* Bugfixes: refman, changed Ascii to ASCII. +* Fixes to point-and-click doco (Thanks, Laura Conrad). + +* Bugfixes: changed several (eval to (ly-eval for guile 1.4/1.4.x +compatibility. + +* Fixes to buildscripts/clean-fonts.sh. -1.3.144.jcn2 +1.3.144.hwn1 ============ -* Fixed ascii art output. Started some doco on different output formats. +* Tutorial updates -* Fixed scheme font lookup to handle new font lists with wildcards. +* Change interaction between clef-engraver and positioned items: do +not use acknowledge/announce () to get position relative to c0, but +use centralCPosition directly after grob creation. -* Bugfix: all-font-metrics.cc: don't assume that from each afm there's a tfm; -only try to find/make tfm when producing tex output. +Side-effect: Pitch_squash_engraver now puts notes on position in +staff, not on specific pitch. -1.3.144.jcn1 -============ +* Bugfixes: yet more create_grobs () -> process_music() reverts. -* Fixes to point-and-click doco (Thanks, Laura Conrad). +* Tutorial updates -* Bugfixes: changed several (eval to (ly-eval for guile 1.3.4/1.4 -compatibility. +* Don't give unbound spanner warnings for isolated dynamics on space +rests. -* Fixes to buildscripts/clean-fonts.sh. +* cleaned up debug stuff. + +* cleaned up INSTALL document. -1.3.143.jcn3 +* Key_change_req::do_equal_b(), keychange merge. + +* per octave key signatures. See +input/regression/key-signature-scordatura.ly + +* moved tricks/ directory into test/. + +* Rename {Staff,Lyrics,etc}VerticalExtent and friends into +VerticalExtent. Use predefined props to prevent inheritance. + +* Multi_measure_rest_engraver now uses whichBar property to detect +barlines. Hence, no need to keep Bar_engraver and +Multi_measure_rest_engraver together. + +* Revised syntax for multiplied durations. Multiplied durations must +now directly follow the number +dots. example: + + c4*3/4 -\f ( % valid + c4-\f ( *3/4 % invalid + +* Halt configure if kpathsea not found. + +* Small refman fixes. + +* Prevent tie - dot collisions. + +* Bugfix: don't crash if hyphen spanner bounds are empty. + +* Spanish glossary, courtesy David Gonzalez. + +* Bugfix: all-font-metrics.cc: only lookup .tfm and check checksum if +the AFM file has a CheckSum field. + + +1.3.144.mb1 ============ +* Fix ps specials to work together with \usepackage[french]{babel} + +1.3.144 +======= + * LilyPond-mode: show what's going on (font building) in *view* buffer. * Added environment settings to ly2dvi and lilypond-book. diff --git a/Documentation/GNUmakefile b/Documentation/GNUmakefile index 3a21d70c30..d4b99a936a 100644 --- a/Documentation/GNUmakefile +++ b/Documentation/GNUmakefile @@ -1,7 +1,7 @@ depth = .. NAME = documentation -SUBDIRS=user bibliography pictures topdocs ntweb misc +SUBDIRS=user bibliography pictures topdocs misc STEPMAKE_TEMPLATES=documentation texinfo tex LOCALSTEPMAKE_TEMPLATES=lilypond ly diff --git a/Documentation/misc/index.texi b/Documentation/misc/index.texi deleted file mode 100644 index 15ea23440b..0000000000 --- a/Documentation/misc/index.texi +++ /dev/null @@ -1,24 +0,0 @@ -\input texinfo @c -*-texinfo-*- -@setfilename index.info -@settitle index - -@node Top, , , (dir) -@top - -Miscellaneous texts -@itemize @bullet -@item @uref{CHANGES-0.0.txt, Change logs from 0.0 till 0.1 } -@item @uref{CHANGES-0.1.txt, Change logs from 0.1 till 1.0 } -@item @uref{CHANGES-1.0.txt, Change logs from 1.0 till 1.1 } -@item @uref{CHANGES-1.1.txt, Change logs from 1.1 till 1.2 } -@item @uref{NEWS-1.2.txt, summary of changes from 1.1 till 1.2 } -@item @uref{ANNOUNCE-0.1.txt, Announcement of 0.1 (includes summary of -changes)} -@item @uref{ANNOUNCE-1.0.txt, Announcement of 1.0 (includes summary of -changes)} -@item @uref{ANNOUNCE-1.2.txt, Announcement of 1.2 (includes summary of changes)} - -@item @uref{AIMS.txt} Why LilyPond? -@item @uref{interview.txt} Answers to the Brave GNU world standard questions -@end itemize - diff --git a/Documentation/ntweb/GNUmakefile b/Documentation/ntweb/GNUmakefile deleted file mode 100644 index fbcdfc7011..0000000000 --- a/Documentation/ntweb/GNUmakefile +++ /dev/null @@ -1,21 +0,0 @@ -depth = ../.. - -STEPMAKE_TEMPLATES=documentation texinfo -TO_TOP_FILES=$(addprefix $(outdir)/, $(README_TOP_FILES)) -PLAIN_FILES=angels.ly $(wildcard *.patch) - -EXTRA_DIST_FILES = $(PLAIN_FILES) - - -include $(depth)/make/stepmake.make - -default: local-doc dist-plain - -$(outdir)/%.texi: %.texi - m4 -DTOPLEVEL_VERSION=$(TOPLEVEL_VERSION) < $< > $@ - -dist-plain: - cp $(PLAIN_FILES) $(outdir) - -local-WWW: - diff --git a/Documentation/ntweb/angels.ly b/Documentation/ntweb/angels.ly deleted file mode 100644 index 40a9893168..0000000000 --- a/Documentation/ntweb/angels.ly +++ /dev/null @@ -1,109 +0,0 @@ -\header{ -filename = "angles.ly"; -title = "Angels We Have Heard on High"; -description = "Christmas Carol."; - -composer = "French Carol, 1854"; -enteredby = "Jeffrey B. Reed"; -copyright = "public domain"; -} - -global = \notes { - \time 2/2; - \key f \major; - \tempo 2=60; - \clef treble; -} - -\version "1.3.110"; -% \include "paper16.ly" - -flute1 = \notes \relative c'' \context Voice = flute { - \property Staff.instrument = "flute" - - a'4 a a c | - c4. bes8 a2 | - a4 g a c | - - a4. g8 f2 | - a4 a a c | - c4. bes8 a2 | - - a4 g a c | - a4. g8 f2 | - c'2( [ d8 c8 bes8 a8 ] | - - bes2 [ c8 bes8 a8 g8 ] | - a2 [ bes8 a8 g8 f8 ] | - )g4. c,8 c2 | - - f4 g a bes | - a2 g2 | - c2( [ d8 c8 bes8 a8 ] | - - bes2 [ c8 bes8 a8 g8 ] | - a2 [ bes8 a8 g8 f8 ] | - )g4. c,8 c2 | - - f4 g a bes | - a2( )g2 | - f1 \bar "|."; -} - -flute2 = \notes \relative c'' \context Voice = flute { - \property Staff.instrument = "flute" - - f4 f e e | - g4 e f2 | - f4 e f f | - - f4 e f2 | - f4 f e e | - f4 g f2 | - - f4 e f f | - f4 e f2 | - f4 ( [a8 g8 ] f2( | - - )f4 [g8 f8] e2( | - )e4 [f8 e8] d2 | - )c4.c8 c2 | - - c4 e f f | - f2 e2 | - f4 ( [a8 g8 ] f2( | - - )f4 [g8 f8] e2( | - )e4 [f8 e8] d2 | - )c4.c8 c2 | - - c4 e f f | - f2( )e2 | - c1 | -} - -flute1_staff = \context Staff = flute1_group < - \global - \flute1 -> - -flute2_staff = \context Staff = flute2_group < - \global - \flute2 -> - -flutes = \context StaffGroup < - \flute1_staff - \flute2_staff -> - - -\score{ - < - \flutes - > - \paper{} - \midi{ - \tempo 2 = 60 ; - } -} diff --git a/Documentation/ntweb/guile-1.4-gnu-windows.patch b/Documentation/ntweb/guile-1.4-gnu-windows.patch deleted file mode 100644 index 4dd55d3205..0000000000 --- a/Documentation/ntweb/guile-1.4-gnu-windows.patch +++ /dev/null @@ -1,85 +0,0 @@ -diff -urN ../guile-1.4/ChangeLog ./ChangeLog ---- ../guile-1.4/ChangeLog Fri Jun 2 15:17:01 2000 -+++ ./ChangeLog Mon Jun 5 15:18:32 2000 -@@ -1,3 +1,12 @@ -+2000-06-05 -+ -+ * guile-config/cross-guile-config.in: Simple shell script to -+ take over guile-config's functionality for cross-compilation. -+ It will be installed as ${target}-guile-config. -+ -+ * guile-config/Makefile.am: Provide for cross-guile-config.in -+ and its targets. -+ - 2000-06-21 Mikael Djurfeldt - - * Guile 1.4 released. -diff -urN ../guile-1.4/configure.in ./configure.in ---- ../guile-1.4/configure.in Fri Jun 2 08:44:27 2000 -+++ ./configure.in Mon Jun 5 15:13:58 2000 -@@ -21,6 +21,7 @@ - dnl Boston, MA 02111-1307, USA. - - AC_INIT(Makefile.in) -+AC_CANONICAL_SYSTEM - . $srcdir/GUILE-VERSION - AM_INIT_AUTOMAKE($PACKAGE, $VERSION, no-define) - AM_MAINTAINER_MODE -diff -urN ../guile-1.4/guile-config/Makefile.am ./guile-config/Makefile.am ---- ../guile-1.4/guile-config/Makefile.am Wed Jan 12 22:42:41 2000 -+++ ./guile-config/Makefile.am Mon Jun 5 15:17:37 2000 -@@ -20,9 +20,9 @@ - ## to the Free Software Foundation, Inc., 59 Temple Place, Suite - ## 330, Boston, MA 02111-1307 USA - --bin_SCRIPTS=guile-config --CLEANFILES=guile-config --EXTRA_DIST=guile-config.in guile.m4 -+bin_SCRIPTS=guile-config @target@-guile-config -+CLEANFILES=guile-config @target@-guile-config -+EXTRA_DIST=guile-config.in guile.m4 cross-guile-config.in - - ## FIXME: in the future there will be direct automake support for - ## doing this. When that happens, switch over. -@@ -39,6 +39,21 @@ - -e s:@-GUILE_VERSION-@:${GUILE_VERSION}: - chmod +x guile-config.tmp - mv guile-config.tmp guile-config -+ -+LDFLAGS=@LDFLAGS@ -+CFLAGS=@CFLAGS@ -+CPPFLAGS=@CPPFLAGS@ -+ -+@target@-guile-config: cross-guile-config.in -+ rm -f $<.tmp -+ sed < ${srcdir}/$< > $<.tmp \ -+ -e s:@-SHELL-@:${SHELL}: \ -+ -e s:@-GUILE_VERSION-@:${GUILE_VERSION}:\ -+ -e s:@-PREFIX-@:${prefix}: \ -+ -e "s:@-CPPFLAGS-@:${CPPFLAGS}:" \ -+ -e "s:@-LDFLAGS-@:${LDFLAGS}:" -+ chmod +x $<.tmp -+ mv $<.tmp $@ - - ## Get rid of any copies of the configuration script under the old - ## name, so people don't end up running ancient copies of it. -diff -urN ../guile-1.4/guile-config/cross-guile-config.in ./guile-config/cross-guile-config.in ---- ../guile-1.4/guile-config/cross-guile-config.in Thu Jan 1 01:00:00 1970 -+++ ./guile-config/cross-guile-config.in Mon Jun 5 15:13:58 2000 -@@ -0,0 +1,16 @@ -+#!@-SHELL-@ -+# target-guile-config.in -+case $1 in -+ --version) -+ echo "@-GUILE_VERSION-@" -+ exit 0 -+ ;; -+ compile) -+ echo "@-CPPFLAGS-@ -I @-PREFIX-@/include/guile" -+ exit 0 -+ ;; -+ link) -+ echo "-L @-PREFIX-@/lib -lguile @-LDFLAGS-@" -+ exit 0 -+ ;; -+esac diff --git a/Documentation/ntweb/index.texi b/Documentation/ntweb/index.texi deleted file mode 100644 index 6266ce868e..0000000000 --- a/Documentation/ntweb/index.texi +++ /dev/null @@ -1,245 +0,0 @@ -\input texinfo @c -*-texinfo-*- -@setfilename index.info -@settitle LilyPond Windows NT 4-0/95 Distribution - -@node Top, Introduction, (dir), (dir) -@comment node-name, next, previous, up -@top LilyPond Windows NT 4.0/95 Distribution - -@menu -* Introduction:: -* News:: -* Bugs:: -* Required Packages:: -* Download:: -* Installation:: -* Running LilyPond:: -* LilyPond Resources:: -@end menu - -This page documents the NT port of LilyPond. It reflects the latest -version of lilypond that was ported. - -@node Introduction, News, Top, Top -@comment node-name, next, previous, up -@section Introduction - -This page is dedicated to the distribution of precompiled and -preformatted LilyPond binaries for Windows NT 4.0 . This package is -covered under the GNU General Public License and all of the source is -available on the official -@uref{http://www.cs.ruu.nl/people/hanwen/lilypond/index.html,LilyPond -Homepage}. A full set of -@uref{http://www.cs.ruu.nl/people/hanwen/lilypond/Documentation/out-www/index.html,documentation} -in various formats is also available. - - -LilyPond is a music typesetter. It produces beautiful sheet music -using a high level description file as input. LilyPond is part of -the GNU Project. - -@node News, Bugs, Introduction, Top -@comment node-name, next, previous, up -@section News - -@table @samp - @item BUG FIXES - @itemize @bullet - @item - The Windows NT 4.0/95 precompiled preformatted release 1.3.42 is - available. - @end itemize -@end table - -@table @samp - @item NOTES - @itemize @bullet - @item We have had preliminary reports that the Windows 95 - installation works on Windows 98. Many thanks to Christian - Mondrup. - - @item Please use the Add/Remove program control panel entry to - unistall your current version of Lilypond before you attempt to - install this one. - - @item If you are upgrading from a previous version of lilypond you will most - likely need to flush your font cache. I generally just toss - @file{D:\localtexmf\fonts\tfm\public\ehrhardt} and - @file{D:\localtexmf\fonts\pk\ljfour\public\ehrhardt} in the Recyle - Bin. Your local font directory may be different, please refer to your - local installation of @code{TeX}. - - @item The FAT16, FAT32, and NTFS file system problems have been - corrected. I have tested various installations that are known - to be operational. - @end itemize -@end table - -The installer was created with -@uref{http://www.gentee.com/,CreateInstall}. This is a shareware -application that has capabilities close to the high dollar installers -@strong{InstallShield}, @strong{Install Vise}, and @strong{WiseInstaller}. -@strong{CreateInstall} does cost $38 to register which is probably going to -be frowned upon, but I was unable to find a freeware install builder -that was suitable. The self extracting distribution currently: - -@itemize @bullet - @item Installs the lilypond distribution on any valid file system. - @item Optionally creates a @emph{Lilypond} shortcut group on your start - menu with the following shortcuts. - @itemize @bullet - @item @strong{lilyshell} - @item @strong{uninstall} - @end itemize - @item Allows unistall through the Add/Remove Program interface on the - control panel. - @item The @strong{lilyshell} uses the /E and /K switches to extend the - environment size and initialize the shell environment. - @item It has the look and feel of a real Windows installer -@end itemize - -The @strong{lilyshell} shortcut initializes the environment so you can -generate music from a MSDOS prompt with commands like: - -@itemize @bullet - @item ly2dvi - @item convert-mudela - @item mudela-book - @item lilypond - @item midi2ly -@end itemize - -This release has been tested on Windows NT 4.0sp3 and Windows 95 and -found to be operational. If you have any troubles and or comments -please do not hesitate to drop me a line -@uref{mailto:daboys@@austin.rr.com,Jeffrey B. Reed}. - -@node Bugs, Required Packages, News, Top -@comment node-name, next, previous, up -@section Bugs - -@itemize @bullet - - @item Using any text that contains '@{@}' for the value of the any - valid mudela @strong{header} construct will cause @strong{ly2dvi} to - fail. A work around for the @strong{latexheaders} construct is to - create a @strong{TeX} file and set @strong{latexheaders} to "\input - foo.tex". -@end itemize - -@node Required Packages, Download, Bugs, Top -@comment node-name, next, previous, up -@section Required Packages - -LilyPond uses the @code{TeX} package as its rendering engine. @code{TeX} -represents the state-of-the-art in computer typesetting. It is used to -generate documentation, article, and book quality output. It is an -assume tool to have in your toolbox. - -LilyPond uses a @code{Python} script named @code{ly2dvi} to render a -professional quality music score. @code{Python} is an interpreted, -interactive, object-oriented programming language. It is often -compared to @code{Tcl}, @code{Perl}, @code{Scheme} or @code{Java}. - -Gsview is used to display and print the music scores created by -LilyPond. - -@itemize @bullet - @item - @uref{http://www.miktex.de/,MiKTeX}. Versions - 1.10b, 1.11, and 1.20b are known to work. - @item - @uref{http://www.python.org,Python}. Version 1.5.1 and - possibly 1.5 work. - @item - @uref{http://www.cs.wisc.edu/~ghost/gsview/index.html,gsview}. - Version 5.10 is known to work. -@end itemize - -@node Download, Installation, Required Packages, Top -@comment node-name, next, previous, up -@section Download - -@itemize @bullet - @item Windows 95 - @uref{lilypond-TOPLEVEL_VERSION-95.exe,lilypond-TOPLEVEL_VERSION-95} - @item Windows NT 4.0 - @uref{lilypond-TOPLEVEL_VERSION-nt.exe,lilypond-TOPLEVEL_VERSION-nt} - @item Windows 95 (Latest Stable Release) - @uref{lilypond-1.2.0.jbr1-95.exe,lilypond-1.2.0-95} - @item Windows NT 4.0 (Latest Stable Release) - @uref{lilypond-1.2.0-nt.jbr1.exe,lilypond-1.2.0-nt} -@end itemize - -@node Installation, Running LilyPond, Download, Top -@comment node-name, next, previous, up -@section Installation - -@itemize @bullet - @item Download the distribution. See @ref{Download}. - @item run downloaded executable. - @item The first installation of LilyPond also requires these - additional steps: - @table @samp - @item LaTeX geometry package - @itemize @bullet - @item - @uref{ftp://ctan.tug.org/tex-archive/macros/latex/contrib/supported/geometry.zip,download} the zip file to @code{\Temp}. - @item Extract the zip file into the LaTeX package area of - @code{MiKTeX}. This will be @strong{@emph{MiKTeX-dir}\tex\latex} - @item From a Command Prompt change directory into geometry - directory that was just extracted. - @item In the geometry directory type @strong{latex geometry.ins} - @end itemize - @item Miscellaneous fonts - @itemize @bullet - @item In your favorite editor create a file named - @code{cmbx14.mf}. Add the following lines: - @strong{design_size=14.4; } - @strong{input b-cmbx;} - @item From a Command Prompt copy cmbx14.mf to the public font - area of MiKTeX: - @strong{copy cmbx14.mf @emph{MiKTeX-dir}\fonts\source\public\cm\base} - @end itemize - @item NOTE - MiKTeX-1.11 localtexmf configurations should use - @strong{@emph{localtexmf-dir}} in place of @strong{@emph{MiKTeX-dir}}. - @end table - instructions below -@end itemize - -@node Running LilyPond, LilyPond Resources, Installation, Top -@comment node-name, next, previous, up -@section Running LilyPond - -@itemize @bullet - @item Take a look at @uref{angels.ly,angels.ly} - @item Save angels.ly to your local disk - @item Select the @strong{lilyshell} shortcut from the @emph{Lilypond} group - @item From a LilyPond Command Prompt run: @* - @example - % @strong{ly2dvi angels.ly} - % @strong{dvips angels.dvi} - % @strong{start angels.ps} - @end example -@end itemize - -@node LilyPond Resources, , Running LilyPond, Top -@comment node-name, next, previous, up -@section LilyPond Resources - -@itemize @bullet - @item - @uref{http://www.cs.ruu.nl/people/hanwen/lilypond/index.html,LilyPond Homepage} - @item - @uref{ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/,LilyPond Ftp Site} - @item - @uref{http://www.mail-archive.com/help-gnu-music@@gnu.org,gnu-music-discuss mail archive} - @item Please feel free to mail us at @uref{mailto:gnu-music-discuss@@gnu.org,gnu-music-discuss} -@end itemize - -@html - -@end html - -@bye diff --git a/Documentation/ntweb/lilypond-manpages.patch b/Documentation/ntweb/lilypond-manpages.patch deleted file mode 100644 index 9e204a7507..0000000000 --- a/Documentation/ntweb/lilypond-manpages.patch +++ /dev/null @@ -1,453 +0,0 @@ -diff --exclude-from=niet -urN ../lilypond-1.3.38/lily/out/lilypond.1 ./lily/out/lilypond.1 ---- ../lilypond-1.3.38/lily/out/lilypond.1 Thu Jan 1 01:00:00 1970 -+++ ./lily/out/lilypond.1 Wed Mar 22 15:51:39 2000 -@@ -0,0 +1,88 @@ -+.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.012. -+.TH LILYPOND "1" "March 2000" "GNU LilyPond 1.3.38.jcn1" FSF -+.SH NAME -+LilyPond \- manual page for LilyPond 1.3.38.jcn1 -+.SH SYNOPSIS -+.B LilyPond -+[\fIOPTION\fR]... [\fIFILE\fR]... -+.SH DESCRIPTION -+GNU LilyPond 1.3.38.jcn1 -+.PP -+Typeset music and or play MIDI from FILE -+.PP -+LilyPond is a music typesetter. It produces beautiful sheet music -+using a high level description file as input. LilyPond is part of -+the GNU Project. -+.SH OPTIONS -+.TP -+\fB\-d\fR,--debug -+enable debugging output -+.TP -+\fB\-f\fR,--output-format=EXT -+use output format EXT -+.TP -+\fB\-h\fR,--help -+this help -+.TP -+\fB\-I\fR,--include=DIR -+add DIR to search path -+.TP -+\fB\-i\fR,--init=FILE -+use FILE as init file -+.TP -+\fB\-M\fR,--dependencies -+write Makefile dependencies for every input file -+.TP -+\fB\-m\fR,--no-paper -+produce MIDI output only -+.TP -+\fB\-o\fR,--output=BASENAME -+write output to BASENAME[-x].extension -+.TP -+\fB\-Q\fR,--find-old-relative -+show all changes in relative syntax -+.TP -+\fB\-s\fR,--safe -+inhibit file output naming and exporting -+.TP -+\fB\-T\fR,--no-timestamps -+don't timestamp the output -+.TP -+\fB\-t\fR,--test -+switch on experimental features -+.TP -+\fB\-V\fR,--ignore-version -+ignore mudela version -+.TP -+\fB\-v\fR,--version -+print version number -+.TP -+\fB\-w\fR,--warranty -+show warranty and copyright -+.PP -+This binary was compiled with the following options: -+datadir: `/home/fred/usr/share/lilypond' -+localedir: `/home/fred/usr/share/locale' -+.PP -+Oldest supported input version: 1.3.4 -+.SH "REPORTING BUGS" -+Report bugs to bug-gnu-music@gnu.org -+.SH "SEE ALSO" -+The full documentation for -+.B LilyPond -+is maintained as a Texinfo manual. If the -+.B info -+and -+.B LilyPond -+programs are properly installed at your site, the command -+.IP -+.B info LilyPond -+.PP -+should give you access to the complete manual. -+.PP -+This is free software. It is covered by the GNU General Public License, -+and you are welcome to change it and/or distribute copies of it under -+certain conditions. Invoke as `lilypond --warranty' for more information. -+.SH COPYRIGHT -+Copyright \(co 1996--2000 byHan-Wen Nienhuys -+Jan Nieuwenhuizen -diff --exclude-from=niet -urN ../lilypond-1.3.38/midi2ly/out/midi2ly.1 ./midi2ly/out/midi2ly.1 ---- ../lilypond-1.3.38/midi2ly/out/midi2ly.1 Thu Jan 1 01:00:00 1970 -+++ ./midi2ly/out/midi2ly.1 Wed Mar 22 15:51:45 2000 -@@ -0,0 +1,74 @@ -+.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.012. -+.TH MIDI2LY "1" "March 2000" "midi2ly 1.3.38.jcn1" FSF -+.SH NAME -+midi2ly \- manual page for midi2ly 1.3.38.jcn1 -+.SH SYNOPSIS -+.B midi2ly -+[\fIOPTION\fR]... [\fIFILE\fR] -+.SH DESCRIPTION -+.PP -+Translate MIDI-file to mudela -+.SH OPTIONS -+.TP -+\fB\-b\fR,--no-quantify -+write exact durations, e.g.: a4*385/384 -+.TP -+\fB\-d\fR,--debug -+enable debugging output -+.TP -+\fB\-h\fR,--help -+this help -+.TP -+\fB\-k\fR,--key=ACC[:MINOR] -+set key: ACC +sharps/-flats; :1 minor -+.TP -+\fB\-n\fR,--no-silly -+don't output tuplets or double dots, smallest is 32 -+.TP -+\fB\-o\fR,--output=FILE -+set FILE as default output -+.TP -+\fB\-p\fR,--no-tuplets -+don't output tuplets -+.TP -+\fB\-q\fR,--quiet -+be quiet -+.TP -+\fB\-s\fR,--smallest=DUR -+set smallest duration -+.TP -+\fB\-T\fR,--no-timestamps -+don't timestamp the output -+.TP -+\fB\-V\fR,--version -+print version number -+.TP -+\fB\-v\fR,--verbose -+be verbose -+.TP -+\fB\-w\fR,--warranty -+show warranty and copyright -+.TP -+\fB\-x\fR,--no-double-dots -+assume no double dotted notes -+.SH "REPORTING BUGS" -+Report bugs to bug-gnu-music@gnu.org -+.SH "SEE ALSO" -+The full documentation for -+.B midi2ly -+is maintained as a Texinfo manual. If the -+.B info -+and -+.B midi2ly -+programs are properly installed at your site, the command -+.IP -+.B info midi2ly -+.PP -+should give you access to the complete manual. -+.PP -+This is free software. It is covered by the GNU General Public License, -+and you are welcome to change it and/or distribute copies of it under -+certain conditions. Invoke as `midi2ly --warranty' for more information. -+.SH COPYRIGHT -+Copyright \(co 1996--2000 byHan-Wen Nienhuys -+Jan Nieuwenhuizen -diff --exclude-from=niet -urN ../lilypond-1.3.38/midi2ly/out/version.hh ./midi2ly/out/version.hh ---- ../lilypond-1.3.38/midi2ly/out/version.hh Thu Jan 1 01:00:00 1970 -+++ ./midi2ly/out/version.hh Wed Mar 22 15:51:41 2000 -@@ -0,0 +1,5 @@ -+/* automatically generated */#define PACKAGE_NAME "LilyPond" -+#define MAJOR_VERSION "1" -+#define MINOR_VERSION "3" -+#define PATCH_LEVEL "38" -+#define MY_PATCH_LEVEL "jcn1" -diff --exclude-from=niet -urN ../lilypond-1.3.38/scripts/out/abc2ly.1 ./scripts/out/abc2ly.1 ---- ../lilypond-1.3.38/scripts/out/abc2ly.1 Thu Jan 1 01:00:00 1970 -+++ ./scripts/out/abc2ly.1 Wed Mar 22 15:50:27 2000 -@@ -0,0 +1,32 @@ -+.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.012. -+.TH ABC2LY "1" "March 2000" "GNU lilypond 1.3.38" FSF -+.SH NAME -+abc2ly \- manual page for abc2ly 1.3.38 -+.SH SYNOPSIS -+.B abc2ly -+[\fIOPTION\fR]...\fI ABC-FILE\fR -+.SH DESCRIPTION -+ -+Convert ABC to Mudela. -+.SH OPTIONS -+.TP -+\fB\-h\fR, \fB\-\-help\fR -+this help -+.TP -+\fB\-o\fR, \fB\-\-output\fR=\fIFILE\fR -+set output filename to FILE -+.TP -+\fB\-v\fR, \fB\-\-version\fR -+version information -+.SH "SEE ALSO" -+The full documentation for -+.B abc2ly -+is maintained as a Texinfo manual. If the -+.B info -+and -+.B abc2ly -+programs are properly installed at your site, the command -+.IP -+.B info abc2ly -+.PP -+should give you access to the complete manual. -diff --exclude-from=niet -urN ../lilypond-1.3.38/scripts/out/as2text.1 ./scripts/out/as2text.1 ---- ../lilypond-1.3.38/scripts/out/as2text.1 Thu Jan 1 01:00:00 1970 -+++ ./scripts/out/as2text.1 Wed Mar 22 15:50:31 2000 -@@ -0,0 +1,32 @@ -+.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.012. -+.TH AS2TEXT "1" "March 2000" "as2text - LilyPond version 1.3.38" FSF -+.SH NAME -+as2text \- manual page for as2text - LilyPond version 1.3.38 -+.SH SYNOPSIS -+.B as2text -+[\fIOPTION\fR]...\fI AS-FILE\fR -+.SH DESCRIPTION -+as2text - LilyPond version 1.3.38 -+Convert AsciiScript to text. -+.SH OPTIONS -+.TP -+\fB\-h\fR,--help -+this help -+.TP -+\fB\-o\fR,--output=FILE -+set output file -+.TP -+\fB\-v\fR,--version -+show version -+.SH "SEE ALSO" -+The full documentation for -+.B as2text -+is maintained as a Texinfo manual. If the -+.B info -+and -+.B as2text -+programs are properly installed at your site, the command -+.IP -+.B info as2text -+.PP -+should give you access to the complete manual. -diff --exclude-from=niet -urN ../lilypond-1.3.38/scripts/out/convert-mudela.1 ./scripts/out/convert-mudela.1 ---- ../lilypond-1.3.38/scripts/out/convert-mudela.1 Thu Jan 1 01:00:00 1970 -+++ ./scripts/out/convert-mudela.1 Wed Mar 22 15:50:23 2000 -@@ -0,0 +1,49 @@ -+.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.012. -+.TH CONVERT-MUDELA "1" "March 2000" "GNU LilyPond 1.3.38" FSF -+.SH NAME -+convert-mudela \- manual page for convert-mudela 1.3.38 -+.SH SYNOPSIS -+.B convert-mudela -+[\fIOPTION\fR]... [\fIFILE\fR]... -+.SH DESCRIPTION -+.PP -+Try to convert to newer mudela-versions. The version number of the -+input is guessed by default from \version directive -+.SH OPTIONS -+.TP -+\fB\-h\fR, \fB\-\-help\fR -+print this help -+.TP -+\fB\-e\fR, \fB\-\-edit\fR -+in place edit -+.TP -+\fB\-f\fR, \fB\-\-from\fR=\fIVERSION\fR -+start from version -+.TP -+\fB\-s\fR, \fB\-\-show\-rules\fR -+print all rules. -+.TP -+\fB\-t\fR, \fB\-\-to\fR=\fIVERSION\fR -+target version -+.TP -+\fB\-\-version\fR -+print program version -+.SH "REPORTING BUGS" -+Report bugs to bugs-gnu-music@gnu.org -+.SH "SEE ALSO" -+The full documentation for -+.B convert-mudela -+is maintained as a Texinfo manual. If the -+.B info -+and -+.B convert-mudela -+programs are properly installed at your site, the command -+.IP -+.B info convert-mudela -+.PP -+should give you access to the complete manual. -+.PP -+This is free software. It is covered by the GNU General Public -+License, and you are welcome to change it and/or distribute copies of -+it under certain conditions. invoke as `convert-mudela --warranty' for more -+information. -diff --exclude-from=niet -urN ../lilypond-1.3.38/scripts/out/ly2dvi.1 ./scripts/out/ly2dvi.1 ---- ../lilypond-1.3.38/scripts/out/ly2dvi.1 Thu Jan 1 01:00:00 1970 -+++ ./scripts/out/ly2dvi.1 Wed Mar 22 15:50:25 2000 -@@ -0,0 +1,76 @@ -+.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.012. -+.TH LY2DVI "1" "March 2000" "GNU lilypond 1.3.38" FSF -+.SH NAME -+ly2dvi \- manual page for ly2dvi 1.3.38 -+.SH SYNOPSIS -+.B ly2dvi -+[\fIOPTION\fR]... [\fIFILE\fR]... -+.SH DESCRIPTION -+.PP -+Generate dvi file from mudela or lilypond output -+.SH OPTIONS -+.TP -+\fB\-D\fR,--debug -+increase verbosity -+.TP -+\fB\-F\fR,--headers= -+name of additional LaTeX headers file -+.TP -+\fB\-H\fR,--Height= -+set paper height (points) (see manual page) -+.TP -+\fB\-I\fR,--include=DIR -+add DIR to LilyPond's search path -+.TP -+\fB\-K\fR,--keeplilypond -+keep lilypond output files -+.TP -+\fB\-L\fR,--landscape -+set landscape orientation -+.TP -+\fB\-N\fR,--nonumber -+switch off page numbering -+.TP -+\fB\-O\fR,--orientation= -+set orientation (obsolete - use \fB\-L\fR instead) -+.TP -+\fB\-P\fR,--postscript -+generate postscript file -+.TP -+\fB\-W\fR,--Width= -+set paper width (points) (see manual page) -+.TP -+\fB\-M\fR,--dependencies -+tell lilypond make a dependencies file -+.TP -+\fB\-h\fR,--help -+this help text -+.TP -+\fB\-k\fR,--keeply2dvi -+keep ly2dvi output files -+.TP -+\fB\-l\fR,--language= -+give LaTeX language (babel) -+.TP -+\fB\-o\fR,--output= -+set output directory -+.TP -+\fB\-p\fR,--papersize= -+give LaTeX papersize (eg. a4) -+.TP -+\fB\-s\fR,--separate -+run all files separately through LaTeX -+.PP -+files may be (a mix of) input to or output from lilypond(1) -+.SH "SEE ALSO" -+The full documentation for -+.B ly2dvi -+is maintained as a Texinfo manual. If the -+.B info -+and -+.B ly2dvi -+programs are properly installed at your site, the command -+.IP -+.B info ly2dvi -+.PP -+should give you access to the complete manual. -diff --exclude-from=niet -urN ../lilypond-1.3.38/scripts/out/mudela-book.1 ./scripts/out/mudela-book.1 ---- ../lilypond-1.3.38/scripts/out/mudela-book.1 Thu Jan 1 01:00:00 1970 -+++ ./scripts/out/mudela-book.1 Wed Mar 22 15:50:24 2000 -@@ -0,0 +1,65 @@ -+.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.012. -+.TH MUDELA-BOOK "1" "March 2000" "GNU LilyPond 1.3.38" FSF -+.SH NAME -+mudela-book \- manual page for mudela-book 1.3.38 -+.SH SYNOPSIS -+.B mudela-book -+[\fIoptions\fR]\fI FILE\fR -+.SH DESCRIPTION -+.PP -+Generate hybrid LaTeX input from Latex + mudela -+Options: -+.TP -+\fB\-\-default\-mudela\-fontsize\fR=\fIDIM\fR -+default fontsize for music. DIM is assumed to in points -+.TP -+\fB\-f\fR,--format=EXT -+set format. EXT is one of texi and latex. -+.TP -+\fB\-h\fR,--help -+print help -+.TP -+\fB\-I\fR,--include=DIR -+include path -+.TP -+\fB\-\-init\fR -+mudela-book initfile -+.TP -+\fB\-\-force\-verbatim\fR -+make all mudela verbatim -+.TP -+\fB\-M\fR,--dependencies -+write dependencies -+.TP -+\fB\-n\fR,--no-lily -+don't run lilypond -+.TP -+\fB\-\-no\-pictures\fR -+don't generate pictures -+.TP -+\fB\-o\fR,--outname=FILE -+prefix for filenames -+.TP -+\fB\-v\fR,--version -+print version information -+.TP -+\fB\-\-dep\-prefix\fR=\fIPREF\fR -+prepend PREF before each \fB\-M\fR dependency -+.PP -+Warning all output is written in the CURRENT directory -+.SH "REPORTING BUGS" -+Report bugs to bug-gnu-music@gnu.org. -+Written by Tom Cato Amundsen and -+Han-Wen Nienhuys -+.SH "SEE ALSO" -+The full documentation for -+.B mudela-book -+is maintained as a Texinfo manual. If the -+.B info -+and -+.B mudela-book -+programs are properly installed at your site, the command -+.IP -+.B info mudela-book -+.PP -+should give you access to the complete manual. diff --git a/Documentation/pictures/out/lilypond-icon.xpm b/Documentation/pictures/out/lilypond-icon.xpm new file mode 100644 index 0000000000..0ad7f75dc1 --- /dev/null +++ b/Documentation/pictures/out/lilypond-icon.xpm @@ -0,0 +1,141 @@ +/* XPM */ +static char *noname[] = { +/* width height ncolors chars_per_pixel */ +"50 71 63 2", +/* colors */ +"`` c #666664", +"`a c #F2F2F4", +"`b c #5E5E5C", +"`c c #EAEAEC", +"`d c #565654", +"`e c #E2E2E4", +"`f c #4E4E4C", +"`g c #DADADC", +"`h c #464644", +"`i c #D2D2D4", +"`j c #3E3E3C", +"`k c #CACACC", +"`l c #363634", +"`m c #C2C2C4", +"`n c #2E2E2C", +"`o c #BABABC", +"`p c #262624", +"`q c #B2B2B4", +"`r c #1E1E1C", +"`s c #AAAAAC", +"`t c #161614", +"`u c #A2A2A4", +"`v c #0E0E0C", +"`w c #9A9A9C", +"`x c #060604", +"`y c #929294", +"`z c #8A8A8C", +"a` c #828284", +"aa c #7A7A7C", +"ab c #727274", +"ac c #6A6A6C", +"ad c #626264", +"ae c #5A5A5C", +"af c #525254", +"ag c #4A4A4C", +"ah c #424244", +"ai c #3A3A3C", +"aj c #323234", +"ak c #2A2A2C", +"al c #FEFEFC", +"am c #222224", +"an c #F6F6F4", +"ao c #1A1A1C", +"ap c #EEEEEC", +"aq c #121214", +"ar c #E6E6E4", +"as c #0A0A0C", +"at c #DEDEDC", +"au c #D6D6D4", +"av c #CECECC", +"aw c #C6C6C4", +"ax c #BEBEBC", +"ay c #B6B6B4", +"az c #AEAEAC", +"b` c #A6A6A4", +"ba c #9E9E9C", +"bb c #969694", +"bc c #8E8E8C", +"bd c #868684", +"be c #7E7E7C", +"bf c #767674", +"bg c #6E6E6C", +"bh c #FAFAFC", +/* pixels */ +"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal", +"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal", +"alalbhbhalalbhalalbhalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal", +"alalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalal", +"alalalbhbhalalbhalalalalalalalalalalalalalalalalalal`o`ya``s`wbhalalalalalalalalalalalalalalalalalal", +"bhalalalalalbhalalalalalalalalalalalalalalalalalal`a`malalalap`obb`malalalalal`cax`galalalalalalalal", +"alalalalalalalalalalalalalalalalalalalalalalalalalbcalbhalalalalalax`ialalal`gauav`u`ealalalalalalal", +"alalalalalalalbhalalalalalalalalalalalalalalalalawar`ialalalalalalalaxapalalbaacat`i`oalalalalalalal", +"alalbhalalalalbhalalalalalalalalalalalalalalalalazal`sbhalalalalalalalayalbh`eba`iapavalalalalalalal", +"albhalbhalalalalalalalalalalalalalalalalalalalal`oatalb``aalalalalalal`oanazazanbhayalalalalalalalal", +"alalalalalalalalalalalalalalalalalalalalalalanawal`salalbaalalalalalalalazaa`cav`oalalalalalalalalal", +"alalalalalalalalalalalalalalalalalalalalalapawalalaranal`i`qalalalalalalbeayazbcbcalalalalalalalalal", +"alalalalalalalalalalalalalalalalalalalalal`g`oapalalalalal`yalalalalal`gbbabbhapalalalalalalalalalal", +"alalalalalalalalalalalalalalalalalalalalalal`sanalalalalalbdalalalalalbc`obbalalalalalalalalalalalal", +"alalalalalalalalalalalalalalalalalalalalalapaaanalalalalal`qatan`ealax`sbbazalalalalalalalalalalalal", +"alalalalalalalalalalalalalalalalalalalalal`kab`oalalalalalau`uaw`salbb`ua`bcalalalalalalalalalalalal", +"alalalalalalalalalalalalalalalalalalalalalayalalalalalalan`ea`axax`oba`oazaxaralalalalalalalalalalal", +"alalalalalalalalalalapbhalalalalalalalalalaybhalalalalan`s`sazav`gaz`qbdalalazalalalalalalalalalalal", +"alalalalalalalalalalax`u`aalalalalalalalalaraw`o`c`c`aaxaw`g`kav`sayb`ayalal`m`calalalalalalalalalal", +"alalalalalalalalalalal`c`sbhalalalalalalalalalal`c`jb`albh`yavapazay`w`ialalalay`aalalalalalalalalal", +"alalalalalalalalalalalalar`qbhalalalalalalalalalal`v`sav`abcaubbaw`u`salalalalalayapalalalalalalalal", +"alalalalalalalalalalalalal`i`kalalalalalalalalalal`l`way`uau`cazazazbc`q`ialalalal`galalalalalalalal", +"alalalalalalalalalalalalalalaw`galalalalalalan`i`m`hbe`q`oap`w`m`uax`ialax`salalalalalalalalalalalal", +"alalalalalalalalalalalalalalal`oatalalalbh`kbaadagad```oav`i`mb`ba`ualalal`i`oalalalalalalalalalalal", +"alalalalalalalalalalalalalalalanaz`aalanaz`nag`ian`w`k`iar`waw`o`o`ialalalalau`ialalalalalalalalalal", +"alalalalalalalalalalalalalalalalapba`c`zakac`aalau`calapaz`gbabb`qbhalalalalal`ualalalalalalalalalal", +"alalalalalalalalalalalalalalalalal`ibdambd`c`aalalalal`a`yax`kb``u`aalalalalal`e`kalalalalalalalalal", +"alalalalalalalalalalalalalalalalarbcajbf`q`kalalalalal`w`c`sbc`k`e`kalalalalalal`salalalalalalalalal", +"alalalalalalalalalalalalalalalalawaoaibbaw`kalalalalapbaaw`gb`baalaualalalalalal`salalalalalalalalal", +"alalalalalalalalalalalalalalal`cbgaq`y`q`o`ialalalal`wbh`sba`g`oalaralalalalalal`ualalalalalalalalal", +"alalalalalalalbhbhalalalalalalar`v`lbfazap`qapalal`gaz`k`e`y`u`galbhalalalalalalb`alalalalalalalalal", +"alalalalalalalalalalalalalalalbb`x`l`qayalap`u`aala`al`u`q`ebebhalbhalalalalalalb`alalalalalalalalal", +"alalalalalalalalalalalalalalal`gao`hayazalalapb``kax`iaubeaybaalalalalalalalalalbaalalalalalalalalal", +"alalalalalalalalalalalalalalalalbdahba`galalalatbcalbb`maxbeatalalalalalalalalalbaalalalalalalalalal", +"alalalalalalalalalalalalalalalalau`jb``calbhalal`k`oaw`zapbfalalalalanalalalalal`salalalalalalalalal", +"alalalalalalalalalalalalalalalal`aad`malalbbalalal`o`kbb`y`ialalalal`walalalalal`qalalalalalalalalal", +"alalalalalalalalalalalalalalalalalbebaalapbfalalalbhbb`c`dalalalalalagalalalalap`oalalalalalalalalal", +"alalalalalalalalalalalalalalalalalbb`ialalajalalalalap`w`walalalalaxaaalalalal`qalalalalalalalalalal", +"alalalalalalalalalalalalalalalalalazalalalbf`aalalalalbaayanalalalbg`ealalalbh`qalalalalalalalalalal", +"alalalalalalalalalalalalalalalalalaxalalalbebhalalal`c`s`saxalalal``alalalalaybhalalalalalalalalalal", +"alalalalalalalalalalalalalalalalal`oalalal`ealalalalbb`eaw`uawalalawalbhalataualalalalalalalalalalal", +"alalalalalalalalalalalalalalalalalanalalalalalalalal`wb`alayb``malalal`sal`oalalalalalalalalalalalal", +"alalalalalalalalalalalalalalalalalalalal`galalalal`q`g`wauaraz`yalalaxapalbhalalalalalalalalalalalal", +"alalalalbhalalalalbhalalalalbhbhalalbhal`salalalal`waw`kay`kapb`al`k`galalalbhbhbhbhbhalalalalalalal", +"albhbhalbhalalalalbhalalalalalbhalalal`i`malalbhar`sbdal`q`oalalal`walalbhalalalalalbhalalalalalalal", +"bhalalalalalalalalalalalbhalalal`ialalanavalalalbcalbbat`g`qalbhar`qalalalalalalalalalbhbhbhbhbhbhal", +"alalalalbhbhbhalalbhbhalalalal`mbealbhalawalalalbd`iat`oaratalal`yalbhalalalalalalalalalalalalalbhal", +"alalbhalalalalbhalalalalbhbhal`najalal`aarbhal`s`eazalazazalal`cb`alalalbhbhbhbhbhalalalalalalalalal", +"bhalbhalalalalbhalalalalalalbbas`naralalalalal`yalazarauayalalbaa`albhalalalalalbhalalalalalalalbhal", +"alalalalalalalalalalbhalal`aaq`r`hbdalalalalaraz`m`aazan`mal`ebd`jalalalalalalalalbhbhbhbhbhbhalalal", +"alalbhbhbhalalbhbhalalalalaa`vah`d`d`calbhalbaal`qal`o`obhalbhbd`ray`i`gbhalalalalalalalalalbhalbhal", +"bhalalalalbhalalalalbhalal`v`t`lah```ualalalbaan`q`cavaxalalatbeai`hauaw`waz`kav`ialalalalalalalalal", +"bhalalalalbhalalalalal`aap`x`tahafbb`ybdalavat`sbh`sal`qalal`c`qafam`faab`axauav`i`s`oaualalbhalbhal", +"alalalalalalalanaxax`s`q`gasao`pbebabb`ubd`walb`al`oavapalalbhaybeagaq`n`sauaw`i`iapat`kayauapalalal", +"bhbhbhalalav`kazarauayay`sad`r`facae`mazaubgb``sbh`m`oalalalalavbbaeai`j`oav`g`oatau`c`g`a`eb`azanal", +"alalalat`o`e`mavayavauarawayaq`lbf`yb``e`zap`yawbd`qayalalalap`ibcad`j`jbb`i`gapal`cal`iatau`gar`o`c", +"alal`eavalbh`g`g`g`ialanaral`b`vabbd`u`ibd`e`ual`o`ea`bbbdbcb`arb````la``uap`i`cavapalarav`catav`c`q", +"al`eavar`aanar`gavatayavaranatasae`wbcawax`iaval`calalalalalalaybcaf`hbb`garan`g`c`g`i`eatauatau`oap", +"al`s`a`carau`capanal`gapanbhal`s`ragbc`e`k`walalalalalalal`cap`oa`bfbgarauauan`g`i`e`c`c`a`g`cauatal", +"al`e`qay`s`i`eanarau`matau`cauau`s`ta`bd`sawalbhalalbhalapatav`s`f`baxalanat`aananan`eawat`max`aalal", +"bhalbhawavbh`aavar`e`gawawau`k`i`c`i`h`d`y`ealalbhalalalalapauaxb`avan`carbhan`gau`aan`iax`ebhalalal", +"alalalalan`uawawal`g`e`e`oatavat`q`ganbb`babbhalalap`ubbb`bb`z`u`gaparbhbhalanaw`iavax`cbhalalalbhal", +"albhalbhalalbhanax`oaw`m`i`m`m`kbhalalalap`obaavalbhan`aan`aalalalalapaxawaw`oapanbhalalalalalalbhal", +"alalalalalalalalalalananbhanbhalalalalalalalan`gb``qawavaxau`m`o`o`s`eananalalalalalalalalalalalalal", +"alalalalalalbhbhbhalalalalalalalalbhalbhalalalalalalbhbhanbhalalalalalalalalalalalalalalalbhalalalal", +"albhalalalbhalalalalalalalalbhbhbhalalalbhalbhalalalalalalalbhalalalalalalalalalbhalalalbhalalalbhal", +"alalbhbhalalalalalbhalbhalalalalalalalalbhalalbhalalalalbhalalalbhalalbhbhbhalalbhbhbhalalbhalalbhal", +"albhalalalalalalbhalbhalbhalalalalbhalalalalbhalalalalalalalalbhalbhalalalalbhalalal`aalalalbhalalal", +"alalalalbhbhbhalalalalalalalalbhalbhalalalalalbhbhbhbhalalbhalalalbhalalalalalap`qbb`salalalalalbhal", +"alalalbhalalalalalalalalbhbhbhalalalbhalbhalalalalalalalbhalalalalalalalalalalae`uav`calalalbhalalal", +"bhbhalalalalalbhalbhalalalalalalalalbhalalbhalalalalbhalalalbhalalbhbhbhalalalalalaralalalalbhalbhal" +}; diff --git a/Documentation/regression-test.tely b/Documentation/regression-test.tely index 1f9b51238b..6965c068a9 100644 --- a/Documentation/regression-test.tely +++ b/Documentation/regression-test.tely @@ -68,7 +68,7 @@ and documenting bugfixes. @lilypondfile[printfilename]{dynamics-broken-hairpin.ly} - +@lilypondfile[printfilename]{dynamics-unbound-hairpin.ly} @section Chord names @@ -241,6 +241,8 @@ and documenting bugfixes. @lilypondfile[printfilename]{keys.ly} +@lilypondfile[printfilename]{key-signature-scordatura.ly} + @section Hacks and Features @lilypondfile[printfilename]{generic-output-property.ly} diff --git a/Documentation/topdocs/FAQ.texi b/Documentation/topdocs/FAQ.texi index 97d93cb614..257fccc37d 100644 --- a/Documentation/topdocs/FAQ.texi +++ b/Documentation/topdocs/FAQ.texi @@ -58,25 +58,6 @@ yourself: @end example -@subsection Is there an emacs mode? - -Yes. It is included with the source archive as -@file{lilypond-mode.el} and @file{lilypond-font-lock.el}. If you have -an RPM, it is in @file{/usr/share/doc/lilypond-X/}. You have to install -it yourself. - -Add this to your ~/.emacs or ~/.emacs.el: -@example - (load-library "lilypond-mode.el") - (setq auto-mode-alist - (cons '("\\.ly$" . LilyPond-mode) auto-mode-alist)) - (add-hook 'LilyPond-mode-hook (lambda () (turn-on-font-lock))) -@end example - -If you have the latest LilyPond-1.3.x Debian package, LilyPond-mode -is automatically loaded, so you need not modify your ~/.emacs file. - - @subsection I downloaded the windows32 port, and it doesn't match the website! The website is usually made from the latest snapshots. Binary releases, diff --git a/Documentation/topdocs/INSTALL.texi b/Documentation/topdocs/INSTALL.texi index 53966d411b..340221e642 100644 --- a/Documentation/topdocs/INSTALL.texi +++ b/Documentation/topdocs/INSTALL.texi @@ -13,140 +13,140 @@ You can get the latest version of LilyPond at @uref{ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/, ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/}. +There are three options for downloading sources. + +@itemize +@item if you don't have any version, then you can download + the entire @file{.tar.gz} file. + +@item if you have an unpacked source tree of a previous version, you +may use the diffs . + @emph{If you upgrade by patching do remember to rerun autoconf after applying the patch}. -If you do not want to download the entire archive for each version, the -safest method for upgrading is to use @file{xdelta}, see -@uref{ftp://ftp.xcf.berkeley.edu/pub/xdelta/}. + +@item if you have the @code{.tar.gz} file of a previous release, you can +use +@uref{ftp://ftp.xcf.berkeley.edu/pub/xdelta/, xdelta}. + This is much safer than using normal diffs, and is the recommended way. The following command produces @file{lilypond-1.3.122.tar.gz} from -@file{lilypond-1.3.121} identical (up to compression dates) to the .122 on -the FTP site. +@file{lilypond-1.3.121} identical (up to compression dates) to the .122 +on the FTP site. @example xdelta patch lilypond-1.3.121-1.3.122.xd lilypond-1.3.121.tar.gz @end example +@end itemize -@section Prerequisites - -For compilation you need: - -@itemize @bullet -@item A GNU system: GNU LilyPond is known to run on these GNU systems: Linux - (PPC, intel), FreeBSD, AIX, NeXTStep, IRIX, Digital Unix and - Solaris. +@section Build requirements -@item Lots of disk space: LilyPond takes between 30 and 100 mb to -compile if you use debugging information. If you are short on -disk-space run configure with @code{--disable-debugging}. +This document describes how to build LilyPond on Unix platforms. It is +also known to run and compile on Windows NT/95/98 as well. More +information on this topic can be found at +@uref{http://appel.lilypond.org/lilypond/gnu-windows/, Jan's windows +page}. -@item -Although we recommend to use Unix, LilyPond is known to run on Windows -NT/95/98 as well. See Section Windows NT/95,es. +You need the following packages to compile Lilypond. -@item A reasonable C++ compiler: EGCS 1.1, GCC 2.95.2 or newer. Check out @uref{ftp://ftp.gnu.org/gnu/gcc/}. +@itemize +@item A reasonably new C++ compiler: EGCS 1.1, GCC 2.95.2 or +newer. Check out @uref{ftp://ftp.gnu.org/gnu/gcc/, the gcc site}. @item Python 1.5, -Check out @uref{ftp://ftp.python.org} or -@uref{ftp://ftp.cwi.nl/pub/python}. +Check out @uref{http://www.python.org, the python website}. @item GUILE 1.3.4 or newer, check out -@uref{http://www.gnu.org/software/guile/guile.html,http://www.gnu.org/software/guile/guile.html}. +@uref{http://www.gnu.org/software/guile/guile.html,the GUILE webpage}. Version 1.4 is recommended for better performance. @item GNU Make. Check out -@uref{ftp://ftp.gnu.org/gnu/make/,ftp://ftp.gnu.org/gnu/make/}. +@uref{ftp://ftp.gnu.org/gnu/make/, the GNU +make FTP directory}. @item Flex (version 2.5.4a or newer). -Check out @uref{ftp://ftp.gnu.org/pub/gnu/non-gnu/flex/,ftp://ftp.gnu.org/pub/gnu/non-gnu/flex/}. +Check out @uref{http://www.gnu.org/software/flex/,the Flex webpage}. @item Bison (version 1.25 or newer). -Check out @uref{ftp://ftp.gnu.org/gnu/bison/,ftp://ftp.gnu.org/gnu/bison/}. +Check out @uref{http://www.gnu.org/software/bison/,the bison webpage} + +@item TeX. -@item TeX. If you want LilyPond to use kpathsea support (recommended), -make sure you have tetex 1.0 or newer (1.0.6 is known to work). You may -need to install a tetex-devel or tetex-dev package too. +If you want LilyPond to use kpathsea support (recommended), make sure +you have tetex 1.0 or newer (1.0.6 is known to work). You may need to +install a tetex-devel or tetex-dev package too. -@item Texinfo (version 4.0 or newer). -Check out @uref{ftp://ftp.gnu.org/gnu/texinfo/,ftp://ftp.gnu.org/gnu/texinfo/}. -Most documentation is in texinfo. +@item Texinfo (version 4.0 or newer). +The documentation of lily is written in texinfo. Check out +@uref{ftp://ftp.gnu.org/gnu/texinfo/,the texinfo FTP directory}. @item The geometry package for LaTeX is needed to use ly2dvi. -Available at -@uref{ftp://ftp.ctan.org/tex-archive/macros/latex/contrib/supported/geometry,ftp://ftp.ctan.org/tex-archive/macros/latex/contrib/supported/geometry} -or at mirror site @uref{ftp://ftp.dante.de,ftp://ftp.dante.de} +It is available at +@uref{ftp://ftp.ctan.org/tex-archive/macros/latex/contrib/supported/geometry,the +FTP directory for @code{geometry}}. This package is normally included +with the @TeX{} distribution. @item MetaPost, needed for generating PostScript fonts. Please note that tetex-0.4pl8 (included with Red Hat 5.x) does not include @file{mfplain.mp}, which is needed for producing the scalable font files. -If you do not want to use PostScript output, edit @file{mf/GNUmakefile}, -removing the line saying @code{PFA_FILES=} +If you don't have MetaPost and don't want to use PostScript output, then +edit @file{mf/GNUmakefile}, removing the line saying @code{PFA_FILES=}. @item kpathsea, a library for searching (TeX) files. @code{kpathsea} is usually included with your installation of TeX. @end itemize -@section Running +@section Running requirements GNU LilyPond does use a lot of resources. For operation you need the following software @itemize @bullet @item TeX. -@item A PostScript printer and/or viewer (such as Ghostscript) is strongly - recommended. Xdvi will show all embedded PostScript too if you have - Ghostscript installed. -@item GUILE 1.3.4, or newer. Check out @uref{http://www.gnu.org/programs/guile.html,http://www.gnu.org/software/guile/} +@item Xdvi and ghostscript +@item GUILE 1.3.4, or newer. Check out +@uref{http://www.gnu.org/software/guile.html,the GUILE webpage} @end itemize For running LilyPond successfully you have to help TeX and MetaFont find various files. The recommended way of doing so is adjusting the environment variables in the start-up scripts of your shell. Appropriate -Csh and sh scripts are left in @file{buildscripts/out/lilypond-profile} -and @file{buildscripts/out/lilypond-login} after compilation. - -The empty path component represents TeX and MetaFont's default search -paths. Scripts with the proper paths for the bourne and C-shell -respectively are generated in @file{buildscripts/out/lilypond-profile} -and @file{buildscripts/out/lilypond-login} during compilation. +Csh and bourne sh scripts are left in +@file{buildscripts/out/lilypond-profile} and +@file{buildscripts/out/lilypond-login} after compilation. LilyPond is a big and slow program. A fast CPU and plenty of RAM is recommended for comfortable use. -@section Website - -The website is the most convenient form to use for reading the -documentation on-line documentation. It is made by entering +@section Website requirements +The documentation comes in the form of a website. You can view this +website on the internet, but you can also build it locally. This process +requires a successful compile of lilypond. The website is built +by issuing @example make web-doc @end example -This does require a functioning LilyPond. The executable doesn't have -to be installed, though. -If you want to auto-generate Lily's website, you'll need some additional -conversion tools. +Building the website requires some additional tools: @itemize @bullet -@item xpmtoppm (from the netpbm package: the Portable Bitmap Utilities) (For Red Hat Linux - users: it is included within the package libgr-progs). +@item xpmtoppm (from the netpbm package: the Portable Bitmap Utilities). The original is at -@uref{ftp://ftp.x.org/contrib/utilities/netpbm-1mar1994.p1.tar.gz,ftp://ftp.x.org/contrib/utilities/netpbm-1mar1994.p1.tar.gz} +@uref{ftp://ftp.x.org/contrib/utilities/netpbm-1mar1994.p1.tar.gz,the +netpbm FTP site} -@item pnmtopng (also in libgr-progs for Red Hat). The original is +@item pnmtopng. The original is at -@uref{ftp://swrinde.nde.swri.edu/pub/png/applications/pnmtopng-2.37.2.tar.gz,ftp://swrinde.nde.swri.edu/pub/png/applications/pnmtopng-2.37.2.tar.gz}.i - -The version of @file{pnmtopng} that is distributed with Red Hat 5.1 and -5.2 contains a bug: pnmtopng is dynamically linked to the wrong -version of libpng. +@uref{ftp://swrinde.nde.swri.edu/pub/png/applications/pnmtopng-2.37.2.tar.gz,in +the pnmtopng FTP site}. @item @uref{http://www.lri.fr/~filliatr/ftp/bibtex2html/, Bibtex2html}, or @uref{http://www.uni-koblenz.de/ag-ki/ftp/bib2html/, Bib2html}. @@ -162,107 +162,68 @@ see our hypertextified bibliography. @section Configuring and compiling -to install GNU LilyPond, simply type: +to install GNU LilyPond, type: @example gunzip -c lilypond-x.y.z | tar xf - cd lilypond-x.y.z - ./configure # fill in your standard prefix with --prefix + ./configure # run with --help to see appropriate options make make install + sh buildscripts/clean-fonts.sh @end example -This will install a number of files, something close to: - -@example - /usr/local/man/man1/midi2ly.1 - /usr/local/man/man1/abc2ly.1 - /usr/local/man/man1/etf2ly.1 - /usr/local/man/man1/convert-ly.1 - /usr/local/man/man1/lilypond-book.1 - /usr/local/man/man1/lilypond.1 - /usr/local/bin/lilypond - /usr/local/bin/midi2ly - /usr/local/bin/convert-ly - /usr/local/bin/lilypond-book - /usr/local/bin/abc2ly - /usr/local/bin/pmx2ly - /usr/local/bin/musedata2ly - /usr/local/bin/etf2ly - /usr/local/share/lilypond/* - /usr/local/share/locale/@{....@}/LC_MESSAGES/lilypond.mo -@end example +If you are doing an upgrade, you should remove all @file{feta} +@code{.pk} and @file{.tfm} files. A script has been provided to do the +work for you, see @file{buildscripts/clean-fonts.sh}. -The above assumes that you are root and have the GNU development -tools, and your make is GNU make. If this is not the case, you can -adjust your environment variables to your taste: - +If you are not root, you should choose a @code{--prefix} argument that +points into your home directory, eg. @example - export CPPFLAGS="-I /home/me/my_include -DWEIRD_FOOBAR" - ./configure + ./configure --prefix=$HOME/usr @end example -@code{CPPFLAGS} are the preprocessor flags. +In this case, you have to insert the contents of +@code{buildscripts/out/lilypond-login} or +@code{buildscripts/out/lilypond-profile} into your start up scripts by +hand. -The configure script is Cygnus configure, and it will accept -@code{--help}. If you are not root, you will probably have to make it -with a different @code{--prefix} option. Our favourite location is + +@section Configuring for multiple platforms + +If you want to build multiple versions of LilyPond with different +configuration settings, you can use the @code{--enable-config=CONF} +option of configure. You should use @samp{make conf=CONF} to generate +the output in @file{out-CONF}. Example: suppose I want to build with +and without profiling. Then I'd use the following for the normal build, @example - ./configure --prefix=$HOME/usr - + ./configure --prefix=~ --enable-checking + make + make install @end example -In this case, you will have to set up MFINPUTS, and TEXINPUTS accordingly. - -Since GNU LilyPond currently is beta, you are advised to also use +and for the profiling version, I specify a different configuration. @example - --enable-debugging - --enable-checking - -@end example - -Options to configure include: + ./configure --prefix=~ --enable-profiling --enable-config=prof --disable-checking + make conf=prof + make conf=prof install -@table @samp -@item @code{--enable-printing} - Enable debugging print routines (lilypond @code{-D} option) -@item @code{--enable-optimise} - Set maximum optimisation: compile with @code{-O2}. This can be -unreliable on some compiler/platform combinations (eg, DEC Alpha and PPC) -@item @code{--enable-profiling} - Compile with support for profiling. -@item @code{--enable-config=CONF} - Output to different configuration files. Enables different binary - builds alongside eachother, eg, multi-configuration (debugging, - profiling), or multi-platform builds. Use `make conf=CONF' to - build for a specific configuration. -@end table +@end example -All options are documented in the @file{configure} help -The option @code{--enable-optimise} is recommended for Real Life usage. -If you do -@example - make all - -@end example -everything will be compiled, but nothing will be installed. The -resulting binaries can be found in the subdirectories @file{out/} (which -contain all files generated during compilation). @section Emacs mode - An emacs mode for LilyPond is included with the source archive as @file{lilypond-mode.el} and @file{lilypond-font-lock.el}. If you have an RPM, it is in @file{/usr/share/doc/lilypond-X/}. You have to install @@ -276,61 +237,18 @@ Add this to your ~/.emacs or ~/.emacs.el: (add-hook 'LilyPond-mode-hook (lambda () (turn-on-font-lock))) @end example -If you have the latest LilyPond-1.3.x Debian package, LilyPond-mode -is automatically loaded, so you need not modify your ~/.emacs file. - - -@section Configuring for multiple platforms - -If you want to build multiple versions of LilyPond with different -configuration settings, you can use the @code{--enable-config=CONF} -option. You should use @samp{make conf=CONF} to generate the output in -@file{out-CONF}. Example: suppose I want to build with and without -profiling. Then I'd use the following for the normal build, - -@example - - ./configure --prefix=~ --disable-optimise --enable-checking - make - make install - -@end example - -and for the profiling version, I specify a different configuration. - -@example - - ./configure --prefix=~ --enable-profiling --enable-config=prof --enable-optimise --disable-checking - make conf=prof - make conf=prof install - -@end example - - -@section Installing - -if you have done a successful @code{make}, then a simple - -@example - - make install - -@end example - -should do the trick. - -If you are doing an upgrade, please remember to remove obsolete -@file{.pk} and @file{.tfm} files of the fonts. A script has been -provided to do the work for you, see @file{bin/clean-fonts.sh}. +If you have the latest LilyPond-1.3.x Debian package, LilyPond-mode is +automatically loaded, so you need not modify your @code{~/.emacs} file. @section Red Hat Linux -Red Hat Linux users can compile an RPM. A spec file is in -@file{make/out/lilypond.spec}; it is distributed along with the -sources. +Red Hat 7.0 i386 RPMS are available from +@uref{ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/RedHat/}. -You can make the rpm by issuing +You can also compile them yourself. A spec file is in +@file{make/out/lilypond.spec}. This file is distributed along with the +sources. You can make the rpm by issuing @example rpm -tb lilypond-x.y.z.tar.gz @@ -338,20 +256,12 @@ You can make the rpm by issuing @end example -Precompiled Red Hat 7.0 i386 RPMS are available from -@uref{ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/RedHat/}. +For running on a Red Hat system you need these packages: guile, tetex, +tetex-dvips, libstdc++, python, ghostscript. -For compilation on a Red Hat system you need these packages, -in addition to the those needed for running: -@itemize @bullet -@item glibc-devel -@item libstdc++-devel -@item guile-devel -@item flex -@item bison -@item texinfo -@item tetex-devel -@end itemize +For compilation on a Red Hat system you need these packages, in addition +to the those needed for running: glibc-devel, gcc-c++, libstdc++-devel, +guile-devel, flex, bison, texinfo, tetex-devel, groff, libgr-progs. @section SuSE @@ -360,6 +270,10 @@ in addition to the those needed for running: Install @code{tetex}, @code{te_mpost}, @code{te_kpath}. +@section Mandrake + +[TODO] + @section Debian GNU/Linux A Debian package is also available. You may install it easily by using @@ -444,80 +358,15 @@ interfere with your build, you may want to do this before the build too: @end example -@section Windows NT/95 - -Separate instructions on building for W32 are available; See the files -in @file{Documentation/ntweb/}, included with the sources. @section Problems For help and questions use @email{help-gnu-music@@gnu.org} and @email{gnu-music-discuss@@gnu.org}. Please consult the faq before -mailing your problems. - -If you find bugs, please send bug reports to +mailing your problems. If you find bugs, please send bug reports to @email{bug-gnu-music@@gnu.org}. -Bugs that are LilyPond's fault are listed in our TODO list on the -web, or demonstrated in @file{input/bugs/}. - -Bugs that are not LilyPond's fault are documented here. - - -@unnumbered LinuxPPC Bugs: - -@itemize @bullet -@item egcs-1.1.2-12c (stock LinuxPPC R5) has a serious bug, upgrade to -fixed in egcs-1.1.2-12f or gcc-2.95-0a, @uref{ftp://dev.linuxppc.org/users/fsirl/R5/RPMS/ppc/} - -@item egcs-1.0.2 (LinuxPPC R4): -all compiling with @code{-O2} is suspect, in particular guile-1.3, and -Lily herself will break. -@end itemize - - - -@unnumbered Linux-i386 - -@itemize @bullet -@item SuSE6.2 and similar platforms (glibc 2.1, libstdc++ 2.9.0) - -Lily will crash during parsing (which suggests a C++ library -incompatibility). Precise cause, precise platform description or -solution are not known. - -Note that this only happens on some computers with the said platform. - -@item libg++ 2.7 - -LilyPond occasionally crashes while parsing the initialisation files. -This is a very obscure bug, and usually entering the commandline -differently "fixes" it. - -@example - lilypond input.ly -@end example - -and -@example - lilypond -I. ./input.ly -@end example -makes a difference - -Typical stacktrace: -@example - SIGSEGV - __libc_malloc (bytes=16384) - ?? () - yyFlexLexer::yy_create_buffer () - Includable_lexer::new_input (this=0x8209a00, s=@{strh_ = @{ -@end example - -This behaviour has been observed with machines that have old libg++ -versions (LinuxPPC feb '98, Red Hat 4.x). -@end itemize - - +Bugs that are not fault of LilyPond are documented here. @unnumbered Solaris: diff --git a/Documentation/topdocs/README.texi b/Documentation/topdocs/README.texi index 5c0af13b71..c10fa8db2a 100644 --- a/Documentation/topdocs/README.texi +++ b/Documentation/topdocs/README.texi @@ -26,7 +26,8 @@ problem with it, upgrade to the latest 1.3.x release. @section Requirements For the compilation and running of LilyPond you need some additional -packages. Please refer to the installation instructions. +packages. Please refer to the installation instructions in +@file{INSTALL.txt}. NOTE: If you downloaded a binary (.rpm or a W95/NT .zip file), you don't have to compile LilyPond. @@ -38,50 +39,47 @@ in the toplevel directory, as INSTALL.txt @section Documentation -The real documentation is the directory Documentation/ - -If you want to read the documentation online, these are options: +The documentation is available online at +@uref{http://www.cs.uu.nl/~hanwen/lilypond/index.html}. You can also +build it locally. This does require a working LilyPond binary. The +following formats are supported: @itemize @bullet -@item use HTML. Refer to INSTALL.txt for information +@item HTML. Refer to INSTALL.txt for information on how to make the HTML documentation. -@item use HTML. Point your browser to -@uref{http://www.cs.uu.nl/~hanwen/lilypond/index.html}. -@item use @file{.dvi}, for the tutorial and reference manual. Do - +@item @file{.dvi}, for the tutorial and reference manual. Do @example - make -C Documentation/user/ dvi -@end example -You need a working LilyPond binary to create the DVI and HTML sources. + make -C Documentation/user/ dvi -@item use ASCII. Do -using @example - make doc @end example +The printable documentation is left in @file{Documentation/user/out/}. + +@item paper. Create the .dvi documentation, and print it with dvips. @end itemize @section Comments -LilyPond is a long way from finished and polished. We do appreciate -criticism, comments, bugreports, patches, etc., but please, -@example +LilyPond is a long way from finished and polished, so we please send +your criticism, comments, bugreports, patches, etc., to the mailing +list. and @emph{not} to us personally. - Please send your e-mail to one of the MAILING LISTS - -@end example - -and @emph{not} to us personally. We have the following mailing lists: +We have the following mailing lists: @itemize @bullet @item @uref{http://mail.gnu.org/mailman/listinfo/info-gnu-music,info-gnu-music@@gnu.org} is a low-volume list for information on the GNU Music project. This list is moderated; ask @email{drl@@gnu.org, David R. Linn} or - @email{hanwen@@cs.uu.nl, Han-Wen} to send announcements for this list. + @email{hanwen@@cs.uu.nl, Han-Wen} to send announcements for this +list. +@item +@uref{http://mail.gnu.org/mailman/listinfo/gnu-music-discuss,gnu-music-discuss@@gnu.org} + For general discussions concerning LilyPond. + @item @uref{http://mail.gnu.org/mailman/listinfo/help-gnu-music,help-gnu-music@@gnu.org} For help with using LilyPond. @item @uref{http://mail.gnu.org/mailman/listinfo/bug-gnu-music,bug-gnu-music@@gnu.org} @@ -96,9 +94,6 @@ If you have received this file as part of a DOS/Window32 distribution source package, since it might contain more documentation @uref{ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/} -If you decide to build LilyPond from source, please read the INSTALL.txt -document first, especially the Windows NT/95 section. - @section Caveats If you have installed a previous version, be sure to remove old font diff --git a/Documentation/topdocs/index.tely b/Documentation/topdocs/index.tely index 3a0d9429d1..3b31902770 100644 --- a/Documentation/topdocs/index.tely +++ b/Documentation/topdocs/index.tely @@ -1,4 +1,4 @@ -\input texinfo @c -*-texinfo-*- +i\input texinfo @c -*-texinfo-*- @setfilename index.info @settitle LilyPond homepage @@ -10,9 +10,6 @@ [logo] @end html -@c @unnumberedsec LilyPond -- The GNU Project Music Typesetter - -@c something breaks on 3.12 f @unnumberedsec What is LilyPond? @@ -29,21 +26,19 @@ The input to LilyPond is plain text. So, you can use your favorite text editor to enter it, you can put it in mail or embed it in an article like this: -@quotation + @lilypond[fragment,verbatim] \relative c'' { \key c \minor; r8 c16 b c8 g as c16 b c8 d | g,4 } @end lilypond -@end quotation The output looks very good: the font and the layout algorithms were inspired by engraved music, so you can expect that same clear and elegant look from your LilyPond output. And if you don't like the looks, you can tweak almost everything. -The program also has limited MIDI functionality: you can write MIDI files with -lilypond, and we have a simple MIDI to lilypond conversion tool, -@file{midi2ly}. Conversion tools for PMX, MUP, ABC, Finale and Musedata are -also included. +The program also has limited MIDI functionality: you can write MIDI +files with lilypond. You can also import files in PMX, MUP, MIDI, ABC, +Finale and Musedata format. LilyPond is free software. It is licensed under GNU General Public License, so you can use, modify and redistribute the program with diff --git a/Documentation/user/glossary.tely b/Documentation/user/glossary.tely index d10a4d3a53..604aa0f67a 100644 --- a/Documentation/user/glossary.tely +++ b/Documentation/user/glossary.tely @@ -7,8 +7,16 @@ @c @evenheading @thispage @| @| @c @oddheading @| @| @thispage @| -@itemize +@ignore + glossary by Christian Mondrup + + spanish by David González + +@end ignore + +@itemize +@item ES - Spanish @item I - Italian @item F - French @item D - German @@ -38,15 +46,16 @@ A reference is indicated by @ar{} followed by the term in @strong{boldface}. @table @strong @item A -I: la, F: la, D: A, a, NL: a, DK: a, S: a, N: a. +ES: la +: la, F: la, D: A, a, NL: a, DK: a, S: a, N: a. @item accent -I: accento, F: accent, D: Akzent, NL: accent, DK: accent, S: accent, N: +ES: acento, I: accento, F: accent, D: Akzent, NL: accent, DK: accent, S: accent, N: The stress of one tone over others. @item accidental -I: alterazione, accidente, F: alt@'eration accidentelle, D: Vorzeichen, +ES: alteración, I: alterazione, accidente, F: alt@'eration accidentelle, D: Vorzeichen, Versetzungszeichen, NL: voorteken, DK: l@o{}st fortegn, S: tillf@"alligt f@"ortecken, N: @@ -71,15 +80,15 @@ accidental. g!1_"natural" s2 } @end lilypond -@item accelerando -I: accelerando, F: accelerando, en acc@'el@'erant, D: accelerando, Schneller, +@item accelerando +ES: acelerando, I: accelerando, F: accelerando, en acc@'el@'erant, D: accelerando, Schneller, NL: accelerando, DK: accelerando, S: accelerando, N: Still faster tempo. @item adagio -I: adagio, F: adagio, lent, D: Adagio, Langsam, NL: adagio, DK: adagio, S: +ES: adagio, I: adagio, F: adagio, lent, D: Adagio, Langsam, NL: adagio, DK: adagio, S: adagio, N: adagio. It. comfortable, easy. 1. Slow tempo, slower - especially in even meter - than @@ -88,14 +97,14 @@ movement in slow tempo, esepecially the scond (slow) movement of @w{@ar{}@strong{sonata}s}, symphonies etc. @item allegro -I: allegro, F: allegro, D: Allegro, Schnell, Fr@"ohlich, Lustig, NL: allegro, +ES: allegro, I: allegro, F: allegro, D: Allegro, Schnell, Fr@"ohlich, Lustig, NL: allegro, DK: allegro, S: allegro, N: allegro. It. cheerful. Quick tempo. Also used as a title for pieces in a quick tempo, especially the first and last movements of a @w{@ar{}@strong{sonata}}. @item alto -I: contralto, F: alto, D: Alt, NL: alt, DK: alt, S: alt, N: alt. +ES: alto, I: contralto, F: alto, D: Alt, NL: alt, DK: alt, S: alt, N: alt. A female voice of low range (@emph{contralto}). Originally the alto was a high male voice (hence the name) which by the use of falsetto reached the height of @@ -103,7 +112,7 @@ the female voice. This type of voice is also known as @w{@ar{}@strong{counter tenor}}. @item alto clef -I: chiave di contralto, F: clef d'ut troisi@`eme ligne, D: Altschl@"ussel, +ES: clave de do en tercera, I: chiave di contralto, F: clef d'ut troisi@`eme ligne, D: Altschl@"ussel, Bratschenschl@"ussel, NL: alt sleutel, DK: altn@o{}gle, S: altklav, N: C clef setting central C on the middle line of the staff @@ -122,13 +131,13 @@ a1 b c d e f g a } @end lilypond @item andante -I: andante, F: andante, D: Andante, NL: andante, DK: andante, S: andante, +ES: andante, I: andante, F: andante, D: Andante, NL: andante, DK: andante, S: andante, N: andante. walking tempo/character -@item appoggiatura -I: appoggiatura, F: appogiature, (port de voix), D: Vorschlag, NL: voorslag, +@item appoggiatura +ES: apoyatura, I: appoggiatura, F: appogiature, (port de voix), D: Vorschlag, NL: voorslag, DK: forslag, S: f@"orslag, N: Ornamental note, usually a second, that is melodically connected with the main @@ -178,7 +187,7 @@ An appoggiatura may have more notes preceding the main note. @end lilypond @item arpeggio -I: arpeggio, F: arp@`ege, D: Arpeggio, Akkordbrechungen, gebrochener +ES: arpegio, I: arpeggio, F: arp@`ege, D: Arpeggio, Akkordbrechungen, gebrochener Akkord, NL: gebroken akoord, DK: arpeggio, akkordbrydning, S: arpeggio, N: @ @@ -204,13 +213,13 @@ Akkord, NL: gebroken akoord, DK: arpeggio, akkordbrydning, S: arpeggio, N: @end lilypond @item ascending interval -I: intervallo ascendente, F: intervalle ascendant, D: steigendes Intervall, +ES: Intervalo ascendente, I: intervallo ascendente, F: intervalle ascendant, D: steigendes Intervall, NL: stijgend interval, DK:@w{ }stigende interval, S: stigande intervall, N: A distance between a starting lower note and a higher ending note. @item augmented interval -I: intervallo aumentato, F: intervalle augment@'e, D: @"uberm@"a@ss{}iges +ES: intervalo aumentado, I: intervallo aumentato, F: intervalle augment@'e, D: @"uberm@"a@ss{}iges Intervall, NL: overmatig interval, DK: forst@o{}rret interval, S: @"overstigande intervall, N: @@ -226,26 +235,27 @@ straightedge ruler and T-square, which attempts to emulate engraving. This required more skill than did engraving. @item B -I: si, F: si, D: H, h, NL: b, DK: h, S: h, N: h. +ES: si, I: si, F: si, D: H, h, NL: b, DK: h, S: h, N: h. @item backfall; forefall @w{@ar{}@strong{appoggiatura}} @item bar line -I: stanghetta, barra (di divisione), F: barre (de mesure), D: Taktstrich, NL: +ES: , I: stanghetta, barra (di divisione), F: barre (de mesure), D: Taktstrich, NL: maatstreep, DK: taktstreg, S: taktstreck, N: @item bar -@w{@ar{}@strong{measure}} +ES: compás, @w{@ar{}@strong{measure}} @item baritone -I: baritono, F: bariton, D: Bariton, NL: bariton, DK: baryton, S: baryton, N: +ES: barítono, I: baritono, F: bariton, D: Bariton, NL: bariton, DK: baryton, S: baryton, N: baryton. The male voice intermediate between the @w{@ar{}@strong{bass}} and the @w{@ar{}@strong{tenor}}. @item baritone clef +ES: clave de fa en tercera I: chiave di baritono, F: clef de ut cinqui@`eme ligne, clef de troisi@`eme ligne, D: Barytonschl@"ussel, NL: baritonsleutel, DK: barytonn@o{}gle, S: barytonklav, N: . @@ -254,7 +264,7 @@ C or F clef setting central C on the upper staff line. @w{@ar{}@strong{c clef}} @w{@ar{}@strong{f clef}} @item bass clef -I: chiave di basso, F: cl@'e de fa quatri@`eme ligne, D: Bass-Schl@"ussel, NL: +ES: clave de fa en cuarta, I: chiave di basso, F: cl@'e de fa quatri@`eme ligne, D: Bass-Schl@"ussel, NL: bassleutel, DK: basn@o{}gle, S: basklav, N: A clef setting with central C on the first top ledger line. @w{@ar{}@strong{f @@ -286,7 +296,7 @@ beams determine the note value of the connected notes. @end lilypond @item beat -I: tempi, F: temps, D: Taktschlag, Zeit (im Takt), NL: tel, DK: (takt)slag, S: +ES: tiempo, I: tempi, F: temps, D: Taktschlag, Zeit (im Takt), NL: tel, DK: (takt)slag, S: taktslag, N: Note value used for counting, most often half-, fourth- and eighth notes. The @@ -307,6 +317,7 @@ start of the music. @w{@ar{}@strong{tie}} @item brace +ES: llave, corchete I: graffa, F: accolade, D: Klammer, Klavierklammer, Akkolade, Chorklammer, NL: accolade, teksthaak, DK: klamme, S: klammer, N: @@ -328,7 +339,7 @@ orchestral or choral score. @end lilypond @item brass -I: ottoni, D: Blechbl@"aser, NL: koper (blazers), F: cuivres, +ES: metales, I: ottoni, D: Blechbl@"aser, NL: koper (blazers), F: cuivres, DK: messingbl@ae{}sere, S: brassinstrument, m@"assingsinstrument, N: A family of blown musical instruments made of brass all using a cup formed @@ -343,7 +354,7 @@ vejrtr@ae{}kningstegn, S: andningstecken, N: . Indication of where to breathe in vocal and wind instrument parts. @item breve -I: breve, F: br@`eve, D: Brevis, NL: brevis, DK: brevis, S: brevis, N: +ES: breve, I: breve, F: br@`eve, D: Brevis, NL: brevis, DK: brevis, S: brevis, N: @w{@ar{}@strong{Note value}} twice as long as a whole note. Mainly used in pre-1650 music. @@ -356,10 +367,10 @@ in pre-1650 music. @end lilypond @item C -I: do, F: ut, D: C, c, NL: c, DK: c, S: c, N: c +ES: do, I: do, F: ut, D: C, c, NL: c, DK: c, S: c, N: c @item C clef -I: chiave di do, F: cl@'e d'ut, D: C-Schl@"ussel, NL: C-sleutel, DK: +ES: Clave de do, I: chiave di do, F: cl@'e d'ut, D: C-Schl@"ussel, NL: C-sleutel, DK: c-n@o{}gle, S: c-klav, N: Clef symbol indicating the position of the central C. Used on all note @@ -384,13 +395,13 @@ lines. } @end lilypond -@item cadence -I: cadenza, F: cadence, D: Kadenz, NL: cadens, DK: kadence, S: kadens, N: . +@item cadence +ES: cadencia, I: cadenza, F: cadence, D: Kadenz, NL: cadens, DK: kadence, S: kadens, N: . @w{@ar{}@strong{harmonic cadence}} @w{@ar{}@strong{functional harmony}} @item cadenza -I: cadenza, F: cadence, D: Kadenz, NL: cadens, DK: kadence, S: kadens, N: . +ES: cadenza, I: cadenza, F: cadence, D: Kadenz, NL: cadens, DK: kadence, S: kadens, N: . An extended, improvisatory style section inserted near the end of movement. The purpose of a cadenza is to give the singer or player a chance to @@ -399,12 +410,12 @@ the middle of the 19'th century, however, most cadences have been written down by the composer. @item canon -I: canone, F: canon, D: Kanon, NL: canon, DK: kanon, S: kanon, N: . +ES: canon, I: canone, F: canon, D: Kanon, NL: canon, DK: kanon, S: kanon, N: . @w{@ar{}@strong{counterpoint}} @item cent -I: cent, F: cent, D: Cent, NL: cent, DK: cent, S: cent, N: . +ES: cent, I: cent, F: cent, D: Cent, NL: cent, DK: cent, S: cent, N: . Logarithmic unit of measurement. 1 cent is 1/1200 of an octave (1/100 of an equally tempered @w{@ar{}@strong{semitone}}) @w{@ar{}@strong{equal temperament}} @@ -413,7 +424,7 @@ equally tempered @w{@ar{}@strong{semitone}}) @w{@ar{}@strong{equal temperament}} @w{@ar{}@strong{middle C}} @item chord -I: accordo, F: accord, D: Akkord, NL: akkoord, DK: akkord, S: ackord, N: . +ES: acorde, I: accordo, F: accord, D: Akkord, NL: akkoord, DK: akkord, S: ackord, N: . Three or more tones sounding simultaneously. In traditional European music the base chord is a @emph{triad} consisting of 2 thirds. @emph{Major} (major + @@ -442,7 +453,7 @@ chords are denoted open chords @end lilypond @item chromatic scale -I: scala cromatica, F: gamme chromatique, D: Chromatische Tonleiter, NL: +ES: escala cromática, I: scala cromatica, F: gamme chromatique, D: Chromatische Tonleiter, NL: chromatische toonladder, DK: kromatisk skala, S: kromatisk skala, N: . A scale consisting of all 11 @w{@ar{}@strong{semitone}}s. @@ -455,19 +466,19 @@ A scale consisting of all 11 @w{@ar{}@strong{semitone}}s. @end lilypond @item chromaticism -I: cromatismo, F: chromatisme, D: Chromatik, NL: chromatiek, DK: kromatik, S: +ES: cromatismo, I: cromatismo, F: chromatisme, D: Chromatik, NL: chromatiek, DK: kromatik, S: kromatik, N: Use of tones extraneous to a @w{@ar{}@strong{diatonic scale}} (minor, major). -@item church mode; ecclesiastical mode -I: modo ecclesiastico, F: mode eccl@'esiastique, D: Kirchentonart, NL: +@item church mode; ecclesiastical mode ES: modo eclesiástico, I: modo +ecclesiastico, F: mode eccl@'esiastique, D: Kirchentonart, NL: kerktoonladder, DK: kirketoneart, S: kyrkotonart, N: @w{@ar{}@strong{diatonic scale}} @item clef -I: chiave, F: cl@'e, clef, D: Schl@"ussel, Schl@"ussel, Notenschl@"ussel, NL: +ES: clave, I: chiave, F: cl@'e, clef, D: Schl@"ussel, Schl@"ussel, Notenschl@"ussel, NL: sleutel, DK: n@o{}gle, S: klav, N: @w{@ar{}@strong{c clef}} @w{@ar{}@strong{f clef}} @w{@ar{}@strong{g clef}} @@ -482,7 +493,7 @@ derived from some other tuning method. @w{@ar{}@strong{temperament}} @w{@ar{}@strong{meter}} @item compound interval -I: intervallo composto, F: intervalle compos@'e, D: Weites Intervall(?), NL: +ES: intervalo compuesto, I: intervallo composto, F: intervalle compos@'e, D: Weites Intervall(?), NL: samengesteld interval, DK: sammensat interval, S: sammansatt intervall, N: . Intervals larger than an octave @@ -497,7 +508,7 @@ komplement@"arintervall (?), N: @w{@ar{}@strong{inverted interval}} @item conjunct movement -I: moto congiunto, F: mouvement conjoint, D: schrittweise/stufenweise +ES: movimiento conjunto, I: moto congiunto, F: mouvement conjoint, D: schrittweise/stufenweise Bewegung, NL: , DK: trinvis bev@ae{}gelse, S: stegvis r@"orelse, N: Melody moving in the narrow steps of the scale; @@ -509,19 +520,19 @@ Melody moving in the narrow steps of the scale; \notes\relative c'' { g4 g g a | b2 a | g4 b a a | g1 \bar "||"; } @end lilypond -@item consonance -I: consonanza, F: consonance, D: Konsonanz, NL: consonant, DK: konsonans, S: +@item consonance +ES: consonancia, I: consonanza, F: consonance, D: Konsonanz, NL: consonant, DK: konsonans, S: konsonans, N: @w{@ar{}@strong{harmony}} @item contralto -I: contralto, F: contralto, D: Alt, NL: contralto, DK: alt, S: alt, N: +ES: contralto, I: contralto, F: contralto, D: Alt, NL: contralto, DK: alt, S: alt, N: @w{@ar{}@strong{alto}} -@item counterpoint -I: contrappunto, F: contrepoint, D: Kontrapunkt, NL: contrapunt, DK: +@item counterpoint +ES: contrapunto, I: contrappunto, F: contrepoint, D: Kontrapunkt, NL: contrapunt, DK: kontrapunkt, S: kontrapunkt, N: . From latin @emph{punctus contra punctum}, note against note. The combination @@ -572,7 +583,7 @@ composition methods. @end lilypond @item counter tenor -I: controtenore, F: contre-tenor, D: Kontratenor, NL: contratenor, DK: +ES: contratenor, I: controtenore, F: contre-tenor, D: Kontratenor, NL: contratenor, DK: kontratenor, S: kontratenor, counter tenor, N: kontratenor @w{@ar{}@strong{contralto}} @@ -585,7 +596,7 @@ methods were superior and could well be adopted by music typesetters. This required more skill than engraving. @item crescendo -I: crescendo, F: crescendo, D: Crescendo, Lauter, NL: crescendo, DK: +ES: crescendo, I: crescendo, F: crescendo, D: Crescendo, Lauter, NL: crescendo, DK: crescendo, S: crescendo, N:@w{ }crescendo. Increasing volume. Indicated by a rightwards opening horizontal wedge or the @@ -599,24 +610,24 @@ abbreviation "cresc.". @end lilypond @item cue-notes -I: notine, F: petites notes pr@'ec@'edent l'entr@'ee d'in instrument, +ES: notas guia, I: notine, F: petites notes pr@'ec@'edent l'entr@'ee d'in instrument, r@'eplique, D: Stichnoten, NL: stichnoten, DK: stiknoder, S: inprickningar, N: In a separate part notes belonging to another part with the purpose of hinting when to start playing. Usually printed in a smaller type. @item D -I: re, F: r@'e, D: D, d, NL: d, DK: d, S: d, N: d +ES: Re, I: re, F: r@'e, D: D, d, NL: d, DK: d, S: d, N: d -@item da capo -I: da capo, F: da capo, depuis le commencement, D: da capo, von Anfang, NL: da +@item da capo +ES: da capo, I: da capo, F: da capo, depuis le commencement, D: da capo, von Anfang, NL: da capo, DK: da capo, S: da capo, N: . The term indicates repetition of the piece from the beginning to the end or to a certain place marked @emph{fine}. Mostly abbreviated D.C. @item dal segno -I: dal segno, F: dal segno, depuis le signe, D: dal segno, NL: dal segno, DK: +ES: dal segno, I: dal segno, F: dal segno, depuis le signe, D: dal segno, NL: dal segno, DK: dal segno, S: dal segno, N: . abbreviated d.s. Repetition, not from the beginning, but from another place @@ -631,7 +642,7 @@ frequently near the beginning marked by a sign: @end lilypond @item decrescendo -I: decrescendo, D: Decrescendo, Leiser, NL: decrescendo, DK: decrescendo, S: +ES: decrescendo, I: decrescendo, D: Decrescendo, Leiser, NL: decrescendo, DK: decrescendo, S: decrescendo, N: decrescendo Decreasing tone volume. Indicated by a leftwards opening horizontal wedge @@ -645,14 +656,14 @@ or the abbreviation "decresc.". @end lilypond @item descending interval -I: intervallo discendente, F: intervalle descendant, D: fallendes Intervall, +ES: intervalo descendente, I: intervallo discendente, F: intervalle descendant, D: fallendes Intervall, absteigendes Intervall, NL: dalend interval, DK:@w{ }faldende interval, S: fallande intervall, N: An distance between a starting higher note and a lower ending note. @item diatonic scale -I: scala diatonica, F: gamme diatonique, D: diatonische Tonleiter, NL: +ES: escala diatónica, I: scala diatonica, F: gamme diatonique, D: diatonische Tonleiter, NL: diatonische toonladder, DK: diatonisk skala, S: diatonisk skala, N: A scale consisting of 5 @w{@ar{}@strong{whole tones}} and 2 @@ -830,20 +841,20 @@ harmonic minor scale type an augmented second (A) occurs between the 6th and @end lilypond @item diminished interval -I: intervallo diminuito, F: intervalle diminu@'e, D: vermindertes Intervall, +ES: intervalo disminuído, I: intervallo diminuito, F: intervalle diminu@'e, D: vermindertes Intervall, NL: verminderd interval, DK: formindsket interval, S: f@"orminskat intervall, N: . @w{@ar{}@strong{interval}} @item diminuendo -I: diminuendo, F: diminuendo, D: Diminuendo, NL: diminuendo, DK: diminuendo, +ES: diminuendo, I: diminuendo, F: diminuendo, D: Diminuendo, NL: diminuendo, DK: diminuendo, S:@w{ }diminuendo, N:@w{ }diminuendo. @w{@ar{}@strong{decrescendo}} @item disjunct movement -I: moto disgiunto, F: mouvement disjoint, D: +ES: movimiendo disjunto, I: moto disgiunto, F: mouvement disjoint, D: sprunghafte Bewegung, NL: , DK: springende bev@ae{}gelse, S: hoppande r@"orelse, N: @@ -861,6 +872,7 @@ scale. Opposite of @ar{}@strong{conjunct movement}. @end lilypond @item dissonant interval; dissonance +ES: intervalo disonante, disonancias, I: intervallo dissonante, dissonanza, F: dissonance, D: Dissonanz, NL: dissonant interval; dissonant, DK: dissonerende interval, dissonans, S: dissonans, N: . @@ -875,38 +887,38 @@ dominantnoneakkord, S: dominantnonackord, N: . @w{@ar{}@strong{chord}} @w{@ar{}@strong{functional harmony}} @item dominant seventh chord -I: accordo di settima di dominante, F: accord de septi@`eme dominante, D: +ES: acorde de séptima de dominante, I: accordo di settima di dominante, F: accord de septi@`eme dominante, D: Dominantseptakkord, NL: dominant septiem akkoord, DK: dominantseptimakkord, S: dominantseptimackord, N: @w{@w{@ar{}@strong{chord}} @ar{}@strong{functional harmony}} @item dominant -I: dominante, F: dominante, D: Dominante, NL: dominant, DK: dominant, S: +ES: dominante, I: dominante, F: dominante, D: Dominante, NL: dominant, DK: dominant, S: dominant, N: . The fifth @w{@ar{}@strong{scale degree}} @w{@ar{}@strong{functional harmony}} @item dorian mode -I: modo dorico, F: mode dorien, D: Dorischer Kirchenton, NL: dorische +ES: modo dórico, I: modo dorico, F: mode dorien, D: Dorischer Kirchenton, NL: dorische toonladder, dorischer Kirchenton, DK: dorisk skala, S: dorisk tonart, N: @w{@ar{}@strong{diatonic scale}} @item dot (augmentation dot) -I: punto (di valore), F: point, D: Punkt (Verl@"angerungspunkt), NL: punt, DK: +ES: puntillo, I: punto (di valore), F: point, D: Punkt (Verl@"angerungspunkt), NL: punt, DK: punkt, S: punkt, N: @w{@ar{}@strong{dotted note}} @item dotted note -I: nota puntata, F: note point@'ee, D: punktierte Note, NL: gepuncteerde noot, +ES: nota con puntillo, I: nota puntata, F: note point@'ee, D: punktierte Note, NL: gepuncteerde noot, DK: punkteret node, S: punkterad not, N: @w{@ar{}@strong{note value}} @item double appoggiatura -I: appoggiatura doppia, F: appoggiature double, D: doppelter Vorschlag, NL: +ES: apoyatura doble, I: appoggiatura doppia, F: appoggiature double, D: doppelter Vorschlag, NL: dubbele voorslag, DK: dobbelt forslag, S: dubbelslag, N: @w{@ar{}@strong{appoggiatura}} @@ -918,44 +930,44 @@ dobbeltstreg, S: dubbelstreck, N: . Indicates the end of a section within a movement. @item double dotted note -I: nota doppiamente puntata, F: note doublement point@'ee, D: +ES: nota con dos puntillos, I: nota doppiamente puntata, F: note doublement point@'ee, D: doppel-punktierte Note, NL: dubbelgepuncteerde noot, DK: dob@-belt@-punk@-te@-ret node, S: dub@-bel@-punk@-te@-rad not, N: . @w{@ar{}@strong{note value}} @item double flat - +ES: doble bemol, I: doppio bemolle, F: double b@'emol, D: Doppel-B, NL: dubbelmol, DK:@w{ }dob@-belt-b, S: dubbelbe, N: . @w{@ar{}@strong{accidental}} @item double sharp -I: doppio diesis, F: double di@`ese, D: Doppelkreuz, NL: dubbelkruis, +ES: doble sostenido, I: doppio diesis, F: double di@`ese, D: Doppelkreuz, NL: dubbelkruis, DK:@w{ }dob@-belt@-kryds, S: dubbelkors, N: . @w{@ar{}@strong{accidental}} @item double trill -I: doppio trillo, F: trille double, D: Doppeltriller, NL: dubbele triller, DK: +ES: trino doble, I: doppio trillo, F: trille double, D: Doppeltriller, NL: dubbele triller, DK: dobbelttrille, S: dubbeldrill, N: . A simultaneous trill on two notes, usually in the distance of a third. @item duple meter -I: tempo binario, F: temps binaire, D: zweiteiliger Takt, NL: tweedelige +ES: tiempo binario, I: tempo binario, F: temps binaire, D: zweiteiliger Takt, NL: tweedelige maatsoort, DK: todelt takt, S: tv@aa{}takt, N: . @w{@ar{}@strong{meter}} @item duplet -I: duina, F: duolet, D: Duole, NL: duool, DK: duol, S: duol, N: . +ES: dosillo, I: duina, F: duolet, D: Duole, NL: duool, DK: duol, S: duol, N: . @w{@ar{}@strong{note value}} @item duration -I: durata, F: dur@'ee, D: Dauer, L@"ange, NL: duur, lengte, DK: varighed, S: +ES: duración, I: durata, F: dur@'ee, D: Dauer, L@"ange, NL: duur, lengte, DK: varighed, S: tonl@"angd, N: . @w{@ar{}@strong{note value}} @@ -964,22 +976,22 @@ tonl@"angd, N: . @w{@ar{}@strong{syntonic comma}} @item E -I: mi, F: mi, D: E, e, NL: e, DK: e, S: e, N: e. +ES: mi, I: mi, F: mi, D: E, e, NL: e, DK: e, S: e, N: e. @item eighth note -I: croma, F: croche, UK: quaver, D: Achtel, Achtelnote, NL: achtste noot, DK: +ES: corchea, I: croma, F: croche, UK: quaver, D: Achtel, Achtelnote, NL: achtste noot, DK: ottendedelsnode, S: @aa{}ttondelsnot, N: . @w{@ar{}@strong{note value}} @item eighth rest -I: pausa di croma, F: demi-soupir, UK: quaver rest, D: Achtelpause, NL: +ES: silencio de corchea, I: pausa di croma, F: demi-soupir, UK: quaver rest, D: Achtelpause, NL: achtste rust, DK:@w{ }ottendedelspause, S: @aa{}ttonddelspaus, N: . @w{@ar{}@strong{note value}} @item engraving -I: incisione, F: gravure, D: Notenstechen, NL: steken, DK: nodestik, S: +ES: Grabar, I: incisione, F: gravure, D: Notenstechen, NL: steken, DK: nodestik, S: nottryck, N: . Engraving means incising or etching a metal plate for @@ -990,7 +1002,7 @@ The traditional process of music printing is done through cutting in a plate of metal. Now also the term for the art of music typesetting. @item enharmonic -I: enarmonico, F: enharmonique, D: enharmonisch, NL: enharmonisch, DK: +ES: enharmónico, I: enarmonico, F: enharmonique, D: enharmonisch, NL: enharmonisch, DK: enharmonisk, S: enharmonisk, N: . Two notes, intervals, or scales are enharmonic if they have different names @@ -1024,10 +1036,10 @@ Performance indications concerning 1. volume, dynamics (for example @w{@ar{}@strong{andante}}, @w{@ar{}@strong{allegro}}) @item F -I: fa, F: fa, D: F, f, NL: f, DK: f, S: f, N: f. +ES: fa, I: fa, F: fa, D: F, f, NL: f, DK: f, S: f, N: f. @item F clef -I: chiave di fa, F: cl@'e de fa, D: F-Schl@"ussel, NL: F-sleutel, DK: +ES: Clave de Fa, I: chiave di fa, F: cl@'e de fa, D: F-Schl@"ussel, NL: F-sleutel, DK: F-n@o{}gle, S: f-klav, N: . The position between the dots of the key symbol is the line of the F below @@ -1065,7 +1077,7 @@ octave lower (for example on double bass @w{@ar{}@strong{strings}}). @end lilypond @item fermata -I: corona, F: pause, D: Fermate, NL: fermate, DK: fermat, S: fermat, N: . +ES: Calderón, I: corona, F: pause, D: Fermate, NL: fermate, DK: fermat, S: fermat, N: . Prolonged note or rest of indefinite duration. @@ -1077,21 +1089,22 @@ a4 b c2^\fermata \bar "|."; } @end lilypond @item fifth -I: quinta, F: quinte, D: Quinte, NL: kwint, DK: kvint, S: kvint, N: +ES: quinta, I: quinta, F: quinte, D: Quinte, NL: kwint, DK: kvint, S: kvint, N: kvint. @w{@ar{}@strong{interval}} @item figured bass -@w{@ar{}@strong{thorough bass}} +ES: bajo cifrado, @w{@ar{}@strong{thorough bass}} @item fingering -I: diteggiatura, F: doigt@'e, D: Fingersatz, NL: vingerzetting, DK: +ES: digitación, I: diteggiatura, F: doigt@'e, D: Fingersatz, NL: vingerzetting, DK: fingers@ae{}tning, S: fingers@"attning, N: . The methodical use of fingers in the playing of instruments. @item flag; pennant +ES: corchete, I: coda (uncinata), bandiera, F: crochet, D: Fahne, F@"ahnchen, NL: vlaggetje, DK: fane, S: flagga, N: . @@ -1111,7 +1124,7 @@ a quarter note. The number of flags determines the @w{@ar{}@strong{note value}}. @end lilypond @item flat -I: bemolle, F: b@'emol, D: B, b, NL: mol, DK: b, S: bef@"ortecken, N: . +ES: bemol, I: bemolle, F: b@'emol, D: B, b, NL: mol, DK: b, S: bef@"ortecken, N: . @w{@ar{}@strong{accidental}} @@ -1119,23 +1132,23 @@ I: bemolle, F: b@'emol, D: B, b, NL: mol, DK: b, S: bef@"ortecken, N: . @w{@ar{}@strong{appoggiatura}} @item forte -I: forte, F: forte, D: forte, Laut, NL: forte, DK: forte, S: forte, N: . +ES: forte, I: forte, F: forte, D: forte, Laut, NL: forte, DK: forte, S: forte, N: . Loud, abbreviated @b{f}, @emph{fortissimo} (@b{ff}) very loud, @emph{mezzoforte} (@b{mf}) medium loud. @item fourth -I: quarta, F: quarte, D: Quarte, NL: kwart, DK: kvart, S: kvart, N: . +ES: cuarta, I: quarta, F: quarte, D: Quarte, NL: kwart, DK: kvart, S: kvart, N: . @w{@ar{}@strong{interval}} -@item fugue -I: fuga, F: fugue, D: Fuge, NL: fuga, DK: fuga, S: fuga, N: . +@item fugue +ES: fuga, I: fuga, F: fugue, D: Fuge, NL: fuga, DK: fuga, S: fuga, N: . @w{@ar{}@strong{counterpoint}} @item functional harmony -I: armonia funzionale, F: @'etude des functions, D: Funktionslehre, NL: , DK: +ES: armonía funcional, I: armonia funzionale, F: @'etude des functions, D: Funktionslehre, NL: , DK: funktionsanalyse, funktionsharmonik, S: funktionsl@"ara, N: A system of harmonic analysis. It is based on the idea that, in a given key, @@ -1159,10 +1172,10 @@ of the base chords. @end lilypond @item G -I: sol, F: sol, D: G, g, NL: g, DK: g, S: g, N: g. +ES: sol, I: sol, F: sol, D: G, g, NL: g, DK: g, S: g, N: g. @item G clef -I: chiave di sol, F: cl@'e de sol, D: G-Schl@"ussel, Violinschl@"ussel, NL: +ES: Clave de sol, I: chiave di sol, F: cl@'e de sol, D: G-Schl@"ussel, Violinschl@"ussel, NL: G-sleutel, DK: g-n@o{}gle, S: g-klav, N: . A clef symbol indicating the G above central C. Used on the first and second @@ -1197,7 +1210,7 @@ that). @end lilypond @item glissando -I: glissando, F: glissando, D: Glissando, NL: glissando, DK: glissando, S: +ES: glissando, I: glissando, F: glissando, D: Glissando, NL: glissando, DK: glissando, S: glissando, N: glissando. Letting the pitch slide fluently from one note to the other @@ -1218,13 +1231,13 @@ S: ackolad, b@"ojd klammer, N: . A combination of two staffs with a brace. Usually used for piano music. @item grave -I: grave, F: grave, D: grave, langsam, traurig, NL: grave, ernstig, DK: grave, S: grave, N: +ES: grave, I: grave, F: grave, D: grave, langsam, traurig, NL: grave, ernstig, DK: grave, S: grave, N: . Slow, solemn. @item half note -I: minima, F: blanche, UK: minim, D: Halbe, halbe Note, NL: halve noot, DK: +ES: blanca, I: minima, F: blanche, UK: minim, D: Halbe, halbe Note, NL: halve noot, DK: halvnode, S: halvnot, N: . @w{@ar{}@strong{note value}} @@ -1236,7 +1249,7 @@ rust, DK: halvnodespause, S: halvpaus, N: . @w{@ar{}@strong{note value}} @item harmonic cadence -I: cadenza (armonica), F: cadence harmonique, D: Schlusskadenz, NL: +ES: cadencia (armónica), I: cadenza (armonica), F: cadence harmonique, D: Schlusskadenz, NL: harmonische cadens, DK: harmonisk kadence, S: (harmonisk) kadens, N: . Sequence of chords that terminate a musical phrase or @@ -1260,7 +1273,7 @@ section. @ar{}@w{}@strong{functional harmony} @end lilypond @item harmony -I: armonia, F: harmonie, D: Harmonie, Zusammenklang, NL: harmonie, DK: +ES: armonía , I: armonia, F: harmonie, D: Harmonie, Zusammenklang, NL: harmonie, DK: samklang, S: samklang, N: Tones sounding simultaneously. Two note harmonies fall into the cathegories @@ -1301,14 +1314,14 @@ Dissonances: Three note harmony @w{@ar{}@strong{chord}} @item homophony -I: omofonia, F: homophonie, D: Homophonie, NL: homofonie, DK: homofoni, S: +ES: homofonía, I: omofonia, F: homophonie, D: Homophonie, NL: homofonie, DK: homofoni, S: homofoni, N: . Music in which one voice leads melodically followed by the other voices more or less in the same rhythm. In contrast to @w{@ar{}@strong{polyphony}}. @item interval -I: intervallo, F: intervalle, D: Intervall, NL: interval, DK: interval, S: +ES: intervalo, I: intervallo, F: intervalle, D: Intervall, NL: interval, DK: interval, S: intervall, N: . Difference in pitch between two notes. Intervals may be perfect, minor, major, @@ -1381,7 +1394,7 @@ forms an octave. @end lilypond @item inverted interval -I: intervallo rivolto, F: intervalle renvers@'e, D: umgekerhtes Intervall, NL: +ES: intervalo invertido, I: intervallo rivolto, F: intervalle renvers@'e, D: umgekerhtes Intervall, NL: interval inversie, DK: omvendingsinterval, S: intervallets omv@"andning, N: . The difference between an interval and an octave. @@ -1406,14 +1419,14 @@ Tuning system in which the notes are obtained by adding and subtracting @w{natural} fifths and thirds. @w{@ar{}@strong{temperament}} @item key -I: tonalit@`a, F: tonalit@'e, D: Tonart, NL: toonsoort, DK: toneart, S: +ES: tonalidad, I: tonalit@`a, F: tonalit@'e, D: Tonart, NL: toonsoort, DK: toneart, S: tonart, N: . According to the 12 tones of the @w{@ar{}@strong{chromatic scale}} there are 12 keys, one on c, one on c-sharp etc. @w{@ar{}@strong{key signature}} @item key signature -I: armatura di chiave, F: armure, armature [de la cl@'e], D: Vorzeichen, +ES: armadura de clave, I: armatura di chiave, F: armure, armature [de la cl@'e], D: Vorzeichen, Tonart, NL: @w{ }toon@-soort (voortekens), DK: faste fortegn, S: tonartssignatur, N: . @@ -1421,14 +1434,14 @@ The sharps or flats appearing at the beginning of each staff indicating the key of the music. @w{@ar{}@strong{accidental}} @item largo -I: largo, F: largo, D: Largo, Langsam, Breit, NL: largo, DK: largo, S: largo, +ES: largo, I: largo, F: largo, D: Largo, Langsam, Breit, NL: largo, DK: largo, S: largo, N: largo Very slow in tempo, usually combined with great expressiveness. @emph{Larghetto} less slow than largo. @item leading note -I: sensibile, F: note sensible, D: Leitton, NL: leidtoon, DK: ledetone, S: +ES: sensible, I: sensibile, F: note sensible, D: Leitton, NL: leidtoon, DK: ledetone, S: ledton, N: . The seventh @w{@ar{}@strong{scale degree}}, a @w{@ar{}@strong{semitone}} below @@ -1437,7 +1450,7 @@ upwards) to the tonic scale degree. @item ledger line; leger line -I: tagli addizionali, F: ligne suppl@'ementaire, D: Hilfslinie, NL: +ES: líneas adicionales, I: tagli addizionali, F: ligne suppl@'ementaire, D: Hilfslinie, NL: hulplijntje, DK: hj@ae{}lpelinie, S: hj@"alplinje, N: . A ledger line is an extension of the staff. @@ -1450,7 +1463,7 @@ A ledger line is an extension of the staff. @end lilypond @item legato -I: legato, F: legato, li@'e, D: legato, NL: legato, DK: legato, S: legato, N: +ES: ligado, I: legato, F: legato, li@'e, D: legato, NL: legato, DK: legato, S: legato, N: . To be performed without any perceptible interruption between the notes (a) @@ -1477,25 +1490,26 @@ unlike @emph{leggiero} or @emph{non-legato} (b), @emph{portato} (c) and @w{@ar{}@strong{slur}} @w{@ar{}@strong{legato}} @item lilypond +ES: estanque de lilas, I: stagno del giglio, F: @'etang de lis, UK: lily pond, D: Seerosenteich, NL: le@-lie@-vij@-ver, DK: liliedam, S: liljedamm, N: . A pond with lilies floating in it, also the name of a music typesetter. @item line -I: linea, F: ligne, D: Linie, Notenlinie, NL: lijn, DK: nodelinie, S: +ES: línea, I: linea, F: ligne, D: Linie, Notenlinie, NL: lijn, DK: nodelinie, S: notlinje, N: . @w{@ar{}@strong{staff}} -@item long appoggiatura -I: appoggiatura lunga, F: appoggiature longue, D: langer Vorschlag, DK: langt +@item long appoggiatura +ES: apoyatura larga, I: appoggiatura lunga, F: appoggiature longue, D: langer Vorschlag, DK: langt forslag, S: l@aa{}ngt f@"orslag, N: . @w{@ar{}@strong{appoggiatura}} @item longa -I: longa, F: longa, D: Longa, NL: longa, DK: longa, S: longa, N: longa +ES: longa, I: longa, F: longa, D: Longa, NL: longa, DK: longa, S: longa, N: longa note value: double length of @w{@ar{}@strong{brevis}}. @w{@ar{}@strong{note value}} @@ -1510,13 +1524,13 @@ note value: double length of @w{@ar{}@strong{brevis}}. @w{@ar{}@strong{note valu @end lilypond @item major interval -I: intervallo maggiore, F: intervalle majeur, D: gro@ss{}es Intervall, NL: +ES: intervalo mayor, I: intervallo maggiore, F: intervalle majeur, D: gro@ss{}es Intervall, NL: groot interval, DK: stort interval, S: stort intervall, N: . @w{@ar{}@strong{interval}} @item major -I: maggiore, F: [mode] majeur, D: Dur, NL: majeur, DK: dur, S: dur, N: dur. +ES: mayor, I: maggiore, F: [mode] majeur, D: Dur, NL: majeur, DK: dur, S: dur, N: dur. @w{@ar{}@strong{diatonic scale}} @@ -1530,7 +1544,7 @@ by 16 @w{@ar{}@strong{cent}}s. Due to the non-circular character of this tuning keyboard instruments for performance of pre-1650 music. @item measure, bar -I: misura, battuta, F: mesure, D: Takt, NL: maat, DK: takt, S: takt, N: takt. +ES: compás, I: misura, battuta, F: mesure, D: Takt, NL: maat, DK: takt, S: takt, N: takt. A group of @w{@ar{}@strong{beat}}s (units of musical time) the first of which bears an accent. Such groups in numbers of two or more recur consistently @@ -1538,7 +1552,7 @@ throughout the composition and are marked from each other by bar-lines. @w{@ar{}@strong{meter}} @item mediant -I: mediante, modale, F: m@'ediante, NL: mediant, D: Mediant, DK: mediant, S: +ES: mediante, I: mediante, modale, F: m@'ediante, NL: mediant, D: Mediant, DK: mediant, S: mediant, N: . 1. The third @b{scale degree}. 2. A @w{@ar{}@strong{chord}} having its base tone @@ -1551,7 +1565,7 @@ harmony}} @w{@ar{}@strong{relative key}}. @w{@ar{}@strong{cadenza}} @item meter, time -I: tempo, metro, F: m@`etre, D: Taktart, Metrum, NL: maatsoort, DK: taktart, +ES: compás, I: tempo, metro, F: m@`etre, D: Taktart, Metrum, NL: maatsoort, DK: taktart, S: taktart, N: . The basic scheme of @ar{}@w{}@strong{note value}s and @ar{}@w{}@strong{accent}s @@ -1588,28 +1602,28 @@ one speaks of @emph{duple} (2/2, 2/4, 2/8), @emph{triple} (3/2, 3/4, 3/8) or @end lilypond @item metronome -I: metronomo, F: m@'etronome, D: Metronom, NL: metronoom, +ES: metrónomo, I: metronomo, F: m@'etronome, D: Metronom, NL: metronoom, DK:@w{ }me@-tro@-nom, S:@w{ }me@-tro@-nom, N: metronom. Device indicating the exact tempo of a piece. @w{@ar{}@strong{metronomic indication}} @item metronomic indication -I: indicazione metronomica, F: indication m@'etronomique, D: Metronomangabe, +ES: indicación metronómica, I: indicazione metronomica, F: indication m@'etronomique, D: Metronomangabe, NL: metronoom aanduiding, DK: metronomtal, S: metronomangivelse, N: . Exact tempo indication (in beats per minute). Also denoted by M.M. (M@"alzel's Metronom) @item mezzo-soprano -I: mezzo-soprano, F: mezzo-soprano, D: Mezzosopran, NL: mezzosopraan, DK: +ES: mezzo soprano, I: mezzo-soprano, F: mezzo-soprano, D: Mezzosopran, NL: mezzosopraan, DK: mezzosopran, S: mezzosopran, N: mezzosopran. The female voice between @w{@ar{}@strong{soprano}} and @w{@ar{}@strong{contralto}}. @item middle C -I: do centrale, F: do central, D: eingestrichenes c, NL: centrale c, DK: +ES: do central, I: do centrale, F: do central, D: eingestrichenes c, NL: centrale c, DK: enstreget c, S: ettstruket c, N: First C below the 440 Hz A. @@ -1627,23 +1641,23 @@ First C below the 440 Hz A. @end lilypond @item minor interval -I: intervallo minore, F: intervalle mineur, D: kleines Intervall, NL: klein +ES: intervalo mayor, I: intervallo minore, F: intervalle mineur, D: kleines Intervall, NL: klein interval, DK: lille interval, S: litet intervall, N: . @w{@ar{}@strong{interval}} @item minor -I: minore, F: mode mineur, D: Moll, NL: mineur, DK: mol, S: moll, N: . +ES: menor, I: minore, F: mode mineur, D: Moll, NL: mineur, DK: mol, S: moll, N: . @w{@ar{}@strong{diatonic scale}} @item mode -I: modo, F: mode, D: Modus, NL: modus, DK: skala, S: modus, skala, N: . +ES: modo, I: modo, F: mode, D: Modus, NL: modus, DK: skala, S: modus, skala, N: . @w{@ar{}@strong{church mode}} @w{@ar{}@strong{diatonic scale}} @item modulation -I: modulazione, F: modulation, D: Modulation, NL: modulatie, DK: modulation, +ES: modulación, I: modulazione, F: modulation, D: Modulation, NL: modulatie, DK: modulation, S: modulering, N: . Moving from one @w{@ar{}@strong{key}} to another. For example the second @@ -1658,6 +1672,7 @@ I: mordente, F: mordant, D: Mordent, NL: mordent, DK: mordent, S: mordent, N: @w{@ar{}@strong{ornament}} @item motive; motif +ES: tema, I: inciso, F: incise, D: Motiv, NL: motief, DK: motiv, S: motiv, N: . The briefest intelligible and self-contained fragment of a musical theme or @@ -1679,14 +1694,14 @@ subject. @end lilypond @item movement -I: movimento, F: mouvement, D: Satz, NL: deel, DK: sats, S: sats, N: . +ES: movimiento, I: movimento, F: mouvement, D: Satz, NL: deel, DK: sats, S: sats, N: . Greater musical works like @w{@ar{}@strong{symphony}} and @w{@ar{}@strong{sonata}} most often consist of several - more or less - independant pieces called movements. @item multibar rest -I: pausa multipla, F: pause multiple, NL: meermaats rust, D: +ES: compases de espera, I: pausa multipla, F: pause multiple, NL: meermaats rust, D: mehrtaktige Pause, DK: flertaktspause, S: flertaktspaus, N: . @ @@ -1702,7 +1717,7 @@ a1 } @w{@ar{}@strong{diatonic scale}} @item natural sign -I: bequadro, F: b@'ecarre, D: Aufl@"osungszeichen, NL: herstellingsteken, +ES: becuadro, I: bequadro, F: b@'ecarre, D: Aufl@"osungszeichen, NL: herstellingsteken, DK:@w{ }op@-l@o{}sningstegn, S: @aa{}terst@"allningstecken, N: . @w{@ar{}@strong{accidental}} @@ -1711,7 +1726,7 @@ DK:@w{ }op@-l@o{}sningstegn, S: @aa{}terst@"allningstecken, N: . @w{@ar{}@strong{appoggiatura}} @item ninth -I: nona, F: neuvi@`eme, D: None, NL: noon, DK: none, S: nona, N: . + ES: novena, I: nona, F: neuvi@`eme, D: None, NL: noon, DK: none, S: nona, N: . @w{@ar{}@strong{interval}} @@ -1719,7 +1734,7 @@ I: nona, F: neuvi@`eme, D: None, NL: noon, DK: none, S: nona, N: . @w{@ar{}@strong{legato}} @item note -I: nota, F: note, D: Note, NL: noot, DK: node, S: not, N: , +ES: nota, I: nota, F: note, D: Note, NL: noot, DK: node, S: not, N: , Notes are signs by means of which music is fixed in writing. The term is also used for the sound indicated by a note, and even for the key of the piano @@ -1728,7 +1743,7 @@ and @w{@ar{}@strong{note}} is strongly recommended. Briefly, one sees a note, and hears a tone. @item note head -I: testa, testina, capocchia, F: t@^ete de la note, D: Notenkopf, NL: +ES: oval, I: testa, testina, capocchia, F: t@^ete de la note, D: Notenkopf, NL: nootballetje, DK: nodehovede, S: nothuvud, N: . A head like sign which indicates pitch by its position on a @@ -1739,7 +1754,7 @@ instruments (often having no defined pitch) the note head may indicate the instrument. @item note value -I: valore, durata, F: dur@'ee, valeur (d'une note), D: Notenwert, NL: +ES: valor, I: valore, durata, F: dur@'ee, valeur (d'une note), D: Notenwert, NL: nootwaarde, DK nodev@ae{}rdi, S: notv@"arde, N: . Note values (durations) are measured as fractions, normally 1/2, of the next @@ -1811,11 +1826,12 @@ frequently used. @w{@ar{}@strong{g clef}} @w{@ar{}@strong{f clef}} @item octave -I: ottava, F: octave, D: Oktave, NL: octaaf, DK: oktav, S: oktav, N: . +ES: octava, I: ottava, F: octave, D: Oktave, NL: octaaf, DK: oktav, S: oktav, N: . @w{@ar{}@strong{interval}} @item ornament; embellishment; accessory +ES: adorno, I: abbellimento, fioriture, F: agr@'ement, ornement, D: Verzierung, Ornament, NL: versiering, DK: forsiring, S: ornament, N: . @@ -1869,21 +1885,21 @@ Other frequently used ornaments are the @emph{turn}, the @emph{mordent} and the @w{@ar{}@strong{appoggiatura}} @item ossia -I: ossia, F: ossia, D: Ossia, NL: alternatief, DK: ossia, S: ossia, N: . +ES: ossia, I: ossia, F: ossia, D: Ossia, NL: alternatief, DK: ossia, S: ossia, N: . Ossia (otherwise) marks an alternative. It is an added staff or piano score, usually only a few measures long, which presents another version of the music, for example for small hands. @item part -I: voce, parte, F: partie, D: Stimme, NL: partij, DK: stemme, S: st@"amma, N: . +ES: parte, I: voce, parte, F: partie, D: Stimme, NL: partij, DK: stemme, S: st@"amma, N: . 1. In instrumental or choral music the music for the single instrument or voice. 2. in contrapuntal music @w{@ar{}@strong{counterpoint}} the single melodic line of the contrapuntal web. @item percussion -I: percussioni, F: percussion, D: Schlagzeug, NL: slagwerk, DK: slagt@o{}j, S: +ES: percusión, I: percussioni, F: percussion, D: Schlagzeug, NL: slagwerk, DK: slagt@o{}j, S: slagverk, N: . A family of musical instruments which are played on by striking or @@ -1893,42 +1909,42 @@ tambourine, cymbals, chinese gong (tam-tam), triangle, celesta, glockenspiel and xylophone. @item perfect interval - +ES: intervalo justo, I: intervallo giusto, F: intervalle juste, D: reines Intervall, NL: rein interval, DK: rent interval, S: rent intervall, N: . @w{@ar{}@strong{interval}} @item phrase -I: frase, F: phrase, D: Phrase, NL: frase, zin, DK: frase, S: fras, N: . +ES: frase, I: frase, F: phrase, D: Phrase, NL: frase, zin, DK: frase, S: fras, N: . A natural division of the melodic line, comparable to a sentence of speech. @item phrasing -I: fraseggio, F: phras@'e, D: Phrasierung, NL: frasering, DK: frasering, S: +ES: fraseo, I: fraseggio, F: phras@'e, D: Phrasierung, NL: frasering, DK: frasering, S: fra@-se@-ring, N: . The clear rendering in musical performance of the @w{@ar{}@strong{phrase}}s of the melody. Phrasing may be indicated by a @w{@ar{}@strong{slur}}. -@item piano -I: piano, F: piano, D: piano, leise, NL: piano, DK: piano, S: piano, N: . +@item piano +ES: piano, I: piano, F: piano, D: piano, leise, NL: piano, DK: piano, S: piano, N: . @emph{piano} (@b{p}) soft, @emph{pianissimo} (@b{pp}) very soft, @emph{mezzopiano} (@b{mp}) medium soft. @item pitch -I: altezza, F: hauteur, D: Tonh@"ohe, NL: toonhoogte, DK: toneh@o{}jde, S: +ES: altura, I: altezza, F: hauteur, D: Tonh@"ohe, NL: toonhoogte, DK: toneh@o{}jde, S: tonh@"ojd, N: . @item pizzicato -I: pizzicato, F: pizzicato, D: pizzicato, NL: pizzicato, getokkeld, DK: +ES: pizzicato, I: pizzicato, F: pizzicato, D: pizzicato, NL: pizzicato, getokkeld, DK: pizzicato, S: pizzicato. Play by plucking the strings. @item polyphony -I: polifonia, F: polyphonie, D: Polyphonie, NL: polyfonie, DK: polyfoni, S: +ES: polifonía, I: polifonia, F: polyphonie, D: Polyphonie, NL: polyfonie, DK: polyfoni, S: polyfoni, N: . Music written in a combination of several simultaneous voices (parts) of a @@ -1938,13 +1954,14 @@ more or less pronounced individuality. @w{@ar{}@strong{counterpoint}} @w{@ar{}@strong{legato}} @item presto -I: presto, F: presto, D: Presto, Sehr schnell, NL: presto, Sehr schnell, DK: +ES: presto, I: presto, F: presto, D: Presto, Sehr schnell, NL: presto, Sehr schnell, DK: presto, S: presto, N: . Very quick, i.e. quicker than @w{@ar{}@strong{allegro}}. @emph{prestissimo} denotes the highest possible degree of speed. @item Pythagorean comma +ES: coma pitagórico, I: comma pitagorico, F: comma pythagoricien, D: Pythagor@"aisches Komma, NL: komma van Pythagoras, DK: pythagor@ae{}isk komma, S: pytagoreiskt komma, N: . @@ -1954,37 +1971,37 @@ obtained by adding 7 octaves. The difference between those two pitches is called the Pythagorean comma. @item quadruplet -I: quartina, F: quartolet, D: Quartole, NL: kwartool, DK: kvartol, S: kvartol, +ES: cuatrillo, I: quartina, F: quartolet, D: Quartole, NL: kwartool, DK: kvartol, S: kvartol, N: . @w{@ar{}@strong{note value}} @item quarter note -I: semiminima, nera, F: noire, UK: crotchet, D: Viertel, Viertelnote, NL: +ES: negra, I: semiminima, nera, F: noire, UK: crotchet, D: Viertel, Viertelnote, NL: kwartnoot, DK: fjerdedelsnode, S: fj@"ardedelsnot, N: @w{@ar{}@strong{note value}} @item quarter rest -I: pausa di semiminima, F: soupir, UK: crotchet rest, D: Viertelpause, NL: +ES: silencio de negra, I: pausa di semiminima, F: soupir, UK: crotchet rest, D: Viertelpause, NL: kwart rust, DK:@w{ }fjerdedelspause, S: fj@"ardedelspaus, N: . @w{@ar{}@strong{note value}} @item quintuplet -I: quintina, F: quintuplet, D: Quintole, NL: kwintool, DK: kvintol, S: +ES: quintillo, I: quintina, F: quintuplet, D: Quintole, NL: kwintool, DK: kvintol, S: kvintol, N: . @w{@ar{}@strong{note value}} @item rallentando -I: rallentando, F: rallentando, D: rallentando, langsamer, NL: rallentando, DK: +ES: rallentando, I: rallentando, F: rallentando, D: rallentando, langsamer, NL: rallentando, DK: rallentando, S: rallentando, N: rallentando. Abbreviation "rall.". @w{@ar{}@strong{ritardando}} @item relative key -I: tonalit@`a relativa, F: tonalit@'e relative, D: Paralleltonart, DK: +ES: relativa, I: tonalit@`a relativa, F: tonalit@'e relative, D: Paralleltonart, DK: paralleltoneart, S: parallelltonart, N: . @w{@ar{}@strong{Major}} and @w{@ar{}@strong{minor}} @w{@ar{}@strong{key}} with @@ -2006,7 +2023,7 @@ the same @w{@ar{}@strong{signature}}. @end lilypond @item repeat -I: ritornello, F: barre de reprise, D: Wiederholung, NL: herhaling, DK: +ES: barra de repetición, I: ritornello, F: barre de reprise, D: Wiederholung, NL: herhaling, DK: gen@-ta@-gel@-se, S: repris, N: . @ @@ -2020,12 +2037,12 @@ gen@-ta@-gel@-se, S: repris, N: . @end lilypond @item rest -I: pausa, F: silence, D: Pause, NL: rust, DK: pause, S: paus, N: . +ES: silencio, I: pausa, F: silence, D: Pause, NL: rust, DK: pause, S: paus, N: . @w{@ar{}@strong{note value}} @item rhythm -I: ritmo, F: rythme, D: Rhythmus, NL: ritme, DK: rytme, S: rytm, N: . +ES: ritmo, I: ritmo, F: rythme, D: Rhythmus, NL: ritme, DK: rytme, S: rytm, N: . (a) metrical rhythm in which every time value is a multiple or fraction of a fixed unit of time, called @w{@ar{}@strong{beat}}, and in which the normal @@ -2037,24 +2054,24 @@ different measures. (c) Free rhythm, i.e. the use of temporal values having no common metrical unit (beat). @item ritardando -I: ritardando, F: ritardando, D: Ritardando, Langsamer, NL: ritardando, DK: +ES: retardando, I: ritardando, F: ritardando, D: Ritardando, Langsamer, NL: ritardando, DK: ritardando, S: ritardando, N: . Gradually slackening in speed. Mostly abbreviated to rit. or ritard. @item ritenuto -I: ritenuto, F: ritenuto, D: Ritenuto, NL: ritenuto, DK: ritenuto, S: +ES: ritenuto, I: ritenuto, F: ritenuto, D: Ritenuto, NL: ritenuto, DK: ritenuto, S: ritenuto, N: . Immediate reduction of speed. @item scale -I: scala, F: gamme, D: Tonleiter, NL: toonladder, DK: Skala, S: skala, N: . +ES: escala, I: scala, F: gamme, D: Tonleiter, NL: toonladder, DK: Skala, S: skala, N: . @w{@ar{}@strong{diatonic scale}} @item scale degree -I: grado della scala, F: degr@'e [de la gamme], D: Tonleiterstufe, NL: trap +ES: grados de la escala, I: grado della scala, F: degr@'e [de la gamme], D: Tonleiterstufe, NL: trap [van de toonladder], DK: skalatrin, S: skalsteg (?), N: . Names and symbols used in harmonic analysis to denote tones of the scale as @@ -2080,7 +2097,7 @@ sub@-do@-mi@-nant (S) and V = dominant (D). @w{@ar{}@strong{functional harmony}} @item score -I: partitura, F: partition, D: Partitur, NL: partituur, DK: partitur, S: +ES: partitura, I: partitura, F: partition, D: Partitur, NL: partituur, DK: partitur, S: partitur, N: . A copy of orchestral, choral or chamber music showing what each instrument is @@ -2088,7 +2105,7 @@ to play, each voice to sing, having each part arranged one underneath the other on different @w{@ar{}@strong{stave}}s. @item second -I: secunda, F: seconde, D: Sekunde, NL: secunde, DK: sekund, S: sekund, N: . +ES: segunda, I: secunda, F: seconde, D: Sekunde, NL: secunde, DK: sekund, S: sekund, N: . The @w{@ar{}@strong{interval}} between two neigbouring tones of a scale. A @w{@ar{}@strong{diatonic scale}} consists of alternating @@ -2096,7 +2113,7 @@ The @w{@ar{}@strong{interval}} between two neigbouring tones of a scale. A of a se@-cond depends on the scale degrees in question. @item semitone -I: semitono, F: demi-ton, D: Halbton, NL: halve toon, DK: halvtone, S: +ES: semitono, I: semitono, F: demi-ton, D: Halbton, NL: halve toon, DK: halvtone, S: halvton, N: . The @w{@ar{}@strong{interval}} of a minor second. The (usually) smallest @@ -2113,7 +2130,7 @@ semitones. @w{@ar{}@strong{interval}} @w{@ar{}@strong{chromatic scale}} @end lilypond @item seventh -I: settima, F: septi@`eme, D: Septime, NL: septiem, DK: septim, S: septim, N: . +ES: séptima, I: settima, F: septi@`eme, D: Septime, NL: septiem, DK: septim, S: septim, N: . @w{@ar{}@strong{interval}} @@ -2124,7 +2141,7 @@ I: sestina, F: sextolet, D: Sextole, NL: sextool, DK: sekstol, S: sextol, N: @w{@ar{}@strong{note value}} @item sharp -I: diesis, F: di@`ese, D: Kreuz, NL: kruis, DK: kryds, S: korsf@"ortecken, N: . +ES: sostenido, I: diesis, F: di@`ese, D: Kreuz, NL: kruis, DK: kryds, S: korsf@"ortecken, N: . @w{@ar{}@strong{accidental}} @@ -2132,25 +2149,26 @@ I: diesis, F: di@`ese, D: Kreuz, NL: kruis, DK: kryds, S: korsf@"ortecken, N: . @w{@ar{}@strong{appoggiatura}} @item sixteenth note -I: semicroma, F: double croche, UK: semiquaver, D: Sechzehntel, +ES: semicorchea, I: semicroma, F: double croche, UK: semiquaver, D: Sechzehntel, Sechzehntelnote, NL:@w{ }zes@-ti@-ende noot, DK: sekstendedelsnode, S: sextondelsnot, N: . @w{@ar{}@strong{note value}} @item sixteenth rest -I: pausa di semicroma, F: quart de soupir, UK: semiquaver rest, D: +ES: silencia de semicorchea, I: pausa di semicroma, F: quart de soupir, UK: semiquaver rest, D: Sechzehntelpause, NL: zestiende rust, DK: sekstendedelspause, S: sextondelspaus, N: . @w{@ar{}@strong{note value}} @item sixth -I: sesta, F: sixte, D: Sexte, NL: sext, DK: sekst, S: sext, N: . +ES: sexta, I: sesta, F: sixte, D: Sexte, NL: sext, DK: sekst, S: sext, N: . @w{@ar{}@strong{interval}} @item sixty-fourth note +ES: semifusa, I: semibiscroma, F: quadruple croche, UK: hemidemisemiquaver, D: Vierundsechzigstel, Vierundsechzigstelnote, NL: vierenzestigste noot, DK: fi@-re@-og@-tred@-sinds@-ty@-ven@-de@-dels@-no@-de, S: @@ -2159,6 +2177,7 @@ sextiofj@"ardedelsnot, N: . @w{@ar{}@strong{note value}} @item sixty-fourth rest +ES: silencia de semifusa, I: pausa di semibiscroma, F: seizi@`eme de soupir, UK: hemidemisemiquaver rest, D: Vierundsechzigstelpause, NL: vierenzestigste rust, DK: fi@-re@-og@-tred@-sinds@-ty@-ven@-de@-dels@-pau@-se, S: @@ -2167,7 +2186,7 @@ sextiofj@"ardedelspaus, N: . @w{@ar{}@strong{note value}} @item slur -I: legatura (di portamento or espressiva), F: liaison, coul@'e, D: Bogen, +ES: ligadura, I: legatura (di portamento or espressiva), F: liaison, coul@'e, D: Bogen, Bindebogen, Legatobogen, Phrasierungsbogen, NL: binding, bindingsboog, DK:@w{ }legatobue, fraseringsbue, S: b@aa{}ge, N: . @@ -2185,14 +2204,14 @@ General term for systems of designating the degrees of the (@emph{ti})). @w{@ar{}@strong{scale degree}}. @item sonata -I: sonata, F: sonate, D: Sonate, NL: sonate, DK: sonate, S: sonat, N: . +ES: sonata, I: sonata, F: sonate, D: Sonate, NL: sonate, DK: sonate, S: sonat, N: . In its present-day meaning a sonata denotes an instrumental composition for piano or for some other instrument with piano accompaniment, which consists of three or four independant pieces, called movements. @item sonata form -I: forma sonata, F: [en] forme de sonate, D: Sonatenform, NL: hoofdvorm, +ES: forma sonata, I: forma sonata, F: [en] forme de sonate, D: Sonatenform, NL: hoofdvorm, sonatevorm, DK: sonateform, S: sonatform, N: . A form used frequently for single movements of the @w{@ar{}@strong{sonata}}, @@ -2210,12 +2229,12 @@ two. The second theme is in another key, normally in the key of the tonic is @w{@ar{}@strong{minor}}. @item soprano -I: soprano, F: soprano, D: Sopran, NL: sopraan, DK: sopran, S: sopran, N: . +ES: soprano, I: soprano, F: soprano, D: Sopran, NL: sopraan, DK: sopran, S: sopran, N: . The highest female voice. @item staccato -I: staccato, F: staccato, piqu@'e, d@'etach@'e, D: staccato, NL: staccato, DK: +ES: staccato, I: staccato, F: staccato, piqu@'e, d@'etach@'e, D: staccato, NL: staccato, DK: staccato, S: staccato, N: Playing the note(s) short. Staccato is indicated by a dot above or below the @@ -2233,7 +2252,7 @@ notehead. @end lilypond @item staff -I: pentagramma, rigo (musicale), F: port@'ee, D: Notensystem, NL: (noten)balk; +ES: pentagrama, I: pentagramma, rigo (musicale), F: port@'ee, D: Notensystem, NL: (noten)balk; partij, DK: nodesystem, S: notsystem, N: . pl. staves or staffs. A series of (normally 5) horizontal lines upon and @@ -2242,7 +2261,7 @@ with a @w{@ar{}@strong{clef}}) their pitch. Staffs for @w{@ar{}@strong{percussion}} instruments may have fewer lines. @item stem -I: gamba, F: queue, D: Hals, Notenhals, Stiel, NL: stok, DK: hals, S: skaft, +ES: plica, I: gamba, F: queue, D: Hals, Notenhals, Stiel, NL: stok, DK: hals, S: skaft, N: . Vertical line above or below a @w{@ar{}@strong{note head}} shorter than a whole @@ -2264,58 +2283,58 @@ note. @w{@ar{}@strong{beam}} @end lilypond @item strings -I: archi, F: cordes, D: Streicher, NL: strijkers, DK: strygere, S: +ES: arcos, cuerdas, I: archi, F: cordes, D: Streicher, NL: strijkers, DK: strygere, S: str@aa{}kar, N: . A family of stringed musical instruments played with a bow. Strings commonly used in a symphony orchestra are violin, viola, violoncello and double bass. @item strong beat -I: tempo forte, F: temps fort, D: betonter Taktteil oder -schlag, NL: thesis, +ES: tiempo fuerte, I: tempo forte, F: temps fort, D: betonter Taktteil oder -schlag, NL: thesis, D: betonet taktslag, S: betonat taktslag, N: . @w{@ar{}@strong{beat}} @w{@ar{}@strong{accent}} @w{@ar{}@strong{measure}} @w{@ar{}@strong{rhythm}} @item subdominant -I: sottodominante, F: sous-dominante, D: Subdominante, NL: subdominant, DK: +ES: subdominante, I: sottodominante, F: sous-dominante, D: Subdominante, NL: subdominant, DK: subdominant, S: subdominant, N: . The fourth @w{@ar{}@strong{scale degree}}. @w{@ar{}@strong{functional harmony}} @item submediant -I: sopratonica, F: sous-m@'ediante, D: Submediant, NL: submediant, DK: +ES: superdominante, I: sopratonica, F: sous-m@'ediante, D: Submediant, NL: submediant, DK: Submediant, S: submediant, N: . The sixth @w{@ar{}@strong{scale degree}}. @item subtonic -I: sottotonica, F: sous-tonique, D: Subtonika, NL: subtonica, DK: Subtonika, S: +ES: sensible, I: sottotonica, F: sous-tonique, D: Subtonika, NL: subtonica, DK: Subtonika, S: subtonika, N: . The seventh @w{@ar{}@strong{scale degree}} @item superdominant -I: sopradominante, F: sus-dominante, D: Superdominant, NL: superdominant, DK: +ES: superdominante, I: sopradominante, F: sus-dominante, D: Superdominant, NL: superdominant, DK: superdominant, S: superdominant, N: . The sixth @w{@ar{}@strong{scale degree}} @item supertonic -I: sopratonica, F: sus-tonique, D: Supertonika, NL: supertonica, DK: +ES: supertónica, I: sopratonica, F: sus-tonique, D: Supertonika, NL: supertonica, DK: supertonika, S: supertonika, N: . The second @w{@ar{}@strong{scale degree}}. @item symphony -I: sinfonia, F: symphonie, D: Sinfonie, NL: symfonie, DK: symfoni, S: symfoni, +ES: sinfonía, I: sinfonia, F: symphonie, D: Sinfonie, NL: symfonie, DK: symfoni, S: symfoni, N: . A symphony may be defined as a @w{@ar{}@strong{sonata}} for orchestra. @item syncopation -I: sincope, F: syncope, D: Synkope, NL: syncope, DK: synkope, S: synkop, N: . +ES: sincopado, I: sincope, F: syncope, D: Synkope, NL: syncope, DK: synkope, S: synkop, N: . Any deliberate upsetting of the normal pulse of @w{@ar{}@strong{meter}}, @w{@ar{}@strong{accent}} and @w{@ar{}@strong{rhythm}}. Our system of musical @@ -2353,7 +2372,7 @@ The collection of staves @w{@ar{}@strong{staff}}, two or more, as used for the writing down of keyboard, chamber, choral or orchestral music. @item temperament -I: temperamento, F: temp@'erament, D: Stimmung, Temperatur, NL: temperament, +ES: temperamento, I: temperamento, F: temp@'erament, D: Stimmung, Temperatur, NL: temperament, DK: temperatur, S: temperatur, N: . Systems of tuning in which the intervals deviate from the accoustically pure @@ -2361,7 +2380,7 @@ intervals. @w{@ar{}@strong{meantone temperament}} @w{@ar{}@strong{equal temperament}} @item tempo indication -I: indicazione di tempo, F: indication de temps, D: Zeitma@ss{}, +ES: indicación de tempo, I: indicazione di tempo, F: indication de temps, D: Zeitma@ss{}, Tempobezeichnung, NL: tempo aanduiding, DK: tempobetegelse, S: tempobeteckning, N: . @@ -2371,22 +2390,22 @@ slowest to the quickest, as is indicated by tempo marks as @w{@ar{}@strong{allegro}} and @w{@ar{}@strong{presto}}. @item tenor -I: tenore, F: t@'enor, D: Tenor, NL: tenor, DK: tenor, S: tenor, N: . +ES: tenor, I: tenore, F: t@'enor, D: Tenor, NL: tenor, DK: tenor, S: tenor, N: . The highest voice of men (apart from @w{@ar{}@strong{counter tenor}}) @item tenth -I: decima, F: dixi@`eme, D: Dezime, NL: deciem, DK: decim, S: decima, N: . +ES: décima, I: decima, F: dixi@`eme, D: Dezime, NL: deciem, DK: decim, S: decima, N: . @w{@ar{}@strong{note value}} @item third -I: terza, F: tierce, D: Terz, NL: terts, DK: terts, S: ters, N: . +ES: tercera, I: terza, F: tierce, D: Terz, NL: terts, DK: terts, S: ters, N: . @w{@ar{}@strong{interval}} @item thirty-second note - +ES: fusa, I: biscroma, F: triple croche, UK: demisemiquaver, D: Zweiunddrei@ss{}igstel, Zweiunddrei@ss{}igstelnote, NL: twee-endertig@-ste noot, DK: toogtredivtedelsnode, S: trettiotv@aa{}ondelsnot, N: . @@ -2394,7 +2413,7 @@ noot, DK: toogtredivtedelsnode, S: trettiotv@aa{}ondelsnot, N: . @w{@ar{}@strong{note value}} @item thirty-second rest - +ES: silencio de fusa, I: pausa di biscroma, F: huiti@`eme de soupir, UK: demisemiquaver rest, D: Zweiunddrei@ss{}igstel@-pause, NL: 32e rust, DK: toogtredivtedelspause, S: trettiotv@aa{}ondelspaus, N: . @@ -2402,6 +2421,7 @@ trettiotv@aa{}ondelspaus, N: . @w{@ar{}@strong{note value}} @item thorough bass; figured bass +ES: bajo cifrado, I: basso continuo, basso numerato, F: basse chiffr@'ee, D: Generalbass, bezifferter Bass, NL: basso continuo, DK:@w{ }generalbas, S: generalbas, N: . @@ -2442,6 +2462,7 @@ with figures designating the chief @w{@ar{}@strong{interval}}s and @end lilypond @item tie; bind +ES: ligadura de prolongación, I: legatura (di valore), F: liaison, D: Haltebogen, NL: overbinding, DK: bindebue, S: bindeb@aa{}ge, @"overbindning, N: . @@ -2458,6 +2479,7 @@ uniting them into a single sound equal to the combined durations. @item time signature +ES: cifra indicadora de compás, I: segni di tempo, F: chiffrage (chiffres indicateurs), signe de valeur, D: Taktangabe, Angabe der Taktart, NL: maatsoort, DK: taktangivelse, S: taktartssignatur, N: . @@ -2465,19 +2487,19 @@ taktartssignatur, N: . @w{@ar{}@strong{meter}} @item tone -I: suono, F: ton, D: Ton, NL: toon, DK: tone, S: ton, N: . +ES: sonido, I: suono, F: ton, D: Ton, NL: toon, DK: tone, S: ton, N: . A sound of definite pitch and duration, as distinct from @emph{noise}. Tone is a primary building material of music. Music from the 20th century may be based on non tone related sounds. @item tonic -I: tonica, F: tonique, D: Tonika, NL: tonica, DK: tonika, S: tonika, N: . +ES: tonica, I: tonica, F: tonique, D: Tonika, NL: tonica, DK: tonika, S: tonika, N: . The first @w{@ar{}@strong{scale degree}}@w{@ar{}@strong{functional harmony}} @item transposition -I: trasposizione, F: transposition, D: Transposition, NL: transpositie, DK: +ES: transposición, I: trasposizione, F: transposition, D: Transposition, NL: transpositie, DK: transposition, S: transponering, N: . Shifting a melody up or down in pitch, while keeping the same relative pitches. @@ -2497,14 +2519,14 @@ Shifting a melody up or down in pitch, while keeping the same relative pitches. @end lilypond @item treble clef -I: chiave di violino, F: cl@'e de sol, D: Violinschl@"ussel, +ES: clave de sol, I: chiave di violino, F: cl@'e de sol, D: Violinschl@"ussel, Sopranschl@"ussel, NL: viool sleutel, DK:@w{ }diskantn@o{}gle, S: diskantklav, N: . @w{@ar{}@strong{G clef}} @item tremolo -I: tremolo, F: tr@'emolo, D: Tremolo, NL: tremolo, DK: tremolo, S: tremolo, N: +ES: tremolo, I: tremolo, F: tr@'emolo, D: Tremolo, NL: tremolo, DK: tremolo, S: tremolo, N: . On stringed instruments (@w{@ar{}@strong{strings}}) the quick reiteration of @@ -2527,47 +2549,49 @@ a @w{@ar{}@strong{chord}}, usually in the distance of a third @end lilypond @item triad -I: triade, F: triade, accord parfait, accord de trois sons, D: Dreiklang, NL: +ES: tríada, I: triade, F: triade, accord parfait, accord de trois sons, D: Dreiklang, NL: drieklank, DK: treklang, S: treklang, N: @w{@ar{}@strong{chord}} @item trill; shake +ES: trino, I: trillo, F: trille, tremblement, battement (cadence), D: Triller, NL: triller, DK:@w{ }trille, S:@w{ }drill, N:@w{ }. @w{@ar{}@strong{ornament}} @item triple meter -I: tempo ternario, F: mesure ternaire, D: dreiteiliger Takt, NL: driedelige +ES: compás compuesto , I: tempo ternario, F: mesure ternaire, D: dreiteiliger Takt, NL: driedelige maatsoort, DK: tredelt takt, S: tretakt, N: . @w{@ar{}@strong{meter}} @item triplet -I: terzina, F: triolet, D: Triole, NL: triool, DK: triol, S: triol, N: . +ES: tresillo, I: terzina, F: triolet, D: Triole, NL: triool, DK: triol, S: triol, N: . @w{@ar{}@strong{note value}} @item tritone -I: tritono, F: triton, D: Tritonus, NL: tritoon, DK: tritonus, S: tritonus, N: +ES: trítono, I: tritono, F: triton, D: Tritonus, NL: tritoon, DK: tritonus, S: tritonus, N: . @w{@ar{}@strong{interval}} @item tuning fork -I: diapason, corista, F: diapason, D: Stimmgabel, NL: stemvork, DK: +ES: diapasón, I: diapason, corista, F: diapason, D: Stimmgabel, NL: stemvork, DK: stemmegaffel, S: st@"amgaffel, N: . A two-pronged piece of steel used to indicate absolute pitch. Tuning forks give the international pitch for the tone @emph{a} (440 vibrations per second.) @item turn; gruppetto +ES: grupo, I: gruppetto, F: grupetto, D: Doppelschlag, NL: dubbelslag, DK: dobbeltslag, S: dubbelslag, N: . @item unison -I: unisono, F: unisson, D: Unison, unisono, NL: unisono, DK: unison, S: +ES: unísono, I: unisono, F: unisson, D: Unison, unisono, NL: unisono, DK: unison, S: unison, N: . Playing of the same notes or the same melody by various instruments (voices) @@ -2575,7 +2599,7 @@ or by the whole orchestra (choir), either at exactly the same pitch or in a different octave. @item upbeat -I: anacrusi, F: anacrouse, D: Auftakt, NL: opmaat, DK: optakt, S: +ES: entrada anacrúsica, I: anacrusi, F: anacrouse, D: Auftakt, NL: opmaat, DK: optakt, S: upptakt, N: Initial note(s) of a melody occurring before the first bar @@ -2592,7 +2616,7 @@ line. @w{@ar{}@strong{measure}} @w{@ar{}@strong{meter}} @end lilypond @item voice -I: voce, F: voix, D: Stimme, NL: stem, DK: stemme, S: st@"amma, N: , +ES: voz, I: voce, F: voix, D: Stimme, NL: stem, DK: stemme, S: st@"amma, N: , 1. Human voices: @w{@ar{}@strong{soprano}}, @w{@ar{}@strong{mezzo-soprano}}, @w{@ar{}@strong{contralto}}, @w{@ar{}@strong{tenor}}, @@ -2600,25 +2624,25 @@ I: voce, F: voix, D: Stimme, NL: stem, DK: stemme, S: st@"amma, N: , of a polyphonic composition. @item weak beat -I: tempo debole, arsi, F: temps faible, D: unbetonter Taktteil oder -schlag, +ES: tiempo débil, I: tempo debole, arsi, F: temps faible, D: unbetonter Taktteil oder -schlag, NL: arsis, DK: ubetonet taktslag, S: obetonat taktslag, N: . @w{@ar{}@strong{beat}} @w{@ar{}@strong{measure}} @w{@ar{}@strong{rhythm}} @item whole note -I: semibreve, F: ronde, UK: semibreve, D: Ganze, Ganze Note, NL: hele noot, +ES: redonda, I: semibreve, F: ronde, UK: semibreve, D: Ganze, Ganze Note, NL: hele noot, DK: helnode, S: helnot, N: . @w{@ar{}@strong{note value}} @item whole rest -I: pausa di semibreve, F: pause, UK: semibreve rest, D: Ganze Pause, NL: hele +ES: silencio de redonda, I: pausa di semibreve, F: pause, UK: semibreve rest, D: Ganze Pause, NL: hele rust, DK: helnodespause, S: helpaus, N: . @w{@ar{}@strong{note value}} @item whole tone -I: tono intero, F: ton entier, D: Ganzton, NL: hele toon, DK: heltone, S: +ES: tono, I: tono intero, F: ton entier, D: Ganzton, NL: hele toon, DK: heltone, S: helton, N: . The @w{@ar{}@strong{interval}} of a major second. The interval between two @@ -2626,7 +2650,7 @@ tones on the piano keyboard with exactly one key between them - including black and white keys - is a whole tone. @item woodwind -I: legni, F: le bois, D: Holzbl@"aser, NL: houtblazers, DK tr@ae{}bl@ae{}sere, +ES: maderas, I: legni, F: le bois, D: Holzbl@"aser, NL: houtblazers, DK tr@ae{}bl@ae{}sere, S: tr@"abl@aa{}sare, N: . A family of blown wooden musical instruments. Today some of these instruments @@ -2784,3 +2808,4 @@ Oxford Advanced Learner's Dictionary of Current English, Third Edition 1974. @end table @bye + diff --git a/Documentation/user/refman.itely b/Documentation/user/refman.itely index f55767c73e..dc98e0196c 100644 --- a/Documentation/user/refman.itely +++ b/Documentation/user/refman.itely @@ -19,7 +19,7 @@ @chapter Reference Manual This document describes GNU LilyPond and its input format. The last -revision of this document was for LilyPond 1.3.141. +revision of this document was made for LilyPond 1.3.145. @menu @@ -62,7 +62,7 @@ by `music compiler' or `music to notation compiler'. LilyPond is linked to GUILE, GNU's Scheme library for extension. The Scheme library provides the glue that holds together the low-level -routines and separate modules general, which are C++. +routines and separate modules which are written in C++. When lilypond is run to typeset sheet music, the following happens: @itemize @bullet @@ -71,13 +71,14 @@ When lilypond is run to typeset sheet music, the following happens: then the user @file{ly} file is read. @item interpretation: the music in the file is processed ``in playing order'', i.e. the order that you use to read sheet music, or the -order in which notes are played. +order in which notes are played. The result of this step is a typesetting +specification. @item typesetting: -in this step, the results of the interpretation, a typesetting -specification, is solved. +The typesetting specification is solved: positions and formatting is +calculated. -@item the visible results ("virtual ink") is written to the output file. +@item the visible results ("virtual ink") are written to the output file. @end itemize During these stages different types of data play the the main role: @@ -117,7 +118,6 @@ brevity we omit obligotary lint such as @code{\score} blocks and * Tuplets:: * Rests:: * Skip:: -* Note mode:: @end menu @c . {Pitches} @@ -216,18 +216,16 @@ The syntax for a verbose duration specification is @example \duration @var{scmduration} @end example -Here, @var{scmduration} is a Scheme object of type Duration. See +Here, @var{scmduration} is a Scheme object of type @code{Duration}. See @ref{Duration} for more information. In Note, Chord, and Lyrics mode, durations may be designated by numbers and dots: durations are entered as their reciprocal values. For notes -longer than a whole note, use identifiers. - -@quotation +longer than a whole note you must use identifiers. @example -c'\longa c'\breve + c'\breve c'1 c'2 c'4 c'8 c'16 c'32 c'64 c'64 r\longa r\breve r1 r2 r4 r8 r16 r32 r64 r64 @@ -237,7 +235,7 @@ r1 r2 r4 r8 r16 r32 r64 r64 @lilypond[] \score { \notes \relative c'' { - a\longa a\breve \autoBeamOff + \breve \autoBeamOff a1 a2 a4 a8 a16 a32 a64 a64 r\longa r\breve r1 r2 r4 r8 r16 r32 r64 r64 @@ -253,11 +251,15 @@ r1 r2 r4 r8 r16 r32 r64 r64 } } @end lilypond -@end quotation -As you can see, the longa is not printed. To get a longa note head, you -have to use a mensural note heads. This is done accomplished by setting -the @code{style} property of the NoteHead grob to @code{mensural}. + To get a longa note head, you have to use a mensural note heads. This +is done accomplished by setting the @code{style} property of the +NoteHead grob to @code{mensural}. + +@lilypond[fragment,singleline,verbatim] + \property Voice.NoteHead \set #'style = #'mensural + a'\longa +@end lilypond If the duration is omitted then it is set to the previous duration entered. At the start of parsing a quarter note is assumed. The @@ -282,12 +284,12 @@ notes or rests produced. A note specification has the form @example - @var{pitch}[@var{octavespec}][!][?][@var{duration}] + @var{pitch}[!][?][@var{duration}] @end example -LilyPond will determine what accidentals to typeset depending on the key -and context. The alteration refers to what note is heard, not to whether -an accidental is printed. A reminder accidental +The alteration refers to what note is heard, not to whether an +accidental is printed. This is done depending on the key and context. +A reminder accidental @cindex reminder accidental @cindex @code{?} can be forced by adding an exclamation mark @code{!} after the pitch. A @@ -312,7 +314,7 @@ note head that includes a note name. It is used in some publications by Hal-Leonard Inc. music publishers. @lilypond[singleline,verbatim] -\include "paper26.ly" +\include "paper23.ly" \score { \notes { c'2 e'4 f' | g'1 } \paper { \translator { \EasyNotation } } @@ -340,9 +342,9 @@ the @code{-f ps} option of lilypond will produce the desired result. A tie connects two adjacent note heads of the same pitch. When used with chords, it connects all of the note heads whose pitches match. -Ties are indicated using the tilde symbol `@code{~}'. -If you try to tie together chords which have no common pitches, a -warning message will appear and no ties will be created. +Ties are indicated using the tilde symbol `@code{~}'. If you try to tie +together chords which have no common pitches then no ties will be +created. @lilypond[fragment,verbatim,center] e' ~ e' ~ @@ -357,12 +359,16 @@ ties: @end lilypond In its meaning a tie is just a way of extending a note duration, similar -to the augmentation dot: the following example are three ways of notating +to the augmentation dot: the following example are two ways of notating exactly the same concept. +@c @lilypond[fragment, singleline] c'2 c'4 ~ c'4 @end lilypond + +Ties are printed through the @code{Tie} grob. + @refbugs At present, the tie is implemented as a separate thing, temporally @@ -371,7 +377,7 @@ between tied notes, dotted notes and plain notes. Tieing only a subset of the note heads of a chord is not supported in a simple way. It can be achieved by moving the tie-engraver into Thread -context and turning off ties per Thread. +context and turning on an off ties per Thread. @node Tuplets @@ -409,12 +415,24 @@ of tuplets. \times 2/3 { c''8 c c c c c } @end lilypond +The format of the number is determined by the property +@code{tupletNumberFormatFunction}. The default prints only the +denominator, but if you set it to the Scheme function +@code{fraction-tuplet-formatter} will print @var{num}:@var{den} instead. + +@cindex @code{tupletNumberFormatFunction} +@cindex tuplet formatting + +Tuplet brackets are printed as @code{TupletBracket} grobs + + @c . {Rests} @node Rests @subsection Rests @cindex Rests -Rests are entered like notes, with note name `@code{r}'. +Rests are entered like notes, with note name `@code{r}'. The grob is +@code{Rest}. @c . {Skip} @@ -435,29 +453,6 @@ printed. The shorthand is only available in Note and Chord mode. -@node Note mode -@subsection Note mode - - - -@cindex note mode -@cindex @code{\notes} - -Note mode is the lexical mode generally used for inputting notes. The -syntax is -@example -\notes @var{expr} -@end example - -This instructs the tokenizer to interpret @var{expr} in note mode. If a -a sequence of alfabetical characters, like @code{foobar}, LilyPond first -checks if @code{foobar} is a pitch name. If it is not a pitch name, -then it is treated as a string. - -Numbers and dots indicate durations, so you can enter floating point -numbers in this mode. - - @node Staff notation @section Staff notation @@ -506,6 +501,8 @@ semitones that should be added to the pitch given in the subsequent This command sets context property @code{Staff.keySignature}. +The printed signature is a @code{KeySignature} grob. + @cindex @code{keySignature} @c . {Clef} @@ -524,6 +521,8 @@ Shortcut for \property Staff.clefOctavation = @var{extra pitch of clefname} @end example +Any change in these properties creates a clef (a @code{Clef} grob). + Supported clef-names include @itemize @bullet @@ -588,7 +587,9 @@ Internally, this is a shortcut for doing \property Score.timeSignatureFraction = #'(@var{numerator} . @var{denominator}) @end example -[TODO: discuss options for layout] +The grob is @code{TimeSignature}. There are many options for the layout +of this grob. They are selected through the @code{style} grob +property. See @file{input/test/time.ly} for examples. @c . {Partial} @subsection Partial @@ -661,7 +662,7 @@ documentation. @cindex repeatCommands @cindex defaultBarType -Bar lines are created by the @code{Bar_line_engraver}. That engraver examines +Bar lines are created by the @code{Bar_engraver}. That engraver examines @code{whichBar} at every moment. Whenever it is set to a string, it will create a bar with that type. @code{whichBar} is usually set automatically: at the start of a measure it is set to @@ -672,6 +673,7 @@ override default measure bars. @code{\bar ; }. These settings take precedence over automatic @code{whichBar} settings. +@code{Bar_engraver} creates @code{BarLine} grobs. @c . {Polyphony} @node Polyphony @@ -705,7 +707,7 @@ in @code{NoteColumn}). \shiftOnn \stemUp ais } \context Voice=four { - \shiftOnnn \stemUp fis-2 + \shiftOnnn \stemUp fis } > @end lilypond @@ -721,7 +723,6 @@ correct manner. \context Voice = VC { \voiceTwo fis4~ fis4 f ~ f } > @end lilypond - LilyPond also vertically shifts rests that are opposite of a stem. @lilypond[singleline,verbatim] @@ -746,8 +747,6 @@ handles a few situations. When it can not cope, you are advised to use @code{force-hshift} of the NoteColumn grob and @code{staff-position} of the Rest grob to override typesetting decisions. -[TODO: doc merge-differently-dotted] - @node Beaming @section Beaming @@ -885,9 +884,11 @@ control the number of beams through the properties @end lilypond @cindex @code{stemRightBeamCount} -The beam symbol can be tweaked through @code{Voice.Beam}'s -grob-properties @code{height} and @code{staff-position}, -in staff-spaces. +The beam symbol (grob @code{Voice.Beam}, both for automatic and manual +beams) can be tweaked through grob-properties @code{height} and +@code{staff-position}, which are both measured staff-spaces. + +[TODO: check: halfspaces?] Set @code{height} to zero, to get horizontal beams: @@ -935,9 +936,6 @@ possible. In some instances involving beams slurs may be attached to a stem end. If you want to override this layout you can do this through @code{Voice.Slur}'s grob-property @code{attachment}: -Maybe reinclude other slur features and move back to tricks? Esp. the -second example, how to fix, can be very helpful. - @lilypond[fragment,relative,verbatim] \property Voice.Slur \set #'direction = #1 \property Voice.Stem \set #'length = #5.5 @@ -1038,7 +1036,8 @@ output with 76 quarter notes per minute. @refbugs The tempo setting is not printed, but is currently only used in the MIDI -output. +output. You can trick lily into producing a metronome mark, +though. Details are in @ref{Text markup}. @@ -1170,6 +1169,7 @@ helpful identifier definitions appear in @file{script.ly}. For information on how to add scripts, consult @file{scm/script.scm}. +Grobs for these objects are @code{Script} and @code{Fingering}. @refbugs @@ -1298,8 +1298,8 @@ also be implemented. @cindex @code{\glissando} -A glissando line can be requested by attaching a @code{\glissando} to a -note: +A glissando line (grob @code{Voice.Glissando}) can be requested by attaching a +@code{\glissando} to a note: @lilypond[fragment,relative,verbatim] c'' \glissando c' @@ -1386,6 +1386,10 @@ is an example how to do it: @end lilypond +Dynamics are grobs of @code{Voice.DynamicText} and +@code{Voice.Hairpin}. They are put together on +@code{Voice.DynamicLineSpanner} to align them vertically. + @c . {Repeats} @node Repeats @@ -1460,10 +1464,8 @@ With alternative endings: \alternative { {d'2 d'} {f' f} } @end lilypond -Folded repeats look like this:@footnote{Folded repeats offer little -more over simultaneous music. However, it is to be expected that -more functionality -- especially for the MIDI backend -- will be -implemented at some point in the future.} +Folded repeats look like this: + @lilypond[fragment,verbatim] c'1 @@ -1497,6 +1499,10 @@ after 1.4. It is possible to nest @code{\repeat}, although it probably is only meaningful for unfolded repeats. +Folded repeats offer little more over simultaneous music. However, it +is to be expected that more functionality -- especially for the MIDI +backend -- will be implemented at some point in the future. + @node Manual repeat commands @subsection Manual repeat commands @@ -1526,6 +1532,8 @@ command can be @end lilypond +Repeats brackets are @code{Staff.VoltaBracket} grobs. + @node Tremolo repeats @subsection Tremolo repeats @cindex tremolo beams @@ -1543,6 +1551,9 @@ style. } @end lilypond +Tremolo beams are @code{Voice.Beam} grobs. Single stem tremolos are +@code{Voice.StemTremolo}. + @refbugs @@ -1587,9 +1598,12 @@ printed once, and then the pattern is replaced with a special sign. } @end lilypond +The signs are represented by these grobs: @code{Voice.RepeatSlash} and +@code{Voice.PercentRepeat} and @code{Voice.DoublePercentRepeat}. + @refbugs -You can not nest percent repeats, filling in the first measure with +You can not nest percent repeats, e.g. filling in the first measure with slashes, and repeating that measure with percents. @node Rhythmic music @@ -1744,12 +1758,13 @@ to the chords in both staffs, and set > @end lilypond -This command creates @code{Arpeggio} grobs. +This command creates @code{Voice.Arpeggio} grobs. Cross staff arpeggios +are @code{PianoStaff.Arpeggio}. @refbugs - It is not possible to mix -connected arpeggios and unconnected arpeggios at the same time. +It is not possible to mix connected arpeggios and unconnected arpeggios +at the same time. @c . {VoiceFollower} @@ -1778,6 +1793,7 @@ can be printed automatically. This is enabled if the property > @end lilypond +The associated grob is @code{Voice.VoiceFollower}. @c . {Lyrics} @node Lyrics @@ -1847,6 +1863,8 @@ interpreted as melismata. Lyric syllables must be interpreted within a share the so -- ftware; } @end lilypond +The Lyric syllables are @code{LyricsVoice.LyricSyllable} grobs. + @cindex extender @cindex lyric extender @cindex melisma @@ -1855,6 +1873,8 @@ As you can see, extender lines are entered as @code{__}. This will create an extender, a line that extends over the entire duration of the lyric. This line will run all the way to the start of the next lyric, so you may want to shorten it by using a blank lyric (using @code{_}). +The grob for this symbol is @code{LyricsVoice.LyricExtender}. + @cindex hyphen @@ -1863,6 +1883,7 @@ attached to the end of the first syllable) you can use the special `@code{-}@code{-}' lyric as a separate word between syllables. This will result in a hyphen which length varies depending on the space between syllables, and which will be centered between the syllables. +The grob for this symbol is @code{LyricsVoice.LyricHyphen}. @cindex Lyric hyphen @@ -4446,8 +4467,7 @@ A mode switch is entered as a compound music expressions In each of these cases, these expressions do not add anything to the meaning of their arguments. They are just a way to indicate that the arguments should be parsed in indicated mode. The modes are treated in -more detail in the @ref{Note entry}, @ref{Lyrics} and -@ref{Chords}. +more detail in @ref{Lyrics} and @ref{Chords}. You may nest different input modes. diff --git a/Documentation/user/tutorial.itely b/Documentation/user/tutorial.itely index d6e7a59342..4f14ac7c40 100644 --- a/Documentation/user/tutorial.itely +++ b/Documentation/user/tutorial.itely @@ -2157,23 +2157,8 @@ Music (TM), have a look at the @ref{Mutopia project}. this should be on mutopia website. -Ja, inderdaad: OOK on mutopia website. - -This helps people to generate .ps from .ly in general, create booklets -etc, use dependencies. Figure out where to include this. Refman? - - -Zie makefile rm lily-* discussies op gmd. - - - ] -@c UGH UGH: emacs' texinfo-all-menus-update also parses inside @ignore -@c blocks. - -@c @no de Pre-cooked makefile -@c @s ection Pre-cooked makefile @c waar deze info? is uiteindelijk wel handig, schat ik. [TODO: cut blabla] diff --git a/FAQ.txt b/FAQ.txt index 41feee5f3b..0db3958775 100644 --- a/FAQ.txt +++ b/FAQ.txt @@ -44,22 +44,6 @@ yourself: autoconf configure -Is there an emacs mode? ------------------------ - - Yes. It is included with the source archive as `lilypond-mode.el' -and `lilypond-font-lock.el'. If you have an RPM, it is in -`/usr/share/doc/lilypond-X/'. You have to install it yourself. - - Add this to your ~/.emacs or ~/.emacs.el: - (load-library "lilypond-mode.el") - (setq auto-mode-alist - (cons '("\\.ly$" . LilyPond-mode) auto-mode-alist)) - (add-hook 'LilyPond-mode-hook (lambda () (turn-on-font-lock))) - - If you have the latest LilyPond-1.3.x Debian package, LilyPond-mode -is automatically loaded, so you need not modify your ~/.emacs file. - I downloaded the windows32 port, and it doesn't match the website! ------------------------------------------------------------------ diff --git a/INSTALL.txt b/INSTALL.txt index b4eeade294..97f4d4d359 100644 --- a/INSTALL.txt +++ b/INSTALL.txt @@ -10,138 +10,123 @@ Obtaining ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/ (ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/). - _If you upgrade by patching do remember to rerun autoconf after -applying the patch_. + There are three options for downloading sources. - If you do not want to download the entire archive for each version, -the safest method for upgrading is to use `xdelta', see -`ftp://ftp.xcf.berkeley.edu/pub/xdelta/'. + * if you don't have any version, then you can download the entire + `.tar.gz' file. - The following command produces `lilypond-1.3.122.tar.gz' from -`lilypond-1.3.121' identical (up to compression dates) to the .122 on -the FTP site. - xdelta patch lilypond-1.3.121-1.3.122.xd lilypond-1.3.121.tar.gz + * if you have an unpacked source tree of a previous version, you + may use the diffs . -Prerequisites -============= + _If you upgrade by patching do remember to rerun autoconf after + applying the patch_. + + * if you have the `.tar.gz' file of a previous release, you can use + xdelta (ftp://ftp.xcf.berkeley.edu/pub/xdelta/). This is much + safer than using normal diffs, and is the recommended way. - For compilation you need: + The following command produces `lilypond-1.3.122.tar.gz' from + `lilypond-1.3.121' identical (up to compression dates) to the .122 + on the FTP site. + xdelta patch lilypond-1.3.121-1.3.122.xd lilypond-1.3.121.tar.gz - * A GNU system: GNU LilyPond is known to run on these GNU systems: - Linux (PPC, intel), FreeBSD, AIX, NeXTStep, IRIX, Digital Unix - and Solaris. +Build requirements +================== - * Lots of disk space: LilyPond takes between 30 and 100 mb to - compile if you use debugging information. If you are short on - disk-space run configure with `--disable-debugging'. + This document describes how to build LilyPond on Unix platforms. It +is also known to run and compile on Windows NT/95/98 as well. More +information on this topic can be found at Jan's windows page +(http://appel.lilypond.org/lilypond/gnu-windows/). - * Although we recommend to use Unix, LilyPond is known to run on - Windows NT/95/98 as well. See Section Windows NT/95,es. + You need the following packages to compile Lilypond. - * A reasonable C++ compiler: EGCS 1.1, GCC 2.95.2 or newer. Check - out `ftp://ftp.gnu.org/gnu/gcc/'. + * A reasonably new C++ compiler: EGCS 1.1, GCC 2.95.2 or newer. + Check out the gcc site (ftp://ftp.gnu.org/gnu/gcc/). - * Python 1.5, Check out `ftp://ftp.python.org' or - `ftp://ftp.cwi.nl/pub/python'. + * Python 1.5, Check out the python website (http://www.python.org). - * GUILE 1.3.4 or newer, check out - http://www.gnu.org/software/guile/guile.html + * GUILE 1.3.4 or newer, check out the GUILE webpage (http://www.gnu.org/software/guile/guile.html). Version 1.4 is recommended for better performance. - * GNU Make. Check out ftp://ftp.gnu.org/gnu/make/ + * GNU Make. Check out the GNU make FTP directory (ftp://ftp.gnu.org/gnu/make/). - * Flex (version 2.5.4a or newer). Check out - ftp://ftp.gnu.org/pub/gnu/non-gnu/flex/ - (ftp://ftp.gnu.org/pub/gnu/non-gnu/flex/). + * Flex (version 2.5.4a or newer). Check out the Flex webpage + (http://www.gnu.org/software/flex/). - * Bison (version 1.25 or newer). Check out - ftp://ftp.gnu.org/gnu/bison/ (ftp://ftp.gnu.org/gnu/bison/). + * Bison (version 1.25 or newer). Check out the bison webpage + (http://www.gnu.org/software/bison/) - * TeX. If you want LilyPond to use kpathsea support (recommended), - make sure you have tetex 1.0 or newer (1.0.6 is known to work). - You may need to install a tetex-devel or tetex-dev package too. + * TeX. - * Texinfo (version 4.0 or newer). Check out - ftp://ftp.gnu.org/gnu/texinfo/ (ftp://ftp.gnu.org/gnu/texinfo/). - Most documentation is in texinfo. + If you want LilyPond to use kpathsea support (recommended), make + sure you have tetex 1.0 or newer (1.0.6 is known to work). You + may need to install a tetex-devel or tetex-dev package too. - * The geometry package for LaTeX is needed to use ly2dvi. Available - at - ftp://ftp.ctan.org/tex-archive/macros/latex/contrib/supported/geometry - (ftp://ftp.ctan.org/tex-archive/macros/latex/contrib/supported/geometry) - or at mirror site ftp://ftp.dante.de (ftp://ftp.dante.de) + * Texinfo (version 4.0 or newer). The documentation of lily is + written in texinfo. Check out the texinfo FTP directory + (ftp://ftp.gnu.org/gnu/texinfo/). + + * The geometry package for LaTeX is needed to use ly2dvi. It is + available at the FTP directory for `geometry' + (ftp://ftp.ctan.org/tex-archive/macros/latex/contrib/supported/geometry). + This package is normally included with the TeX distribution. * MetaPost, needed for generating PostScript fonts. Please note that tetex-0.4pl8 (included with Red Hat 5.x) does not include `mfplain.mp', which is needed for producing the scalable font files. - If you do not want to use PostScript output, edit `mf/GNUmakefile', - removing the line saying `PFA_FILES=' + If you don't have MetaPost and don't want to use PostScript + output, then edit `mf/GNUmakefile', removing the line saying + `PFA_FILES='. * kpathsea, a library for searching (TeX) files. `kpathsea' is usually included with your installation of TeX. -Running -======= +Running requirements +==================== GNU LilyPond does use a lot of resources. For operation you need the following software * TeX. - * A PostScript printer and/or viewer (such as Ghostscript) is - strongly recommended. Xdvi will show all embedded PostScript - too if you have Ghostscript installed. + * Xdvi and ghostscript - * GUILE 1.3.4, or newer. Check out - http://www.gnu.org/software/guile/ - (http://www.gnu.org/programs/guile.html) + * GUILE 1.3.4, or newer. Check out the GUILE webpage + (http://www.gnu.org/software/guile.html) For running LilyPond successfully you have to help TeX and MetaFont find various files. The recommended way of doing so is adjusting the environment variables in the start-up scripts of your shell. Appropriate -Csh and sh scripts are left in `buildscripts/out/lilypond-profile' and +Csh and bourne sh scripts are left in +`buildscripts/out/lilypond-profile' and `buildscripts/out/lilypond-login' after compilation. - The empty path component represents TeX and MetaFont's default search -paths. Scripts with the proper paths for the bourne and C-shell -respectively are generated in `buildscripts/out/lilypond-profile' and -`buildscripts/out/lilypond-login' during compilation. - LilyPond is a big and slow program. A fast CPU and plenty of RAM is recommended for comfortable use. -Website -======= - - The website is the most convenient form to use for reading the -documentation on-line documentation. It is made by entering +Website requirements +==================== + The documentation comes in the form of a website. You can view this +website on the internet, but you can also build it locally. This process +requires a successful compile of lilypond. The website is built by +issuing make web-doc - This does require a functioning LilyPond. The executable doesn't -have to be installed, though. - If you want to auto-generate Lily's website, you'll need some -additional conversion tools. + Building the website requires some additional tools: - * xpmtoppm (from the netpbm package: the Portable Bitmap Utilities) - (For Red Hat Linux users: it is included within the - package libgr-progs). The original is at - ftp://ftp.x.org/contrib/utilities/netpbm-1mar1994.p1.tar.gz + * xpmtoppm (from the netpbm package: the Portable Bitmap Utilities). + The original is at the netpbm FTP site (ftp://ftp.x.org/contrib/utilities/netpbm-1mar1994.p1.tar.gz) - * pnmtopng (also in libgr-progs for Red Hat). The original is at - ftp://swrinde.nde.swri.edu/pub/png/applications/pnmtopng-2.37.2.tar.gz - (ftp://swrinde.nde.swri.edu/pub/png/applications/pnmtopng-2.37.2.tar.gz).i - - The version of `pnmtopng' that is distributed with Red Hat 5.1 and - 5.2 contains a bug: pnmtopng is dynamically linked to the wrong - version of libpng. + * pnmtopng. The original is at in the pnmtopng FTP site + (ftp://swrinde.nde.swri.edu/pub/png/applications/pnmtopng-2.37.2.tar.gz). * Bibtex2html (http://www.lri.fr/~filliatr/ftp/bibtex2html/), or Bib2html (http://www.uni-koblenz.de/ag-ki/ftp/bib2html/). @@ -158,88 +143,46 @@ additional conversion tools. Configuring and compiling ========================= - to install GNU LilyPond, simply type: + to install GNU LilyPond, type: gunzip -c lilypond-x.y.z | tar xf - cd lilypond-x.y.z - ./configure # fill in your standard prefix with --prefix + ./configure # run with --help to see appropriate options make make install + sh buildscripts/clean-fonts.sh - This will install a number of files, something close to: - - /usr/local/man/man1/midi2ly.1 - /usr/local/man/man1/abc2ly.1 - /usr/local/man/man1/etf2ly.1 - /usr/local/man/man1/convert-ly.1 - /usr/local/man/man1/lilypond-book.1 - /usr/local/man/man1/lilypond.1 - /usr/local/bin/lilypond - /usr/local/bin/midi2ly - /usr/local/bin/convert-ly - /usr/local/bin/lilypond-book - /usr/local/bin/abc2ly - /usr/local/bin/pmx2ly - /usr/local/bin/musedata2ly - /usr/local/bin/etf2ly - /usr/local/share/lilypond/* - /usr/local/share/locale/{....}/LC_MESSAGES/lilypond.mo - - The above assumes that you are root and have the GNU development -tools, and your make is GNU make. If this is not the case, you can -adjust your environment variables to your taste: - - - export CPPFLAGS="-I /home/me/my_include -DWEIRD_FOOBAR" - ./configure - - `CPPFLAGS' are the preprocessor flags. - - The configure script is Cygnus configure, and it will accept -`--help'. If you are not root, you will probably have to make it with a -different `--prefix' option. Our favourite location is + If you are doing an upgrade, you should remove all `feta' `.pk' and +`.tfm' files. A script has been provided to do the work for you, see +`buildscripts/clean-fonts.sh'. + If you are not root, you should choose a `--prefix' argument that +points into your home directory, eg. ./configure --prefix=$HOME/usr - In this case, you will have to set up MFINPUTS, and TEXINPUTS -accordingly. - - Since GNU LilyPond currently is beta, you are advised to also use - - - --enable-debugging - --enable-checking - - Options to configure include: - -``--enable-printing'' - Enable debugging print routines (lilypond `-D' option) - -``--enable-optimise'' - Set maximum optimisation: compile with `-O2'. This can be - unreliable on some compiler/platform combinations (eg, DEC Alpha - and PPC) - -``--enable-profiling'' - Compile with support for profiling. + In this case, you have to insert the contents of +`buildscripts/out/lilypond-login' or +`buildscripts/out/lilypond-profile' into your start up scripts by hand. -``--enable-config=CONF'' - Output to different configuration files. Enables different binary - builds alongside eachother, eg, multi-configuration (debugging, - profiling), or multi-platform builds. Use `make conf=CONF' to - build for a specific configuration. +Configuring for multiple platforms +================================== - All options are documented in the `configure' help The option -`--enable-optimise' is recommended for Real Life usage. + If you want to build multiple versions of LilyPond with different +configuration settings, you can use the `--enable-config=CONF' option +of configure. You should use `make conf=CONF' to generate the output +in `out-CONF'. Example: suppose I want to build with and without +profiling. Then I'd use the following for the normal build, - If you do + ./configure --prefix=~ --enable-checking + make + make install + and for the profiling version, I specify a different configuration. - make all - everything will be compiled, but nothing will be installed. The -resulting binaries can be found in the subdirectories `out/' (which -contain all files generated during compilation). + ./configure --prefix=~ --enable-profiling --enable-config=prof --disable-checking + make conf=prof + make conf=prof install Emacs mode ========== @@ -255,72 +198,28 @@ is in `/usr/share/doc/lilypond-X/'. You have to install it yourself. (add-hook 'LilyPond-mode-hook (lambda () (turn-on-font-lock))) If you have the latest LilyPond-1.3.x Debian package, LilyPond-mode -is automatically loaded, so you need not modify your ~/.emacs file. - -Configuring for multiple platforms -================================== - - If you want to build multiple versions of LilyPond with different -configuration settings, you can use the `--enable-config=CONF' option. -You should use `make conf=CONF' to generate the output in `out-CONF'. -Example: suppose I want to build with and without profiling. Then I'd -use the following for the normal build, - - - ./configure --prefix=~ --disable-optimise --enable-checking - make - make install - - and for the profiling version, I specify a different configuration. - - - ./configure --prefix=~ --enable-profiling --enable-config=prof --enable-optimise --disable-checking - make conf=prof - make conf=prof install - -Installing -========== - - if you have done a successful `make', then a simple - - - make install - - should do the trick. - - If you are doing an upgrade, please remember to remove obsolete -`.pk' and `.tfm' files of the fonts. A script has been provided to do -the work for you, see `bin/clean-fonts.sh'. +is automatically loaded, so you need not modify your `~/.emacs' file. Red Hat Linux ============= - Red Hat Linux users can compile an RPM. A spec file is in -`make/out/lilypond.spec'; it is distributed along with the sources. + Red Hat 7.0 i386 RPMS are available from +`ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/RedHat/'. - You can make the rpm by issuing + You can also compile them yourself. A spec file is in +`make/out/lilypond.spec'. This file is distributed along with the +sources. You can make the rpm by issuing rpm -tb lilypond-x.y.z.tar.gz rpm -i /usr/src/redhat/RPMS/i386/lilypond-x.y.z - Precompiled Red Hat 7.0 i386 RPMS are available from -`ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/RedHat/'. + For running on a Red Hat system you need these packages: guile, +tetex, tetex-dvips, libstdc++, python, ghostscript. For compilation on a Red Hat system you need these packages, in -addition to the those needed for running: - * glibc-devel - - * libstdc++-devel - - * guile-devel - - * flex - - * bison - - * texinfo - - * tetex-devel +addition to the those needed for running: glibc-devel, gcc-c++, +libstdc++-devel, guile-devel, flex, bison, texinfo, tetex-devel, groff, +libgr-progs. SuSE ==== @@ -329,6 +228,11 @@ SuSE Install `tetex', `te_mpost', `te_kpath'. +Mandrake +======== + + [TODO] + Debian GNU/Linux ================ @@ -412,69 +316,15 @@ interfere with your build, you may want to do this before the build too: dpkg --purge lilypond lilypond1.3 -Windows NT/95 -============= - - Separate instructions on building for W32 are available; See the -files in `Documentation/ntweb/', included with the sources. - Problems ======== For help and questions use and . Please consult the faq before mailing -your problems. - - If you find bugs, please send bug reports to . - - Bugs that are LilyPond's fault are listed in our TODO list on the -web, or demonstrated in `input/bugs/'. - - Bugs that are not LilyPond's fault are documented here. - -LinuxPPC Bugs: -************** - - * egcs-1.1.2-12c (stock LinuxPPC R5) has a serious bug, upgrade to - fixed in egcs-1.1.2-12f or gcc-2.95-0a, - `ftp://dev.linuxppc.org/users/fsirl/R5/RPMS/ppc/' - - * egcs-1.0.2 (LinuxPPC R4): all compiling with `-O2' is suspect, in - particular guile-1.3, and Lily herself will break. - -Linux-i386 -********** - - * SuSE6.2 and similar platforms (glibc 2.1, libstdc++ 2.9.0) - - Lily will crash during parsing (which suggests a C++ library - incompatibility). Precise cause, precise platform description or - solution are not known. - - Note that this only happens on some computers with the said - platform. - - * libg++ 2.7 - - LilyPond occasionally crashes while parsing the initialisation - files. This is a very obscure bug, and usually entering the - commandline differently "fixes" it. - - lilypond input.ly - - and - lilypond -I. ./input.ly - makes a difference - - Typical stacktrace: - SIGSEGV - __libc_malloc (bytes=16384) - ?? () - yyFlexLexer::yy_create_buffer () - Includable_lexer::new_input (this=0x8209a00, s={strh_ = { +your problems. If you find bugs, please send bug reports to +. - This behaviour has been observed with machines that have old libg++ - versions (LinuxPPC feb '98, Red Hat 4.x). + Bugs that are not fault of LilyPond are documented here. Solaris: ******** diff --git a/README.txt b/README.txt index c07974d42c..738fbcd200 100644 --- a/README.txt +++ b/README.txt @@ -24,7 +24,8 @@ Requirements ============ For the compilation and running of LilyPond you need some additional -packages. Please refer to the installation instructions. +packages. Please refer to the installation instructions in +`INSTALL.txt'. NOTE: If you downloaded a binary (.rpm or a W95/NT .zip file), you don't have to compile LilyPond. @@ -38,35 +39,29 @@ are in the toplevel directory, as INSTALL.txt Documentation ============= - The real documentation is the directory Documentation/ + The documentation is available online at +`http://www.cs.uu.nl/~hanwen/lilypond/index.html'. You can also build +it locally. This does require a working LilyPond binary. The following +formats are supported: + * HTML. Refer to INSTALL.txt for information on how to make the HTML + documentation. - If you want to read the documentation online, these are options: - * use HTML. Refer to INSTALL.txt for information on how to make the - HTML documentation. + * `.dvi', for the tutorial and reference manual. Do - * use HTML. Point your browser to - `http://www.cs.uu.nl/~hanwen/lilypond/index.html'. + make -C Documentation/user/ dvi + The printable documentation is left in `Documentation/user/out/'. - * use `.dvi', for the tutorial and reference manual. Do - - make -C Documentation/user/ dvi - - You need a working LilyPond binary to create the DVI and HTML - sources. - - * use ASCII. Do using - make doc + * paper. Create the .dvi documentation, and print it with dvips. Comments ======== - LilyPond is a long way from finished and polished. We do appreciate -criticism, comments, bugreports, patches, etc., but please, + LilyPond is a long way from finished and polished, so we please send +your criticism, comments, bugreports, patches, etc., to the mailing +list. and _not_ to us personally. - Please send your e-mail to one of the MAILING LISTS - - and _not_ to us personally. We have the following mailing lists: + We have the following mailing lists: * info-gnu-music@gnu.org (http://mail.gnu.org/mailman/listinfo/info-gnu-music) is a @@ -74,6 +69,10 @@ criticism, comments, bugreports, patches, etc., but please, This list is moderated; ask David R. Linn or Han-Wen to send announcements for this list. + * gnu-music-discuss@gnu.org + (http://mail.gnu.org/mailman/listinfo/gnu-music-discuss) For + general discussions concerning LilyPond. + * help-gnu-music@gnu.org (http://mail.gnu.org/mailman/listinfo/help-gnu-music) For help with using LilyPond. @@ -90,9 +89,6 @@ Windows 32 package, since it might contain more documentation `ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/' - If you decide to build LilyPond from source, please read the -INSTALL.txt document first, especially the Windows NT/95 section. - Caveats ======= diff --git a/VERSION b/VERSION index cd920cd455..c2c931e21b 100644 --- a/VERSION +++ b/VERSION @@ -1,8 +1,8 @@ PACKAGE_NAME=LilyPond MAJOR_VERSION=1 MINOR_VERSION=3 -PATCH_LEVEL=144 -MY_PATCH_LEVEL=jcn6 +PATCH_LEVEL=145 +MY_PATCH_LEVEL= # use the above to send patches: MY_PATCH_LEVEL is always empty for a # released version. diff --git a/aclocal.m4 b/aclocal.m4 index b5684b86ad..8f08ec9a81 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -1,3 +1,5 @@ +dnl WARNING WARNING WARNING WARNING +dnl do not edit! this is aclocal.m4, generated from stepmake/aclocal.m4 dnl aclocal.m4 -*-shell-script-*- dnl StepMake subroutines for configure.in @@ -15,12 +17,11 @@ AC_DEFUN(AC_STEPMAKE_BIBTEX2HTML, [ AC_DEFUN(AC_STEPMAKE_COMPILE, [ # -O is necessary to get inlining - OPTIMIZE="" CFLAGS=${CFLAGS:-""} CXXFLAGS=${CXXFLAGS:-$CFLAGS} LDFLAGS=${LDFLAGS:-""} checking_b=yes - optimise_b=no + optimise_b=yes profile_b=no debug_b=yes @@ -32,19 +33,10 @@ AC_DEFUN(AC_STEPMAKE_COMPILE, [ [ --enable-debugging compile with debugging info. Default: on], [debug_b=$enableval]) - AC_ARG_ENABLE(optimise, - [ --enable-optimise use maximal speed optimisations. Default: off], - [optimise_b=$enableval]) - AC_ARG_ENABLE(profiling, [ --enable-profiling compile with gprof support. Default: off], [profile_b=$enableval]) - AC_ARG_ENABLE(mingw-prefix, - [ --enable-mingw-prefix=DIR - set the mingw32 directory (standalone windows32 exes)], - [MINGWPREFIX=$enableval], - [MINGWPREFIX=no]) if test "$checking_b" = no; then # ugh @@ -56,9 +48,6 @@ AC_DEFUN(AC_STEPMAKE_COMPILE, [ OPTIMIZE="-O2 -finline-functions" fi - if test "$optimise_b" = no; then - OPTIMIZE="" - fi if test $profile_b = yes; then EXTRA_LIBES="-pg" @@ -69,11 +58,6 @@ AC_DEFUN(AC_STEPMAKE_COMPILE, [ OPTIMIZE="$OPTIMIZE -g" fi - # however, C++ support in mingw32 v 0.1.4 is still flaky - if test x$MINGWPREFIX != xno; then - ICFLAGS="-I$MINGWPREFIX/include" - ILDFLAGS="-$MINGWPREFIX/lib" - fi AC_PROG_CC LD='$(CC)' @@ -434,16 +418,13 @@ AC_DEFUN(AC_STEPMAKE_KPATHSEA, [ [ --with-kpathsea use kpathsea lib. Default: on], [kpathsea_b=$enableval]) - if test $kpathsea_b = yes; then + if test "$kpathsea_b" = "yes"; then AC_HAVE_HEADERS(kpathsea/kpathsea.h) AC_CHECK_LIB(kpathsea, kpse_find_file) - # urg: kpse_find_tfm is a #define, how to check for this? - # AC_CHECK_LIB(kpathsea, kpse_find_tfm) - # AC_CHECK_FUNCS(kpse_find_file kpse_find_tfm,, AC_STEPMAKE_WARN(Cannot find kpathsea functions. You may have to create TFM files manually.)) - AC_CHECK_FUNCS(kpse_find_file,, AC_STEPMAKE_WARN(Cannot find kpathsea functions. You may have to create TFM files manually.) kpathsea_b=no) + AC_CHECK_FUNCS(kpse_find_file,, AC_ERROR(Cannot find kpathsea functions. Rerun with --without-kpathsea.) ) fi AC_MSG_CHECKING(whether to use kpathsea) - if test $kpathsea_b = yes; then + if test "$kpathsea_b" = yes; then AC_MSG_RESULT(yes) KPATHSEA=1 else diff --git a/configure b/configure index 9ebc5b08f3..edfdbda20a 100755 --- a/configure +++ b/configure @@ -71,13 +71,8 @@ ac_help="$ac_help --enable-checking set runtime checks (assert calls). Default: on" ac_help="$ac_help --enable-debugging compile with debugging info. Default: on" -ac_help="$ac_help - --enable-optimise use maximal speed optimisations. Default: off" ac_help="$ac_help --enable-profiling compile with gprof support. Default: off" -ac_help="$ac_help - --enable-mingw-prefix=DIR - set the mingw32 directory (standalone windows32 exes)" ac_help="$ac_help --with-localedir=LOCALE use LOCALE as locale dir. Default: PREFIX/share/locale " @@ -631,12 +626,12 @@ fi fi echo $ac_n "checking Package""... $ac_c" 1>&6 -echo "configure:635: checking Package" >&5 +echo "configure:630: checking Package" >&5 if test "x$PACKAGE" = "xSTEPMAKE"; then echo "$ac_t""Stepmake package!" 1>&6 echo $ac_n "checking builddir""... $ac_c" 1>&6 -echo "configure:640: checking builddir" >&5 +echo "configure:635: checking builddir" >&5 if test "$srcdir" = "."; then builddir=. else @@ -674,7 +669,7 @@ ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. echo "$ac_t""$PACKAGE" 1>&6 echo $ac_n "checking builddir""... $ac_c" 1>&6 -echo "configure:678: checking builddir" >&5 +echo "configure:673: checking builddir" >&5 if test "$srcdir" = "."; then builddir=. srcdir_build=no @@ -694,7 +689,7 @@ echo "configure:678: checking builddir" >&5 fi echo $ac_n "checking for stepmake""... $ac_c" 1>&6 -echo "configure:698: checking for stepmake" >&5 +echo "configure:693: checking for stepmake" >&5 # Check for installed stepmake if test -d $stepmake; then echo "$ac_t""$stepmake" 1>&6 @@ -815,7 +810,7 @@ else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } fi echo $ac_n "checking host system type""... $ac_c" 1>&6 -echo "configure:819: checking host system type" >&5 +echo "configure:814: checking host system type" >&5 host_alias=$host case "$host_alias" in @@ -840,7 +835,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:844: checking for $ac_word" >&5 +echo "configure:839: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_MAKE'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -875,7 +870,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:879: checking for $ac_word" >&5 +echo "configure:874: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_FIND'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -912,7 +907,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:916: checking for $ac_word" >&5 +echo "configure:911: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_TAR'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -947,7 +942,7 @@ test -n "$TAR" || TAR="error" # Extract the first word of "bash", so it can be a program name with args. set dummy bash; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:951: checking for $ac_word" >&5 +echo "configure:946: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_BASH'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -987,7 +982,7 @@ fi # Extract the first word of "bash", so it can be a program name with args. set dummy bash; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:991: checking for $ac_word" >&5 +echo "configure:986: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_SHELL'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1024,7 +1019,7 @@ fi # Extract the first word of "bash", so it can be a program name with args. set dummy bash; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1028: checking for $ac_word" >&5 +echo "configure:1023: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_BASH'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1065,7 +1060,7 @@ fi # Extract the first word of "${PYTHON:-python}", so it can be a program name with args. set dummy ${PYTHON:-python}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1069: checking for $ac_word" >&5 +echo "configure:1064: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_PYTHON'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1209,12 +1204,11 @@ subdirs="stepmake" # Uncomment the configuration options your package needs. # -O is necessary to get inlining - OPTIMIZE="" CFLAGS=${CFLAGS:-""} CXXFLAGS=${CXXFLAGS:-$CFLAGS} LDFLAGS=${LDFLAGS:-""} checking_b=yes - optimise_b=no + optimise_b=yes profile_b=no debug_b=yes @@ -1232,13 +1226,6 @@ if test "${enable_debugging+set}" = set; then fi - # Check whether --enable-optimise or --disable-optimise was given. -if test "${enable_optimise+set}" = set; then - enableval="$enable_optimise" - optimise_b=$enableval -fi - - # Check whether --enable-profiling or --disable-profiling was given. if test "${enable_profiling+set}" = set; then enableval="$enable_profiling" @@ -1246,14 +1233,6 @@ if test "${enable_profiling+set}" = set; then fi - # Check whether --enable-mingw-prefix or --disable-mingw-prefix was given. -if test "${enable_mingw_prefix+set}" = set; then - enableval="$enable_mingw_prefix" - MINGWPREFIX=$enableval -else - MINGWPREFIX=no -fi - if test "$checking_b" = no; then # ugh @@ -1268,9 +1247,6 @@ EOF OPTIMIZE="-O2 -finline-functions" fi - if test "$optimise_b" = no; then - OPTIMIZE="" - fi if test $profile_b = yes; then EXTRA_LIBES="-pg" @@ -1281,16 +1257,11 @@ EOF OPTIMIZE="$OPTIMIZE -g" fi - # however, C++ support in mingw32 v 0.1.4 is still flaky - if test x$MINGWPREFIX != xno; then - ICFLAGS="-I$MINGWPREFIX/include" - ILDFLAGS="-$MINGWPREFIX/lib" - fi # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1294: checking for $ac_word" >&5 +echo "configure:1265: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1320,7 +1291,7 @@ if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1324: checking for $ac_word" >&5 +echo "configure:1295: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1371,7 +1342,7 @@ fi # Extract the first word of "cl", so it can be a program name with args. set dummy cl; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1375: checking for $ac_word" >&5 +echo "configure:1346: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1403,7 +1374,7 @@ fi fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:1407: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 +echo "configure:1378: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. @@ -1414,12 +1385,12 @@ cross_compiling=$ac_cv_prog_cc_cross cat > conftest.$ac_ext << EOF -#line 1418 "configure" +#line 1389 "configure" #include "confdefs.h" main(){return(0);} EOF -if { (eval echo configure:1423: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1394: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ac_cv_prog_cc_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then @@ -1445,12 +1416,12 @@ if test $ac_cv_prog_cc_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 ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 -echo "configure:1449: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:1420: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 cross_compiling=$ac_cv_prog_cc_cross echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 -echo "configure:1454: checking whether we are using GNU C" >&5 +echo "configure:1425: checking whether we are using GNU C" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1459,7 +1430,7 @@ else yes; #endif EOF -if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1463: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1434: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no @@ -1478,7 +1449,7 @@ ac_test_CFLAGS="${CFLAGS+set}" ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 -echo "configure:1482: checking whether ${CC-cc} accepts -g" >&5 +echo "configure:1453: checking whether ${CC-cc} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1525,7 +1496,7 @@ fi # AC_HAVE_HEADERS(limits.h malloc.h string.h unistd.h values.h) echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 -echo "configure:1529: checking how to run the C preprocessor" >&5 +echo "configure:1500: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= @@ -1540,13 +1511,13 @@ else # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1550: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1521: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -1557,13 +1528,13 @@ else rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1567: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1538: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -1574,13 +1545,13 @@ else rm -rf conftest* CPP="${CC-cc} -nologo -E" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1584: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1555: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -1608,17 +1579,17 @@ for ac_hdr in assert.h sys/stat.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:1612: checking for $ac_hdr" >&5 +echo "configure:1583: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1622: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1593: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -1645,12 +1616,12 @@ fi done echo $ac_n "checking whether stat file-mode macros are broken""... $ac_c" 1>&6 -echo "configure:1649: checking whether stat file-mode macros are broken" >&5 +echo "configure:1620: checking whether stat file-mode macros are broken" >&5 if eval "test \"`echo '$''{'ac_cv_header_stat_broken'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -1701,16 +1672,14 @@ EOF fi -if test "$optimise_b" = yes; then - DEFINES="$DEFINES -DSTRING_UTILS_INLINED" - cat >> confdefs.h <<\EOF +DEFINES="$DEFINES -DSTRING_UTILS_INLINED" +cat >> confdefs.h <<\EOF #define STRINGS_UTILS_INLINED 1 EOF -fi echo $ac_n "checking how to run the C++ preprocessor""... $ac_c" 1>&6 -echo "configure:1714: checking how to run the C++ preprocessor" >&5 +echo "configure:1683: checking how to run the C++ preprocessor" >&5 if test -z "$CXXCPP"; then if eval "test \"`echo '$''{'ac_cv_prog_CXXCPP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1723,12 +1692,12 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross CXXCPP="${CXX-g++} -E" cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1732: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1701: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -1765,7 +1734,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:1769: checking for $ac_word" >&5 +echo "configure:1738: 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 @@ -1797,7 +1766,7 @@ test -n "$CXX" || CXX="gcc" echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:1801: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works" >&5 +echo "configure:1770: 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. @@ -1808,12 +1777,12 @@ cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext << EOF -#line 1812 "configure" +#line 1781 "configure" #include "confdefs.h" int main(){return(0);} EOF -if { (eval echo configure:1817: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1786: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; 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 @@ -1839,12 +1808,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:1843: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:1812: 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:1848: checking whether we are using GNU C++" >&5 +echo "configure:1817: 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 @@ -1853,7 +1822,7 @@ else yes; #endif EOF -if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:1857: \"$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:1826: \"$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 @@ -1872,7 +1841,7 @@ ac_test_CXXFLAGS="${CXXFLAGS+set}" ac_save_CXXFLAGS="$CXXFLAGS" CXXFLAGS= echo $ac_n "checking whether ${CXX-g++} accepts -g""... $ac_c" 1>&6 -echo "configure:1876: checking whether ${CXX-g++} accepts -g" >&5 +echo "configure:1845: 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 @@ -1906,17 +1875,17 @@ fi ac_safe=`echo "FlexLexer.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for FlexLexer.h""... $ac_c" 1>&6 -echo "configure:1910: checking for FlexLexer.h" >&5 +echo "configure:1879: checking for FlexLexer.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1920: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1889: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -1967,12 +1936,12 @@ fi echo $ac_n "checking whether explicit instantiation is needed""... $ac_c" 1>&6 -echo "configure:1971: checking whether explicit instantiation is needed" >&5 +echo "configure:1940: checking whether explicit instantiation is needed" >&5 if eval "test \"`echo '$''{'lily_cv_need_explicit_instantiation'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < struct foo { static int baz; }; @@ -1982,7 +1951,7 @@ int main() { return foo::baz; ; return 0; } EOF -if { (eval echo configure:1986: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1955: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* lily_cv_need_explicit_instantiation=no else @@ -2009,7 +1978,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:2013: checking for $ac_word" >&5 +echo "configure:1982: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_YACC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2052,7 +2021,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:2056: checking for $ac_word" >&5 +echo "configure:2025: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_BISON'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2087,7 +2056,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:2091: checking for $ac_word" >&5 +echo "configure:2060: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_FLEX'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2155,7 +2124,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:2159: checking for $ac_word" >&5 +echo "configure:2128: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2188,7 +2157,7 @@ test -n "$AR" || AR="error" # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2192: checking for $ac_word" >&5 +echo "configure:2161: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2219,7 +2188,6 @@ fi -# AC_STEPMAKE_LIBTOOL lang=English ALL_LINGUAS="en nl" @@ -2244,7 +2212,7 @@ fi echo $ac_n "checking language""... $ac_c" 1>&6 -echo "configure:2248: checking language" >&5 +echo "configure:2216: checking language" >&5 case "$language" in En* | en* | Am* | am* | US* | us*) lang=English;; @@ -2280,7 +2248,7 @@ EOF echo $ac_n "checking for gettext in -lintl""... $ac_c" 1>&6 -echo "configure:2284: checking for gettext in -lintl" >&5 +echo "configure:2252: checking for gettext in -lintl" >&5 ac_lib_var=`echo intl'_'gettext | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -2288,7 +2256,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lintl $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2274: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -2332,12 +2300,12 @@ fi for ac_func in gettext do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:2336: checking for $ac_func" >&5 +echo "configure:2304: 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 <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2335: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -2395,7 +2363,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:2399: checking for $ac_word" >&5 +echo "configure:2367: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_MSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2426,7 +2394,7 @@ done test -n "$MSGFMT" || MSGFMT="\$(SHELL) \$(step-bindir)/fake-msgfmt.sh " echo $ac_n "checking whether msgfmt accepts -o""... $ac_c" 1>&6 -echo "configure:2430: checking whether msgfmt accepts -o" >&5 +echo "configure:2398: checking whether msgfmt accepts -o" >&5 msgfmt_output="`msgfmt -o bla 2>&1 | grep usage`" if test "$msgfmt_output" = ""; then echo "$ac_t""yes" 1>&6 @@ -2454,7 +2422,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:2458: checking for $ac_word" >&5 +echo "configure:2426: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_METAFONT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2490,7 +2458,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:2494: checking for $ac_word" >&5 +echo "configure:2462: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_MFONT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2528,7 +2496,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:2532: checking for $ac_word" >&5 +echo "configure:2500: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_METAPOST'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2564,7 +2532,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:2568: checking for $ac_word" >&5 +echo "configure:2536: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_MPOST'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2603,7 +2571,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:2607: checking for $ac_word" >&5 +echo "configure:2575: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_INIMETAFONT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2639,7 +2607,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:2643: checking for $ac_word" >&5 +echo "configure:2611: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_INIMFONT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2677,7 +2645,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:2681: checking for $ac_word" >&5 +echo "configure:2649: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_INIMETAPOST'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2713,7 +2681,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:2717: checking for $ac_word" >&5 +echo "configure:2685: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_INIMPOST'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2747,7 +2715,7 @@ test -n "$INIMPOST" || INIMPOST="-echo no inimp or inimpost" fi echo $ac_n "checking for working metafont mode""... $ac_c" 1>&6 -echo "configure:2751: checking for working metafont mode" >&5 +echo "configure:2719: checking for working metafont mode" >&5 modelist='ljfour lj4 lj3 lj2 ljet laserjet' for MFMODE in $modelist; do $METAFONT "\mode:=$MFMODE; mode_setup; end." > /dev/null 2>&1 @@ -2758,7 +2726,7 @@ echo "configure:2751: checking for working metafont mode" >&5 echo "$ac_t""$MFMODE" 1>&6 echo $ac_n "checking for mfplain.mp""... $ac_c" 1>&6 -echo "configure:2762: checking for mfplain.mp" >&5 +echo "configure:2730: checking for mfplain.mp" >&5 # # For now let people define these in their environments # @@ -2766,7 +2734,7 @@ echo "configure:2762: checking for mfplain.mp" >&5 echo "$ac_t""$MFPLAIN_MP" 1>&6 echo $ac_n "checking for inimetapost flags""... $ac_c" 1>&6 -echo "configure:2770: checking for inimetapost flags" >&5 +echo "configure:2738: checking for inimetapost flags" >&5 if test ${INIMETAPOST} = "inimp" ; then : ${INIMETAPOST_FLAGS=''} else @@ -2799,7 +2767,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:2803: checking for $ac_word" >&5 +echo "configure:2771: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_KPSEWHICH'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2830,7 +2798,7 @@ done test -n "$KPSEWHICH" || KPSEWHICH="no" echo $ac_n "checking for tfm path""... $ac_c" 1>&6 -echo "configure:2834: checking for tfm path" >&5 +echo "configure:2802: checking for tfm path" >&5 TFM_FONTS="cmr msam" @@ -2858,13 +2826,13 @@ echo "configure:2834: checking for tfm path" >&5 ## First, let's just see if we can find Guile at all. echo $ac_n "checking "for guile-config"""... $ac_c" 1>&6 -echo "configure:2862: checking "for guile-config"" >&5 +echo "configure:2830: checking "for guile-config"" >&5 for guile_config in guile-config $target-guile-config $build-guile-config; do echo "$ac_t"""$guile_config"" 1>&6 if ! $guile_config --version > /dev/null 2>&1 ; then echo "configure: warning: "cannot execute $guile_config"" 1>&2 echo $ac_n "checking "if we are cross compiling"""... $ac_c" 1>&6 -echo "configure:2868: checking "if we are cross compiling"" >&5 +echo "configure:2836: checking "if we are cross compiling"" >&5 guile_config=error else break @@ -2875,7 +2843,7 @@ echo "configure:2868: checking "if we are cross compiling"" >&5 exit 1 fi echo $ac_n "checking "Guile version"""... $ac_c" 1>&6 -echo "configure:2879: checking "Guile version"" >&5 +echo "configure:2847: checking "Guile version"" >&5 need_guile_version="1.3.4" need_guile_version_numeric=100304 guile_version=`$guile_config --version 2>&1 | awk '{print $NF}'` @@ -2894,7 +2862,7 @@ else {last =0}} ## The GUILE_FLAGS macro. echo $ac_n "checking for Guile""... $ac_c" 1>&6 -echo "configure:2898: checking for Guile" >&5 +echo "configure:2866: checking for Guile" >&5 if ! $guile_config link > /dev/null ; then echo "$ac_t"""cannot execute $guile_config"" 1>&6 { echo "configure: error: "cannot find guile-config; is Guile installed?"" 1>&2; exit 1; } @@ -2909,7 +2877,7 @@ echo "configure:2898: checking for Guile" >&5 # Extract the first word of "guile", so it can be a program name with args. set dummy guile; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2913: checking for $ac_word" >&5 +echo "configure:2881: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_GUILE'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2954,22 +2922,22 @@ if test "${with_kpathsea+set}" = set; then fi - if test $kpathsea_b = yes; then + if test "$kpathsea_b" = "yes"; then for ac_hdr in kpathsea/kpathsea.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:2963: checking for $ac_hdr" >&5 +echo "configure:2931: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:2973: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2941: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -2996,7 +2964,7 @@ fi done echo $ac_n "checking for kpse_find_file in -lkpathsea""... $ac_c" 1>&6 -echo "configure:3000: checking for kpse_find_file in -lkpathsea" >&5 +echo "configure:2968: checking for kpse_find_file in -lkpathsea" >&5 ac_lib_var=`echo kpathsea'_'kpse_find_file | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -3004,7 +2972,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lkpathsea $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2990: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -3045,18 +3013,15 @@ else echo "$ac_t""no" 1>&6 fi - # urg: kpse_find_tfm is a #define, how to check for this? - # AC_CHECK_LIB(kpathsea, kpse_find_tfm) - # AC_CHECK_FUNCS(kpse_find_file kpse_find_tfm,, AC_STEPMAKE_WARN(Cannot find kpathsea functions. You may have to create TFM files manually.)) for ac_func in kpse_find_file do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:3055: checking for $ac_func" >&5 +echo "configure:3020: 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 <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3051: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -3103,16 +3068,14 @@ EOF else echo "$ac_t""no" 1>&6 -echo "configure: warning: Cannot find kpathsea functions. You may have to create TFM files manually." 1>&2 - warn_b=yes - kpathsea_b=no +{ echo "configure: error: Cannot find kpathsea functions. Rerun with --without-kpathsea." 1>&2; exit 1; } fi done fi echo $ac_n "checking whether to use kpathsea""... $ac_c" 1>&6 -echo "configure:3115: checking whether to use kpathsea" >&5 - if test $kpathsea_b = yes; then +echo "configure:3078: checking whether to use kpathsea" >&5 + if test "$kpathsea_b" = yes; then echo "$ac_t""yes" 1>&6 KPATHSEA=1 else @@ -3132,7 +3095,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:3136: checking for $ac_word" >&5 +echo "configure:3099: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_BIBTEX2HTML'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3173,7 +3136,7 @@ test -n "$BIBTEX2HTML" || BIBTEX2HTML="error" echo $ac_n "checking for 8-bit clean memcmp""... $ac_c" 1>&6 -echo "configure:3177: checking for 8-bit clean memcmp" >&5 +echo "configure:3140: 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 @@ -3181,7 +3144,7 @@ else ac_cv_func_memcmp_clean=no else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:3161: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_func_memcmp_clean=yes else @@ -3212,12 +3175,12 @@ echo "$ac_t""$ac_cv_func_memcmp_clean" 1>&6 test $ac_cv_func_memcmp_clean = no && LIBOBJS="$LIBOBJS memcmp.${ac_objext}" echo $ac_n "checking for vprintf""... $ac_c" 1>&6 -echo "configure:3216: checking for vprintf" >&5 +echo "configure:3179: 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 <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3210: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_vprintf=yes" else @@ -3267,12 +3230,12 @@ fi if test "$ac_cv_func_vprintf" != yes; then echo $ac_n "checking for _doprnt""... $ac_c" 1>&6 -echo "configure:3271: checking for _doprnt" >&5 +echo "configure:3234: 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 <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3265: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func__doprnt=yes" else @@ -3325,12 +3288,12 @@ fi for ac_func in memmem snprintf vsnprintf gettext isinf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:3329: checking for $ac_func" >&5 +echo "configure:3292: 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 <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3323: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -3395,7 +3358,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:3399: checking for $ac_word" >&5 +echo "configure:3362: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_MAKEINFO'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3428,7 +3391,7 @@ test -n "$MAKEINFO" || MAKEINFO="error" # Extract the first word of "perl", so it can be a program name with args. set dummy perl; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3432: checking for $ac_word" >&5 +echo "configure:3395: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_PERL'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else diff --git a/configure.in b/configure.in index 0e1e59b99c..f223e91291 100644 --- a/configure.in +++ b/configure.in @@ -17,17 +17,14 @@ AC_STEPMAKE_COMPILE AC_HAVE_HEADERS(assert.h sys/stat.h) AC_HEADER_STAT -if test "$optimise_b" = yes; then - DEFINES="$DEFINES -DSTRING_UTILS_INLINED" - AC_DEFINE(STRINGS_UTILS_INLINED) -fi +DEFINES="$DEFINES -DSTRING_UTILS_INLINED" +AC_DEFINE(STRINGS_UTILS_INLINED) AC_STEPMAKE_CXX AC_STEPMAKE_GXX AC_STEPMAKE_CXXTEMPLATE AC_STEPMAKE_LEXYACC AC_STEPMAKE_LIB -# AC_STEPMAKE_LIBTOOL AC_STEPMAKE_LOCALE AC_STEPMAKE_GETTEXT AC_STEPMAKE_MSGFMT diff --git a/flower/dstream.cc b/flower/dstream.cc deleted file mode 100644 index c157fe5049..0000000000 --- a/flower/dstream.cc +++ /dev/null @@ -1,209 +0,0 @@ -/* - dstream.cc -- implement Dstream - - source file of the Flower Library - - (c) 1996, 1997--2000 Han-Wen Nienhuys -*/ -#include -#include "dstream.hh" -#include "dictionary-iter.hh" -#include "dictionary.hh" -#include "text-db.hh" -#include "string-convert.hh" -#include "rational.hh" - -/// amount of indentation for each level. -const int INDTAB = 2; - -/* - should use Regexp library. - */ -static String -strip_pretty (String pretty_str) -{ - int i = pretty_str.index_i ('('); - if (i>=0) - pretty_str = pretty_str.left_str (i); - - int l = pretty_str.index_last_i (' '); // strip until last ' ' - if (l>=0) - pretty_str = pretty_str.nomid_str (0,l+1); - return pretty_str; -} - -static String -strip_member (String pret) -{ - int l=pret.index_last_i (':')-1; - if (l>=0) - pret = pret.left_str (l); - return pret; -} - -Dstream& -Dstream::identify_as (String name) -{ - if (!os_l_) - return *this; - - String mem (strip_pretty (name)); - String cl (strip_member (mem)); - String idx = cl; - - if (silent_dict_p_->elem_b (mem)) - idx = mem; - else if (silent_dict_p_->elem_b (cl)) - idx = cl; - else - { - (*silent_dict_p_)[idx] = default_silence_b_; - } - local_silence_b_ = (*silent_dict_p_)[idx]; - if (current_classname_str_ != idx && !local_silence_b_) - { - current_classname_str_=idx; - if (! (*silent_dict_p_)["Dstream"]) - *os_l_ << "[" << current_classname_str_ << ":]"; // messy. - } - return *this; -} - -bool -Dstream::silent_b (String s) const -{ - if (!silent_dict_p_) - return 0; - - if (!silent_dict_p_->elem_b (s)) - return false; - return (*silent_dict_p_)[s]; -} - -Dstream & -Dstream::operator<< (void const *v_l) -{ - output (String_convert::pointer_str (v_l)); - return *this; -} - -Dstream & -Dstream::operator << (String s) -{ - output (s); - return *this; -} - -Dstream & -Dstream::operator << (const char * s) -{ - output (String (s)); - return *this; -} - -Dstream & -Dstream::operator << (char c) -{ - output (to_str (c)); - return *this; -} - -Dstream& -Dstream::operator << (Real r) -{ - output (to_str (r)); - return *this; -} -Dstream & -Dstream::operator << (Rational c) -{ - output (c.str ()); - return *this; -} -Dstream & -Dstream::operator << (int i) -{ - output (to_str (i)); - return *this; -} - -void -Dstream::output (String s) -{ - if (local_silence_b_|| !os_l_) - return ; - - for (char const *cp = s.ch_C (); *cp; cp++) - switch (*cp) - { - case '{': - case '[': - case '(': indent_level_i_ += INDTAB; - *os_l_ << *cp; - break; - - case ')': - case ']': - case '}': - indent_level_i_ -= INDTAB; - *os_l_ << *cp ; - - assert (indent_level_i_>=0) ; - break; - - case '\n': - *os_l_ << '\n' << to_str (' ', indent_level_i_) << flush; - break; - default: - *os_l_ << *cp; - break; - } - return ; -} - - -Dstream::Dstream (ostream *r, char const * cfg_nm) -{ - os_l_ = r; - silent_dict_p_ = new Dictionary; - default_silence_b_ = false; - indent_level_i_ = 0; - if (!os_l_) - return; - - char const * fn =cfg_nm ? cfg_nm : ".dstreamrc"; - { - ifstream ifs (fn); // can 't open - if (!ifs) - return; - } - - Text_db cfg (fn); - while (!cfg.eof_b ()){ - Text_record r (cfg++); - if (r.size () != 2) - { - r.message (_ ("not enough fields in Dstream init")); - continue; - } - (*silent_dict_p_)[r[0]] = r[1] == "1"; - } - - if ((*silent_dict_p_).elem_b ("Dstream_default_silence")) - default_silence_b_ = (*silent_dict_p_)["Dstream_default_silence"]; -} - - -Dstream::~Dstream () -{ - delete silent_dict_p_; - assert (!indent_level_i_) ; -} - -void -Dstream::clear_silence () -{ - delete silent_dict_p_; - silent_dict_p_ = 0; -} - diff --git a/flower/file-path.cc b/flower/file-path.cc index b078fbc3b6..b7ea0370d8 100644 --- a/flower/file-path.cc +++ b/flower/file-path.cc @@ -11,7 +11,7 @@ #endif #include "file-path.hh" -#include "flower-debug.hh" + #ifndef PATHSEP #define PATHSEP ':' @@ -106,7 +106,6 @@ File_path::parse_path (String p) String File_path::find (String nm) const { - DEBUG_OUT << "looking for" << nm << ": "; if (!nm.length_i () || (nm == "-") ) return nm; for (int i=0; i < size (); i++) @@ -119,7 +118,6 @@ File_path::find (String nm) const path += nm; - DEBUG_OUT << path << "? "; #if 0 /* @@ -144,12 +142,10 @@ File_path::find (String nm) const FILE *f = fopen (path.ch_C (), "r"); // ugh! if (f) { - DEBUG_OUT << "found\n"; fclose (f); return path; } } - DEBUG_OUT << '\n'; return ""; } diff --git a/flower/flower-debug.cc b/flower/flower-debug.cc deleted file mode 100644 index b2fa19919d..0000000000 --- a/flower/flower-debug.cc +++ /dev/null @@ -1,6 +0,0 @@ -#include -#include "flower-debug.hh" -#include "dstream.hh" - -Dstream *flower_dstream = 0; - diff --git a/flower/include/dstream.hh b/flower/include/dstream.hh deleted file mode 100644 index 92111fbfb1..0000000000 --- a/flower/include/dstream.hh +++ /dev/null @@ -1,69 +0,0 @@ -/* - dstream.hh -- declare Dstream - - source file of the Flower Library - - (c) 1997--2000 Han-Wen Nienhuys -*/ - -#ifndef DSTREAM_HH -#define DSTREAM_HH - -#include "string.hh" - - -const char eol= '\n'; - -/** Debug stream. - a class for providing debug output of nested structures, - with indents according to \{\} ()[]. - - One can turn on and off specific messages using the Assoc silent. - This can be done automatically: - - #define DEBUG dstream_.identify_as (__PRETTY_FUNCTION__) - - DEBUG << "a message\n"; - - Init for the class names which should be silent can be given in a rc file. - - TODO: - make a baseclass for indentable streams. - - JUNKME - */ -class Dstream -{ - ostream *os_l_; - int indent_level_i_; - bool local_silence_b_; - bool default_silence_b_; - String current_classname_str_; - void output (String s); - Dictionary *silent_dict_p_; - -public: - void clear_silence (); - bool silent_b (String) const; - - /** - if rcfile == 0, then do not read any rc file. - */ - Dstream (ostream *r, char const * rcfile); - virtual ~Dstream (); - Dstream &identify_as (String s); - - - Dstream &operator << (String); - Dstream &operator << (Real); - Dstream &operator << (int); - Dstream &operator << (Rational); - Dstream &operator << (char); - /** - Output memory locations. - */ - Dstream &operator << (void const *); - Dstream &operator << (char const *); -}; -#endif - diff --git a/flower/include/flower-debug.hh b/flower/include/flower-debug.hh deleted file mode 100644 index 26bff024b2..0000000000 --- a/flower/include/flower-debug.hh +++ /dev/null @@ -1,26 +0,0 @@ -/* - flower-debug.hh -- declare global constants relating to debug dumps - - source file of the Flower Library - - (c) 1997--2000 Han-Wen Nienhuys -*/ - - -#ifndef FLOWER_DEBUG_HH -#define FLOWER_DEBUG_HH - -#include "dstream.hh" - -extern Dstream *flower_dstream; - -#ifdef NPRINT -#define DEBUG_OUT if (0) *flower_dstream -#else -#define DEBUG_OUT if (flower_dstream) \ - flower_dstream->identify_as (__PRETTY_FUNCTION__) -#endif - -void set_debug (Dstream *ds); - -#endif // FLOWER_DEBUG_HH diff --git a/flower/include/interval.hh b/flower/include/interval.hh index 69b14e891f..5a1d3c49af 100644 --- a/flower/include/interval.hh +++ b/flower/include/interval.hh @@ -78,7 +78,7 @@ struct Interval_t : public Drul_array { return ((1.0 - x) * Real (elem (LEFT)) + (x + 1.0) * Real (elem (RIGHT))) * 0.5; } String str () const; - void print () const; + bool elem_b (T r); void negate () { T r = -elem (LEFT); diff --git a/flower/include/interval.tcc b/flower/include/interval.tcc index ab7ab1410e..c78b476a91 100644 --- a/flower/include/interval.tcc +++ b/flower/include/interval.tcc @@ -14,15 +14,7 @@ #include #include "interval.hh" #include "string.hh" -#include "flower-debug.hh" -template -void -Interval_t::print () const -{ - if (flower_dstream) - *flower_dstream << str (); -} template int diff --git a/input/GNUmakefile b/input/GNUmakefile index b3ceba7c44..cdf61c3f95 100644 --- a/input/GNUmakefile +++ b/input/GNUmakefile @@ -2,7 +2,7 @@ depth = .. -SUBDIRS=bugs tricks test regression tutorial no-notation ascii-art +SUBDIRS=bugs test regression tutorial no-notation ascii-art examples=trip star-spangled-banner paddy scarlatti-test flexamples= diff --git a/input/ascii-art/asciscript5.ly b/input/ascii-art/asciscript5.ly deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/input/bugs/crescendo-squash.ly b/input/bugs/crescendo-squash.ly deleted file mode 100644 index b143968366..0000000000 --- a/input/bugs/crescendo-squash.ly +++ /dev/null @@ -1,9 +0,0 @@ - - - % < becomes | -\score {\notes { \context Staff < f''1 - { s4 \< \! s4 } > } - - \paper { linewidth = -1.; } - } - diff --git a/input/bugs/dynamic-collide.ly b/input/bugs/dynamic-collide.ly index e9aee2cefc..e69de29bb2 100644 --- a/input/bugs/dynamic-collide.ly +++ b/input/bugs/dynamic-collide.ly @@ -1,157 +0,0 @@ - -% dynamics should not collide with staff -% dynamics (of two voices) should not collide with eachother -% strange stem through beam bug in bar 8 on viola staff -% 1-staff-high brace should collapse - -\header { -texidoc="Template for part-combining orchestral scores"; -} - - -End = { \skip 1*8; } - -violaI = \notes\relative c'' { - c1 \break c c c c\break - g4\p\< r r r8 g(| - )c,4 r r r8 c| - [\!f8\sf(\>as f as][f g d)\!g]| - r [es'\p(c)es] r [d(bes)d]| - - -} -violaII = \notes\relative c'' { - c1 c c c c - g4\p\< r r r8 g(| - )c,4 r r r8 c| - [\!f8\sf(\>as f as][f g d)\!g]| - r [c\p(g)c] r [bes(g)bes]| -} - - -violoncello = \notes\relative c { - c4\< c c c - \!c1\pp c c c - \property Voice.crescendoText = #"cresc." - \property Voice.crescendoSpanner = #'dashed-line - [g8\p\<(bes' g bes][d bes g)d~]| - [d8(a' fis a][d a fis)d]| - [\!f!8\sf\>(as f as][f g d)g]| - %75 - \!c,4\p r d r| -} - -contrabasso = \notes\relative c { - d8\< d d d d d d d - \!c1\ff c c c - \property Voice.crescendoText = #"cresc." - \property Voice.crescendoSpanner = #'dashed-line - g4\p\< r r r8 g(| - )c4 r r r8 c(| - \!)b1\sf| - c4\p r d r| -} - -violeStaff = \notes \context Staff = viole < - \context Voice=oneViole < - \property Staff.instrument = #"Viola" - \property Staff.instr = #"Vla." - - \End - > - \context Voice=twoViole < - \property Staff.instrument = #"Viola II" - \property Staff.instr = #"Vla. II" - \End - > - \context Voice=oneViole \partcombine Voice - \context Thread=oneViole \violaI - \context Thread=twoViole \violaII -> - -staffCombinePianoStaffProperties = { - \property PianoStaff.devNullThread = #'() - \property PianoStaff.soloADue = ##t - \property PianoStaff.soloText = #"" - \property PianoStaff.soloIIText = #"" - % This is non-conventional, but currently it is - % the only way to tell the difference. - \property PianoStaff.aDueText = #"\\`a2" - \property PianoStaff.splitInterval = #'(1 . 0) - \property PianoStaff.changeMoment = #`(,(make-moment 1 1) . ,(make-moment 1 1)) -} - - -\score { - < - \context StaffGroup < - \violeStaff - - \context PianoStaff = bassi_group \notes < - \staffCombinePianoStaffProperties - \context Staff=oneBassi < \clef bass; - \property Staff.instrument = #'(lines - "Violoncello" " e" "Contrabasso") - - \property Staff.instr = #"Vc." - \End > - \context Staff=twoBassi < \clef bass; - \property Staff.instrument = #"Contrabasso" - \property Staff.instr = #"Cb." - - \End > - - \context Staff=oneBassi \partcombine Staff - \context Voice=oneBassi { \violoncello } - \context Voice=twoBassi { \contrabasso } - > -> - > - \paper { - % \paperSixteen - linewidth = 80 * \staffspace; - textheight = 200 * \staffspace; - \translator{ - \ThreadContext - \consists "Rest_engraver"; - - % Set value for engraver at thread level, - % to override the default that is set in ScoreContext - % for added engraver at Voice level - devNullThread = #'() - } - \translator{ - \VoiceContext - \remove "Rest_engraver"; - - % The staff combine (bassi part) needs a - % thread_devnull_engraver here. - % Instead of maintaining two separate hierarchies, - % we switch add it, but switch it off immideately. - % The staff combine parts switch it on. - % devNullThread = #'never - \consists "Thread_devnull_engraver"; - } - \translator{ - \HaraKiriStaffContext - \consists "Mark_engraver"; - } - \translator { - \OrchestralScoreContext - skipBars = ##t - soloText = #"I." - soloIIText = #"II." - % By default, turn off the Thread_devnull_engraver - % at Voice level - devNullThread = #'never - - % Hmm - currentBarNumber = #218 - BarNumber \override #'padding = #3 - RestCollision \override #'maximum-rest-count = #1 - marginScriptHorizontalAlignment = #1 - TimeSignature \override #'style = #'C - } - } -} - diff --git a/input/bugs/dynamic-switch.ly b/input/bugs/dynamic-switch.ly index 1365e5ea99..c392f4d4cb 100644 --- a/input/bugs/dynamic-switch.ly +++ b/input/bugs/dynamic-switch.ly @@ -1,4 +1,5 @@ +% what's the problem? \score{ \context Staff < \context Voice=one \skip 1; diff --git a/input/bugs/mb.ly b/input/bugs/mb.ly deleted file mode 100644 index e1fd2d76e4..0000000000 --- a/input/bugs/mb.ly +++ /dev/null @@ -1,38 +0,0 @@ - -% mb.ly: midi-bug -% midi notes get stuck - -%{ -From: Mats Bengtsson -Subject: Re: request simple .ly showing MIDI tie bug -To: Jan Nieuwenhuizen -Date: Mon, 26 Feb 2001 23:18:06 +0100 - -I was lucky enough to find a short snippet which triggered -the bug (a few bars from David Lattermanns typesetting of -the Dvorak Bagatelles. I spent the Sunday upgrading them -to 1.3.131). I hope it simplifies the bug search. -%} - -\score{ - \notes \relative c{ - \time 2/4; - \clef bass; - \property Staff.midiInstrument = "harmonica" - < - \context Voice=ua { - \stemDown - e4 a, | b2 | - } - \context Voice=ub { - \stemUp - e2 ~ | e4 dis | - } - > - R2*5 | - c'2 - } -\paper{} -\midi{\tempo 4 = 140;} -} - diff --git a/input/bugs/minimal.ly b/input/bugs/minimal.ly index 489cbd14e8..e69de29bb2 100644 --- a/input/bugs/minimal.ly +++ b/input/bugs/minimal.ly @@ -1,12 +0,0 @@ -% minimal what? -% dumps core - - -\score { - \sequential {\clef bass ; } - \paper { -% \translator { \context Score_engraver ; \name "Score"; } - \translator { \type "Score_engraver"; \name "Score"; } - linewidth = 30 * \staffspace; - } -} diff --git a/input/bugs/multiply.ly b/input/bugs/multiply.ly index 85c02dc5c8..6d611c4882 100644 --- a/input/bugs/multiply.ly +++ b/input/bugs/multiply.ly @@ -1,8 +1,14 @@ + + + % ugh: strange order of things, this: % a16 * 1/2 ( % must be % a16 ( * 1/2 +%{ +?? is this a bug? --hwn +%} \score { \context Voice \notes\relative c { diff --git a/input/bugs/pc-core.ly b/input/bugs/pc-core.ly deleted file mode 100644 index 9160fe4bcf..0000000000 --- a/input/bugs/pc-core.ly +++ /dev/null @@ -1,95 +0,0 @@ - -% on their own staff, voices should be stemboth (not up/down) - -End = { \skip 1*8; } - -violoncello = \notes\relative c' { - c8 c c c c8 c c c\break -} - -contrabasso = \notes\relative c { - c4 c8 c c8 c c c\break -} - -staffCombinePianoStaffProperties = { - \property PianoStaff.devNullThread = #'() - \property PianoStaff.soloADue = ##t - \property PianoStaff.soloText = #"" - \property PianoStaff.soloIIText = #"" - % This is non-conventional, but currently it is - % the only way to tell the difference. - \property PianoStaff.aDueText = #"\\`a2" - \property PianoStaff.splitInterval = #'(1 . 0) - \property PianoStaff.changeMoment = #`(,(make-moment 1 1) . ,(make-moment 1 1)) -} - - -\score { - < - \context PianoStaff = bassi_group \notes < - \staffCombinePianoStaffProperties - \context Staff=oneBassi < \clef bass; - \property Staff.instrument = #'(lines - "Violoncello" " e" "Contrabasso") - - \property Staff.instr = #"Vc." - \End > - \context Staff=twoBassi < \clef bass; - \property Staff.instrument = #"Contrabasso" - \property Staff.instr = #"Cb." - - \End > - - \context Staff=oneBassi \partcombine Staff - \context Voice=oneBassi { \violoncello } - \context Voice=twoBassi { \contrabasso } - > -> - \paper { - % \paperSixteen - linewidth = 80 * \staffspace; - textheight = 200 * \staffspace; - \translator{ - \ThreadContext - \consists "Rest_engraver"; - - % Set value for engraver at thread level, - % to override the default that is set in ScoreContext - % for added engraver at Voice level - devNullThread = #'() - } - \translator{ - \VoiceContext - \remove "Rest_engraver"; - - % The staff combine (bassi part) needs a - % thread_devnull_engraver here. - % Instead of maintaining two separate hierarchies, - % we switch add it, but switch it off immideately. - % The staff combine parts switch it on. - % devNullThread = #'never - \consists "Thread_devnull_engraver"; - } - \translator{ - \HaraKiriStaffContext - \consists "Mark_engraver"; - } - \translator { - \OrchestralScoreContext - skipBars = ##t - soloText = #"I." - soloIIText = #"II." - % By default, turn off the Thread_devnull_engraver - % at Voice level - devNullThread = #'never - - % Hmm - currentBarNumber = #218 - BarNumber \override #'padding = #3 - RestCollision \override #'maximum-rest-count = #1 - marginScriptHorizontalAlignment = #1 - TimeSignature \override #'style = #'C - } - } -} - diff --git a/input/bugs/pc-direction.ly b/input/bugs/pc-direction.ly index b6e9b2ec4a..aa1327175d 100644 --- a/input/bugs/pc-direction.ly +++ b/input/bugs/pc-direction.ly @@ -1,6 +1,9 @@ % move to regtest once it works? + +% still not workign ? --hwn. + \header { texidoc=" On their own staff, staffcombined voices should be stemboth (not up/down); diff --git a/input/bugs/repeat.ly b/input/bugs/repeat.ly index dde3c8e74a..9a9835f806 100644 --- a/input/bugs/repeat.ly +++ b/input/bugs/repeat.ly @@ -1,3 +1,3 @@ - +% should start with |: \score { \context Staff \notes \repeat volta 3 c1 \alternative { d1 e1 }} diff --git a/input/bugs/sbug.ly b/input/bugs/sbug.ly new file mode 100644 index 0000000000..fae779b608 --- /dev/null +++ b/input/bugs/sbug.ly @@ -0,0 +1,8 @@ +% the \stopped collides with the +%beam. + + +% stopped disappeared ?? +\score { \notes { +\clef "G"; \stemUp [a''8^\stopped a''8_\stopped] +}} diff --git a/input/bugs/script-dir.ly b/input/bugs/script-dir.ly index d8d35df388..e69de29bb2 100644 --- a/input/bugs/script-dir.ly +++ b/input/bugs/script-dir.ly @@ -1,5 +0,0 @@ -\score { - \context Voice \notes\relative c'' { - a-. c-. - } -} diff --git a/input/bugs/script.ly b/input/bugs/script.ly index 1f60ff08ff..8b13789179 100644 --- a/input/bugs/script.ly +++ b/input/bugs/script.ly @@ -1,9 +1 @@ - -% the \stopped collides with the -%beam. - - -\score { \notes { -\clef "G"; \stemUp [a''8^\stopped a''8^\stopped] -}} diff --git a/input/bugs/st.ly b/input/bugs/st.ly deleted file mode 100644 index 3f5f29252e..0000000000 --- a/input/bugs/st.ly +++ /dev/null @@ -1,2 +0,0 @@ - -\score { \notes { c'''-. c-. }} diff --git a/input/bugs/stem-through-beam.ly b/input/bugs/stem-through-beam.ly deleted file mode 100644 index 5f24905a74..0000000000 --- a/input/bugs/stem-through-beam.ly +++ /dev/null @@ -1,80 +0,0 @@ - -% strange bug with stems through beams in second beam - -End = { \skip 1*8; } - -violaii = \notes\relative c' { - [\!f8\sf(\>as f as][f g d)\!g]| -} - -violai=\notes\relative c' { - [\!f8\sf(\>as f as][f g d)\!g]| -} - -violeStaff = \notes \context Staff = viole < - \context Voice=oneViola < - \property Staff.instrument = #"Viola" - \property Staff.instr = #"Vla." - - \End - > - \context Voice=twoViola < - \property Staff.instrument = #"Viola II" - \property Staff.instr = #"Vla. II" - \End - > - \context Voice=oneViola \partcombine Voice - \context Thread=oneViola \violai - \context Thread=twoViola \violaii -> - -\score { - \violeStaff - \paper { - % \paperSixteen - linewidth = 80 * \staffspace; - textheight = 200 * \staffspace; - \translator{ - \ThreadContext - \consists "Rest_engraver"; - % Set value for engraver at thread level, - % to override the default that is set in ScoreContext - % for added engraver at Voice level - devNullThread = #'() - } - \translator{ - \VoiceContext - \remove "Rest_engraver"; - - % The staff combine (bassi part) needs a - % thread_devnull_engraver here. - % Instead of maintaining two separate hierarchies, - % we switch add it, but switch it off immideately. - % The staff combine parts switch it on. - % devNullThread = #'never - \consists "Thread_devnull_engraver"; - } - \translator{ - \HaraKiriStaffContext - \consists "Mark_engraver"; - } - \translator { - \OrchestralScoreContext - skipBars = ##t - - % By default, turn off the Thread_devnull_engraver - % at Voice level - devNullThread = #'never - soloText = #"I." - soloIIText = #"II." - - % Hmm - currentBarNumber = #218 - BarNumber \override #'padding = #3 - RestCollision \override #'maximum-rest-count = #1 - marginScriptHorizontalAlignment = #1 - TimeSignature \override #'style = #'C - } - } -} - diff --git a/input/bugs/triplet.ly b/input/bugs/triplet.ly deleted file mode 100644 index 7e1855d2d3..0000000000 --- a/input/bugs/triplet.ly +++ /dev/null @@ -1,30 +0,0 @@ - -% -% huh? wat gaat er nu fout in os-score.ly, hier issie okede? -% -global = { - \time 2/4; - \skip 2*4; \bar "|."; -} -Key = \notes \key as \major; - -\score { - < - \global - \context StaffGroup = timpani < - \context Staff = timpani < - \Key - \notes\relative c { - \times 2/3 { f4 f f } - \times 4/5 { as8 as as as as } - R1 - } - > > - > - \paper { - linewidth = -1.; - \translator { - \HaraKiriStaffContext - } - } -} diff --git a/input/les-nereides.ly b/input/les-nereides.ly index 2bae5fe900..638e98d6fd 100644 --- a/input/les-nereides.ly +++ b/input/les-nereides.ly @@ -441,7 +441,7 @@ lowerDynamics = \context Dynamics=lower \notes{ \consists "Output_property_engraver"; Generic_property_list = #generic-voice-properties \consists "Property_engraver"; - DynamicsMinimumVerticalExtent = #(cons -3 -3) + MinimumVerticalExtent = #(cons -3 -3) VerticalAlignment \override #'threshold = #'(9 . 9) startSustain = #"Ped." diff --git a/input/regression/dynamics-unbound-hairpin.ly b/input/regression/dynamics-unbound-hairpin.ly new file mode 100644 index 0000000000..f7b1e99515 --- /dev/null +++ b/input/regression/dynamics-unbound-hairpin.ly @@ -0,0 +1,11 @@ + +\header { +texidoc = "Crescendi may start off-notes. In that case, they should not collapse into flat lines."; +} + +\score { \notes { \context Voice { + < f''1 { s4 s4 \< \! s4 \> \! s4 } > +}} + +\paper { linewidth = -1. ;} +} diff --git a/input/regression/key-signature-scordatura.ly b/input/regression/key-signature-scordatura.ly new file mode 100644 index 0000000000..cdc0e96a21 --- /dev/null +++ b/input/regression/key-signature-scordatura.ly @@ -0,0 +1,15 @@ + +\header { texidoc = "Key signatures can be set per pitch +individually. This can be done bby setting @code{Staff.keySignature} +directly."; + +} +\score { \notes +\relative c' +\context Staff { + \property Staff.keySignature = #'(((1 . 2) . 1) ((0 . 3) . -1)) + f8 a c e + \property Staff.keySignature = #'(((1 . 2) . -1) ((0 . 4) . 2)) + e a, g a +} +} diff --git a/input/tricks/add-text-script.ly b/input/test/add-text-script.ly similarity index 100% rename from input/tricks/add-text-script.ly rename to input/test/add-text-script.ly diff --git a/input/tricks/beam-count.ly b/input/test/beam-count.ly similarity index 100% rename from input/tricks/beam-count.ly rename to input/test/beam-count.ly diff --git a/input/tricks/beam-dir-function.ly b/input/test/beam-dir-function.ly similarity index 100% rename from input/tricks/beam-dir-function.ly rename to input/test/beam-dir-function.ly diff --git a/input/tricks/beam-neutral-direction.ly b/input/test/beam-neutral-direction.ly similarity index 100% rename from input/tricks/beam-neutral-direction.ly rename to input/test/beam-neutral-direction.ly diff --git a/input/tricks/beam-position.ly b/input/test/beam-position.ly similarity index 100% rename from input/tricks/beam-position.ly rename to input/test/beam-position.ly diff --git a/input/tricks/beam-rest.ly b/input/test/beam-rest.ly similarity index 100% rename from input/tricks/beam-rest.ly rename to input/test/beam-rest.ly diff --git a/input/test/beam-slope.ly b/input/test/beam-slope.ly index 95860f1477..a31582b76a 100644 --- a/input/test/beam-slope.ly +++ b/input/test/beam-slope.ly @@ -1,9 +1,14 @@ -\score { - \context Voice \notes\relative c { - [c''16 b] [a b] - - } + +fragment = \notes { + \property Voice.Beam \set #'direction = #1 + \property Voice.Beam \set #'height-hs = #0 + [a''8 e' d c] +} + +\paper { linewidth = -1.; } + +\score { + \notes\relative c \fragment \paper { } - \midi { } } diff --git a/input/tricks/boxed-molecule.ly b/input/test/boxed-molecule.ly similarity index 100% rename from input/tricks/boxed-molecule.ly rename to input/test/boxed-molecule.ly diff --git a/input/tricks/crescendo-text.ly b/input/test/crescendo-text.ly similarity index 100% rename from input/tricks/crescendo-text.ly rename to input/test/crescendo-text.ly diff --git a/input/tricks/drarn-slurs.ly b/input/test/drarn-slurs.ly similarity index 100% rename from input/tricks/drarn-slurs.ly rename to input/test/drarn-slurs.ly diff --git a/input/tricks/drums.ly b/input/test/drums.ly similarity index 100% rename from input/tricks/drums.ly rename to input/test/drums.ly diff --git a/input/tricks/embedded-postscript.ly b/input/test/embedded-postscript.ly similarity index 100% rename from input/tricks/embedded-postscript.ly rename to input/test/embedded-postscript.ly diff --git a/input/tricks/embedded-tex.ly b/input/test/embedded-tex.ly similarity index 100% rename from input/tricks/embedded-tex.ly rename to input/test/embedded-tex.ly diff --git a/input/test/fill-a4.ly b/input/test/fill-a4.ly index 504a4aa82c..1d949a5146 100644 --- a/input/test/fill-a4.ly +++ b/input/test/fill-a4.ly @@ -32,7 +32,7 @@ tagline="Ligly"; linewidth = 15.0\mm; \translator { \StaffContext - StaffMinimumVerticalExtent = #(cons 0 0) + MinimumVerticalExtent = #(cons 0 0) } } } diff --git a/input/tricks/follow-thread.ly b/input/test/follow-thread.ly similarity index 100% rename from input/tricks/follow-thread.ly rename to input/test/follow-thread.ly diff --git a/input/tricks/improv.ly b/input/test/improv.ly similarity index 100% rename from input/tricks/improv.ly rename to input/test/improv.ly diff --git a/input/tricks/metronome.ly b/input/test/metronome.ly similarity index 100% rename from input/tricks/metronome.ly rename to input/test/metronome.ly diff --git a/input/tricks/mmrest-collision.ly b/input/test/mmrest-collision.ly similarity index 100% rename from input/tricks/mmrest-collision.ly rename to input/test/mmrest-collision.ly diff --git a/input/tricks/move-notehead.ly b/input/test/move-notehead.ly similarity index 100% rename from input/tricks/move-notehead.ly rename to input/test/move-notehead.ly diff --git a/input/tricks/move-specific-text.ly b/input/test/move-specific-text.ly similarity index 100% rename from input/tricks/move-specific-text.ly rename to input/test/move-specific-text.ly diff --git a/input/tricks/no-bar-lines.ly b/input/test/no-bar-lines.ly similarity index 100% rename from input/tricks/no-bar-lines.ly rename to input/test/no-bar-lines.ly diff --git a/input/tricks/no-staff.ly b/input/test/no-staff.ly similarity index 100% rename from input/tricks/no-staff.ly rename to input/test/no-staff.ly diff --git a/input/tricks/ottava.ly b/input/test/ottava.ly similarity index 100% rename from input/tricks/ottava.ly rename to input/test/ottava.ly diff --git a/input/tricks/part-combine.ly b/input/test/part-combine.ly similarity index 100% rename from input/tricks/part-combine.ly rename to input/test/part-combine.ly diff --git a/input/tricks/partial-blank.ly b/input/test/partial-blank.ly similarity index 100% rename from input/tricks/partial-blank.ly rename to input/test/partial-blank.ly diff --git a/input/tricks/reverse-music.ly b/input/test/reverse-music.ly similarity index 100% rename from input/tricks/reverse-music.ly rename to input/test/reverse-music.ly diff --git a/input/tricks/slur-attachment-override.ly b/input/test/slur-attachment-override.ly similarity index 100% rename from input/tricks/slur-attachment-override.ly rename to input/test/slur-attachment-override.ly diff --git a/input/tricks/slur-attachment.ly b/input/test/slur-attachment.ly similarity index 100% rename from input/tricks/slur-attachment.ly rename to input/test/slur-attachment.ly diff --git a/input/tricks/slur-ugly.ly b/input/test/slur-ugly.ly similarity index 100% rename from input/tricks/slur-ugly.ly rename to input/test/slur-ugly.ly diff --git a/input/tricks/smart-transpose.ly b/input/test/smart-transpose.ly similarity index 100% rename from input/tricks/smart-transpose.ly rename to input/test/smart-transpose.ly diff --git a/input/tricks/staff-container.ly b/input/test/staff-container.ly similarity index 100% rename from input/tricks/staff-container.ly rename to input/test/staff-container.ly diff --git a/input/test/two-key.ly b/input/test/two-key.ly new file mode 100644 index 0000000000..4b4f2039c7 --- /dev/null +++ b/input/test/two-key.ly @@ -0,0 +1,13 @@ +\header { + +texidoc = "If you specify two different key sigs at one point, a + warning is printed."; + +} + +\score { \notes +\context Voice < + { \key cis \major; cis4 \key bes \major; bes4 } + { \key cis \major; fis4 \key es \major; g4 } +> +} diff --git a/input/test/vertical-extent.ly b/input/test/vertical-extent.ly index d961cbfdf3..f6bcfa949a 100644 --- a/input/test/vertical-extent.ly +++ b/input/test/vertical-extent.ly @@ -1,14 +1,21 @@ +\header { texidoc = "vertical extents may be overriden by +VerticalExtent, VerticalExtent, VerticalExtent. These are +normal property values, and are written itno the grob when the +associated context finishes, so using it in \property works. + + "; } +\version "1.3.145"; \score { \notes < \context Staff = upper { - \property Staff.StaffVerticalExtent = #'(-15.0 . 0.0) + \property Staff.VerticalExtent = #'(-15.0 . 0.0) \clef alto; c1 \break c1 } \context Staff = lower { - \property Staff.StaffVerticalExtent = #'(-0.0 . 15.0) + \property Staff.VerticalExtent = #'(-0.0 . 15.0) \clef alto; g1 \break g1 } @@ -17,6 +24,6 @@ interscoreline = 13.0\mm; interscorelinefill = 0; \translator{\ScoreContext \remove "Bar_number_engraver";} - \translator{\StaffContext StaffMinimumVerticalExtent = #'(-2.0 . 2.0)} + \translator{\StaffContext MinimumVerticalExtent = #'(-2.0 . 2.0)} } } diff --git a/input/tricks/GNUmakefile b/input/tricks/GNUmakefile deleted file mode 100644 index 558771769c..0000000000 --- a/input/tricks/GNUmakefile +++ /dev/null @@ -1,6 +0,0 @@ -depth = ../.. - -LOCALSTEPMAKE_TEMPLATES=mutopia -include $(depth)/make/stepmake.make - - diff --git a/input/tricks/beam-slope.ly b/input/tricks/beam-slope.ly deleted file mode 100644 index a31582b76a..0000000000 --- a/input/tricks/beam-slope.ly +++ /dev/null @@ -1,14 +0,0 @@ - - -fragment = \notes { - \property Voice.Beam \set #'direction = #1 - \property Voice.Beam \set #'height-hs = #0 - [a''8 e' d c] -} - -\paper { linewidth = -1.; } - -\score { - \notes\relative c \fragment - \paper { } -} diff --git a/input/trip.ly b/input/trip.ly index 79da706d91..51583b97cf 100644 --- a/input/trip.ly +++ b/input/trip.ly @@ -17,6 +17,8 @@ TODO: * lyrics. +* drum, jazz, pop notation + %} diff --git a/input/tutorial/ly2dvi.ly b/input/tutorial/ly2dvi.ly deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/lily/all-font-metrics.cc b/lily/all-font-metrics.cc index ce1c5edb3a..72003d663e 100644 --- a/lily/all-font-metrics.cc +++ b/lily/all-font-metrics.cc @@ -78,8 +78,13 @@ All_font_metrics::find_afm (String name) Adobe_font_metric *afm = dynamic_cast (unsmob_metrics (val)); - if (output_format_global == "tex") + /* + only check checksums if there is one. We take the risk that + some file has valid checksum 0 + */ + if (afm->checksum_) { + Tex_font_metric * tfm = find_tfm (name); /* FIXME: better warning message diff --git a/lily/axis-group-engraver.cc b/lily/axis-group-engraver.cc index de404ca62f..1a68c4251f 100644 --- a/lily/axis-group-engraver.cc +++ b/lily/axis-group-engraver.cc @@ -63,7 +63,7 @@ void Axis_group_engraver::finalize () { String type = daddy_grav_l ()->type_str_ ; - SCM dims = get_property ((type + "VerticalExtent").ch_C ()); + SCM dims = get_property ("VerticalExtent"); if (gh_pair_p (dims) && gh_number_p (gh_car (dims)) && gh_number_p (gh_cdr (dims))) @@ -72,12 +72,12 @@ Axis_group_engraver::finalize () staffline_p_->set_grob_property ("extent-Y", dims); } - dims = get_property ((type + "MinimumVerticalExtent").ch_C ()); + dims = get_property ("MinimumVerticalExtent"); if (gh_pair_p (dims) && gh_number_p (gh_car (dims)) && gh_number_p (gh_cdr (dims))) staffline_p_->set_grob_property ("minimum-extent-Y", dims); - dims = get_property ((type + "ExtraVerticalExtent").ch_C ()); + dims = get_property ("ExtraVerticalExtent"); if (gh_pair_p (dims) && gh_number_p (gh_car (dims)) && gh_number_p (gh_cdr (dims))) staffline_p_->set_grob_property ("extra-extent-Y", dims); diff --git a/lily/bezier.cc b/lily/bezier.cc index d4a84ef800..edc53318fe 100644 --- a/lily/bezier.cc +++ b/lily/bezier.cc @@ -7,9 +7,9 @@ */ #include + #include "config.h" #include "warn.hh" - #include "libc-extension.hh" #include "bezier.hh" #include "polynomial.hh" diff --git a/lily/clef-engraver.cc b/lily/clef-engraver.cc index 6f527fc75e..961b6bf6c0 100644 --- a/lily/clef-engraver.cc +++ b/lily/clef-engraver.cc @@ -12,16 +12,13 @@ #include "translator-group.hh" #include "key-item.hh" -#include "local-key-item.hh" #include "bar.hh" -#include "note-head.hh" #include "staff-symbol-referencer.hh" #include "debug.hh" #include "engraver.hh" #include "direction.hh" #include "side-position-interface.hh" #include "item.hh" -#include "custos.hh" /// where is c-0 in the staff? class Clef_engraver : public Engraver @@ -35,7 +32,7 @@ public: protected: virtual void stop_translation_timestep (); virtual void start_translation_timestep (); - virtual void create_grobs (); + virtual void process_music (); virtual void acknowledge_grob (Grob_info); private: @@ -112,25 +109,14 @@ Clef_engraver::set_glyph () void Clef_engraver::acknowledge_grob (Grob_info info) { - create_grobs (); Item * item =dynamic_cast (info.elem_l_); if (item) { if (Bar::has_interface (info.elem_l_) && gh_string_p (get_property ("clefGlyph"))) create_clef (); - - if (Note_head::has_interface (item) - || Local_key_item::has_interface (item) - || Custos::has_interface (item) - ) - { - int p = int (Staff_symbol_referencer::position_f (item)) - + gh_scm2int (get_property ("centralCPosition")); - Staff_symbol_referencer::set_position (item, p); - } - else if (Key_item::has_interface (item)) + if (Key_item::has_interface (item)) { /* Key_item adapts its formatting to make sure that the @@ -175,7 +161,7 @@ Clef_engraver::create_clef () } void -Clef_engraver::create_grobs () +Clef_engraver::process_music () { SCM glyph = get_property ("clefGlyph"); SCM clefpos = get_property ("clefPosition"); diff --git a/lily/command-request.cc b/lily/command-request.cc index ea7e0a4a20..1b06d2f645 100644 --- a/lily/command-request.cc +++ b/lily/command-request.cc @@ -59,10 +59,37 @@ Key_change_req::transpose (Pitch p) set_mus_property ("pitch-alist", newlist); } -Break_req::Break_req () + +bool +alist_equal_p (SCM a, SCM b) { + for (SCM s = a; + gh_pair_p (s); s = gh_cdr (s)) + { + SCM key = gh_caar (s); + SCM val = gh_cdar (s); + SCM l = scm_assoc (key, b); + + if (l == SCM_BOOL_F + || !gh_equal_p ( gh_cdr (l), val)) + + return false; + } + return true; } +bool +Key_change_req::do_equal_b (Request const * m )const +{ + Key_change_req const * kc =dynamic_cast (m); + + if(!kc) + return false; + return alist_equal_p (get_mus_property ("pitch-alist"), + kc->get_mus_property ("pitch-alist")); +} + + bool Mark_req::do_equal_b (Request const * r) const diff --git a/lily/custos-engraver.cc b/lily/custos-engraver.cc index 075e80d792..55c8c73f36 100644 --- a/lily/custos-engraver.cc +++ b/lily/custos-engraver.cc @@ -103,9 +103,15 @@ Custos_engraver::create_grobs () for (int i = pitches_.size (); i--;) { Item *c = create_custos (); + + int p = pitches_[i].steps (); + SCM c0 = get_property ("centralCPosition"); + if (gh_number_p (c0)) + p += gh_scm2int (c0); + c->set_grob_property ("staff-position", - gh_int2scm (pitches_[i].steps ())); + gh_int2scm (p)); } diff --git a/lily/debug.cc b/lily/debug.cc deleted file mode 100644 index 57380d6e7f..0000000000 --- a/lily/debug.cc +++ /dev/null @@ -1,53 +0,0 @@ -/* - debug.cc -- implement debugging routines - - source file of the GNU LilyPond music typesetter - - (c) 1996--2001 Han-Wen Nienhuys - - */ - -#include -#include -#include - -#include "debug.hh" -#include "dstream.hh" -#include "flower-debug.hh" -#include "moment.hh" -#include "misc.hh" -#include "main.hh" - -Dstream *my_monitor=0; - -void -float_handler (int) -{ - cerr << _ ("floating point exception") << endl; - assert (false); -} - -void -debug_init () -{ - my_monitor = new Dstream (&cout, ".dstreamrc"); - signal (SIGFPE, float_handler); -} - -bool check_malloc_b = false; - -void -set_debug (bool b) -{ - if (b) - flower_dstream = my_monitor; - else - flower_dstream = 0; - -#ifdef MEMORY_PARANOID - if (check_malloc_b) - if (mcheck (0)) - warning (_ ("can't set mem-checking!")); -#endif -} - diff --git a/lily/dynamic-engraver.cc b/lily/dynamic-engraver.cc index 1bda7ea01f..23ae1bd020 100644 --- a/lily/dynamic-engraver.cc +++ b/lily/dynamic-engraver.cc @@ -174,7 +174,7 @@ Dynamic_engraver::process_music () script_p_->set_grob_property ("text", script_req_l_->get_mus_property ("text")); - Side_position_interface::set_direction (script_p_, LEFT); + Side_position_interface::set_direction (script_p_, DOWN); if (Direction d = script_req_l_->get_direction ()) Directional_element_interface::set (line_spanner_, d); @@ -373,10 +373,24 @@ Dynamic_engraver::typeset_all () */ - if (!finished_line_spanner_->get_bound (RIGHT) - && finished_line_spanner_->get_bound (LEFT)) - finished_line_spanner_->set_bound (RIGHT, finished_line_spanner_->get_bound (LEFT)); - + Grob * l = finished_line_spanner_->get_bound (LEFT ); + Grob * r = finished_line_spanner_->get_bound (RIGHT); + if (!r && l) + finished_line_spanner_->set_bound (RIGHT, l); + else if (!l && r) + finished_line_spanner_->set_bound (LEFT, r); + else if (!r && !l) + { + /* + This is a isolated dynamic apparently, and does not even have + any interesting support item. + */ + Grob * cc = unsmob_grob (get_property ("currentMusicalColumn")); + Item * ci = dynamic_cast(cc); + finished_line_spanner_->set_bound (RIGHT, ci); + finished_line_spanner_->set_bound (LEFT, ci); + } + typeset_grob (finished_line_spanner_); finished_line_spanner_ = 0; } diff --git a/lily/hyphen-spanner.cc b/lily/hyphen-spanner.cc index 433a107ba6..cd676ff44a 100644 --- a/lily/hyphen-spanner.cc +++ b/lily/hyphen-spanner.cc @@ -37,7 +37,11 @@ Hyphen_spanner::brew_molecule (SCM smob) do { - bounds[d] = sp->get_bound (d)->extent (common, X_AXIS)[-d]; + Interval iv = sp->get_bound (d)->extent (common, X_AXIS); + + bounds[d] = iv.empty_b () + ? sp->get_bound (d)->relative_coordinate (common, X_AXIS) + : iv[-d]; } while (flip (&d) != LEFT); diff --git a/lily/include/command-request.hh b/lily/include/command-request.hh index 2670690a3e..8c4cbeeb51 100644 --- a/lily/include/command-request.hh +++ b/lily/include/command-request.hh @@ -18,8 +18,6 @@ class Break_req : public Request { public: - - Break_req (); protected: VIRTUAL_COPY_CONS (Music); }; @@ -63,6 +61,7 @@ public: protected: VIRTUAL_COPY_CONS (Music); + bool do_equal_b (Request const * ) const; void transpose (Pitch d); }; diff --git a/lily/include/debug.hh b/lily/include/debug.hh index c592844006..956b06b54f 100644 --- a/lily/include/debug.hh +++ b/lily/include/debug.hh @@ -6,10 +6,9 @@ #define DEBUG_HH #include -#include "dstream.hh" + #include "real.hh" #include "lily-proto.hh" -#include "flower-debug.hh" #include "warn.hh" void progress_indication (String); diff --git a/lily/include/key-item.hh b/lily/include/key-item.hh index 8b32647c4e..47c9bfdfe6 100644 --- a/lily/include/key-item.hh +++ b/lily/include/key-item.hh @@ -13,7 +13,7 @@ struct Key_item { - static int calculate_position (Grob*,SCM pair) ; + static void set_interface (Grob*); static bool has_interface (Grob*); DECLARE_SCHEME_CALLBACK (brew_molecule, (SCM )); diff --git a/lily/key-engraver.cc b/lily/key-engraver.cc index 7cfcee40b6..8dc62ea994 100644 --- a/lily/key-engraver.cc +++ b/lily/key-engraver.cc @@ -75,11 +75,6 @@ Key_engraver::create_key (bool def) Staff_symbol_referencer::set_interface (item_p_); Key_item::set_interface (item_p_); - SCM prop = get_property ("keyOctaviation"); - bool multi = to_boolean (prop); - - if (multi) - item_p_->set_grob_property ("multi-octave", gh_bool2scm (multi)); announce_grob (item_p_,keyreq_l_); } @@ -99,10 +94,15 @@ Key_engraver::try_music (Music * req_l) { if (Key_change_req *kc = dynamic_cast (req_l)) { - if (keyreq_l_) - warning (_ ("FIXME: key change merge")); + if (keyreq_l_ && !keyreq_l_->equal_b (kc)) + { + kc->origin ()->warning (_ ("Conflicting key signatures found.")); + keyreq_l_->origin ()->warning (_ ("This was the other key definition.")); + return false; + } keyreq_l_ = kc; read_req (keyreq_l_); + return true; } return false; diff --git a/lily/key-item.cc b/lily/key-item.cc index f1c8ec2232..c87f51ed7f 100644 --- a/lily/key-item.cc +++ b/lily/key-item.cc @@ -26,46 +26,48 @@ const int SHARP_TOP_PITCH=4; /* ais and bis typeset in lower octave */ /* FIXME: key-item should just get a list of (position, acc), and leave the thinking to other parties. - */ + + - TODO: put this in Scheme + + - lots of values trivially shared (key doesn't change very + often). Compute those once, and use that as cache for the rest. + +*/ int -Key_item::calculate_position (Grob *ki, SCM pair) +alteration_pos (SCM what, int alter, int c0p) { - int p = gh_scm2int (gh_car (pair)); - int a = gh_scm2int (gh_cdr (pair)); - int c0p = gh_scm2int (ki->get_grob_property ("c0-position")); - if (to_boolean (ki->get_grob_property ("multi-octave"))) - { - return p + c0p; - } - else { - // Find the c in the range -4 through 2 - int from_bottom_pos = c0p + 4; - from_bottom_pos = from_bottom_pos%7; - from_bottom_pos = (from_bottom_pos + 7)%7; // Precaution to get positive. - int c0 = from_bottom_pos - 4; + if (gh_pair_p (what)) + return gh_scm2int (gh_car (what)) * 7 + gh_scm2int (gh_cdr (what)) + c0p; + + int p = gh_scm2int (what); + + // Find the c in the range -4 through 2 + int from_bottom_pos = c0p + 4; + from_bottom_pos = from_bottom_pos%7; + from_bottom_pos = (from_bottom_pos + 7)%7; // Precaution to get positive. + int c0 = from_bottom_pos - 4; - if ((a<0 && ((p>FLAT_TOP_PITCH) || (p+c0>4)) && (p+c0>1)) - || - (a>0 && ((p>SHARP_TOP_PITCH) || (p+c0>5)) && (p+c0>2))) - { - p -= 7; /* Typeset below c_position */ - } - /* Provide for the four cases in which there's a glitch + if ((alter <0 && ((p>FLAT_TOP_PITCH) || (p+c0>4)) && (p+c0>1)) + || + (alter >0 && ((p>SHARP_TOP_PITCH) || (p+c0>5)) && (p+c0>2))) + { + p -= 7; /* Typeset below c_position */ + } + /* Provide for the four cases in which there's a glitch it's a hack, but probably not worth the effort of finding a nicer solution. --dl. */ - if (c0==2 && a>0 && p==3) - p -= 7; - if (c0==-3 && a>0 && p==-1) - p += 7; - if (c0==-4 && a<0 && p==-1) - p += 7; - if (c0==-2 && a<0 && p==-3) - p += 7; + if (c0==2 && alter >0 && p==3) + p -= 7; + if (c0==-3 && alter>0 && p==-1) + p += 7; + if (c0==-4 && alter<0 && p==-1) + p += 7; + if (c0==-2 && alter<0 && p==-3) + p += 7; - return p + c0; - } + return p + c0; } /* @@ -78,7 +80,6 @@ Key_item::brew_molecule (SCM smob) { Grob*me =unsmob_grob (smob); - Real inter = Staff_symbol_referencer::staff_space (me)/2.0; SCM newas = me->get_grob_property ("new-accidentals"); @@ -87,11 +88,15 @@ Key_item::brew_molecule (SCM smob) SCM lists are stacks, so we work from right to left, ending with the cancellation signature. */ + int c0p = gh_scm2int (me->get_grob_property ("c0-position")); for (SCM s = newas; gh_pair_p (s); s = gh_cdr (s)) { - int a = gh_scm2int (gh_cdar (s)); - Molecule m = Font_interface::get_default_font (me)->find_by_name ("accidentals-" + to_str (a)); - m.translate_axis (calculate_position (me, gh_car (s)) * inter, Y_AXIS); + SCM what = gh_caar (s); + int alter = gh_scm2int (gh_cdar (s)); + int pos = alteration_pos (what, alter, c0p); + + Molecule m = Font_interface::get_default_font (me)->find_by_name ("accidentals-" + to_str (alter)); + m.translate_axis (pos * inter, Y_AXIS); mol.add_at_edge (X_AXIS, LEFT, m, 0); } @@ -99,6 +104,7 @@ Key_item::brew_molecule (SCM smob) if (it->break_status_dir () != RIGHT) { SCM old = me->get_grob_property ("old-accidentals"); + /* Add half a space between cancellation and key sig. @@ -108,24 +114,25 @@ Key_item::brew_molecule (SCM smob) Interval y (0,0); mol.add_at_edge (X_AXIS, LEFT, Lookup::blank (Box (x,y)),0); + + Molecule natural; + if (gh_pair_p (old)) + natural=Font_interface::get_default_font (me)->find_by_name ("accidentals-0"); for (; gh_pair_p (old); old = gh_cdr (old)) { - SCM found = SCM_EOL; - - /* - find correspondences in pitches - */ - for (SCM s = newas; gh_pair_p (s); s = gh_cdr (s)) - if (gh_caar (s) == gh_caar (old)) - found = gh_car (s); - - if (found == SCM_EOL || gh_cdr (found) != gh_cdar (old)) + SCM found = scm_assoc (gh_caar (old), newas); + if (found == SCM_BOOL_F + || gh_cdr (found) != gh_cdar (old)) { - Molecule m =Font_interface::get_default_font (me)->find_by_name ("accidentals-0"); + SCM what = gh_caar (old); + int alter = 0; + int pos = alteration_pos (what, alter, c0p); + + Molecule m = natural; + m.translate_axis (pos* inter, Y_AXIS); - m.translate_axis (calculate_position (me, gh_car (old)) * inter, Y_AXIS); - mol.add_at_edge (X_AXIS, LEFT, m,0); + mol.add_at_edge (X_AXIS, LEFT, m, 0); } } } diff --git a/lily/lexer.ll b/lily/lexer.ll index 7deca514b0..d8646ab673 100644 --- a/lily/lexer.ll +++ b/lily/lexer.ll @@ -145,7 +145,7 @@ HYPHEN -- \"[^"]*\";? { /* got the include file name */ String s (YYText ()+1); s = s.left_str (s.index_last_i ('"')); - DEBUG_OUT << "#version `" << s << "'\n"; + yy_pop_state (); if (!valid_version_b (s)) return INVALID; @@ -187,7 +187,7 @@ HYPHEN -- \"[^"]*\";? { /* got the include file name */ String s (YYText ()+1); s = s.left_str (s.index_last_i ('"')); - DEBUG_OUT << "#include `" << s << "'\n"; + new_input (s,source_global_l); yy_pop_state (); } @@ -196,7 +196,7 @@ HYPHEN -- strip_trailing_white (s); if (s.length_i () && (s[s.length_i () - 1] == ';')) s = s.left_str (s.length_i () - 1); - DEBUG_OUT << "#include `\\" << s << "'\n"; + SCM sid = lookup_identifier (s); if (gh_string_p (sid)) { new_input (ly_scm2string (sid), source_global_l); @@ -290,7 +290,7 @@ HYPHEN -- *yylval.string += YYText (); } \" { - DEBUG_OUT << "quoted string: `" << *yylval.string << "'\n"; + yy_pop_state (); /* yylval is union. Must remember STRING before setting SCM*/ @@ -330,7 +330,7 @@ HYPHEN -- _ ("Brace found at end of lyric. Did you forget a space?")); yylval.scm = ly_str02scm (s.ch_C ()); - DEBUG_OUT << "lyric : `" << s << "'\n"; + return STRING; } . { @@ -369,7 +369,7 @@ HYPHEN -- } <> { - DEBUG_OUT << "<>"; + if (! close_input ()) { yyterminate (); // can't move this, since it actually rets a YY_NULL @@ -387,7 +387,7 @@ HYPHEN -- Real r; int cnv=sscanf (YYText (), "%lf", &r); assert (cnv == 1); - DEBUG_OUT << "REAL" << r<<'\n'; + yylval.real = r; return REAL; } @@ -398,12 +398,12 @@ HYPHEN -- } [{}] { - DEBUG_OUT << "parens\n"; + return YYText ()[0]; } [*:=] { char c = YYText ()[0]; - DEBUG_OUT << "misc char" < (i.elem_l_); - if (item && Bar::has_interface (item)) - { - if (mmrest_p_) - Multi_measure_rest::add_column (mmrest_p_,item); - if (lastrest_p_) - Multi_measure_rest::add_column (lastrest_p_,item); - } -} bool Multi_measure_rest_engraver::try_music (Music* req_l) @@ -125,7 +109,15 @@ Multi_measure_rest_engraver::process_music () = gh_scm2int (get_property ("currentBarNumber")); } - + if (gh_string_p (get_property ("whichBar"))) + { + Grob *cmc = unsmob_grob (get_property( "currentCommandColumn")); + Item *it = dynamic_cast (cmc); + if (mmrest_p_) + add_bound_item (mmrest_p_, it); + if (lastrest_p_) + add_bound_item (lastrest_p_,it); + } } void @@ -136,7 +128,7 @@ Multi_measure_rest_engraver::stop_translation_timestep () if (mmrest_p_ && (now_mom () >= start_moment_) && !mp - && (scm_ilength (mmrest_p_->get_grob_property ("columns")) >= 2)) + && mmrest_p_->get_bound (LEFT) && mmrest_p_->get_bound (RIGHT)) { typeset_grob (mmrest_p_); /* @@ -148,8 +140,7 @@ Multi_measure_rest_engraver::stop_translation_timestep () if (lastrest_p_) { /* sanity check */ - if (scm_ilength (lastrest_p_->get_grob_property ("columns")) >= 2 - && lastrest_p_->get_bound (LEFT) && lastrest_p_->get_bound (RIGHT) + if (lastrest_p_->get_bound (LEFT) && lastrest_p_->get_bound (RIGHT) && lastrest_p_->get_bound (LEFT) != lastrest_p_->get_bound (RIGHT)) typeset_grob (lastrest_p_); lastrest_p_ = 0; diff --git a/lily/my-lily-parser.cc b/lily/my-lily-parser.cc index 7fa6ff7d04..f6553c9cb5 100644 --- a/lily/my-lily-parser.cc +++ b/lily/my-lily-parser.cc @@ -46,7 +46,7 @@ My_lily_parser::parse_file (String init, String s) progress_indication (_ ("Parsing...")); - set_yydebug (flower_dstream &&!flower_dstream->silent_b ("Parser")); + set_yydebug (0); lexer_p_->new_input (init, source_l_); do_yyparse (); diff --git a/lily/note-heads-engraver.cc b/lily/note-heads-engraver.cc index 2d13e7a7a8..87a5bff3f2 100644 --- a/lily/note-heads-engraver.cc +++ b/lily/note-heads-engraver.cc @@ -30,8 +30,8 @@ public: protected: virtual void start_translation_timestep (); virtual bool try_music (Music *req_l) ; - virtual void create_grobs (); - virtual void acknowledge_grob (Grob_info) ; + virtual void process_music (); + virtual void stop_translation_timestep (); }; @@ -53,18 +53,10 @@ Note_heads_engraver::try_music (Music *m) } -void -Note_heads_engraver::acknowledge_grob (Grob_info) -{ - //create_grobs (); -} void -Note_heads_engraver::create_grobs () +Note_heads_engraver::process_music () { - if (note_p_arr_.size ()) - return ; - for (int i=0; i < note_req_l_arr_.size (); i++) { Item *note_p = new Item (get_property ("NoteHead")); @@ -94,8 +86,13 @@ Note_heads_engraver::create_grobs () } Pitch *pit =unsmob_pitch (req->get_mus_property ("pitch")); - note_p->set_grob_property ("staff-position", gh_int2scm (pit->steps ())); + int pos = pit->steps (); + SCM c0 = get_property ("centralCPosition"); + if (gh_number_p (c0)) + pos += gh_scm2int (c0); + + note_p->set_grob_property ("staff-position", gh_int2scm (pos)); if (to_boolean (get_property ("easyPlay"))) { char s[2] = "a"; @@ -147,8 +144,6 @@ Note_heads_engraver::start_translation_timestep () else e->forbid_breaks (); // guh. Use properties! } - - } diff --git a/lily/parser.yy b/lily/parser.yy index 54d0ce9400..16e9c0ee2f 100644 --- a/lily/parser.yy +++ b/lily/parser.yy @@ -242,8 +242,8 @@ yylex (YYSTYPE *s, void * v_l) %type identifier_init -%type steno_duration optional_notemode_duration -%type entered_notemode_duration explicit_duration +%type steno_duration optional_notemode_duration multiplied_duration +%type explicit_duration %type pre_requests post_requests %type gen_text_def @@ -755,14 +755,6 @@ Simple_music: } | property_def | translator_change - | Simple_music '*' bare_unsigned '/' bare_unsigned { - $$ = $1; - $$->compress (Moment ($3, $5 )); - } - | Simple_music '*' bare_unsigned { - $$ = $1; - $$->compress (Moment ($3, 1)); - } ; @@ -1530,31 +1522,19 @@ absolute_pitch: ; duration_length: - steno_duration { + multiplied_duration { $$ = $1; } | explicit_duration { $$ = $1; } - | duration_length '*' bare_unsigned { - $$ = unsmob_duration ($$)->compressed ( $3) .smobbed_copy (); - } - | duration_length '/' bare_unsigned { - $$ = unsmob_duration ($$)->compressed (Moment (1,$3)).smobbed_copy (); - } - ; - -entered_notemode_duration: - steno_duration { - THIS->set_last_duration (unsmob_duration ($1)); - } ; optional_notemode_duration: { $$ = THIS->default_duration_.smobbed_copy (); } - | entered_notemode_duration { + | multiplied_duration { $$ = $1; } | explicit_duration { @@ -1571,11 +1551,30 @@ steno_duration: l = intlog2 ($1); $$ = Duration (l, $2).smobbed_copy (); + + THIS->set_last_duration (unsmob_duration ($$)); } | DURATION_IDENTIFIER dots { Duration *d =unsmob_duration ($1); Duration k (d->duration_log (),d->dot_count () + $2); - $$ = k.smobbed_copy (); + $$ = k.smobbed_copy (); + + THIS->set_last_duration (unsmob_duration ($$)); + } + ; + + + + +multiplied_duration: + steno_duration { + $$ = $1; + } + | multiplied_duration '*' bare_unsigned { + $$ = unsmob_duration ($$)->compressed ( $3) .smobbed_copy (); + } + | multiplied_duration '/' bare_unsigned { + $$ = unsmob_duration ($$)->compressed (Moment (1,$3)).smobbed_copy (); } ; diff --git a/lily/slur-bezier-bow.cc b/lily/slur-bezier-bow.cc index d7395d2518..b5f0db22d7 100644 --- a/lily/slur-bezier-bow.cc +++ b/lily/slur-bezier-bow.cc @@ -163,9 +163,6 @@ Slur_bezier_bow::minimise_enclosed_area (Real beauty, for (int i=0; i < steps; i++) { Real area = enclosed_area_f (); - if (!i) - DEBUG_OUT << to_str ("Init area: %f\n", area); - if (area <= beautiful) break; @@ -186,8 +183,6 @@ Slur_bezier_bow::minimise_enclosed_area (Real beauty, curve_.control_[1][X_AXIS] -= da[0] * u * pct; curve_.control_[2][X_AXIS] -= da[1] * u * pct; } - - // Real area = enclosed_area_f (); } diff --git a/lily/tie.cc b/lily/tie.cc index 58ef8d549b..6e605ea07f 100644 --- a/lily/tie.cc +++ b/lily/tie.cc @@ -146,15 +146,14 @@ Tie::get_control_points (SCM smob) */ Real lambda = 0.5; - if (Note_head::has_interface (me->get_bound (LEFT))) + if (Note_head::has_interface (l)) left_x = l->extent (l, X_AXIS)[RIGHT] + x_gap_f; else left_x = l->extent (l, X_AXIS).linear_combination (lambda); Real width; - if (Note_head::has_interface (me->get_bound (LEFT)) - && Note_head::has_interface (me->get_bound (RIGHT))) + if (Note_head::has_interface (l) && Note_head::has_interface (r)) { width = + r->extent (commonx,X_AXIS)[LEFT] @@ -163,7 +162,7 @@ Tie::get_control_points (SCM smob) } else { - if (Note_head::has_interface (me->get_bound (LEFT))) + if (Note_head::has_interface (l)) width = r->relative_coordinate (commonx, X_AXIS) - l->extent (commonx, X_AXIS)[RIGHT] - 2 * x_gap_f; @@ -209,6 +208,20 @@ Tie::get_control_points (SCM smob) Real ypos = Tie::position_f (me) * staff_space/2 + dir * dy; + /* + Make sure we don't start on a dots + */ + if (Note_head::has_interface (l) && Rhythmic_head::dots_l (l)) + { + Grob* dots = Rhythmic_head::dots_l(l); + if(fabs (staff_space * Staff_symbol_referencer::position_f (dots) /2 + - ypos) < 0.5) + { + ypos += 0.5 * dir ; + } + } + + /* todo: prevent ending / staffline collision. @@ -243,7 +256,7 @@ Tie::get_control_points (SCM smob) Real clear = staff_space * gh_scm2double (me->get_grob_property ("staffline-clearance")); - if (fabs (y) <= Staff_symbol_referencer::staff_radius (me) + if (fabs (y) <= Staff_symbol_referencer::staff_radius (me) && fabs (diff) < clear) { Real y1 = ry + clear; @@ -251,7 +264,7 @@ Tie::get_control_points (SCM smob) newy = (fabs (y1 - y) < fabs (y2 - y)) ? y1 : y2; - // newy = ry - 0.5 * staff_space * sign (diff) ; + // newy = ry - 0.5 * staff_space * sign (diff) ; /* we don't want horizontal ties diff --git a/ly/declarations-as.ly b/ly/declarations-as.ly deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/ly/engraver.ly b/ly/engraver.ly index 6536fe26bb..5a6c0eff0f 100644 --- a/ly/engraver.ly +++ b/ly/engraver.ly @@ -44,6 +44,10 @@ StaffContext=\translator { %} \consistsend "Axis_group_engraver"; + + MinimumVerticalExtent = ##f + ExtraVerticalExtent = ##f + VerticalExtent = ##f % explicitly set instrument, so we don't get % weird effects when doing instrument names for @@ -59,6 +63,10 @@ StaffContext=\translator { StaffContainerContext = \translator { \type Engraver_group_engraver; \consists "Axis_group_engraver"; + MinimumVerticalExtent = ##f + ExtraVerticalExtent = ##f + VerticalExtent = ##f + \accepts Staff; \name StaffContainer; } @@ -92,6 +100,9 @@ RhythmicStaffContext=\translator{ \consists "Output_property_engraver"; Generic_property_list = #generic-staff-properties + MinimumVerticalExtent = ##f + ExtraVerticalExtent = ##f + VerticalExtent = ##f \consists "Pitch_squash_engraver"; \consists "Separating_line_group_engraver"; @@ -276,8 +287,9 @@ StaffGroupContext = \translator { LyricsVoiceContext= \translator{ \type "Engraver_group_engraver"; \consistsend "Axis_group_engraver"; - LyricsVoiceMinimumVerticalExtent = #(cons -1.2 1.2) - + MinimumVerticalExtent = #(cons -1.2 1.2) + ExtraVerticalExtent = ##f + VerticalExtent = ##f \name LyricsVoice ; \consists "Separating_line_group_engraver"; \consists "Lyric_engraver"; @@ -291,6 +303,12 @@ NoteNamesContext = \translator { \type "Engraver_group_engraver"; \name NoteNames; \consistsend "Axis_group_engraver"; + + MinimumVerticalExtent = ##f + ExtraVerticalExtent = ##f + VerticalExtent = ##f + + \consists "Note_name_engraver"; \consists "Separating_line_group_engraver"; } @@ -302,6 +320,9 @@ LyricsContext = \translator { Generic_property_list = #generic-lyrics-properties \consists "Property_engraver"; \consistsend "Axis_group_engraver"; + MinimumVerticalExtent = ##f + ExtraVerticalExtent = ##f + VerticalExtent = ##f \accepts "LyricsVoice"; } @@ -319,6 +340,9 @@ ChordNamesContext = \translator { \consists "Chord_name_engraver"; \consists "Skip_req_swallow_translator"; \consistsend "Axis_group_engraver"; + MinimumVerticalExtent = ##f + ExtraVerticalExtent = ##f + VerticalExtent = ##f VerticalAxisGroup \override #'invisible-staff = ##t } diff --git a/ly/init-as.ly b/ly/init-as.ly deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/make/ly.make b/make/ly.make index 3e8824f810..8355a3dc65 100644 --- a/make/ly.make +++ b/make/ly.make @@ -62,8 +62,7 @@ mutopia-examples=$(name) $(parts) # $(outdir)/%-book.ps: $(outdir)/%.ps psbook $< $<.tmp -# pstops '2:0L(11.45in,0.25in)+1L(11.45in,5.6in)' $<.tmp $@ - pstops '2:0L@.7(21cm,0)+1L@.7(21cm,14.85cm)' $<.tmp $@ + pstops '2:0L(11.45in,0.25in)+1L(11.45in,5.6in)' $<.tmp $@ # # Catch-all target: type `make foo' to make out/foo.ps, diff --git a/make/out/lilypond.lsm b/make/out/lilypond.lsm index c38907f0d8..500da4417e 100644 --- a/make/out/lilypond.lsm +++ b/make/out/lilypond.lsm @@ -1,15 +1,15 @@ Begin3 Title: LilyPond -Version: 1.3.144 -Entered-date: 28MAR01 +Version: 1.3.145 +Entered-date: 01APR01 Description: @BLURB@ Keywords: music notation typesetting midi fonts engraving Author: hanwen@cs.uu.nl (Han-Wen Nienhuys) janneke@gnu.org (Jan Nieuwenhuizen) Maintained-by: hanwen@stack.nl (Han-Wen Nienhuys) Primary-site: sunsite.unc.edu /pub/Linux/apps/sound/convert - 1000k lilypond-1.3.144.tar.gz + 1000k lilypond-1.3.145.tar.gz Original-site: ftp.cs.uu.nl /pub/GNU/LilyPond/development/ - 1000k lilypond-1.3.144.tar.gz + 1000k lilypond-1.3.145.tar.gz Copying-policy: GPL End diff --git a/make/out/lilypond.spec b/make/out/lilypond.spec index 450a63de56..3dbcd146d7 100644 --- a/make/out/lilypond.spec +++ b/make/out/lilypond.spec @@ -1,17 +1,20 @@ %define info yes Name: lilypond -Version: 1.3.144 +Version: 1.3.145 Release: 1 License: GPL Group: Applications/Publishing -Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.3.144.tar.gz +Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.3.145.tar.gz +# music notation software for.. ? Summary: A program for printing sheet music. URL: http://www.cs.uu.nl/~hanwen/lilypond -# Icon: lilypond-icon.gif +# rpm: 4.0: broken for -ta builds: rpm doesn't look in tarball for xpm +# Icon: lilypond-icon.xpm BuildRoot: /tmp/lilypond-install Prereq: tetex +# use keywords: music notation software %description LilyPond is a music typesetter. It produces beautiful sheet music using a high level description file as input. LilyPond is @@ -50,7 +53,7 @@ make all # even if documentation fails to build make -C Documentation || true -make htmldoc || true +make web || true %install @@ -80,10 +83,8 @@ cp buildscripts/out/lilypond-login $RPM_BUILD_ROOT%{_prefix}/../etc/profile.d/li #%install documentation #line 63: second %install # again, make sure that main package installs even if doco fails -mkdir -p htmldocs/out -tar -C htmldocs -xzf out/htmldoc.tar.gz || true -mkdir -p out/examples/ -tar -cf - input/ | tar -C out/examples/ -xf- || true +mkdir -p web/out +tar -C web -xzf out/web.tar.gz || true %ifos cygwin # urg, this symlink doesn't come through on cygwin @@ -154,6 +155,4 @@ fi # this gets too messy... # %doc input/*.ly # verbatim include of input: list the directory without issuing a %dir -%doc htmldocs/ -%doc out/examples/ -%doc mutopia/ +%doc web/ diff --git a/scm/grob-description.scm b/scm/grob-description.scm index e2bfae8305..ea40dd0cf7 100644 --- a/scm/grob-description.scm +++ b/scm/grob-description.scm @@ -613,12 +613,12 @@ (meta . ,(grob-description "SustainPedal" sustain-pedal-interface side-position-interface font-interface)) )) - ; should split in 3 + ;; TODO: should split in 3 (SystemStartDelimiter . ( (molecule-callback . ,System_start_delimiter::brew_molecule) (after-line-breaking-callback . ,System_start_delimiter::after_line_breaking) - ;; ugh, in practice, brace has height of 4.1 staff-spaces - (brace-collapse-height . 4.1) + ;; really 4.0, but 5 to be on safe side. + (brace-collapse-height . 5.0) (bracket-collapse-height . 1) (thickness . 1.6) (arch-height . 1.5) @@ -680,6 +680,7 @@ (break-align-symbol . Time_signature) (visibility-lambda . ,all-visible) (breakable . #t) + (style . C) (font-family . number) (meta . ,(grob-description "TimeSignature" time-signature-interface font-interface)) )) diff --git a/scm/translator-description.scm b/scm/translator-description.scm index ac11ab645f..7edf9e0455 100644 --- a/scm/translator-description.scm +++ b/scm/translator-description.scm @@ -52,7 +52,7 @@ the beam engraver for overriding beaming." "Axis_group_engraver" "Group all objects created in this context in a VerticalAxisGroup spanner." '(VerticalAxisGroup) - '(CONTEXTNAMEVerticalExtent CONTEXTNAMEMinimumVerticalExtent CONTEXTNAMExtraVerticalExtent) + '(VerticalExtent MinimumVerticalExtent ExtraVerticalExtent) )) (cons @@ -348,15 +348,7 @@ If omitted, then dots appear on top of the notes. "" '(KeySignature ) - '( - - keySignature - keyOctaviation - explicitKeySignatureVisibility - createKeyOnClefChange - keyAccidentalOrder - keySignature - ))) + '( keySignature explicitKeySignatureVisibility createKeyOnClefChange keyAccidentalOrder keySignature ))) (cons 'Lyric_engraver (engraver-description @@ -416,7 +408,7 @@ If omitted, then dots appear on top of the notes. measurePosition and currentBarNumber to determine what number to print over the MultiMeasureRest " '(MultiMeasureRest) - '( + '(currentBarNumber currentCommandColumn measurePosition ))) (cons diff --git a/scm/translator-property-description.scm b/scm/translator-property-description.scm index 4751d5ef7b..8f91636ac3 100644 --- a/scm/translator-property-description.scm +++ b/scm/translator-property-description.scm @@ -15,18 +15,30 @@ -(translator-property-description 'CONTEXTNAMEMinimumVerticalExtent number-pair? "minimum vertical extent, same format as CONTEXTNAMEVerticalExtent [fixme, naming]") -(translator-property-description 'CONTEXTNAMEVerticalExtent number-pair? "hard coded vertical extent. +(translator-property-description 'MinimumVerticalExtent number-pair? + "minimum vertical extent, same format as VerticalExtent") + +(translator-property-description 'VerticalExtent number-pair? + "hard coded vertical extent. The format is a pair of dimensions, for example, this sets the sizes of a staff to 10 (5+5) staffspaces high. @example -property Staff.StaffVerticalExtent = #(-5.0 . 5.0) +property Staff.VerticalExtent = #(-5.0 . 5.0) @end example - [fixme, naming]") -(translator-property-description 'CONTEXTNAMExtraVerticalExtent number-pair? "extra vertical extent, same format -CONTEXTNAMEMinimumVerticalExtent [fixme, naming]") +VerticalExtent, MinimumVerticalExtent and ExtraVerticalExtent are +predefined in all relevant contexts to @code{#f}, so they will not +inherit values. + +Note that these VerticalExtents can only operate on vertical groups, +and therefore only work in contexts which contain an +@code{Axis_group_engraver}. +") + +(translator-property-description 'ExtraVerticalExtent + number-pair? "extra vertical extent, same format as MinimumVerticalExtent") + (translator-property-description 'Generic_property_list list? "description of the conversion. Defines names and types for generic properties. These are properties @@ -190,14 +202,10 @@ remembered for the duration of a measure. Alist that defines in what order alterations should be printed. The format is (NAME . ALTER), where NAME is from 0 .. 6 and ALTER from -1, 1. ") -(translator-property-description 'keyOctaviation boolean? "") -(translator-property-description 'keySignature list? "The current key signature. This is an alist containing (NAME . ALTER) pairs, where NAME is from 0.. 6 and ALTER from -2,-1,0,1,2 ") +(translator-property-description 'keySignature list? "The current key signature. This is an alist containing (NAME . ALTER) or ((OCTAVE . NAME) . ALTER) pairs, where NAME is from 0.. 6 and ALTER from -2,-1,0,1,2 ") (translator-property-description 'localKeySignature list? "the key -signature at this point in the measure. The format is an alist with -entries of the form (NAME . ALTER) -or ((OCTAVE . NAME) . ALTER), -where NAME is from 0.. 6 and ALTER from -2,-1,0,1,2" +signature at this point in the measure. The format is the same as for keySignature. " ) (translator-property-description 'measureLength moment? "Length of one diff --git a/scripts/convert-ly.py b/scripts/convert-ly.py index 583d7f5f9e..d35e379b41 100644 --- a/scripts/convert-ly.py +++ b/scripts/convert-ly.py @@ -525,10 +525,8 @@ if 1: -################ TODO: lots of other syntax change should be done here as well - - +# TODO: lots of other syntax change should be done here as well if 1: def conv (str): str = re.sub ('basicCollisionProperties', 'NoteCollision', str) @@ -623,7 +621,7 @@ if 1: conversions.append (((1,3,97), conv, 'ChordName -> ChordNames')) -## TODO: add lots of these +# TODO: add lots of these if 1: def conv (str): @@ -782,8 +780,21 @@ if 1: conversions.append (((1,3,144), conv, 'Chorda -> Corda')) -############################ - +if 1: + def conv (str): + str = re.sub ('([A-Za-z]+)MinimumVerticalExtent', 'MinimumV@rticalExtent', str) + str = re.sub ('([A-Za-z]+)ExtraVerticalExtent', 'ExtraV@rticalExtent', str) + str = re.sub ('([A-Za-z]+)VerticalExtent', 'VerticalExtent', str) + str = re.sub ('ExtraV@rticalExtent', 'ExtraVerticalExtent', str) + str = re.sub ('MinimumV@rticalExtent', 'MinimumVerticalExtent', str) + return str + + conversions.append (((1,3,145), conv, + 'ContextNameXxxxVerticalExtent -> XxxxVerticalExtent')) + +################################ +# END OF CONVERSIONS +################################ def get_conversions (from_version, to_version): def version_b (v, f = from_version, t = to_version): diff --git a/scripts/update-lily.py b/scripts/update-lily.py index 99e7c68cfd..b683bab2ff 100644 --- a/scripts/update-lily.py +++ b/scripts/update-lily.py @@ -50,10 +50,8 @@ patch_dir = build_root + '/patches' notify = 0 build_command = ''' -set -x cd %b && [ -d %n-%v ] && exit 1 || true; -mkdir -p %n-%v ( tar xzf %r/%t && rm -f building && @@ -245,7 +243,7 @@ option_definitions = [ ), ('', 'h', 'help', _ ("this help")), ('', 'k', 'keep', _ ("keep all output, and name the directory %s") % temp_dir), - ('EMAIL', 'n', 'notify', _ ("upon failure notify EMAIL[,EMAIL]")), + ('EMAIL', 'n', 'notify', _ ("upon failure notify EMAIL[,EMAIL]"), ('', 'r', 'remove-previous', _ ("remove previous build")), ('', 'V', 'verbose', _ ("verbose")), ('', 'v', 'version', _ ("print version number")), @@ -447,11 +445,11 @@ if 1: progress (_ ("building %s...") % latest) os.chdir (build_root) - if build (latest) and previous and remove_previous_p: + if build (latest) previous and remove_previous_p: system ('rm -rf %s' % os.path.join (build_root, previous)) else: if notify: - system ('(date; uname -a) | mail -s "%s failed" %s' % (program_name, notify)) + system ('(date; uname -a) | mail -s "%s failed" %s' % (program_name, notify) sys.exit (1) os.chdir (original_dir) diff --git a/stepmake/aclocal.m4 b/stepmake/aclocal.m4 index b5684b86ad..7705707883 100644 --- a/stepmake/aclocal.m4 +++ b/stepmake/aclocal.m4 @@ -15,12 +15,11 @@ AC_DEFUN(AC_STEPMAKE_BIBTEX2HTML, [ AC_DEFUN(AC_STEPMAKE_COMPILE, [ # -O is necessary to get inlining - OPTIMIZE="" CFLAGS=${CFLAGS:-""} CXXFLAGS=${CXXFLAGS:-$CFLAGS} LDFLAGS=${LDFLAGS:-""} checking_b=yes - optimise_b=no + optimise_b=yes profile_b=no debug_b=yes @@ -32,19 +31,10 @@ AC_DEFUN(AC_STEPMAKE_COMPILE, [ [ --enable-debugging compile with debugging info. Default: on], [debug_b=$enableval]) - AC_ARG_ENABLE(optimise, - [ --enable-optimise use maximal speed optimisations. Default: off], - [optimise_b=$enableval]) - AC_ARG_ENABLE(profiling, [ --enable-profiling compile with gprof support. Default: off], [profile_b=$enableval]) - AC_ARG_ENABLE(mingw-prefix, - [ --enable-mingw-prefix=DIR - set the mingw32 directory (standalone windows32 exes)], - [MINGWPREFIX=$enableval], - [MINGWPREFIX=no]) if test "$checking_b" = no; then # ugh @@ -56,9 +46,6 @@ AC_DEFUN(AC_STEPMAKE_COMPILE, [ OPTIMIZE="-O2 -finline-functions" fi - if test "$optimise_b" = no; then - OPTIMIZE="" - fi if test $profile_b = yes; then EXTRA_LIBES="-pg" @@ -69,11 +56,6 @@ AC_DEFUN(AC_STEPMAKE_COMPILE, [ OPTIMIZE="$OPTIMIZE -g" fi - # however, C++ support in mingw32 v 0.1.4 is still flaky - if test x$MINGWPREFIX != xno; then - ICFLAGS="-I$MINGWPREFIX/include" - ILDFLAGS="-$MINGWPREFIX/lib" - fi AC_PROG_CC LD='$(CC)' @@ -434,16 +416,13 @@ AC_DEFUN(AC_STEPMAKE_KPATHSEA, [ [ --with-kpathsea use kpathsea lib. Default: on], [kpathsea_b=$enableval]) - if test $kpathsea_b = yes; then + if test "$kpathsea_b" = "yes"; then AC_HAVE_HEADERS(kpathsea/kpathsea.h) AC_CHECK_LIB(kpathsea, kpse_find_file) - # urg: kpse_find_tfm is a #define, how to check for this? - # AC_CHECK_LIB(kpathsea, kpse_find_tfm) - # AC_CHECK_FUNCS(kpse_find_file kpse_find_tfm,, AC_STEPMAKE_WARN(Cannot find kpathsea functions. You may have to create TFM files manually.)) - AC_CHECK_FUNCS(kpse_find_file,, AC_STEPMAKE_WARN(Cannot find kpathsea functions. You may have to create TFM files manually.) kpathsea_b=no) + AC_CHECK_FUNCS(kpse_find_file,, AC_ERROR(Cannot find kpathsea functions. Rerun with --without-kpathsea.) ) fi AC_MSG_CHECKING(whether to use kpathsea) - if test $kpathsea_b = yes; then + if test "$kpathsea_b" = yes; then AC_MSG_RESULT(yes) KPATHSEA=1 else -- 2.39.2