lilypond-devel
[Top][All Lists]
Advanced

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

[Patch] font-family


From: Han-Wen Nienhuys
Subject: [Patch] font-family
Date: Wed, 14 Aug 2002 18:00:22 +0200

address@hidden writes:
> If this is happens in a single instance, I could let it go, but now
> you're putting this all over the code, in vital parts (eg. note
> heads.)  I want to suggest the following approach.
> 
> 
> Foo::brew_molecule
> {
>       return single_glyph_from_font 
> }
> 
> 
> single_glyph_from_font (Grob *me)
> {
>       SCM proc = me->get_grob_property("find-font-symbol-procedure");
> 
> 
> }
> 

(continuing)

On 2nd thought, I can't easily think of a general way to handle this,
so I propose that the find-symbol-functions are changed to be a
drop-in substitute for brew_molecule() callbacks. They are coded in
Scheme, using tables like the code you submitted, and support for
style properties is removed from the C++ ones.

For some grobs (notehead, rest, mmrest), additional stuff must be
done. A grob property find-grob-symbol-function is used that returns a
molecule with the appropriate symbol in it.

For using these definitions, a macro should be defined, i.e.

        ancientNotation = {

          \property Current.Clef \override #'molecule-callback
             = #get-clef-molecule-with-style
          \property Current.NoteHead \override #'find-grob-symbol-function
             = #get-note-molecule-with-style
          ...

        }

In practical use,  you would do

   \notes {

          ..
        \context Staff \ancientNotation
        \property Staff.NoteHead \set #'style = #'baroque
          ..

   }

\ancientNotation is only needed once for every staff/score etc  using
special styles. Perhaps \ancientNotation is a strange name -- and we
should use \specialSymbolStyles -- I can't tell how this would impact
shaped noteheads (ie. cross/circle/etc)? 

-- 

Han-Wen Nienhuys   |   address@hidden    | http://www.cs.uu.nl/~hanwen/





reply via email to

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