]> git.donarmstrong.com Git - lilypond.git/commitdiff
2002-09-24 Juergen Reuter <reuter@ipd.uka.de>
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Tue, 24 Sep 2002 19:13:22 +0000 (19:13 +0000)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Tue, 24 Sep 2002 19:13:22 +0000 (19:13 +0000)
* Documentation/user/refman.itely: corrected ancient clef
docu; added docu on ligatures

2002-09-21  Juergen Reuter  <reuter@ipd.uka.de>

* Documentation/user/glossary.tely,
Documentation/user/refman.itely, input/les-nereides.ly,
input/mutopia/W.A.Mozart/mozart-hrn3-defs.ly,
input/test/bagpipe.ly, lily/stem.cc, ly/grace-init.ly,
scm/grob-property-description.scm, scripts/convert-ly.py: renamed
Stem properties: flag-style -> stroke-style, style -> flag-style.

ChangeLog
Documentation/user/glossary.tely
Documentation/user/refman.itely
input/les-nereides.ly
input/mutopia/W.A.Mozart/mozart-hrn3-defs.ly
input/test/bagpipe.ly
lily/stem.cc
ly/grace-init.ly
scm/grob-property-description.scm
scripts/convert-ly.py

index a00be13144679e0bd9e5bd64266ebb75ddd656d3..ffea42db6cff29c0f24a733ad84989b686bf6f25 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,17 @@
+2002-09-24  Juergen Reuter  <reuter@ipd.uka.de>
+
+       * Documentation/user/refman.itely: corrected ancient clef
+       docu; added docu on ligatures
+
+2002-09-21  Juergen Reuter  <reuter@ipd.uka.de>
+
+       * Documentation/user/glossary.tely,
+       Documentation/user/refman.itely, input/les-nereides.ly,
+       input/mutopia/W.A.Mozart/mozart-hrn3-defs.ly,
+       input/test/bagpipe.ly, lily/stem.cc, ly/grace-init.ly,
+       scm/grob-property-description.scm, scripts/convert-ly.py: renamed
+       Stem properties: flag-style -> stroke-style, style -> flag-style.
+
 2002-09-24  Han-Wen Nienhuys  <hanwen@cs.uu.nl>
 
        * scm/music-functions.scm (music-separator?): don't use name music
index cc92f3aa5d015a4c9f2ba7fd9ace02b198fc4280..3c348e328684d151800c3545b53f487fce703145 100644 (file)
@@ -162,14 +162,14 @@ the duration of the long a. is proportionate to that of the main note.
 
 \property Score.TextScript \set #'font-style = #'large
 <d4_"notation" a fis> r 
-{ \property Voice.Stem \override #'flag-style = #""
+{ \property Voice.Stem \override #'stroke-style = #""
   \grace g16
-  \property Voice.Stem \revert #'flag-style
+  \property Voice.Stem \revert #'stroke-style
    }
 fis8 e16 fis 
-{ \property Voice.Stem \override #'flag-style = #""
+{ \property Voice.Stem \override #'stroke-style = #""
   \grace a16
-  \property Voice.Stem \revert #'flag-style
+  \property Voice.Stem \revert #'stroke-style
   }
 g8 fis16 g | a4 \bar "||" }
 \notes\relative c'' {
index 5a3c9b057c21c0318626c9c737f8bd4fb8472ad7..24ce16ed5a6b5327ced04585b96def67a803eba3 100644 (file)
@@ -1988,7 +1988,7 @@ staves, using this grace timing.
 
 
 Unbeamed eighth notes and shorter by default have a slash through the
-stem. This can be controlled with object property @code{flag-style} of
+stem. This can be controlled with object property @code{stroke-style} of
 @internalsref{Stem}. The change in formatting is accomplished by
 inserting @code{\startGraceMusic} before handling the grace notes, and
 @code{\stopGraceMusic} after finishing the grace notes. You can add to
@@ -2004,9 +2004,9 @@ Notice how the @code{\override} is carefully matched with a @code{\revert}.
 \relative c'' \context Voice {
   \grace c8 c4 \grace { [c16 c16] } c4
   \grace { 
-    \property Voice.Stem \override #'flag-style = #'() 
+    \property Voice.Stem \override #'stroke-style = #'() 
     c16 
-    \property Voice.Stem \revert #'flag-style
+    \property Voice.Stem \revert #'stroke-style
   } c4
 }
 @end lilypond
@@ -3691,10 +3691,17 @@ output.
 @node Ancient notation 
 @section Ancient notation
 
+@cindex Vaticana, Editio
+@cindex Medicaea, Editio
+@cindex hufnagel
+@cindex Petrucci
+@cindex mensural
+
 @menu
 * Ancient note heads::          
+* Ancient clefs::               
 * Custodes::                    
-* Ancient clefs ::              
+* Ligatures::                   
 * Figured bass::                
 @end menu
 
@@ -3702,7 +3709,7 @@ output.
 @node Ancient note heads
 @subsection Ancient note heads
 
- To get a longa note head, you have to use mensural note heads. This
+To get a longa note head, you have to use mensural note heads. This
 is accomplished by setting the @code{style} property of the
 NoteHead object to @code{mensural}. There is also a note head style
 @code{baroque} which gives mensural note heads for @code{\longa} and
@@ -3713,6 +3720,212 @@ NoteHead object to @code{mensural}. There is also a note head style
  a'\longa
 @end lilypond
 
+@node Ancient clefs 
+@subsection Ancient clefs
+
+LilyPond supports a variety of clefs, many of them ancient.
+
+For modern clefs, see section @ref{Clef}.  For the percussion clef, see
+section @ref{Percussion staves}.  For the @code{TAB} clef, see section
+@ref{Tablatures}.
+
+The following table shows all ancient clefs that are supported via the
+@code{\clef} command.  Some of the clefs use the same glyph, but differ
+only with respect to the line they are printed on.  In such cases, a
+trailing number in the name is used to enumerate these clefs.  Still,
+you can manually force a clef glyph to be typeset on an arbitrary line,
+as described in section @ref{Clef}.  The note printed to the right side
+of each clef denotes the @code{c'} with respect to the clef.
+
+@table @code
+
+@c --- This should go somewhere else: ---
+@c @item modern style G clef (glyph: @code{clefs-G})
+@c
+@c Supported clefs:
+@c @code{treble}, @code{violin}, @code{G}, @code{G2}, @code{french}
+@c
+@c @lilypond[26pt]{\property Staff.TimeSignature \set #'transparent = ##t \clef "G" c'}
+@c
+@c @item modern style F clef (glyph: @code{clefs-F})
+@c
+@c Supported clefs:
+@c @code{varbaritone}, @code{bass}, @code{F}, @code{subbass}
+@c
+@c @lilypond[26pt]{\property Staff.TimeSignature \set #'transparent = ##t \clef "F" c'}
+@c
+@c @item modern style C clef (glyph: @code{clefs-C})
+@c
+@c Supported clefs:
+@c @code{soprano}, @code{mezzosoprano}, @code{alto}, @code{C},
+@c @code{tenor}, @code{baritone}
+@c
+@c @lilypond[26pt]{\property Staff.TimeSignature \set #'transparent = ##t \clef "C" c'}
+
+@item modern style mensural C clef (glyph: @code{clefs-neo_mensural_c'})
+
+Supported clefs:
+@code{neo_mensural_c1}, @code{neo_mensural_c2},
+@code{neo_mensural_c3}, @code{neo_mensural_c4}
+
+@lilypond[26pt]{\property Staff.TimeSignature \set #'transparent = ##t \clef "neo_mensural_c2" c'}
+
+@item petrucci style mensural C clef (glyph: @code{clefs-petrucci_c1})
+
+Supported clefs:
+@code{petrucci_c1}
+for 1st staffline
+
+@lilypond[26pt]{\property Staff.TimeSignature \set #'transparent = ##t \clef "petrucci_c1" c'}
+
+@item petrucci style mensural C clef (glyph: @code{clefs-petrucci_c2})
+
+Supported clefs:
+@code{petrucci_c2}
+for 2nd staffline
+
+@lilypond[26pt]{\property Staff.TimeSignature \set #'transparent = ##t \clef "petrucci_c2" c'}
+
+@item petrucci style mensural C clef (glyph: @code{clefs-petrucci_c3})
+
+Supported clefs:
+@code{petrucci_c3}
+for 3rd staffline
+
+@lilypond[26pt]{\property Staff.TimeSignature \set #'transparent = ##t \clef "petrucci_c3" c'}
+
+@item petrucci style mensural C clef (glyph: @code{clefs-petrucci_c4})
+
+Supported clefs:
+@code{petrucci_c4}
+for 4th staffline
+
+@lilypond[26pt]{\property Staff.TimeSignature \set #'transparent = ##t \clef "petrucci_c4" c'}
+
+@item petrucci style mensural C clef (glyph: @code{clefs-petrucci_c5})
+
+Supported clefs:
+@code{petrucci_c5}
+for 5th staffline
+
+@lilypond[26pt]{\property Staff.TimeSignature \set #'transparent = ##t \clef "petrucci_c5" c'}
+
+@item petrucci style mensural F clef (glyph: @code{clefs-petrucci_f})
+
+Supported clefs:
+@code{petrucci_f}
+
+@lilypond[26pt]{\property Staff.TimeSignature \set #'transparent = ##t \clef "petrucci_f" c'}
+
+@item petrucci style mensural G clef (glyph: @code{clefs-petrucci_g})
+
+Supported clefs:
+@code{petrucci_g}
+
+@lilypond[26pt]{\property Staff.TimeSignature \set #'transparent = ##t \clef "petrucci_g" c'}
+
+@item historic style mensural C clef (glyph: @code{clefs-mensural_c'})
+
+Supported clefs:
+@code{mensural_c1}, @code{mensural_c2}, @code{mensural_c3},
+@code{mensural_c4}
+
+@lilypond[26pt]{\property Staff.TimeSignature \set #'transparent = ##t \clef "mensural_c2" c'}
+
+@item historic style mensural F clef (glyph: @code{clefs-mensural_f})
+
+Supported clefs:
+@code{mensural_f}
+
+@lilypond[26pt]{\property Staff.TimeSignature \set #'transparent = ##t \clef "mensural_f" c'}
+
+@item historic style mensural G clef (glyph: @code{clefs-mensural_g})
+
+Supported clefs:
+@code{mensural_g}
+
+@lilypond[26pt]{\property Staff.TimeSignature \set #'transparent = ##t \clef "mensural_g" c'}
+
+@item Editio Vaticana style do clef (glyph: @code{clefs-vaticana_do})
+
+Supported clefs:
+@code{vaticana_do1}, @code{vaticana_do2}, @code{vaticana_do3}
+
+@lilypond[26pt]{\context Staff \outputproperty #(make-type-checker 'staff-symbol-interface) #'line-count = #4 \property Staff.TimeSignature \set #'transparent = ##t \clef "vaticana_do2" c'}
+
+@item Editio Vaticana style fa clef (glyph: @code{clefs-vaticana_fa})
+
+Supported clefs:
+@code{vaticana_fa1}, @code{vaticana_fa2}
+
+@lilypond[26pt]{\context Staff \outputproperty #(make-type-checker 'staff-symbol-interface) #'line-count = #4 \property Staff.TimeSignature \set #'transparent = ##t \clef "vaticana_fa2" c'}
+
+@item Editio Medicaea style do clef (glyph: @code{clefs-medicaea_do})
+
+Supported clefs:
+@code{medicaea_do1}, @code{medicaea_do2}, @code{medicaea_do3}
+
+@lilypond[26pt]{\context Staff \outputproperty #(make-type-checker 'staff-symbol-interface) #'line-count = #4 \property Staff.TimeSignature \set #'transparent = ##t \clef "medicaea_do2" c'}
+
+@item Editio Medicaea style fa clef (glyph: @code{clefs-medicaea_fa})
+
+Supported clefs:
+@code{medicaea_fa1}, @code{medicaea_fa2}
+
+@lilypond[26pt]{\context Staff \outputproperty #(make-type-checker 'staff-symbol-interface) #'line-count = #4 \property Staff.TimeSignature \set #'transparent = ##t \clef "medicaea_fa2" c'}
+
+@item historic style hufnagel do clef (glyph: @code{clefs-hufnagel_do})
+
+Supported clefs:
+@code{hufnagel_do1}, @code{hufnagel_do2}, @code{hufnagel_do3}
+
+@lilypond[26pt]{\context Staff \outputproperty #(make-type-checker 'staff-symbol-interface) #'line-count = #4 \property Staff.TimeSignature \set #'transparent = ##t \clef "hufnagel_do2" c'}
+
+@item historic style hufnagel fa clef (glyph: @code{clefs-hufnagel_fa})
+
+Supported clefs:
+@code{hufnagel_fa1}, @code{hufnagel_fa2}
+
+@lilypond[26pt]{\context Staff \outputproperty #(make-type-checker 'staff-symbol-interface) #'line-count = #4 \property Staff.TimeSignature \set #'transparent = ##t \clef "hufnagel_fa2" c'}
+
+@item historic style hufnagel combined do/fa clef (glyph: @code{clefs-hufnagel_do_fa})
+
+Supported clefs:
+@code{hufnagel_do_fa}
+
+@lilypond[26pt]{\property Staff.TimeSignature \set #'transparent = ##t \clef "hufnagel_do_fa" c'}
+
+@c --- This should go somewhere else: ---
+@c @item modern style percussion clef (glyph: @code{clefs-percussion})
+@c
+@c Supported clefs:
+@c @code{percussion}
+@c
+@c @lilypond[26pt]{\property Staff.TimeSignature \set #'transparent = ##t \clef "percussion" c'}
+@c
+@c @item modern style tab clef (glyph: @code{clefs-tab})
+@c
+@c Supported clefs:
+@c @code{tab}
+@c
+@c @lilypond[26pt]{\context Staff \outputproperty #(make-type-checker 'staff-symbol-interface) #'line-count = #6 \property Staff.TimeSignature \set #'transparent = ##t \clef "tab" c'}
+
+@end table
+
+@emph{Modern style} means ``as is typeset in current editions of
+transcribed mensural music''.
+
+@emph{Petrucci style} means ``inspired by printings published by the
+famous engraver Petrucci (1466-1539)''.
+
+@emph{Historic style} means ``as was typeset or written in contemporary
+historic editions (other than those of Petrucci)''.
+
+@emph{Editio XXX style} means ``as is/was printed in Editio XXX''.
+
+Petrucci used C clefs with differently balanced left-side vertical
+beams, depending on which staffline it was printed.
+
 @node Custodes
 @subsection Custodes
 
@@ -3772,59 +3985,122 @@ block:
 @}
 @end example
 
-@node Ancient clefs 
-@subsection Ancient clefs
+@node Ligatures
+@subsection Ligatures
+
+@cindex Ligatures
+
+@c TODO: Should double check if I recalled things correctly when I wrote
+@c down the following paragraph by heart.
+In musical terminology, a ligature is a coherent graphical symbol that
+represents at least two different notes.  Ligatures originally appeared
+in the manuscripts of Gregorian chant notation roughly since the 9th
+century as an allusion to the accent symbols of greek lyric poetry to
+denote ascending or descending sequences of notes.  Both, the shape and
+the exact meaning of ligatures changed tremendously during the following
+centuries: In early notation, ligatures where used for monophonic tunes
+(Gregorian chant) and very soon denoted also the way of performance in
+the sense of articulation.  With upcoming multiphony, the need for a
+metric system arised, since multiple voices of a piece have to be
+synchronized some way.  New notation systems were invented, that used
+the manifold shapes of ligatures to now denote rhythmical patterns
+(e.g. black mensural notation, mannered notation, ars nova).  With the
+invention of the metric system of the white mensural notation, the need
+for ligatures to denote such patterns disappeared.  Nevertheless,
+ligatures were still in use in the mensural system for a couple of
+decades until they finally disappeared during the late 16th / early 17th
+century.  Still, ligatures have survived in contemporary editions of
+Gregorian chant such as the Editio Vaticana from 1905/08.
+
+Syntactically, ligatures are simply enclosed by @code{\[} and @code{\]}.
+Some ligature styles (such as Editio Vaticana) may need additional input
+syntax specific for this particular type of ligature.  By default, the
+@internalsref{LigatureBracket} engraver just marks the start and end of
+a ligature by small square angles:
 
-LilyPond supports a variety of clefs, many of them ancient. These can
-be selected by setting @code{Staff.clefGlyph}) to one of the following
-values
+@lilypond[singleline,verbatim]
+\score {
+    \notes \transpose c'' {
+       \[ g c a f d' \]
+       a g f
+       \[ e f a g \]
+    }
+}
+@end lilypond
 
-@table @code
-@item clefs-C
- modern style C clef
-@item clefs-F
- modern style F clef
-@item clefs-G
- modern style G clef
-@item clefs-vaticana_do
- Editio Vaticana style do clef
-@item clefs-vaticana_fa
- Editio Vaticana style fa clef
-@item clefs-medicaea_do
- Editio Medicaea style do clef
-@item clefs-medicaea_fa
- Editio Medicaea style fa clef
-@item clefs-mensural1_c
- modern style mensural C clef
-@item clefs-mensural2_c
- historic style small mensural C clef
-@item clefs-mensural3_c
- historic style big mensural C clef
-@item clefs-mensural1_f
- historic style traditional mensural F clef
-@item clefs-mensural2_f
- historic style new mensural F clef
-@item clefs-mensural_g
- historic style mensural G clef
-@item clefs-hufnagel_do
- historic style hufnagel do clef
-@item clefs-hufnagel_fa
- historic style hufnagel fa clef
-@item clefs-hufnagel_do_fa
- historic style hufnagel combined do/fa clef
-@item clefs-percussion
- modern style percussion clef
-@end table
+To select a specific style of ligatures, a proper ligature engraver has
+to be added to the @internalsref{Voice} context, as explained in the
+following subsections.  Currently, Lilypond only supports white mensural
+ligatures with certain limitations.  Support for Editio Vaticana will be
+added in the future.
 
-@emph{Modern style} means ``as is typeset in current editions.''
-@emph{Historic style} means ``as was typeset or written in contemporary
-historic editions''.  @emph{Editio XXX style} means ``as is/was printed in
-Editio XXX.''
+@menu
+* White mensural ligatures::    
+@end menu
 
-@cindex Vaticana, Editio
-@cindex Medicaea, Editio
-@cindex hufnagel clefs
+@node White mensural ligatures
+@subsubsection White mensural ligatures
+
+@cindex Mensural ligatures
+@cindex White mensural ligatures
+
+Lilypond has limited support for white mensural ligatures.  The
+implementation is still experimental; it currently may output strange
+warnings or even crash in some cases or produce weird results on more
+complex ligatures.  To engrave white mensural ligatures, in the paper
+block the @internalsref{MensuralLigature} engraver has to be put into
+the @internalsref{Voice} context (and you probably want to remove the
+@internalsref{LigatureBracket} engraver).  There is no additional input
+language to describe the shape of a white mensural ligature.  The shape
+is rather determined solely from the pitch and duration of the enclosed
+notes.  While this approach may take a new user quite a while to get
+accustomed, it has a great advantage: this way, lily has full musical
+information about the ligature.  This is not only required for correct
+MIDI output, but also allows for automatic transcription of the
+ligatures.
+
+Example:
 
+@lilypond[singleline,verbatim]
+\score {
+    \notes \transpose c'' {
+       \property Score.timing = ##f
+       \property Score.defaultBarType = "empty"
+       \property Voice.NoteHead \set #'style = #'neo_mensural
+       \property Staff.TimeSignature \set #'style = #'neo_mensural
+       \clef "petrucci_g"
+       \[ g\longa c\breve a\breve f\breve d'\longa \]
+       s4
+       \[ e1 f1 a\breve g\longa \]
+    }
+    \paper {
+       \translator {
+           \VoiceContext
+           \remove Ligature_bracket_engraver
+           \consists Mensural_ligature_engraver
+       }
+    }
+}
+@end lilypond
+
+Without replacing @code{Ligature_bracket_engraver} with
+@code{Mensural_ligature_engraver}, the same music transcribes to the
+following:
+
+@lilypond[singleline,verbatim]
+\score {
+    \notes \transpose c'' {
+       \property Score.timing = ##f
+       \property Score.defaultBarType = "empty"
+       \property Voice.NoteHead \set #'style = #'neo_mensural
+       \property Staff.TimeSignature \set #'style = #'neo_mensural
+       \clef "petrucci_g"
+       \[ g\longa c\breve a\breve f\breve d'\longa \]
+       s4
+       \[ e1 f1 a\breve g\longa \]
+    }
+}
+@end lilypond
 
 @node Figured bass
 @subsection Figured bass
index b801e9bfc1ea17dbeb13637728ef17a20203dd4f..9b6647f19a1abbf295cdbe98eba4fdd05b536a07 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.5.72"
+\version "1.6.5"
 
 \header {
     composer =   "ARTHUR GRAY"
@@ -348,7 +348,7 @@ lowerDynamics =  \context Dynamics=lower \notes{
         }
        \translator {
            \GraceContext
-           Stem \override #'flag-style = #""
+           Stem \override #'stroke-style = #""
         }
     }
 }
index 5378aab22605afbef8d95b53feb8b6856a310418..044434e038b8f0a837bc2305643c5beedf96c64c 100644 (file)
@@ -2,11 +2,11 @@
 
 % #(set-point-and-click! 'line-column)
 
-longgrace = \property Voice.Stem \override #'flag-style = #'()
-endlonggrace = \property Voice.Stem \revert #'flag-style
+longgrace = \property Voice.Stem \override #'stroke-style = #'()
+endlonggrace = \property Voice.Stem \revert #'stroke-style
 ritenuto = \textscript #'(italic  "rit.")
 
-\version "1.5.72"
+\version "1.6.5"
 
 #(define italic-bf '((font-shape . italic) (font-series . bold)))
 
index 1dc00957ca09fcae63b15158f2994c383a261224..001fdc88f83ace2fd0fe973edc98728ac93575af 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.5.68"
+\version "1.6.5"
 
 % bagpipe music.
 
 
        NoteHead \override #'font-relative-size = #-2
        NoteHead \override #'font-relative-size = #-2   
-        Stem \override #'flag-style = #""
+        Stem \override #'stroke-style = #""
     % The following determines the length of stems without beams
     % default is between 2.8 and 4.0 depending on the number of flags
          Stem \override #'length = #6  
         Stem \override #'font-relative-size = #-2
        GraceAlignItem \override #'horizontal-space = #1
-       Stem \override #'flag-style = #""
+       Stem \override #'stroke-style = #""
  
   }
   \translator { \StaffContext
-       TimeSignature \override #'style = #'C4/4
+       TimeSignature \override #'style = #'C
 %      TimeSignature \override #'visibility-function = #begin-of-line-visible
        TimeSignature \override #'break-visibility = #begin-of-line-visible
   }    
index c9deff1dc9c019a8e72b2ea6cbb7e3fa7ce2c7d8..543fd67c11d15eef4742fe7cc7f019a0448cdded 100644 (file)
@@ -529,24 +529,23 @@ Stem::height (SCM smob, SCM ax)
 Molecule
 Stem::flag (Grob*me)
 {
-  /* TODO: rename flag-style into something more appropriate,
-   e.g. "stroke-style", maybe with values "" (i.e. no stroke),
-   "single" and "double".  Needs more discussion.
-  */
-  String style, staffline_offs;
+  /* TODO: maybe property stroke-style should take different values,
+     e.g. "" (i.e. no stroke), "single" and "double" (currently, it's
+     '() or "grace").  */
+  String flag_style, staffline_offs;
 
-  SCM style_scm = me->get_grob_property ("style");
-  if (gh_symbol_p (style_scm))
+  SCM flag_style_scm = me->get_grob_property ("flag-style");
+  if (gh_symbol_p (flag_style_scm))
     {
-      style = (ly_scm2string (scm_symbol_to_string (style_scm)));
+      flag_style = (ly_scm2string (scm_symbol_to_string (flag_style_scm)));
     }
   else
     {
-      style = "";
+      flag_style = "";
     }
   bool adjust = to_boolean (me->get_grob_property ("adjust-if-on-staffline"));
 
-  if (String::compare (style, "mensural") == 0)
+  if (String::compare (flag_style, "mensural") == 0)
     /* Mensural notation: For notes on staff lines, use different
        flags than for notes between staff lines.  The idea is that
        flags are always vertically aligned with the staff lines,
@@ -595,7 +594,7 @@ Stem::flag (Grob*me)
     }
   char dir = (get_direction (me) == UP) ? 'u' : 'd';
   String font_char =
-    style + to_string (dir) + staffline_offs + to_string (duration_log (me));
+    flag_style + to_string (dir) + staffline_offs + to_string (duration_log (me));
   Font_metric *fm = Font_interface::get_default_font (me);
   Molecule flag = fm->find_by_name ("flags-" + font_char);
   if (flag.empty_b ())
@@ -603,13 +602,13 @@ Stem::flag (Grob*me)
       me->warning (_f ("flag `%s' not found", font_char));
     }
 
-  SCM stroke_scm = me->get_grob_property ("flag-style");
-  if (gh_string_p (stroke_scm))
+  SCM stroke_style_scm = me->get_grob_property ("stroke-style");
+  if (gh_string_p (stroke_style_scm))
     {
-      String stroke = ly_scm2string (stroke_scm);
-      if (!stroke.empty_b ())
+      String stroke_style = ly_scm2string (stroke_style_scm);
+      if (!stroke_style.empty_b ())
        {
-         String font_char = to_string (dir) + stroke;
+         String font_char = to_string (dir) + stroke_style;
          Molecule stroke = fm->find_by_name ("flags-" + font_char);
          if (stroke.empty_b ())
            {
@@ -945,6 +944,6 @@ Stem::beam_multiplicity (Grob *stem)
 
 ADD_INTERFACE (Stem,"stem-interface",
   "A stem",
-  "up-to-staff avoid-note-head adjust-if-on-staffline thickness stem-info beamed-lengths beamed-minimum-free-lengths beamed-extreme-minimum-free-lengths lengths beam stem-shorten duration-log beaming neutral-direction stem-end-position support-head note-heads direction length style no-stem-extend flag-style");
+  "up-to-staff avoid-note-head adjust-if-on-staffline thickness stem-info beamed-lengths beamed-minimum-free-lengths beamed-extreme-minimum-free-lengths lengths beam stem-shorten duration-log beaming neutral-direction stem-end-position support-head note-heads direction length flag-style no-stem-extend stroke-style");
 
 
index 4aadd3fe6e3d93dc50d9921d121f7527c158bd66..186d87ae4d63582a2ff0c3ffd215772f673bbc50 100644 (file)
@@ -13,7 +13,7 @@ startGraceMusic = {
         #(map (lambda (x) (* 0.8 x)) '(1.83 1.5))
 
     \property Voice.Stem \override #'no-stem-extend = ##t
-    \property Voice.Stem \override #'flag-style  = #"grace"
+    \property Voice.Stem \override #'stroke-style  = #"grace"
     \property Voice.Beam \override #'thickness = #0.384
 
     %% Instead of calling Beam::space_function, we should invoke
@@ -39,7 +39,7 @@ stopGraceMusic = {
     \property Staff.Accidental \revert #'font-relative-size
     \property Voice.Beam \revert #'thickness
 
-    \property Voice.Stem \revert #'flag-style
+    \property Voice.Stem \revert #'stroke-style
     \property Voice.Stem \revert #'no-stem-extend
     \property Voice.Stem \revert #'beamed-lengths
     \property Voice.Stem \revert #'beamed-minimum-free-lengths
index 24d99eddb0383a8cd4751012aaa7b16aecdf3578..c74de1a59dab75afb6ac31c13783889d01c28130 100644 (file)
@@ -191,7 +191,8 @@ typesetting engine is completely oblivious to it.
 slur dir) -> attachment to determine the attachment (see above).  If
 procedure returns #t, attachment is used.  Otherwise, the next
 procedure is tried.")
-(grob-property-description 'flag-style string? "set to \"grace\" to turn stroke through stem on.")
+(grob-property-description 'flag-style symbol? "a string determining what style of glyph is typeset.")
+(grob-property-description 'stroke-style string? "set to \"grace\" to turn stroke through flag on.")
 (grob-property-description 'flag-width-function procedure? "Procedure that computes the width of a half-beam (a non-connecting beam.).")
 (grob-property-description 'flexa-width number? "width of a flexa shape in a ligature grob.")
 (grob-property-description 'font-family symbol? "partial font
index c5a5b20395451eac009e9b69e8347645719c5edc..8f24f130ed2e0110aece505151ebce3aa4e44e30 100644 (file)
@@ -973,6 +973,16 @@ if 1:
        conversions.append (((1,7,1), conv, 'ly-make-music -> make-music-by-name'))
 
 
+if 1:
+       def conv (str):
+               str = re.sub ('flag-style', 'stroke-style', str)
+               str = re.sub (r"""Stem([ ]+)\\override #'style""", r"""Stem \\override #'flag-style""", str);
+               str = re.sub (r"""Stem([ ]+)\\set([ ]+)#'style""", r"""Stem \\set #'flag-style""", str);
+               return str
+       
+       conversions.append (((1,6,5), conv, 'Stems: flag-style -> stroke-style; style -> flag-style'))
+
+
 ################################
 #      END OF CONVERSIONS      
 ################################