>
> > 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