+2006-03-30 Joe Neeman <joeneeman@gmail.com>
+
+ * lily/stem-tremolo.cc (print): for whole notes (and breves, etc.)
+ position the tremolo based on the position of the notehead.
+
+ * input/regression/stem-tremolo.ly: add example of unbeamed eighth
+ notes and update the texidoc line with the new positioning rules.
+
2006-03-30 Han-Wen Nienhuys <hanwen@lilypond.org>
* lily/ttf.cc (print_trailer): don't always use uXXX glyphname.
* scm/music-functions.scm: Make phrasing slurs follow voice direction
* scripts/lilypond-book.py: Introduce option
- --preserve-line-breaks, for usage with srcltx
+ --preserve-line-breaks, for usage with srcltx
2005-12-06 Han-Wen Nienhuys <hanwen@xs4all.nl>
* ly/init.ly:
* scm/lily-library.scm (print-score-with-defaults): renamed
$globalheader to $defaultheader
-
+
* Documentation/user/global.itely (Creating titles): added short
explanation that multiple headers are useable.
* ly/property-init.ly: Added tieDashed.
- * THANKS: Added some bughunters for 2.5.
+ * THANKS: Added some bughunters for 2.5.
2005-06-09 Han-Wen Nienhuys <hanwen@xs4all.nl>
2005-05-11 Heikki Junes <hjunes@cc.hut.fi>
- * Documentation/topdocs/{AUTHORS.texi,INSTALL.texi,README.texi}:
- Specify `@documentencoding utf-8' for html, ignore warnings.
+ * Documentation/topdocs/{AUTHORS.texi,INSTALL.texi,README.texi}:
+ Specify `@documentencoding utf-8' for html, ignore warnings.
2005-05-11 Erik Sandberg <ersa9195@student.uu.se>
CONTRIBUTORS
+Joe Neeman
SPONSORS
BUG HUNTERS/SUGGESTIONS
J. Leung
+Orm Finnendahl
+Stephen Carter
Werner Lemberg
Stem tremolos or rolls are tremolo signs that look like beam segments
crossing stems. If the stem is in a beam, the tremolo must be parallel
to the beam. If the stem is invisible (e.g. on a whole note), the
-tremolo must be centered on the note.
+tremolo must be centered on the note. If the note has a flag (eg. an
+unbeamed 8th note), the tremolo should be shortened if the stem is up
+and tilted extra if the stem is down.
+
+The tremolos should be positioned a fixed distance from the end of the
+stems unless there is no stem, in which case they should be positioned
+a fixed distance from the note head.
"
}
c,16:32 c: c c a16:32 a: a a
c8:16 g: d: a:
c8:32 f: b: e:
- \transpose c c { f''8:256[ f'8: f'':] }
+ f8:256[ f,8: f':] f: \noBeam f,,: \noBeam c16:32 \noBeam c'':
}
Spanner *beam = Stem::get_beam (stem);
Direction stemdir = get_grob_direction (stem);
+ bool whole_note = Stem::duration_log (stem) <= 0;
if (stemdir == 0)
stemdir = UP;
? Beam::get_beam_translation (beam)
: 0.81;
+ /* for a whole note, we position relative to the notehead, so we want the
+ stencil aligned on the flag closest to the head */
+ Direction stencil_dir = whole_note ? -stemdir : stemdir;
Stencil mol = raw_stencil (me, robust_scm2double (me->get_property ("slope"),
- 0.25), stemdir);
+ 0.25), stencil_dir);
Interval mol_ext = mol.extent (Y_AXIS);
Real ss = Staff_symbol_referencer::staff_space (me);
if (stemdir == UP)
end_y -= stemdir * beam_translation * 0.5;
}
+ if (whole_note)
+ {
+ /* we shouldn't position relative to the end of the stem since the stem
+ is invisible */
+ vector<int> nhp = Stem::note_head_positions (stem);
+ Real note_head = (stemdir == UP ? nhp.back () : nhp[0]);
+ end_y = note_head + stemdir * 2.0;
+ }
mol.translate_axis (end_y, Y_AXIS);
return mol.smobbed_copy ();