---- ../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 <janneke@gnu.org>
-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 <janneke@gnu.org>
-* 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 <janneke@gnu.org>
+* 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
===========
-
+\input ruled
\input texinfo
@setfilename glossary.info
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
@
@mudela[13pt,eps]
-\property Voice.textEmptyDimension = ##t
-
+\emptyText
+%\property Voice.textEmptyDimension = ##t
\property Voice.textStyle = "large"
\notes\relative c'' {
\key d;
@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:
@
@
@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 "|."; } >
@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
@mudela[13pt,eps]
\property Score.barNonAuto = ##t
+\property Voice.textNonEmpty = ##t
\property Voice.textStyle = "large"
\time 4/4;
\notes\relative c'' {
<g_"dimished" bes des>
<g_"augmented~" b dis>
<g_"seventh-chord~" b d f>
- <g_"ninth-chord" b d f a>
+ <g_"ninth-chord" b d f a> s s2
}
@end mudela
\addlyrics
\notes\relative c' {
d1
- \property Voice.textScriptPadding = #-10
+ \property Voice.textScriptPadding = #-10
e^"~~ S"
f g a
\property Voice.textScriptPadding = #-4
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
@
-@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
"octaved down"
}
@end mudela
-@end ignore
+@c @end ignore
@item fermata
I: corona, F: pause, D: Fermate, NL: fermate, DK: fermat, S: fermat, N: .
@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"
@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
@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
@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,
\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
g8 g g g g4 \bar "||";}
@end mudela
+@
+
+
@item octave sign
@w{@ar{}@strong{g clef}} @w{@ar{}@strong{f clef}}
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 {
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 ---------------------
@
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
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.
#
# 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
#
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'
"
not_yet_needed="
-regex-0.12
rpm-3.04
"
{ 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
# 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
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
ac_cv_func_memcmp_clean=no
else
cat > conftest.$ac_ext <<EOF
-#line 2752 "configure"
+#line 2757 "configure"
#include "confdefs.h"
#ifdef __cplusplus
extern "C" void exit(int);
}
EOF
-if { (eval echo configure:2765: \"$ac_link\") 1>&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
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 <<EOF
-#line 2788 "configure"
+#line 2793 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char vprintf(); below. */
; return 0; }
EOF
-if { (eval echo configure:2814: \"$ac_link\") 1>&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
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 <<EOF
-#line 2843 "configure"
+#line 2848 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char _doprnt(); below. */
; return 0; }
EOF
-if { (eval echo configure:2869: \"$ac_link\") 1>&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
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 <<EOF
-#line 2901 "configure"
+#line 2906 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
; return 0; }
EOF
-if { (eval echo configure:2927: \"$ac_link\") 1>&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
# 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
# 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
}}
-beginmatter = \notes {\time 3/4; \key D; s4 | }
+beginmatter = \notes {\time 3/4; \key d; s4 | }
automaticLyrics = \notes \context GrandStaff <
--- /dev/null
+\include "paper-as5.ly"
+
+\score {
+ \notes\relative c''{
+ \time 4/4;
+ g1 a b c
+ g2 a b c
+ g4 a b c
+ }
+ \paper {
+ \paper_as_five
+ \translator { \StaffContext barSize = #5 }
+ }
+
+}
+
--- /dev/null
+\version "1.3.5";
+
+$somewhat_long = \lyrics{
+ \property Lyrics . textStyle = "roman"
+ AaaaaaA2
+ BbbbbbB2
+ CcccccC2
+ DdddddD2
+ EeeeeeE2
+ FfffffF2
+}
+
+$rather_long = \lyrics{
+ \property Lyrics . textStyle = "roman"
+ LLLLoooonggggg2
+ Syyllllaaabbble2
+ LLLLoooonggggg2
+ Syyllllllaaabbble2
+ LLLLoooonggggg2
+ Syyyylllaaabbble2
+}
+
+$quite_long = \lyrics{
+ \property Lyrics . textStyle = "roman"
+ LLLLLLLLLooooongggggggg2
+ Syyyyyyyyyyyyylllllllaaaaaabbble2
+ LLLLLLLLLooooongggggggg2
+ Syyyyyyyyyyyyylllllllaaaaaabbble2
+ LLLLLLLLLooooongggggggg2
+ Syyyyyyyyyyyyylllllllaaaaaabbble2
+}
+
+$somewhat_long_lyrics_staff = \context Lyrics = somewhat <
+ \$somewhat_long
+>
+
+$rather_long_lyrics_staff = \context Lyrics = rather <
+ \$rather_long
+>
+
+$quite_long_lyrics_staff = \context Lyrics = quite <
+ \$quite_long
+>
+
+melody = \notes
+\transpose c'{
+ c4 e4 g4 e4 c4 e4 g4 e4 c4 e4 g4 e4 c4 e4 g4 e4
+ c4 e4 g4 e4 c4 e4 g4 e4 c4 e4 g4 e4 c4 e4 g4 e4
+}
+
+$melodic_staff = \context Staff = mel <
+ \melody
+>
+
+\score
+{
+ <
+ \$melodic_staff
+ \$somewhat_long_lyrics_staff
+% \$rather_long_lyrics_staff
+ \$quite_long_lyrics_staff
+ >
+ \paper{
+% castingalgorithm = \Wordwrap;
+ }
+}
+++ /dev/null
-\include "paper-as5.ly"
-
-\score {
- \notes\relative c''{
- \time 4/4;
- g1 a b c
- g2 a b c
- g4 a b c
- }
- \paper {
- \paper_as_five
- \translator { \StaffContext barSize = #5 }
- }
-
-}
-
+++ /dev/null
-\version "1.3.5";
-
-$somewhat_long = \lyrics{
- \property Lyrics . textStyle = "roman"
- AaaaaaA2
- BbbbbbB2
- CcccccC2
- DdddddD2
- EeeeeeE2
- FfffffF2
-}
-
-$rather_long = \lyrics{
- \property Lyrics . textStyle = "roman"
- LLLLoooonggggg2
- Syyllllaaabbble2
- LLLLoooonggggg2
- Syyllllllaaabbble2
- LLLLoooonggggg2
- Syyyylllaaabbble2
-}
-
-$quite_long = \lyrics{
- \property Lyrics . textStyle = "roman"
- LLLLLLLLLooooongggggggg2
- Syyyyyyyyyyyyylllllllaaaaaabbble2
- LLLLLLLLLooooongggggggg2
- Syyyyyyyyyyyyylllllllaaaaaabbble2
- LLLLLLLLLooooongggggggg2
- Syyyyyyyyyyyyylllllllaaaaaabbble2
-}
-
-$somewhat_long_lyrics_staff = \context Lyrics = somewhat <
- \$somewhat_long
->
-
-$rather_long_lyrics_staff = \context Lyrics = rather <
- \$rather_long
->
-
-$quite_long_lyrics_staff = \context Lyrics = quite <
- \$quite_long
->
-
-melody = \notes
-\transpose c'{
- c4 e4 g4 e4 c4 e4 g4 e4 c4 e4 g4 e4 c4 e4 g4 e4
- c4 e4 g4 e4 c4 e4 g4 e4 c4 e4 g4 e4 c4 e4 g4 e4
-}
-
-$melodic_staff = \context Staff = mel <
- \melody
->
-
-\score
-{
- <
- \$melodic_staff
- \$somewhat_long_lyrics_staff
-% \$rather_long_lyrics_staff
- \$quite_long_lyrics_staff
- >
- \paper{
-% castingalgorithm = \Wordwrap;
- }
-}
--- /dev/null
+
+\score {
+\notes \context Staff {
+ \property Staff.StaffVerticalExtent = #'(-15.0 . 15.0)
+ c1 \break c1
+}
+}
#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 ()
{
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;
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<Score_element>
}
void
-Dimension_cache::set_callback (Dim_cache_callback c)
+Dimension_cache::set_extent_callback (Dim_cache_callback c)
{
extent_callback_l_ =c;
}
: 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);
}
{
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
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_; }
void add_dependency (Score_element*);
virtual Line_of_score * line_l () const;
bool linked_b () const;
+
+
VIRTUAL_COPY_CONS(Score_element);
/**
/// 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:
/**
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
*/
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"),
{
Score_element * se = unsmob_element (e);
se->fixup_refpoint ();
-
+
if (!dynamic_cast<Line_of_score*> (se) && !se->parent_l (Y_AXIS))
{
programming_error ("No parent!");
#include "dimension-cache.hh"
#include "side-position-interface.hh"
#include "item.hh"
-
/*
TODO:
// 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;
}
Interval
-Score_element::molecule_extent(Dimension_cache const *c)
+Score_element::molecule_extent (Dimension_cache const *c)
{
Score_element *s = dynamic_cast<Score_element*>(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<Score_element*>(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 ();
}
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);
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);
}
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
{
\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";
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
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!
menuetto_ii_cello_global = \notes{
\time 3/4;
- \key D;
+ \key d;
\clef bass;
\repeat "volta" 2 {
\skip 2.*8;
menuetto_ii_viola_global = \notes{
\time 3/4;
- \key D;
+ \key d;
\clef alto;
\repeat "volta" 2 {
\skip 2.*8;
\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
>
>
))
)
+
+
+
+
+;;;;;;;;;;
+;; don't forget to add these to the Generic_property_list property in
+;; engraver.ly
+
(define generic-voice-properties
(list
generic-stem-properties
(define generic-lyrics-properties
(list generic-text-properties
)
-
)