From: Han-Wen Nienhuys Date: Tue, 24 Sep 2002 19:13:22 +0000 (+0000) Subject: 2002-09-24 Juergen Reuter X-Git-Tag: release/1.7.1~19 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=0556ce728ccceadbedcf15400685628f1973081e;p=lilypond.git 2002-09-24 Juergen Reuter * Documentation/user/refman.itely: corrected ancient clef docu; added docu on ligatures 2002-09-21 Juergen Reuter * 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. --- diff --git a/ChangeLog b/ChangeLog index a00be13144..ffea42db6c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,17 @@ +2002-09-24 Juergen Reuter + + * Documentation/user/refman.itely: corrected ancient clef + docu; added docu on ligatures + +2002-09-21 Juergen Reuter + + * 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 * scm/music-functions.scm (music-separator?): don't use name music diff --git a/Documentation/user/glossary.tely b/Documentation/user/glossary.tely index cc92f3aa5d..3c348e3286 100644 --- a/Documentation/user/glossary.tely +++ b/Documentation/user/glossary.tely @@ -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 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'' { diff --git a/Documentation/user/refman.itely b/Documentation/user/refman.itely index 5a3c9b057c..24ce16ed5a 100644 --- a/Documentation/user/refman.itely +++ b/Documentation/user/refman.itely @@ -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 diff --git a/input/les-nereides.ly b/input/les-nereides.ly index b801e9bfc1..9b6647f19a 100644 --- a/input/les-nereides.ly +++ b/input/les-nereides.ly @@ -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 = #"" } } } diff --git a/input/mutopia/W.A.Mozart/mozart-hrn3-defs.ly b/input/mutopia/W.A.Mozart/mozart-hrn3-defs.ly index 5378aab226..044434e038 100644 --- a/input/mutopia/W.A.Mozart/mozart-hrn3-defs.ly +++ b/input/mutopia/W.A.Mozart/mozart-hrn3-defs.ly @@ -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))) diff --git a/input/test/bagpipe.ly b/input/test/bagpipe.ly index 1dc00957ca..001fdc88f8 100644 --- a/input/test/bagpipe.ly +++ b/input/test/bagpipe.ly @@ -1,4 +1,4 @@ -\version "1.5.68" +\version "1.6.5" % bagpipe music. @@ -15,17 +15,17 @@ 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 } diff --git a/lily/stem.cc b/lily/stem.cc index c9deff1dc9..543fd67c11 100644 --- a/lily/stem.cc +++ b/lily/stem.cc @@ -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"); diff --git a/ly/grace-init.ly b/ly/grace-init.ly index 4aadd3fe6e..186d87ae4d 100644 --- a/ly/grace-init.ly +++ b/ly/grace-init.ly @@ -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 diff --git a/scm/grob-property-description.scm b/scm/grob-property-description.scm index 24d99eddb0..c74de1a59d 100644 --- a/scm/grob-property-description.scm +++ b/scm/grob-property-description.scm @@ -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 diff --git a/scripts/convert-ly.py b/scripts/convert-ly.py index c5a5b20395..8f24f130ed 100644 --- a/scripts/convert-ly.py +++ b/scripts/convert-ly.py @@ -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 ################################