+2004-05-02 Han-Wen Nienhuys <hanwen@xs4all.nl>
+
+ * Documentation/user/lilypond.tely (Top): update version number.
+
+ * lily/lyric-engraver.cc (get_voice_to_lyrics): go higher when
+ finding Voice context.
+
+ * Documentation/user/music-glossary.tely (Top): replace table strong
+ with table samp.
+
+ * lily/stem.cc (get_default_stem_end_position): handle dir==0
+ case. This fixes a bugs/tremolo-repeat
+
+ * Documentation/user/introduction.itely (About this manual): fix
+ URLS.
+
2004-04-20 Jan Nieuwenhuizen <janneke@gnu.org>
* scripts/lilypond.py: Handle --set=fontencoding=FONTENC (default:
@item
Templates
@ifhtml
-(available @uref{../../../input/template/out-www/collated-files.html,here})
+(available @uref{../../../../input/template/out-www/collated-files.html,here})
@end ifhtml
After you have gone through the tutorial, you should be able to write
@item
The regression tests
@ifhtml
-(available @uref{../../../input/regression/out-www/collated-files.html,here})
+(available @uref{../../../../input/regression/out-www/collated-files.html,here})
@end ifhtml
This collection of files tests each notation and engraving feature of
@top GNU LilyPond --- The music typesetter
@c HJJ: Info needs `@top', which is a synonym for `@unnumbered' in TeX.
-This is the user manual for GNU LilyPond 2.1.x series.
+This is the user manual for GNU LilyPond 2.2 series.
@ifhtml
(See the bottom of this page for the exact version number).
@end ifhtml
entry.
-@table @strong
+@table @samp @c @strong
@aitem{A}
ES: la,
@page
-@table @strong
+@table @samp @c @strong
@item DURATION NAMES, NOTES AND RESTS
@end table
@page
-@table @strong
+@table @samp @c strong
@item PITCH NAMES
@end table
@
-@table @strong
+@table @samp @c strong
@item ---------------------
PACKAGE_NAME=LilyPond
MAJOR_VERSION=2
MINOR_VERSION=2
-PATCH_LEVEL=0
+PATCH_LEVEL=1
MY_PATCH_LEVEL=
if (Context *c = unsmob_context (avc))
return c;
- SCM voice = lyrics->get_property ("associatedVoice");
+ SCM voice_name = lyrics->get_property ("associatedVoice");
String nm = lyrics->id_string_;
- if (gh_string_p (voice))
- nm = ly_scm2string (voice);
+ if (gh_string_p (voice_name))
+ nm = ly_scm2string (voice_name);
else
{
int idx = nm.index_last ('-');
nm = nm.left_string (idx);
}
- Context *c = lyrics->find_context_below (ly_symbol2scm ("Voice"), nm);
+ Context *parent = lyrics;
+ Context *voice = 0;
+ while (parent && !voice)
+ {
+ voice = parent->find_context_below (ly_symbol2scm ("Voice"), nm);
+ parent = parent->daddy_context_;
+ }
- if (c)
- return c;
+ if (voice)
+ return voice;
- return lyrics->find_context_below (ly_symbol2scm ("Voice"), "");
-}
+ parent = lyrics;
+ voice = 0;
+ while (parent && !voice)
+ {
+ voice = parent->find_context_below (ly_symbol2scm ("Voice"), "");
+ parent = parent->daddy_context_;
+ }
+ return voice;
+}
Grob *
get_current_note_head (Context * voice)
{
/* stems in unnatural (forced) direction should be shortened,
according to [Roush & Gourlay] */
- if (dir * head_positions (me)[dir] >= 0)
+ Interval hp = head_positions (me);
+ if (dir && dir * hp[dir] >= 0)
{
SCM sshorten = me->get_property ("stem-shorten");
SCM scm_shorten = gh_pair_p (sshorten) ?
length = length >? (minlen + 1.0);
}
- Interval hp = head_positions (me);
- Real st = hp[dir] + dir * length;
+ Real st = dir ? hp[dir] + dir * length : 0.0;
/*
TODO: change name to extend-stems to staff/center/'()