[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Henle piano template
From: |
Thomas Morley |
Subject: |
Re: Henle piano template |
Date: |
Tue, 16 Jul 2013 23:10:44 +0200 |
2013/7/16 Kieren MacMillan <address@hidden>:
> Hi David,
>
>> Try starting from
>
> Thanks — that's very helpful!
>
> Here's what I have from there:
>
> \version "2.17"
>
> #(define-markup-command (ellipse layout props text) (markup?)
> #:properties ((thickness 0.2) (x-padding 0.1) (y-padding 0.75))
> (ellipse-stencil (interpret-markup layout props text)
> thickness x-padding y-padding))
>
> \markup \ellipse "2"
> \markup \ellipse "20"
> \markup \ellipse "200"
> \markup \ellipse "2000"
> \markup \ellipse "20000"
>
> The 200 looks sufficiently like the three-digit bar numbers in my Henle score
> that I'm totally satisfied.
> The four- and five-digit ones are fine (though the five-digit one is probably
> a little "pointy": I don't have any 10000+ bar Henle scores to compare it to).
>
> However, I'd love to fix the one- and two-digit versions: they're currently
> too "vertical" and "circular", respectively.
> What's the easy way of saying "center the number in a box at least 'this
> big', but use the number's real extent if it's bigger than that"?
>
> Thanks,
> Kieren.
> _______________________________________________
> lilypond-user mailing list
> address@hidden
> https://lists.gnu.org/mailman/listinfo/lilypond-user
Hi Kieren,
below my own approach.
I defined two formatters for BarNumber,
1) using my version of \ellipse (though, it's nearly the same as David's).
2) using \oval
I'd prefer \oval, because it's better appearence with one- and
two-digit numbers.
\version "2.17.22"
%%%%%%
% markup-commands
%%%%%%
#(define-markup-command (ellipse layout props arg)
(markup?)
#:properties ((thickness 1)
(font-size 0)
(ellipse-padding 0.2))
"
Draw an ellipse around @var{arg}. Use @code{thickness},
@code{ellipse-padding} and @code{font-size} properties to determine line
thickness and padding around the markup.
@lilypond[verbatim,quote]
\\markup {
\\ellipse {
Hi
}
}
@end lilypond
"
(let ((th (* (ly:output-def-lookup layout 'line-thickness)
thickness))
(pad (* (magstep font-size) ellipse-padding))
(m (interpret-markup layout props arg)))
(ellipse-stencil m th pad pad)))
#(define-markup-command (oval layout props arg)
(markup?)
#:properties ((thickness 1)
(font-size 0)
(oval-padding 0.65))
"
Draw a oval around @var{arg}. Use @code{thickness},
@code{oval-padding} and @code{font-size} properties to determine line
thickness and padding around the markup.
@lilypond[verbatim,quote]
\\markup {
\\oval {
Hi
}
}
@end lilypond
"
(let ((th (* (ly:output-def-lookup layout 'line-thickness)
thickness))
(pad (* (magstep font-size) oval-padding))
(m (interpret-markup layout props arg)))
(oval-stencil m th pad pad)))
%%%%%%
% barnumbers-formatter
%%%%%%
#(define (format-oval-barnumbers barnum measure-pos alt-number context)
(make-oval-markup
(robust-bar-number-function barnum measure-pos alt-number context)))
#(define (format-ellipse-barnumbers barnum measure-pos alt-number context)
(make-ellipse-markup
(robust-bar-number-function barnum measure-pos alt-number context)))
%%%%%%
% Examples
%%%%%%
% toplevel-markup
\markup \fill-line {
\column { \bold "Toplevel-markups"
\line { "using \\ellipse: " \ellipse { "1" "11" "111" "1111" "11111" } }
\line { "using \\oval: " \oval { "1" "11" "111" "1111" "11111" } }
\vspace #2
}
}
% scores, including tests for 'alternativeNumberingStyle'
mus =
\relative c'{
\repeat volta 3 { c4 d e f | }
\alternative {
{ c4 d e f | c2 d \break }
{ f4 g a b | f4 g a b | f2 a | \break }
{ c4 d e f | c2 d }
}
c1 \break
\set Score.alternativeNumberingStyle = #'numbers
\repeat volta 3 { c4 d e f | }
\alternative {
{ c4 d e f | c2 d \break }
{ f4 g a b | f4 g a b | f2 a | \break }
{ c4 d e f | c2 d }
}
c1 \break
\set Score.alternativeNumberingStyle = #'numbers-with-letters
\repeat volta 3 { c,4 d e f | }
\alternative {
{ c4 d e f | c2 d \break }
{ f4 g a b | f4 g a b | f2 a | \break }
{ c4 d e f | c2 d }
}
c1
}
\score {
\new Staff \mus
\header {
piece =
\markup \bold \fill-line { \column { "Normal BarNumbers" \vspace #2 } }
}
}
\score {
\new Staff \mus
\layout {
\context {
\Score
barNumberFormatter = #format-oval-barnumbers
}
}
\header {
piece =
\markup \bold \fill-line { \column { "Oval BarNumbers" \vspace #2 } }
}
}
\score {
\new Staff \mus
\layout {
\context {
\Score
barNumberFormatter = #format-ellipse-barnumbers
}
}
\header {
piece =
\markup \bold \fill-line { \column { "Ellipse BarNumbers" \vspace #2 } }
}
}
HTH,
Harm
Re: Henle piano template, Janek Warchoł, 2013/07/17
Re: Henle piano template, Urs Liska, 2013/07/23