lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

music font scaling with \sacredHarpHeads


From: Steve Tarr
Subject: music font scaling with \sacredHarpHeads
Date: Sat, 13 Mar 2010 22:08:49 -0800
User-agent: Thunderbird 2.0.0.23 (Windows/20090812)

Hi,
I'm preparing some music for our local Sacred Harp singers and finding that the "blackness" of the Lilypond defaults and the Emmentaler font don't work well for shape-note (\sacredHarpHeads) music in small sizes. If I scale a staff down to 14 points to keep an entire song on one sheet of paper, the half-note "mi" when printed on top of a staff line gets filled in so that it's almost indistinguishable from the quarter-note "mi".

To see the effect, compare the two staves generated by:

\version "2.13.15"
music = { \time 6/4 \sacredHarpHeads b'4 b'2 b'4 b'2 }
<<
    \new Staff
        {
            \music
        }

    \new Staff
        \with {
            fontSize = #-5
            \override StaffSymbol #'staff-space = #(magstep -5)
        }
        {
            \music
        }
>>

Other note shapes in the Sacred Harp 4-shape system don't have this problem, or don't exhibit it to the same degree. The "mi", being smaller than the other shapes, is the first to be filled in.

I can mitigate the problem by reducing the staff line thickness, but that affects too many other things - note stem and bar line thickness, for example. And the note heads, in comparison to the staff lines, then look too heavy.

The best workaround I've found so far is to disable the loading of the Emmentaler fonts in design sizes smaller than the default 20 points by modifying the file scm/fonts.scm:

--- font.scm.orig       2010-03-12 17:47:07.771003400 -0800
+++ font.scm    2010-03-13 21:31:55.175195200 -0800
@@ -161,15 +161,10 @@
                     (caddr x))))
    `((fetaDynamic ,(ly:pt 20.0) ,feta-alphabet-size-vector)
      (fetaNumber ,(ly:pt 20.0) ,feta-alphabet-size-vector)
      (fetaMusic ,(ly:pt 20.0)
                #(
-                 ,(delay (ly:system-font-load (string-append name "-11")))
-                 ,(delay (ly:system-font-load (string-append name "-13")))
-                 ,(delay (ly:system-font-load (string-append name "-14")))
-                 ,(delay (ly:system-font-load (string-append name "-16")))
-                 ,(delay (ly:system-font-load (string-append name "-18")))
                  ,(delay (ly:system-font-load (string-append name "-20")))
                  ,(delay (ly:system-font-load (string-append name "-23")))
                  ,(delay (ly:system-font-load (string-append name "-26")))
                  ))
      (fetaBraces ,(ly:pt 20.0)


But of course, I'd rather find a way to do the same thing within my score rather than modifying a Lilypond system file. I've found bits and pieces of information that suggest this can be done, but that it's not simple, and the only examples I have deal with text fonts and not the music fonts.

So is there a better way to control which fonts are loaded, or perhaps which of the loaded fonts in this series is actually selected for rendering note heads?

-Steve Tarr




reply via email to

[Prev in Thread] Current Thread [Next in Thread]