>
> > I want to use an alternative font for ChordNames, but the font I have
> > chosen is not exactly the same size as the default font. The result is
> > that
> > musical symbols (sharps, flat, etc) appear too large.
> >
> > How can I change the size of the musical symbols in ChordNames so that
> > they
> > match the size of the font?
> Here is a bit of a hack:
> %%%%
> \version "2.19.82"
> embiggenChordNames = #(define-scheme-function (size) (number?)
>    #{ \with {
>      chordNameFunction = #(lambda (in-pitches bass inversion context)
>        (define (helper mu)
>          (if (list? mu)
>            (if (eq? (car mu) musicglyph-markup)
>              (markup (#:fontsize (- size) mu))
>              (map helper mu))
>            mu))
>        (let ((orig (ignatzek-chord-names in-pitches bass inversion
> context)))
>          (markup (#:fontsize size (helper orig)))))
>    } #} )
> theChords = \chordmode { c2:7 g2:dim aes2:m fis2 }
> << \new ChordNames \theChords
>     \new ChordNames \with \embiggenChordNames #5 \theChords
>     \new ChordNames \with \embiggenChordNames #-3 \theChords >>
> %%%%
> This applies a global \fontsize to the markup to scale everything up by
> a specified amount; however, it also looks within the markup for
> occurrences of \musicglyph and applies an inverse \fontsize so they
> remain the original size.
> Wouldn't be surprised to learn there is some built-in procedure like
> map-some-music but for markup that would obsolete my helper function
> above.  But I threw this together pretty quickly.


Thank you Aaron and Elaine,

This seems to work, however I cannot include the above code in a separate
file.
I'm trying to keep all the music in one file and all the formatting in
another file, so I can just include different files to change the font &
style.

Thanks,
Greg

On Mon, May 13, 2019 at 6:35 PM Flaming Hakama by Elaine <
[email protected]> wrote:

>
> ---------- Forwarded message ----------
>> From: Aaron Hill <[email protected]>
>> To: [email protected]
>> Date: Sun, 12 May 2019 21:13:54 -0700
>> Subject: Re: ChordName Font Size
>> On 2019-05-12 5:29 pm, Gregory Hollands wrote:
>> > I want to use an alternative font for ChordNames, but the font I have
>> > chosen is not exactly the same size as the default font. The result is
>> > that
>> > musical symbols (sharps, flat, etc) appear too large.
>> >
>> > How can I change the size of the musical symbols in ChordNames so that
>> > they
>> > match the size of the font?
>>
>> Here is a bit of a hack:
>>
>> %%%%
>> \version "2.19.82"
>>
>> embiggenChordNames = #(define-scheme-function (size) (number?)
>>    #{ \with {
>>      chordNameFunction = #(lambda (in-pitches bass inversion context)
>>        (define (helper mu)
>>          (if (list? mu)
>>            (if (eq? (car mu) musicglyph-markup)
>>              (markup (#:fontsize (- size) mu))
>>              (map helper mu))
>>            mu))
>>        (let ((orig (ignatzek-chord-names in-pitches bass inversion
>> context)))
>>          (markup (#:fontsize size (helper orig)))))
>>    } #} )
>>
>> theChords = \chordmode { c2:7 g2:dim aes2:m fis2 }
>> << \new ChordNames \theChords
>>     \new ChordNames \with \embiggenChordNames #5 \theChords
>>     \new ChordNames \with \embiggenChordNames #-3 \theChords >>
>> %%%%
>>
>> This applies a global \fontsize to the markup to scale everything up by
>> a specified amount; however, it also looks within the markup for
>> occurrences of \musicglyph and applies an inverse \fontsize so they
>> remain the original size.
>>
>> Wouldn't be surprised to learn there is some built-in procedure like
>> map-some-music but for markup that would obsolete my helper function
>> above.  But I threw this together pretty quickly.
>>
>>
>> -- Aaron Hill_______________________________________________
>> lilypond-user mailing list
>> [email protected]
>> https://lists.gnu.org/mailman/listinfo/lilypond-user
>
>
>
> I was going to reply to this, then realized I hadn't read the question
> specifically enough.
>
> When I tried this approach suggested by Aaron,
> I noticed that it doesn't actually address the question,
> as it leaves the musical symbols (like sharp, flat) the same size,
> while the text font changes size.
>
> I started to try to modify this so that it would apply a different scaling
> to the
> musical symbols, but couldn't figure out how to do that.
>
> In an effort to try to help understand how to adapt this function,
> I started off by formatting and adding commentary to see if I
> actually understand what it is doing.  There are numerous
> questions therin.  If anyone can help explain how it works,
> I might be able to move this forward.
>
>
>
> %%%
> \version "2.19"
>
> % The original
> embiggenChordNames = #(define-scheme-function (size) (number?)
>    #{ \with {
>      chordNameFunction = #(lambda (in-pitches bass inversion context)
>        (define (helper mu)
>          (if (list? mu)
>            (if (eq? (car mu) musicglyph-markup)
>              (markup (#:fontsize (- size) mu))
>              (map helper mu))
>            mu))
>        (let ((orig (ignatzek-chord-names in-pitches bass inversion
> context)))
>          (markup (#:fontsize size (helper orig)))))
>    } #} )
>
> % My attempt at explanation
> embiggenChordNames = #(define-scheme-function
>     (size)
>     (number?)
>        #{
>            \with {
>              chordNameFunction = #(lambda
>
>                 (in-pitches bass inversion context)
>
>                 ;;; A recursive function that goes through the elements in
> the list
>                 (define (helper mu)
>
>                     ;;; See if the element is a list
>                     (if (list? mu)
>
>                         ;;; The case where mu is a list.
>                         ;;; This next statement confuses me
>                         ;;; since in it, we treat mu as a pair, by using
> car.
>                         ;;; So, it it a list or a pair?
>                         (if (eq? (car mu) musicglyph-markup)
>
>                             ;;; The case where the first element of the
> pair is a musical symbol?
>                             ;;; So adjust its font size.
>                             ;;; However, in practice this appears to
> affect the text,
>                             ;;; rather than the symbols.
>                             (markup (#:fontsize (- size) mu))
>
>                                 ;;; The case where the first element not
> is a musical symbol?
>                                 ;;; Seems like we are assuming it is not
> an element that needs adjustment
>                                 ;;; but rather another list on which we
> recurse.
>                                 ;;; I would have guessed (based on the
> logic) that this might be the case for text.
>                                 ;;; or (based on the output) that this
> might be the case for musical symbols.
>                                 (map helper mu)
>                         )
>
>                         ;;; The base case, where we do not have a list.
>                         ;;; Why are we not concerned with the font size of
> this element?
>                         ;;; What type of element do we expect this to be?
>
>                         mu
>                     )
>                 )
>
>                 ;;; Apply the function defined above to a copy of the
> chord info
>                 (let
>                     (
>                        ;;; What does this represent?
>                        ;;; Seems like it must be referencing something
> from which this
>                        ;;; function is applied--the thing to which this is
> \with-ed?
>                        (orig (ignatzek-chord-names in-pitches bass
> inversion context) )
>                     )
>                     (markup (#:fontsize size (helper orig)))
>                 )
>             )
>         }
>     #}
> )
>
> theChords = \chordmode { c2:7 g2:dim aes2:m fis2 }
> <<
>     \new ChordNames \theChords
>     %  Demonstrating what seems to be close to the default: 0.5
>     \new ChordNames \with \embiggenChordNames #0.5 \theChords
>     \new ChordNames \with \embiggenChordNames #6 \theChords
>     \new ChordNames \with \embiggenChordNames #-3 \theChords
> >>
> %%%%
>
>
> Thanks,
>
> Elaine Alt
> 415 . 341 .4954                                           "*Confusion is
> highly underrated*"
> [email protected]
> Producer ~ Composer ~ Instrumentalist ~ Educator
>
> -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
>
>
>
_______________________________________________
lilypond-user mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to