lilypond-user
[Top][All Lists]
Advanced

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

Re: Use custom font's flat (b) and sharp (#) symbols for chords


From: Matthias Hüsken
Subject: Re: Use custom font's flat (b) and sharp (#) symbols for chords
Date: Wed, 16 Feb 2011 15:22:21 +0100
User-agent: KMail/1.9.10

> > So, what I would ideally like to have is a way of making Lilypond use "b"
> > and "#" from a custom font, but exclusively in chord mode. I did quite
> > some searching but did not come up with anything useful, so I already
> > feared it might not be easy (or doable at all...).
>
> I think you can achieve what you want by writing a scheme function
> similar to those defined in scm/chord-names.scm.
>
> See for example the definition of note-name->german-markup.
> There you find that accidentals are replaced by -es -eses -is or -isis,
> respectively. So you could copy most of this definition and place
> your custom glyphs in there.

That's actually quite a good idea. Based on your idea, the following should do 
the trick:

#(define my-alteration-glyph-name-alist
     '(
       ;; ordered for optimal performance.
       (0 . "")
       (-1/2 . "#")
       (1/2 . "b")

       ))

#(define (my-alteration->text-accidental-markup alteration)
  (make-smaller-markup
   (make-raise-markup
    (if (= alteration FLAT)
        0.3
        0.6)
    (make-text-markup
     (assoc-get alteration my-alteration-glyph-name-alist "")))))


My only problem is: How do I get this code to work, i.e. how do I get LilyPond 
to use this code in chord-mode? I assume I would need to somehow activate it 
in the ChordNames context, bit how does this actually work?

Matthias


-- 
------------------------------------------------
Matthias Hüsken          Phone: +49 202 439-3362
Fachbereich Mathematik   Fax:   +49 202 439-2912
Bergische Universität
Gaußstraße 20
D - 42097 Wuppertal
------------------------------------------------
e-mail: address@hidden
------------------------------------------------



reply via email to

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