lilypond-devel
[Top][All Lists]
Advanced

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

Re: Glyphs for Kievan Notation (issue 4951062)


From: bordage . bertrand
Subject: Re: Glyphs for Kievan Notation (issue 4951062)
Date: Fri, 30 Sep 2011 10:07:10 +0000

Very good!  The MetaFont code could still be improved, but don't think
about it.  The only things you have to improve in MetaFont are the
character boxes, which are broken.  Example:
\markup \box { \musicglyph #"noteheads.u3kievan" \musicglyph
#"scripts.barline.kievan" \musicglyph #"accidentals.kievanM1" }

A glyph for clef changes would also be great.


Then we have to integrate your patch to LilyPond.  First, I think you
made the right thing in output-lib.scm.  Now, let's do a KievanStaff!

*** Add this in scm/output-lib.scm, line 581:
(define-public alteration-kievan-glyph-name-alist
  '((-1/2 . "accidentals.kievanM1")
    (0 . "accidentals.vaticana0")
    (1/2 . "accidentals.kievan1")))

*** Add this in lily/bar-line.cc, line 289:
  else if (str == "kievan")
    m.add_stencil (Font_interface::get_default_font (me)->find_by_name
("scripts.barline.kievan"));

*** Add this in scm/output-lib.scm, line 324:
    ;; ancient bar lines
    ("kievan" . ("kievan" . ""))

*** Add this in scm/parser-clef.scm, line 79:
    ("kievan-do" . ("clefs.kievan.do" 0 0))
*** and line 107:
    ("clefs.kievan.do" . 0)

*** Add this to ly/engraver-init.ly, line 1103:
\context {
  \Voice
  \name "KievanVoice"
  \alias "Voice"
  \description "Same as @code{Voice} context, except that it is
accommodated for typesetting a piece in Kievan style."

  \remove Stem_engraver

  %% Set glyph styles.
  \override NoteHead #'style = #'kievan
  \override Rest #'style = #'mensural
  \override Accidental #'glyph-name-alist =
#alteration-kievan-glyph-name-alist
  \override Dots #'style = #'kievan

  %% There are no beams in Kievan notation.
  autoBeaming = ##f
}

\context {
  \Staff
  \name "KievanStaff"
  \alias "Staff"
  \denies "Voice"
  \defaultchild "KievanVoice"
  \accepts "KievanVoice"
  \description "Same as @code{Staff} context, except that it is
accommodated for typesetting a piece in Kievan style."

  %% Choose kievan do clef.
  clefGlyph = #"clefs.kievan.do"
  middleCClefPosition = #0
  middleCPosition = #0
  clefPosition = #0
  clefOctavation = #0

  %% Accidentals are valid only once (if the following note is
different)
  extraNatural = ##f
  autoAccidentals = #`(Staff ,(make-accidental-rule 'same-octave 0)
                             ,neo-modern-accidental-rule)
  autoCautionaries = #'()
  printKeyCancellation = ##f
}

*** and line 550:
  \accepts "KievanStaff"


Of course, you can change what I wrote, especially the names.

Thanks!
Bertrand


http://codereview.appspot.com/4951062/diff/59001/mf/parmesan-noteheads.mf
File mf/parmesan-noteheads.mf (right):

http://codereview.appspot.com/4951062/diff/59001/mf/parmesan-noteheads.mf#newcode1861
mf/parmesan-noteheads.mf:1861: fet_beginchar ("kievan half note (space
position)", "s1rkievan");
"sr1kievan" instead of "s1rkievan".

http://codereview.appspot.com/4951062/



reply via email to

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