*.tex
*.txt
*[0-9]pk
+ly2dvi.dir
out
out-www
afm
2002-04-01 Jan Nieuwenhuizen <janneke@gnu.org>
+ * input/mozart-hrn-3.ly: Mimic Breitkopf fonts and padding.
+
+ * scm/grob-property-description.scm (number-threshold): Add
+ description.
+
+ * lily/multi-measure-rest.cc (brew_molecule): Only put number over
+ rest if #measures > number-threshold. Use padding (well, fake
+ using it, anyway).
+
+ * scm/font.scm (make-style-sheet): New styles: mark-number,
+ mark-letter.
+ (paper20-style-sheet-alist): Add bigger bold fonts.
+
+ * lily/mark-engraver.cc (process_music): Use style mark-number or
+ mark-letter.
+
* .cvsignore: Ignore all kinds of lilypond input and output.
* lily/beam.cc (ADD_INTERFACE): Add concaveness-gap.
\version "1.5.47"
+#(define italic-bf '((font-shape . italic) (font-series . bold)))
+
+%% burp
+%% the very idea of a style sheet, is that it's easy to override
+#(define (set-style! sheet name style)
+ (set-cdr! (assoc 'mark-letter (cdr (assoc 'style-alist sheet))) style))
+
+#(define my-sheet (make-style-sheet 'paper20))
+#(set-style! my-sheet 'mark-letter '((font-family . roman)
+ (font-series . bold)
+ (font-shape . upright)
+ (font-relative-size . 3)))
+
+cresc = \notes {
+ \commandspanrequest \start "crescendo"
+ \property Voice.crescendoText = #`(,italic-bf "cresc.")
+ \property Voice.crescendoSpanner = #'dashed-line
+}
+
\paper{
- \translator { \ScoreContext
+ \stylesheet #my-sheet
+ \translator {
+ \ScoreContext
skipBars = ##t
midiInstrument = #"french horn"
- RehearsalMark \override #'font-series = #'bold
+ %% try to mimic Breitkopf
+ RehearsalMark \override #'padding = #1
+ MultiMeasureRest \override #'padding = #0.5
+ MultiMeasureRest \override #'number-threshold = #1
Stem \override #'thickness = #1.3
- }
- \translator { \StaffContext
- MinimumVerticalExtent = #'(-4.5 . 4.5)
- }
- indent = 10. \mm
- linewidth = 189. \mm
+ Beam \override #'thickness = #0.6
+ Beam \override #'beam-space = #0.8
+ }
+ \translator {
+ \StaffContext
+ MinimumVerticalExtent = #'(-4.5 . 4.5)
+ }
+ indent = 10. \mm
+ linewidth = 189. \mm
}
\include "mozart-hrn3-allegro.ly"
[ )fis8( e16 )d] d4-. r2 |
\mark "B"
R1*3
- r2 r4 [d8(_#'(italic "con espressione") )b ]
+ r2 r4 [d8(_#`(,italic-bf "con espressione") )b ]
[a( )g d'( )b] [a( )g e'( )c ]
[b8( )a] a4 r4 [a8-. a-.]
[a( \< b c \!cis\> ] d4 \! )c
[dis()e] r e-. [e()f] r f-. |
g4-.-\f e-. c-. bes-. |
g-.\ff e-. c-. r |
- a'2 ~ [a8_#'((font-shape . italic) "sempre " (dynamic "f")) b16 c] [d( e d )e]%TODO
+ a'2 ~ [a8_#`(,italic-bf "sempre " (dynamic "f")) b16 c] [d( e d )e]%TODO
f4. () d8 [f8 ()d f d]
[c (e] )g2 \grace { \longgrace f16( \endlonggrace } [)e8( d16 )c]
Real
Beam::get_interbeam (Grob *me)
{
- Real slt = me->paper_l ()->get_var ("linethickness");
+ int multiplicity = get_multiplicity (me);
Real ss = Staff_symbol_referencer::staff_space (me);
- Real thickness = gh_scm2double (me->get_grob_property ("thickness"))
- * ss;
+
+ SCM s = me->get_grob_property ("beam-space");
+ if (gh_number_p (s))
+ return gh_scm2double (s) * ss;
+ else if (gh_list_p (s))
+ return gh_scm2double (scm_list_ref (s,
+ gh_int2scm (multiplicity - 1
+ <? scm_ilength (s) - 1)))
+ * ss;
+
+ Real slt = me->paper_l ()->get_var ("linethickness");
+ Real thickness = gh_scm2double (me->get_grob_property ("thickness")) * ss;
- int multiplicity = get_multiplicity (me);
Real interbeam = multiplicity < 4
? (2*ss + slt - thickness) / 2.0
: (3*ss + slt - thickness) / 3.0;
take the best scoring combination.
",
- "concaveness-gap concaveness-threshold dir-function quant-score auto-knee-gap gap chord-tremolo beamed-stem-shorten shorten least-squares-dy direction damping flag-width-function neutral-direction positions thickness");
+ "beam-space concaveness-gap concaveness-threshold dir-function quant-score auto-knee-gap gap chord-tremolo beamed-stem-shorten shorten least-squares-dy direction damping flag-width-function neutral-direction positions thickness");
text_p_->set_grob_property ("text",
ly_str02scm (t.ch_C ()));
- String style = "mark";
+ String style = "mark-number";
for (int i=0; i < t.length_i (); i++)
{
if (!isdigit (t[i]))
{
- style = "large";
+ style = "mark-letter";
break;
}
}
measures = gh_scm2int (m);
}
- if (measures > 1)
+ SCM s = me->get_grob_property ("number-threshold");
+ if (measures > gh_scm2int (s))
{
Molecule s = Text_item::text2molecule (me,
ly_str02scm (to_str (measures).ch_C ()),
alist_chain);
-
s.align_to (X_AXIS, CENTER);
- s.translate_axis (3.0, Y_AXIS);
+ s.translate_axis (gh_scm2double (me->get_grob_property ("padding")) + 2,
+ Y_AXIS);
s.translate_axis (mol.extent (X_AXIS).center (), X_AXIS);
mol.add_molecule (s);
",
- "thickness measure-count expand-limit");
+ "expand-limit measure-count number-threshold padding thickness");
((-2 medium italic roman 7) . "cmti7")
((-3 medium italic roman 7) . "cmti7")
- ((2 bold upright roman 12) . "cmbx12")
+ ((4 bold upright roman 17) . "cmbx17")
+ ((3 bold upright roman 17) . "cmbx17")
+ ((2 bold upright roman 14) . "cmbx14")
((1 bold upright roman 12) . "cmbx12")
((0 bold upright roman 10) . "cmbx10")
((-1 bold upright roman 8) . "cmbx8")
(mmrest . ((font-family . number) ))
(mmrest-symbol . ((font-family . music) ))
- (mark . ((font-family . number) (font-relative-size . 1)))
+ (mark-number . ((font-family . number) (font-relative-size . 1)))
+ (mark-letter . ((font-family . roman)
+ (font-series . bold)
+ (font-shape . upright)
+ (font-relative-size . 2)))
+
(script . ((font-family . roman) (font-relative-size . -1)))
(large . ((font-family . roman) (font-relative-size . 1)))
(Large . ((font-series . bold) (font-family . roman)
(direction . 1)
(breakable . #t)
- (font-family . roman)
- (font-shape . upright)
- (font-relative-size . 1)
(visibility-lambda . ,end-of-line-invisible)
(padding . 0.8)
(meta . ((interfaces . (text-interface font-interface mark-interface side-position-interface))))
(Y-offset-callbacks . (,Staff_symbol_referencer::callback))
(staff-position . 0)
(expand-limit . 10)
+ (number-threshold . 0)
+ (padding . 1)
(thickness . 6.6)
(font-family . number)
+ (padding . 1)
(meta . ((interfaces . (multi-measure-rest-interface rest-interface font-interface staff-symbol-referencer-interface))))
))
(grob-property-description 'bass list? " musical-pitch, optional.")
(grob-property-description 'beam ly-grob? "pointer to the beam, if applicable.")
(grob-property-description 'beam-thickness number? "thickness, measured in staffspace.")
+(grob-property-description 'beam-space (or number? list?) "the vertical distance between two beams, indexed by multiplicity")
(grob-property-description 'beam-width number? "width of the tremolo sign.")
(grob-property-description 'beamed-lengths list? "list of stem lengths given beam multiplicity .")
(grob-property-description 'beamed-minimum-lengths list? "list of minimum stem lengths given beam multiplicity.")
(grob-property-description 'non-default boolean? "not set because of existence of a bar?.")
(grob-property-description 'note-width number? "unit for horizontal translation, measured in staff-space.")
(grob-property-description 'note-heads list? "List of note head grobs")
+(grob-property-description 'number-gap number? "size of the gap for tohe number in a tuplet.")
+(grob-property-description 'number-threshold number? "only put numbers bigger than this threshold over multi measuer rest.")
(grob-property-description 'old-accidentals list? "list of (pitch, accidental) pairs.")
(grob-property-description 'padding number? "add this much extra space between objects that are next to each other.")
(grob-property-description 'paren-cautionaries boolean? "Whether to add parenthesis around cautionary accidentals.")