From 160441415ece6ea402f7af59087293d8d16c29f2 Mon Sep 17 00:00:00 2001 From: Han-Wen Nienhuys Date: Tue, 28 Mar 2000 12:20:35 +0200 Subject: [PATCH] release: 1.3.40 =========== * buildscripts/mf-to-table.py: feta dep files are now opened with write binary option. This avoids carriage return linefeed problems and windows while not affecting unix. * Documentation/hacking.texi: Fixed a texinfo syntax error * stepmake/bin/package-zip32.sh: Fixed or Removed some legacy, 1.2.x, directory paths. * Documentation/ntweb/index.texi: Fixed broken links, added 1.3.39 links. 1.3.39.h --- CHANGES | 71 +++--- Documentation/user/glossary.tely | 228 +++++++++++++++--- Documentation/user/properties.itely | 12 + VERSION | 4 +- buildscripts/make-cygwin-cross.sh | 9 +- configure | 45 ++-- input/star-spangled-banner.ly | 2 +- input/test/{test-as5.ly => asciscript5.ly} | 0 input/test/{test-lyrics.ly => lyrics.ly} | 0 input/test/vertical-extent.ly | 7 + lily/axis-group-engraver.cc | 12 + lily/axis-group-interface.cc | 4 +- lily/dimension-cache.cc | 2 +- lily/extender-spanner.cc | 2 +- lily/hyphen-spanner.cc | 2 +- lily/include/dimension-cache.hh | 2 +- lily/include/score-element.hh | 8 +- lily/paper-score.cc | 3 +- lily/score-element.cc | 31 ++- lily/span-bar.cc | 4 +- lily/volta-spanner.cc | 5 +- ly/engraver.ly | 2 +- make/out/lilypond.lsm | 8 +- make/out/lilypond.spec | 4 +- .../Solo-Cello-Suites/menuetto-cello.ly | 2 +- .../Solo-Cello-Suites/menuetto-viola.ly | 2 +- mutopia/J.S.Bach/wtk1-fugue2.ly | 4 +- scm/generic-property.scm | 9 +- 28 files changed, 345 insertions(+), 139 deletions(-) rename input/test/{test-as5.ly => asciscript5.ly} (100%) rename input/test/{test-lyrics.ly => lyrics.ly} (100%) create mode 100644 input/test/vertical-extent.ly diff --git a/CHANGES b/CHANGES index 6fefc94895..7e58070ff2 100644 --- a/CHANGES +++ b/CHANGES @@ -1,57 +1,52 @@ ---- ../lilypond-1.3.39.jcn2/CHANGES Mon Mar 27 16:27:33 2000 -++ b/CHANGES Tue Mar 28 01:50:52 2000 -@@ -1,3 +1,11 @@ -1.3.39.jcn3 +1.3.39.jbr1 =========== -* buildscripts/make-cygwin-cross.sh: Use rx-1.5 instead of regex (Jeffrey). +* buildscripts/mf-to-table.py: feta dep files are now opened with write + binary option. This avoids carriage return linefeed problems and + windows while not affecting unix. -* scm/lily.scm: Fixed check for Windows: by default don't use scm regex. +* Documentation/hacking.texi: Fixed a texinfo syntax error + +* stepmake/bin/package-zip32.sh: Fixed or Removed some legacy, 1.2.x, + directory paths. +* Documentation/ntweb/index.texi: Fixed broken links, added 1.3.39 links. - 1.3.39.jcn2 - =========== - --- ../lilypond-1.3.39.jcn1/CHANGES Fri Mar 24 17:40:59 2000 -++ b/CHANGES Mon Mar 27 16:27:33 2000 -@@ -1,4 +1,15 @@ --2000-03-24 -1.3.39.jcn2 +1.3.39.hwn1 =========== -* Documentation/ntweb/guile-1.3.4-gnu-windows.patch: Significantly smaller - patch for guile. +* Glossary updates by Christian Mondrup. -* buildscripts/make-cygwin-cross.sh: Compile native package GNU regex, -which should fix Windows problems with guile. Also added input directory -to zip file. +* Bugfix: use generic properties in lyrics too. This fixes the +\property textStyle for lyrics. -* stepmake/aclocal.m4: Added decent checking for version of guile, and - fixed warning message. - - * lily/lexer.ll (My_lily_lexer): Bugfix: lookup chordmodifiers in the - chord-modifier table (not in the pitch list).--- ../lilypond-1.3.39/CHANGES Fri Mar 24 08:51:45 2000 -++ b/CHANGES Sun Mar 26 15:36:41 2000 -@@ -1,3 +1,17 @@ -1.3.39.jbr1 -=========== +* Score_element::preset_extent(), used by \property +XXXVerticalExtent, so hard code the size of a vertical group. -* buildscripts/mf-to-table.py: feta dep files are now opened with write - binary option. This avoids carriage return linefeed problems and - windows while not affecting unix. +* Don't fix up reference points for originals of broken +spanners. Fixes spurious "orphaned score-element" warnings. -* Documentation/hacking.texi: Fixed a texinfo syntax error +2000-03-24 -* stepmake/bin/package-zip32.sh: Fixed or Removed some legacy, 1.2.x, - directory paths. +* buildscripts/make-cygwin-cross.sh: Use rx-1.5 instead of regex (Jeffrey). -* Documentation/ntweb/index.texi: Fixed broken links, added 1.3.39 links. +* scm/lily.scm: Fixed check for Windows: by default don't use scm regex. - 1.3.38.hwn2 - =========== - 2000-03-24 +* Documentation/ntweb/guile-1.3.4-gnu-windows.patch: Significantly smaller +patch for guile. + +* buildscripts/make-cygwin-cross.sh: Compile native package GNU regex, +which should fix Windows problems with guile. Also added input directory +to zip file. + +* stepmake/aclocal.m4: Added decent checking for version of guile, and +fixed warning message. * lily/lexer.ll (My_lily_lexer): Bugfix: lookup chordmodifiers in the - chord-modifier table (not in the pitch list). +chord-modifier table (not in the pitch list). + +1.3.39 +====== 1.3.38.hwn2 =========== diff --git a/Documentation/user/glossary.tely b/Documentation/user/glossary.tely index e7cf139d21..c7de116fcc 100644 --- a/Documentation/user/glossary.tely +++ b/Documentation/user/glossary.tely @@ -1,4 +1,4 @@ - +\input ruled \input texinfo @setfilename glossary.info @@ -67,8 +67,8 @@ accidental. gis1_"sharp" s s2 gisis1_"db. sharp" s s2 ges1_"flat" s s2 - geses1_"db. flat" s s2 - g!1_"natural" + geses1_"db. flat" s s2 + g!1_"natural" s2 } @end mudela @@ -140,8 +140,8 @@ the duration of the long a. is proportionate to that of the main note. @ @mudela[13pt,eps] -\property Voice.textEmptyDimension = ##t - +\emptyText +%\property Voice.textEmptyDimension = ##t \property Voice.textStyle = "large" \notes\relative c'' { \key d; @@ -178,8 +178,8 @@ An appoggiatura may have more notes preceding the main note. @end mudela @item arpeggio -I: arpeggio, F: arp@`ege, D: Arpeggio, Akkordbrechungen, gebrochener Akkord, -NL: gebroken akoord, DK: arpeggio, akkordbrydning, S: arpeggio, N: +I: arpeggio, F: arp@`ege, D: Arpeggio, Akkordbrechungen, gebrochener +Akkord, NL: gebroken akoord, DK: arpeggio, akkordbrydning, S: arpeggio, N: @ @@ -325,7 +325,8 @@ orchestral or choral score. @ @mudela[13pt,eps] -\context StaffGroup < +%\context StaffGroup < +\context ChoirStaff < \property StaffGroup.minVerticalAlign = 12 \notes\relative c'' { \clef treble; g4 e c2 } \notes\relative c { \clef bass; c1 \bar "|."; } > @@ -373,17 +374,20 @@ lines. @mudela[13pt,eps] \property Score.barNonAuto = ##t -\property Lyrics.textStyle = "large" -\property Voice.clefStyle = "fullSizeChanges" +\property Staff.clefStyle = #"fullSizeChanges" +\property Staff.textStyle = #"large" +\property Lyrics.textStyle = #"large" \addlyrics \notes\relative c' { - \clef "C1"; c1 s s - \clef "C2"; c s s - \clef "C3"; c s s - \clef "C4"; c s s - \clef "C5"; c s + \clef soprano; c1 s s + \clef mezzosoprano; c s s + \clef alto; c s s + \clef tenor; c s s + \clef baritone; c s +} +\context Lyrics \lyrics { + Soprano Mezzosoprano Alto Tenor Baritone } -\context Lyrics \lyrics { Soprano Mezzosoprano Alto Tenor Baritone } @end mudela @item cadence @@ -430,6 +434,7 @@ chords are denoted open chords @mudela[13pt,eps] \property Score.barNonAuto = ##t +\property Voice.textNonEmpty = ##t \property Voice.textStyle = "large" \time 4/4; \notes\relative c'' { @@ -438,7 +443,7 @@ chords are denoted open chords - + s s2 } @end mudela @@ -687,7 +692,7 @@ also to some extent in newer jazz music. \addlyrics \notes\relative c' { d1 - \property Voice.textScriptPadding = #-10 + \property Voice.textScriptPadding = #-10 e^"~~ S" f g a \property Voice.textScriptPadding = #-4 @@ -821,7 +826,7 @@ harmonic minor scale type an augmented second (A) occurs between the 6th and b^"~~ S" c d e fis \property Voice.textScriptPadding = #0 gis^"~~ S" a g! - \property Voice.textScriptPadding = "-1" + \property Voice.textScriptPadding = #-1 f!^"~~ S" e d \property Voice.textScriptPadding = #-4 c^"~~ S" b a @@ -1038,18 +1043,21 @@ octave lower (for example on double bass @w{@ar{}@strong{strings}}). @ -@ignore -@mud ela[13pt,eps] +@c @ignore +@mudela[13pt,eps] \property Score.barNonAuto = ##t -\property Voice.clefStyle = "fullSizeChanges" +\property Staff.clefStyle = #"fullSizeChanges" \property Lyrics.textStyle = "large" \addlyrics \notes\relative c { - \clef "F3"; +% \clef "F3"; + \clef varbaritone; f1 s - \clef "F4"; +% \clef "F4"; + \clef bass; f1 s - \clef "F5"; +% \clef "F5"; + \clef subbass; f1 s \clef "F^8"; f'1 s s @@ -1064,7 +1072,7 @@ octave lower (for example on double bass @w{@ar{}@strong{strings}}). "octaved down" } @end mudela -@end ignore +@c @end ignore @item fermata I: corona, F: pause, D: Fermate, NL: fermate, DK: fermat, S: fermat, N: . @@ -1178,14 +1186,18 @@ that). @mudela[13pt,eps] \property Score.barNonAuto = ##t +\property Staff.clefStyle = #"fullSizeChanges" \property Lyrics.textStyle = "large" -\property Voice.clefStyle = "fullSizeChanges" \addlyrics \notes\relative c'' { - \clef "G1"; g1 s s s s - \clef "G2"; g s s s - \clef "G^8"; g' s s s - \clef "G_8"; g,, s s + \clef french; + g1 s s s s + \clef treble; + g s s s + \clef "G^8"; + g' s s s + \clef "G_8"; + g,, s s } \context Lyrics \lyrics { "french violin clef" @@ -1502,7 +1514,10 @@ note value: double length of @w{@ar{}@strong{brevis}}. @w{@ar{}@strong{note valu @mudela[13pt,eps] \property Score.barNonAuto = ##t -\notes\relative c'' { g\longa } +\notes\relative c'' { + \property Voice.noteHeadStyle = "mensural" + g\longa +} @end mudela @item major interval @@ -1614,11 +1629,11 @@ First C below the 440 Hz A. @mudela[13pt,eps] \property Score.barNonAuto = ##t -\property Voice.clefStyle = "fullSizeChanges" +\property Staff.clefStyle = #"fullSizeChanges" \notes\relative c' { - \clef "F"; c1 s - \clef "C3"; c s - \clef "G2"; c s + \clef bass; c1 s + \clef alto; c s + \clef treble; c s } @end mudela @@ -1717,7 +1732,7 @@ I: nona, F: neuvi@`eme, D: None, NL: noon, DK: none, S: nona, N: . @item note 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 +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 which produces the sound. However, a clear distinction between the terms tone and @w{@ar{}@strong{note}} is strongly recommended. Briefly, one sees a note, @@ -1749,7 +1764,9 @@ but sometimes (mostly in pre baroque music) the double length note value \property Voice.textStyle = "large" \property Score.barNonAuto = ##t \notes\relative c'' { + \property Voice.noteHeadStyle = "mensural" g\longa_"longa" g\breve_"breve" + \property Voice.noteHeadStyle = "" g1_"1/1" g2_"1/2" g4_"1/4" s16 g8_"1/8" s16 g16_"1/16" s16 g32_"1/32" s16 g64_"1/64" s32 } @end mudela @@ -1798,6 +1815,9 @@ frequently used. g8 g g g g4 \bar "||";} @end mudela +@ + + @item octave sign @w{@ar{}@strong{g clef}} @w{@ar{}@strong{f clef}} @@ -1816,8 +1836,6 @@ middle of the 19th century and onwards the trill is performed with the main note first while in the music from the preceding baroque and classic periods the upper note is played first. -@ - @mudela[13pt,eps] < \context Staff = sa { @@ -2623,8 +2641,140 @@ A family of blown wooden musical instruments. Today some of these instruments are actually made from metal. The woodwind instruments commonly used in a symphony orchestra are flute, oboe, clarinet, saxophone and bassoon. +@end table + +@page + +@table @strong +@item DURATION NAMES, NOTES AND RESTS +@end table + +@multitable @columnfractions .111 .111 .111 .111 .111 .111 .111 .111 .111 + +@item @tab @strong{UK} @tab @strong{I} @tab @strong{F} @tab @strong{D} @tab +@strong{NL} @tab @strong{DK} @tab @strong{S} @tab @strong{N} + +@item + +@item @strong{longa} @tab longa @tab longa @tab Longa @tab longa @tab longa +@tab longa @tab longa @tab longa + +@item + +@item @strong{breve} @tab breve @tab breve @tab br@`eve @tab Brevis @tab +brevis @tab brevis @tab brevis @tab brevis + +@item + +@item @strong{whole} @tab semi@-breve @tab semi@-breve @tab ronde @tab +Ganze @tab hele @tab hel @tab hel @tab + +@item + +@item @strong{half} @tab minim @tab minima @tab blanche @tab Halbe @tab +halve @tab halv @tab halv @tab + +@item + +@item @strong{quarter} @tab crotchet @tab semi@-minima @tab noire @tab +Viertel @tab kwart @tab fjerde@-del @tab fj@"arde@-del @tab + +@item + +@item @strong{eighth} @tab quaver @tab croma @tab croche @tab Achtel @tab +achtste @tab ottende@-del @tab @aa{}tton@-del @tab + +@item + +@item @strong{sixteenth} @tab semi@-quaver @tab semi@-croma @tab double croche +@tab Sech@-zehntel @tab zes@-ti@-ende @tab seks@-tende@-del @tab sexton@-del +@tab + +@item + +@item @strong{thirty-second} @tab demi@-semi@-quaver @tab bis@-croma @tab +triple croche @tab Zwei@-und@-drei@-@ss{}ig@-stel @tab 32e @tab +toog@-tredivte-del @tab trettio@-tv@aa{}on@-del @tab + +@item + +@item @strong{sixty-fourth} @tab hemi@-demi@-semi@-quaver @tab +semi@-bis@-croma @tab qua@-druple croche @tab Vier@-und@-sechzig@-stel @tab +vier@-en@-zestig@-ste @tab fireog@-tred@-sinds@-ty@-ven@-de@-del @tab +sextio@-fj@"arde@-del @tab + +@end multitable +@c @item @tab @tab @tab @tab @tab @tab @tab @tab + +@page + +@table @strong +@item PITCH NAMES +@end table + +@multitable @columnfractions .125 .125 .125 .125 .125 .125 .125 .125 + +@item @tab @strong{I} @tab @strong{F} @tab @strong{D} @tab +@strong{NL} @tab @strong{DK} @tab @strong{S} @tab @strong{N} + +@item + +@item @strong{c} @tab do @tab ut @tab C @tab c @tab c @tab c @tab c + +@item + +@item @strong{c-sharp} @tab do diesis @tab ut di@`ese @tab Cis @tab cis @tab +cis @tab cis @tab cis + +@item + +@item @strong{d-flat} @tab re bemolle @tab r@'e b@'emol @tab Des @tab des @tab +des @tab des @tab des + +@item + +@item @strong{d} @tab re @tab r@'e @tab D @tab d @tab d @tab d @tab d + +@item + +@item @strong{e} @tab mi @tab mi @tab E @tab e @tab e @tab e @tab e + +@item + +@item @strong{f} @tab fa @tab fa @tab F @tab f @tab f @tab f @tab f + +@item + +@item @strong{g} @tab sol @tab sol @tab G @tab g @tab g @tab g @tab g + +@item + +@item @strong{a-flat} @tab la bemolle @tab la b@'emol @tab As @tab as @tab as +@tab as @tab as + +@item + +@item @strong{a} @tab la @tab la @tab A @tab a @tab a @tab a @tab a + +@item + +@item @strong{a-sharp} @tab la diesis @tab la di@`ese @tab Ais @tab ais @tab +ais @tab ais @tab ais + +@item + +@item @strong{b-flat} @tab si bemolle @tab si b@'emol @tab B @tab bes @tab b +@tab b @tab b + +@item + +@item @strong{b} @tab si @tab si @tab H @tab b @tab h @tab h @tab h + +@end multitable @ +@table @strong + @item --------------------- @ diff --git a/Documentation/user/properties.itely b/Documentation/user/properties.itely index ecfcfd0c50..36dbac92da 100644 --- a/Documentation/user/properties.itely +++ b/Documentation/user/properties.itely @@ -13,6 +13,18 @@ generic properties. These are properties than can be plugged into the backend directly. See the init file @file{generic-property.scm} for details. For internal use only. + +@item @code{XXXVerticalExtent}@indexcode{groupVerticalExtent} +@propertytype{Interval: a cons of numbers} + + Hard code the size of the vertical group in context XXX, example +@example + \property Staff.StaffVerticalExtent = #(-5.0 . 5.0) +@end example + The value is a cons of real numbers, that measure the extent in +staff spaces + + @cindex properties!Lyrics @table @samp diff --git a/VERSION b/VERSION index 7559638f8d..9f46e71982 100644 --- a/VERSION +++ b/VERSION @@ -1,8 +1,8 @@ PACKAGE_NAME=LilyPond MAJOR_VERSION=1 MINOR_VERSION=3 -PATCH_LEVEL=39 -MY_PATCH_LEVEL=jcn3 +PATCH_LEVEL=40 +MY_PATCH_LEVEL= # use the above to send patches: MY_PATCH_LEVEL is always empty for a # released version. diff --git a/buildscripts/make-cygwin-cross.sh b/buildscripts/make-cygwin-cross.sh index 4247223ac9..4e02957799 100644 --- a/buildscripts/make-cygwin-cross.sh +++ b/buildscripts/make-cygwin-cross.sh @@ -27,7 +27,7 @@ # # bin-crtdll-2000-02-03.tar.gz (mingw only) # -# * regex-0.12.tar.gz +# * rx-1.5.tar.gz # # * guile-1.3.4.tar.gz # @@ -107,12 +107,6 @@ rpm_patch='patchm.ring.diff' native_configure='--target=$TARGET_ARCH --build=$TARGET_ARCH --host=$HOST --oldincludedir=$PREFIX/include --prefix=$NATIVE_PREFIX/$package --program-suffix=' native_config_site='$PREFIX/share/native-config.site' -# urg: avoid making doc dir -regex_make='subdirs=test' -regex_before_install='ar -ru libregex.a regex.o \; mkdir -p $PREFIX/{include,lib} \; cp ../$package/regex.h $PREFIX/include \; cp libregex.a $PREFIX/lib' -regex_install='subdirs=test' -regex_before_zip='mkdir -p $install_prefix/{include,lib} \; cp ../$package/regex.h $install_prefix/include \; cp libregex.a $install_prefix/lib' - rx_install='prefix=$PREFIX' guile_patch='guile-1.3.4-gnu-windows.patch' @@ -149,7 +143,6 @@ lilypond-$lilypond_version " not_yet_needed=" -regex-0.12 rpm-3.04 " diff --git a/configure b/configure index 5721504ad7..c17460b7f1 100755 --- a/configure +++ b/configure @@ -2678,23 +2678,28 @@ echo "configure:2672: checking "if we are cross compiling"" >&5 { echo "configure: error: "cannot find guile-config; is Guile installed?"" 1>&2; exit 1; } exit 1 fi - if $guile_config --version 2>&1 | grep -q 'version 1\.012'; then + echo $ac_n "checking "Guile version"""... $ac_c" 1>&6 +echo "configure:2683: checking "Guile version"" >&5 + need_guile_version="1.3.4" + guile_version=`expr "\`$guile_config --version 2>&1\`" : ".*\($need_guile_version\).*"` + echo "$ac_t"""$guile_version"" 1>&6 + if test "$guile_version" != "$need_guile_version"; then - echo "configure: warning: Guile version 1.3 or better needed" 1>&2 + echo "configure: warning: "Guile version "$need_guile_version" or newer is needed"" 1>&2 warn_b=yes fi ## The GUILE_FLAGS macro. echo $ac_n "checking for Guile""... $ac_c" 1>&6 -echo "configure:2691: checking for Guile" >&5 +echo "configure:2696: 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; } exit 1 fi - GUILE_CFLAGS="`guile-config compile`" - GUILE_LDFLAGS="`guile-config link`" + GUILE_CFLAGS="`$guile_config compile`" + GUILE_LDFLAGS="`$guile_config link`" echo "$ac_t""yes" 1>&6 @@ -2702,7 +2707,7 @@ echo "configure:2691: 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:2706: checking for $ac_word" >&5 +echo "configure:2711: 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 @@ -2740,7 +2745,7 @@ fi echo $ac_n "checking for 8-bit clean memcmp""... $ac_c" 1>&6 -echo "configure:2744: checking for 8-bit clean memcmp" >&5 +echo "configure:2749: 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 @@ -2748,7 +2753,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:2770: \"$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 @@ -2779,12 +2784,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:2783: checking for vprintf" >&5 +echo "configure:2788: 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:2819: \"$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 @@ -2834,12 +2839,12 @@ fi if test "$ac_cv_func_vprintf" != yes; then echo $ac_n "checking for _doprnt""... $ac_c" 1>&6 -echo "configure:2838: checking for _doprnt" >&5 +echo "configure:2843: 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:2874: \"$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 @@ -2892,12 +2897,12 @@ fi for ac_func in memmem snprintf vsnprintf gettext do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:2896: checking for $ac_func" >&5 +echo "configure:2901: 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:2932: \"$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 @@ -2962,7 +2967,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:2966: checking for $ac_word" >&5 +echo "configure:2971: 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 @@ -2995,7 +3000,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:2999: checking for $ac_word" >&5 +echo "configure:3004: 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/input/star-spangled-banner.ly b/input/star-spangled-banner.ly index 14c789e621..e25e162a3d 100644 --- a/input/star-spangled-banner.ly +++ b/input/star-spangled-banner.ly @@ -114,7 +114,7 @@ textxx = \lyrics { }} -beginmatter = \notes {\time 3/4; \key D; s4 | } +beginmatter = \notes {\time 3/4; \key d; s4 | } automaticLyrics = \notes \context GrandStaff < diff --git a/input/test/test-as5.ly b/input/test/asciscript5.ly similarity index 100% rename from input/test/test-as5.ly rename to input/test/asciscript5.ly diff --git a/input/test/test-lyrics.ly b/input/test/lyrics.ly similarity index 100% rename from input/test/test-lyrics.ly rename to input/test/lyrics.ly diff --git a/input/test/vertical-extent.ly b/input/test/vertical-extent.ly new file mode 100644 index 0000000000..b944b43fe2 --- /dev/null +++ b/input/test/vertical-extent.ly @@ -0,0 +1,7 @@ + +\score { +\notes \context Staff { + \property Staff.StaffVerticalExtent = #'(-15.0 . 15.0) + c1 \break c1 +} +} diff --git a/lily/axis-group-engraver.cc b/lily/axis-group-engraver.cc index 69ea5fee61..d6f881d6fc 100644 --- a/lily/axis-group-engraver.cc +++ b/lily/axis-group-engraver.cc @@ -10,6 +10,8 @@ #include "spanner.hh" #include "paper-column.hh" #include "axis-group-interface.hh" +#include "dimension-cache.hh" +#include "engraver-group-engraver.hh" Axis_group_engraver::Axis_group_engraver () { @@ -35,6 +37,16 @@ Axis_group_engraver::get_spanner_p () const void Axis_group_engraver::do_removal_processing () { + String name = daddy_grav_l ()->type_str_ + "VerticalExtent"; + SCM dims = get_property (name); + + if (gh_pair_p (dims) && gh_number_p (gh_car (dims)) + && gh_number_p (gh_cdr (dims))) + { + staffline_p_->dim_cache_[Y_AXIS]->set_extent_callback (&Score_element::preset_extent); + staffline_p_->set_elt_property ("extent-Y", dims); + } + staffline_p_->set_bound(RIGHT,get_staff_info().command_pcol_l ()); typeset_element (staffline_p_); staffline_p_ = 0; diff --git a/lily/axis-group-interface.cc b/lily/axis-group-interface.cc index f15c84ca5c..8cdb9ef67a 100644 --- a/lily/axis-group-interface.cc +++ b/lily/axis-group-interface.cc @@ -98,8 +98,8 @@ Axis_group_interface::set_axes (Axis a1, Axis a2) if (a1 != Y_AXIS && a2 != Y_AXIS) elt_l_->set_empty (Y_AXIS); - elt_l_->dim_cache_[a1]->set_callback (Axis_group_interface::group_extent_callback); - elt_l_->dim_cache_[a2]->set_callback (Axis_group_interface::group_extent_callback); + elt_l_->dim_cache_[a1]->set_extent_callback (Axis_group_interface::group_extent_callback); + elt_l_->dim_cache_[a2]->set_extent_callback (Axis_group_interface::group_extent_callback); } Link_array diff --git a/lily/dimension-cache.cc b/lily/dimension-cache.cc index eb6f7c24a9..ad4c630c0a 100644 --- a/lily/dimension-cache.cc +++ b/lily/dimension-cache.cc @@ -136,7 +136,7 @@ Dimension_cache::get_dim () const } void -Dimension_cache::set_callback (Dim_cache_callback c) +Dimension_cache::set_extent_callback (Dim_cache_callback c) { extent_callback_l_ =c; } diff --git a/lily/extender-spanner.cc b/lily/extender-spanner.cc index dd9e1a9bdd..5f0a9d2dae 100644 --- a/lily/extender-spanner.cc +++ b/lily/extender-spanner.cc @@ -24,7 +24,7 @@ Extender_spanner::Extender_spanner () : Spanner () { dx_f_drul_[LEFT] = dx_f_drul_[RIGHT] = 0.0; - dim_cache_[Y_AXIS]->set_callback (Dimension_cache::point_dimension_callback); + dim_cache_[Y_AXIS]->set_extent_callback (Dimension_cache::point_dimension_callback); } diff --git a/lily/hyphen-spanner.cc b/lily/hyphen-spanner.cc index 5f41e23d53..d1429698a3 100644 --- a/lily/hyphen-spanner.cc +++ b/lily/hyphen-spanner.cc @@ -27,7 +27,7 @@ Hyphen_spanner::Hyphen_spanner () { dx_f_drul_[LEFT] = dx_f_drul_[RIGHT] = 0.0; - dim_cache_[Y_AXIS]->set_callback (Dimension_cache::point_dimension_callback); + dim_cache_[Y_AXIS]->set_extent_callback (Dimension_cache::point_dimension_callback); } Molecule diff --git a/lily/include/dimension-cache.hh b/lily/include/dimension-cache.hh index e110041d0b..f40337564c 100644 --- a/lily/include/dimension-cache.hh +++ b/lily/include/dimension-cache.hh @@ -45,7 +45,7 @@ public: static Interval point_dimension_callback (Dimension_cache const* ); Axis axis () const; Real get_offset () const; - void set_callback (Dim_cache_callback); + void set_extent_callback (Dim_cache_callback); Dimension_cache * parent_l_; Score_element *element_l () const { return elt_l_; } diff --git a/lily/include/score-element.hh b/lily/include/score-element.hh index 51893560cc..f181878735 100644 --- a/lily/include/score-element.hh +++ b/lily/include/score-element.hh @@ -126,6 +126,8 @@ public: void add_dependency (Score_element*); virtual Line_of_score * line_l () const; bool linked_b () const; + + VIRTUAL_COPY_CONS(Score_element); /** @@ -150,6 +152,9 @@ public: /// do calculations before determining horizontal spacing virtual void before_line_breaking (); + static Interval preset_extent (Dimension_cache const*); + static Interval molecule_extent (Dimension_cache const*); + protected: /** @@ -158,8 +163,7 @@ protected: virtual ~Score_element (); virtual void output_processing (); - static Interval molecule_extent (Dimension_cache const*); - + /// do printing of derived info. virtual void do_print () const; /// generate the molecule diff --git a/lily/paper-score.cc b/lily/paper-score.cc index 7da9928364..247b5fecad 100644 --- a/lily/paper-score.cc +++ b/lily/paper-score.cc @@ -187,7 +187,6 @@ Paper_score::process () */ line_l_->output_lines (); - SCM font_names = ly_quote_scm (all_fonts_global_p->font_descriptions ()); gh_set_cdr_x (before_output, gh_cons (gh_list (ly_symbol2scm ("define-fonts"), @@ -243,7 +242,7 @@ Paper_score::fixup_refpoints () { Score_element * se = unsmob_element (e); se->fixup_refpoint (); - + if (!dynamic_cast (se) && !se->parent_l (Y_AXIS)) { programming_error ("No parent!"); diff --git a/lily/score-element.cc b/lily/score-element.cc index 49de87c742..342270343c 100644 --- a/lily/score-element.cc +++ b/lily/score-element.cc @@ -27,7 +27,6 @@ #include "dimension-cache.hh" #include "side-position-interface.hh" #include "item.hh" - /* TODO: @@ -44,8 +43,8 @@ Score_element::Score_element() // junkme. used_b_ = false; - dim_cache_[X_AXIS]->set_callback (molecule_extent); - dim_cache_[Y_AXIS]->set_callback (molecule_extent); + dim_cache_[X_AXIS]->set_extent_callback (molecule_extent); + dim_cache_[Y_AXIS]->set_extent_callback (molecule_extent); used_b_ = false; pscore_l_=0; lookup_l_ =0; @@ -135,11 +134,31 @@ Score_element::set_elt_property (String k, SCM v) } Interval -Score_element::molecule_extent(Dimension_cache const *c) +Score_element::molecule_extent (Dimension_cache const *c) { Score_element *s = dynamic_cast(c->element_l()); Molecule m = s->do_brew_molecule(); - return m.extent()[c->axis ()]; + return m.extent()[c->axis ()]; +} + +Interval +Score_element::preset_extent (Dimension_cache const *c) +{ + Score_element *s = dynamic_cast(c->element_l()); + SCM ext = s->get_elt_property ((c->axis () == X_AXIS) + ? "extent-X" + : "extent-Y"); + + if (gh_pair_p (ext)) + { + Real l = gh_scm2double (gh_car (ext)); + Real r = gh_scm2double (gh_cdr (ext)); + l *= s->paper_l ()->get_var ("staffspace"); + r *= s->paper_l ()->get_var ("staffspace"); + return Interval (l, r); + } + + return Interval (); } @@ -555,7 +574,7 @@ Score_element::fixup_refpoint () if (!parent) continue; - if (parent->line_l () != line_l ()) + if (parent->line_l () != line_l () && line_l ()) { Score_element * newparent = parent->find_broken_piece (line_l ()); set_parent (newparent, ax); diff --git a/lily/span-bar.cc b/lily/span-bar.cc index d16081928e..ac458ad177 100644 --- a/lily/span-bar.cc +++ b/lily/span-bar.cc @@ -152,7 +152,7 @@ Span_bar::get_bar_size () const Span_bar::Span_bar () { group (this).set_interface (); - dim_cache_[X_AXIS]->set_callback (width_callback); - dim_cache_[Y_AXIS]->set_callback (height_callback); + dim_cache_[X_AXIS]->set_extent_callback (width_callback); + dim_cache_[Y_AXIS]->set_extent_callback (height_callback); } diff --git a/lily/volta-spanner.cc b/lily/volta-spanner.cc index 79c1829824..b9467fb081 100644 --- a/lily/volta-spanner.cc +++ b/lily/volta-spanner.cc @@ -24,12 +24,15 @@ Volta_spanner::Volta_spanner () { - //dim_cache_ [Y_AXIS]->set_callback (dim_callback); set_elt_property ("bars", SCM_EOL); side_position (this).set_axis (Y_AXIS); directional_element (this).set (UP); } + +/* + this is too complicated. Yet another version of side-positioning, + badly implemented. */ Molecule Volta_spanner::do_brew_molecule () const { diff --git a/ly/engraver.ly b/ly/engraver.ly index 4d867868af..571ca885ed 100644 --- a/ly/engraver.ly +++ b/ly/engraver.ly @@ -255,7 +255,7 @@ LyricsContext = \translator { \type "Engraver_group_engraver"; \name Lyrics; \consists Vertical_align_engraver;%need this for getting folded repeats right. - + Generic_property_list = #generic-lyrics-properties \consists "Property_engraver"; \consistsend "Axis_group_engraver"; diff --git a/make/out/lilypond.lsm b/make/out/lilypond.lsm index 6b9e6c6727..43244df65b 100644 --- a/make/out/lilypond.lsm +++ b/make/out/lilypond.lsm @@ -1,15 +1,15 @@ Begin3 Title: LilyPond -Version: 1.3.39 -Entered-date: 24MAR00 +Version: 1.3.40 +Entered-date: 28MAR00 Description: Keywords: music notation typesetting midi fonts engraving Author: hanwen@cs.uu.nl (Han-Wen Nienhuys) janneke@gnu.org (Jan Nieuwenhuizen) Maintained-by: hanwen@stack.nl (Han-Wen Nienhuys) Primary-site: sunsite.unc.edu /pub/Linux/apps/sound/convert - 1000k lilypond-1.3.39.tar.gz + 1000k lilypond-1.3.40.tar.gz Original-site: ftp.cs.uu.nl /pub/GNU/LilyPond/development/ - 1000k lilypond-1.3.39.tar.gz + 1000k lilypond-1.3.40.tar.gz Copying-policy: GPL End diff --git a/make/out/lilypond.spec b/make/out/lilypond.spec index 16ed188309..33e8cda142 100644 --- a/make/out/lilypond.spec +++ b/make/out/lilypond.spec @@ -1,9 +1,9 @@ Name: lilypond -Version: 1.3.39 +Version: 1.3.40 Release: 1 Copyright: GPL Group: Applications/Publishing -Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.3.39.tar.gz +Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.3.40.tar.gz Summary: A program for printing sheet music. URL: http://www.cs.uu.nl/~hanwen/lilypond # get Packager from (undocumented?) ~/.rpmmacros! diff --git a/mutopia/J.S.Bach/Solo-Cello-Suites/menuetto-cello.ly b/mutopia/J.S.Bach/Solo-Cello-Suites/menuetto-cello.ly index ccc68f781f..7b4de133ec 100644 --- a/mutopia/J.S.Bach/Solo-Cello-Suites/menuetto-cello.ly +++ b/mutopia/J.S.Bach/Solo-Cello-Suites/menuetto-cello.ly @@ -64,7 +64,7 @@ menuetto_i_cello_staff = \context Staff < menuetto_ii_cello_global = \notes{ \time 3/4; - \key D; + \key d; \clef bass; \repeat "volta" 2 { \skip 2.*8; diff --git a/mutopia/J.S.Bach/Solo-Cello-Suites/menuetto-viola.ly b/mutopia/J.S.Bach/Solo-Cello-Suites/menuetto-viola.ly index c7bd0c0930..48f12f5270 100644 --- a/mutopia/J.S.Bach/Solo-Cello-Suites/menuetto-viola.ly +++ b/mutopia/J.S.Bach/Solo-Cello-Suites/menuetto-viola.ly @@ -64,7 +64,7 @@ menuetto_i_viola_staff = \context Staff < menuetto_ii_viola_global = \notes{ \time 3/4; - \key D; + \key d; \clef alto; \repeat "volta" 2 { \skip 2.*8; diff --git a/mutopia/J.S.Bach/wtk1-fugue2.ly b/mutopia/J.S.Bach/wtk1-fugue2.ly index 67f94fec7f..74133ef99d 100644 --- a/mutopia/J.S.Bach/wtk1-fugue2.ly +++ b/mutopia/J.S.Bach/wtk1-fugue2.ly @@ -164,14 +164,14 @@ bassdux = \context Voice=three \notes \relative c' { \notes \context PianoStaff < \context Staff = treble < - \key C \minor; + \key c \minor; \dux { \comes \bar "|."; } \time 4/4; \property Score.timeSignatureStyle = "C" > \context Staff = bass < - \key C \minor; + \key c \minor; \bassdux > > diff --git a/scm/generic-property.scm b/scm/generic-property.scm index 358e1f3a71..554408caff 100644 --- a/scm/generic-property.scm +++ b/scm/generic-property.scm @@ -177,6 +177,14 @@ )) ) + + + + +;;;;;;;;;; +;; don't forget to add these to the Generic_property_list property in +;; engraver.ly + (define generic-voice-properties (list generic-stem-properties @@ -225,5 +233,4 @@ (define generic-lyrics-properties (list generic-text-properties ) - ) -- 2.39.5