+2004-01-19 Han-Wen Nienhuys <hanwen@xs4all.nl>
+
+ * scm/define-grobs.scm (all-grob-descriptions): larger font for
+ ChordName
+
+ * scm/new-markup.scm (sub-markup): sup & super: make smaller in
+ relation to surroundings.
+
+ * lily/tuplet-bracket.cc (calc_position_and_height): add staff
+ Y-extent to the note-extents: stay clear of the staff.
+
2004-01-18 Han-Wen Nienhuys <hanwen@xs4all.nl>
* Documentation/user/GNUmakefile
@end ignore
@itemize @bullet
+
+@item Formatting of rehearsal marks has been improved. The @code{\mark}
+command now only does automatic incrementing for marks specified as
+integer. For example, @code{\mark #1} will print an A in the default
+style. See @file{input/regression/rehearsal-mark-letter.ly},
+@file{input/regression/rehearsal-mark-number.ly}.
+
@item Formatting of ottava brackets has been much improved.
@item Objects in the output can now be documented: the following fragment
* Orchestral music::
* Ancient notation::
* Contemporary notation::
+* Special notation::
* Tuning output::
* Global layout::
* Sound::
* Stems::
* Ties::
* Tuplets::
-* Easy Notation note heads::
@end menu
-
-@node Easy Notation note heads
-@subsection Easy Notation note heads
-
-@cindex easy notation
-@cindex Hal Leonard
-
-The `easy play' note head includes a note name inside the head. It is
-used in music aimed at beginners:
-
-@lilypond[singleline,verbatim,26pt]
-\score {
- \notes { c'2 e'4 f' | g'1 }
- \paper { \translator { \EasyNotation } }
-}
-@end lilypond
-
-The @code{EasyNotation} variable overrides a @internalsref{Score} context.
-You probably will want to print it with magnification or a
-large font size to make it more readable. To print with
-magnification, you must create a DVI file (with @file{lilypond}) and
-then enlarge it with something like @file{dvips -x 2000 file.dvi}.
-See the @code{dvips} documentation for more details. To print with a
-larger font, see @ref{Font Size}.
-
-
-@cindex Xdvi
-@cindex ghostscript
-
-If you view the result with Xdvi, then staff lines will show through
-the letters. Printing the PostScript file obtained does produce the
-correct result.
-
-
@node Easier music entry
@section Easier music entry
@cindex Music entry
See @ref{Articulations} for general instructions how to apply scripts
such as fermatas to a @code{\notes@{@}} block.
+
+@node Special notation
+@section Special notation
+
+@menu
+* Balloon help::
+* Easy Notation note heads::
+@end menu
+
+@node Balloon help
+@subsection Balloon help
+
+
+
+@node Easy Notation note heads
+@subsection Easy Notation note heads
+
+@cindex easy notation
+@cindex Hal Leonard
+
+The `easy play' note head includes a note name inside the head. It is
+used in music aimed at beginners:
+
+@lilypond[singleline,verbatim,26pt]
+\score {
+ \notes { c'2 e'4 f' | g'1 }
+ \paper { \translator { \EasyNotation } }
+}
+@end lilypond
+
+The @code{EasyNotation} variable overrides a @internalsref{Score} context.
+You probably will want to print it with magnification or a
+large font size to make it more readable. To print with
+magnification, you must create a DVI file (with @file{lilypond}) and
+then enlarge it with something like @file{dvips -x 2000 file.dvi}.
+See the @code{dvips} documentation for more details. To print with a
+larger font, see @ref{Font Size}.
+
+
+@cindex Xdvi
+@cindex ghostscript
+
+If you view the result with Xdvi, then staff lines will show through
+the letters. Printing the PostScript file obtained does produce the
+correct result.
+
+
+
@node Tuning output
@section Tuning output
*/
static SCM get_static_get_iterator (Music * mus);
void init_translator (Music *, Translator_group *);
-void quit ();
+ void quit ();
virtual Moment pending_moment () const;
{
SCM s = get_property ("devNullThread");
-#if 0
- /* No need, next if will never be true */
- if (s == ly_symbol2scm ("never"))
- return;
-#endif
-
if (s == ly_symbol2scm ("always")
|| (s == SCM_EOL
&& to_boolean (get_property ("soloADue"))
SCM cols = me->get_grob_property ("note-columns");
Grob * commony = common_refpoint_of_list (cols, me, Y_AXIS);
Grob * commonx = common_refpoint_of_list (cols, me, X_AXIS);
+
+ Interval staff;
+
+ if (Grob * st = Staff_symbol_referencer::get_staff_symbol (me))
+ staff = st->extent (commony, Y_AXIS);
Direction dir = get_grob_direction (me);
if (l < r)
{
- *dy = columns[r]->extent (commony, Y_AXIS) [dir]
- - columns[l]->extent (commony, Y_AXIS) [dir] ;
+ Interval rv =columns[r]->extent (commony, Y_AXIS);
+ Interval lv =columns[l]->extent (commony, Y_AXIS);
+ rv.unite (staff);
+ lv.unite (staff);
+
+ *dy = rv[dir] - lv[dir];
}
else
* dy = 0;
Real x1 = rgr->extent (commonx,X_AXIS)[RIGHT];
- /*
- Slope.
- */
+ /*
+ Slope.
+ */
Real factor = columns.size () > 1 ? 1/ (x1 - x0) : 1.0;
for (int i = 0; i < columns.size (); i++)
{
- Real notey = columns[i]->extent (commony, Y_AXIS)[dir]
- - me->relative_coordinate (commony, Y_AXIS);
+ Interval note_ext =columns[i]->extent (commony, Y_AXIS);
+ note_ext.unite (staff);
+ Real notey = note_ext[dir] - me->relative_coordinate (commony, Y_AXIS);
Real x = columns[i]->relative_coordinate (commonx, X_AXIS) - x0;
Real tuplety = *dy * x * factor;
}
if (dynamic_cast<Spanner*> (me)->broken_b ())
{
- me->warning ("Tuplet_bracket was across linebreak. Farewell cruel world.");
+ me->warning (_("Killing tuplet bracket across linebreak."));
me->suicide();
return SCM_UNSPECIFIED;
}
{
SCM s = get_property ("devNullVoice");
-#if 0
- /* No need */
- if (gh_equal_p (s, ly_symbol2scm ("never")))
- return;
-#endif
-
if (gh_equal_p (s, ly_symbol2scm ("always"))
|| (s == SCM_EOL
&& daddy_trans_->id_string_.left_string (3) == "two"
Voice_devnull_engraver::acknowledge_grob (Grob_info i)
{
SCM s = get_property ("devNullVoice");
-#if 0
- /* No need, next if will never be true */
- if (s == ly_symbol2scm ("never"))
- return;
-#endif
-#if 0 /* We used to have have this until 1.5.68. Not sure about
- soloADue requirement */
if (s == ly_symbol2scm ("always")
|| (s == SCM_EOL
- && daddy_trans_->id_string_.left_string (3) == "two"
- && (to_boolean (get_property ("unison"))
- || to_boolean (get_property ("unisilence")))))
-#else
- if (s == ly_symbol2scm ("always")
- || (s == SCM_EOL
- && to_boolean (get_property ("soloADue"))
- && ((daddy_trans_->id_string_.left_string (3) == "two"
- && (to_boolean (get_property ("unison"))
- || to_boolean (get_property ("unisilence"))))
+ && to_boolean (get_property ("soloADue"))
+ && ((daddy_trans_->id_string_.left_string (3) == "two"
+ && (to_boolean (get_property ("unison"))
+ || to_boolean (get_property ("unisilence"))))
- /* Maybe this should be optional? */
+ /* Maybe this should be optional? */
|| to_boolean (get_property ("othersolo")))))
-#endif
for (char const **p = junk_interfaces; *p; p++)
if (i.grob_->internal_has_interface (ly_symbol2scm (*p)))
(after-line-breaking-callback . ,Chord_name::after_line_breaking)
(word-space . 0.0)
(font-family . sans)
+ (font-size . 1.5)
(meta . ((interfaces . (font-interface rhythmic-grob-interface
text-interface chord-name-interface item-interface ))))
))
(TupletBracket
. (
(gap . 2.0)
- (padding . 0.9)
+ (padding . 1.1)
(thickness . 1.6)
(edge-height . (0.7 . 0.7))
(shorten-pair . (-0.2 . -0.2))
"Syntax: \\super MARKUP. "
(ly:molecule-translate-axis (interpret-markup
paper
- (cons '((font-size . -3)) props) (car rest))
+ (cons `((font-size .
+ ,(- (chain-assoc-get 'font-size props 0) 3))) props) (car rest))
(* 0.5 (cdr (chain-assoc 'baseline-skip props)))
Y)
)
(define-public (sub-markup paper props . rest)
"Syntax: \\sub MARKUP."
- (ly:molecule-translate-axis (interpret-markup
- paper
- (cons '((font-size . -3)) props)
- (car rest))
- (* -0.5 (cdr (chain-assoc 'baseline-skip props)))
- Y)
- )
+ (ly:molecule-translate-axis
+ (interpret-markup
+ paper
+ (cons `((font-size .
+ ,(- (chain-assoc-get 'font-size props 0) 3))) props)
+ (car rest))
+ (* -0.5 (cdr (chain-assoc 'baseline-skip props)))
+ Y) )
(define-public (normal-size-sub-markup paper props . rest)
- (ly:molecule-translate-axis (interpret-markup
- paper
- props (car rest))
- (* -0.5 (cdr (chain-assoc 'baseline-skip props)))
- Y)
- )
+ (ly:molecule-translate-axis
+ (interpret-markup
+ paper
+ props (car rest))
+ (* -0.5 (cdr (chain-assoc 'baseline-skip props)))
+ Y) )
(define-public (hbracket-markup paper props . rest)
"Horizontal brackets around its single argument. Syntax \\hbracket MARKUP."