lilypond-user
[Top][All Lists]
Advanced

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

Re: Aw: Re: Pseudo-handwritten font


From: Keith OHara
Subject: Re: Aw: Re: Pseudo-handwritten font
Date: Fri, 21 Jun 2013 16:11:54 +0000 (UTC)
User-agent: Loom/3.14 (http://gmane.org/)

Torsten Hämmerle <torsten.haemmerle <at> web.de> writes:

>  I've attached a zip file containing the current (albeit unfinished) 
> versions of the LilyJAZZ music and LilyJAZZ Text font plus the 
> corresponding LilyJAZZ.ily include.

> The main obstacle is the rigid way Lilypond handles its (her, his?) 
> internal music font.

One effect of those difficulties is that the function that builds the
jazz-font key-signature needs to change with version 2.17.1 and later.

I had expanded the options for how to print the key signature in that
versions, so we need to adapt 'jazz-keysig' to the new interface.
Changing a few lines to Thorsten's code as below works for me.



#(define (jazz-keysig grob)
  "stencil: jazz key signature (including cancellation)"
  (let* ((altlist (ly:grob-property grob 'alteration-alist))
    (c0pos (ly:grob-property grob 'c0-position))
    (keysig-stencil '()))
    (for-each (lambda (alt) 
         (let* ((alteration (if (grob::has-interface grob 'key-cancellation-
interface) 0 (cdr alt)))
         (glyphname (assoc-get alteration jazz-alteration-glyph-name-alist 
""))
         (padding (cond
           ((< alteration 0) 0.25)  ; any kind of flat
           ((= alteration 0) 0.05)  ;  natural
           ((< alteration 1) 0.1)   ; sharp (less than double sharp)
           (else -0.4)))            ; double sharp
         (ypos (key-signature-interface::alteration-positions alt c0pos 
grob))
         (acc-stencil (fold (lambda (y s)
                              (ly:stencil-add
                                (grob-interpret-markup grob
                                  (markup #:raise (/ y 2) #:jazzglyph 
glyphname))
                                s))
                            empty-stencil
                            ypos)))
         (set! keysig-stencil (ly:stencil-combine-at-edge acc-stencil X 
RIGHT keysig-stencil padding)))) altlist)
    keysig-stencil))




reply via email to

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