From 61eb10711b4f9d032121c395e9a5fb2e508852b8 Mon Sep 17 00:00:00 2001 From: Han-Wen Nienhuys Date: Thu, 29 Aug 2002 11:54:55 +0000 Subject: [PATCH] 2002-08-29 Juergen Reuter * input/test/ancient-font.ly, mf/parmesan-heads.mf, scm/output-lib.scm, lily/note-head.cc: bugfix: make neume note heads accessible --- ChangeLog | 8 + Documentation/topdocs/INSTALL.texi | 3 +- input/test/ancient-font.ly | 238 ++++++++++++++++++----------- lily/note-head.cc | 16 +- mf/parmesan-heads.mf | 56 +++---- scm/music-functions.scm | 2 +- scm/output-lib.scm | 7 +- 7 files changed, 199 insertions(+), 131 deletions(-) diff --git a/ChangeLog b/ChangeLog index 31d2c96bbe..922b4aacd7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ + +2002-08-29 Juergen Reuter + + * input/test/ancient-font.ly, mf/parmesan-heads.mf, + scm/output-lib.scm, lily/note-head.cc: bugfix: make neume note + heads accessible + + 2002-08-29 Mats Bengtsson * scm/music-functions.scm (unfold-repeats): Call new diff --git a/Documentation/topdocs/INSTALL.texi b/Documentation/topdocs/INSTALL.texi index 087116b392..e5b295d705 100644 --- a/Documentation/topdocs/INSTALL.texi +++ b/Documentation/topdocs/INSTALL.texi @@ -672,12 +672,13 @@ LilyPond with gcc-3.1.1 you may do: @example CONF=gcc-3.1 ./lexer-gcc-3.1.sh - CPPFLAGS=$(pwd)/lily/out-gcc-3.1 CC=gcc-3.1 CXX=g++-3.1 \ + CPPFLAGS=-I$(pwd)/lily/out-gcc-3.1 CC=gcc-3.1 CXX=g++-3.1 \ ./configure --enable-config=gcc-3.1 CONF=gcc-3.1 ./lexer-gcc-3.1.sh make conf=gcc-3.1 @end example +This assumes that the GCC 3.1 binaries are called gcc-3.1 and g++-3.1. Note that this is @strong{not} fixed in Debian/unstable for flex <= 2.5.4a-26. diff --git a/input/test/ancient-font.ly b/input/test/ancient-font.ly index abeb31b81d..ae0a9f6ce9 100644 --- a/input/test/ancient-font.ly +++ b/input/test/ancient-font.ly @@ -1,23 +1,16 @@ \version "1.5.68" \header { title = "ancient font test" - date = "2000" + date = "2002" } - - \include "paper26.ly" -global = \notes { +upperStaff = \context GregorianStaff = upperStaff < + \context GregorianVoice < \property Score.timing = ##f -% \property Score.forceAccidental = ##t - \property Staff.TimeSignature \set #'font-family = #'ancient -% \property Staff.TimeSignature \override #'style = #'mensural -} +% \property Score.forceAccidental = ##t %%%%%%%% FIXME: what happened to this property? -upperVoice = \context Staff = upperVoice < - \global - % this is broken until further notice -- see refman % \property Staff.StaffSymbol \override #'line-count = #4 \context Staff \outputproperty #(make-type-checker 'staff-symbol-interface) @@ -29,32 +22,19 @@ upperVoice = \context Staff = upperVoice < \property Staff.KeySignature \override #'style = #'vaticana \property Staff.Accidental \set #'font-family = #'ancient \property Staff.Accidental \override #'style = #'vaticana - \property Staff.Custos \set #'font-family = #'ancient - \property Staff.Custos \override #'style = #'vaticana - \property Staff.Custos \override #'neutral-position = #4 - \property Staff.Custos \override #'neutral-direction = #-1 - \property Staff.Custos \override #'adjust-if-on-staffline = ##t \property Voice.NoteHead \set #'font-family = #'ancient \property Voice.NoteHead \override #'style = #'vaticana_punctum - \property Voice.Porrectus \override #'style = #'vaticana - \property Voice.Porrectus \override #'solid = ##t - \property Voice.Porrectus \override #'add-stem = ##t - \property Voice.Porrectus \override #'direction = #-1 - \property Voice.Porrectus \override #'thickness = #0.5 \key es \major \clef "vaticana_fa2" c!1 des! e! f! ges! -% \property Staff.clefGlyph = #"clefs-vaticana_do" -% \property Staff.clefPosition = #1 -% \property Staff.clefOctavation = #0 - \clef "vaticana_do2" - \property Voice.NoteHead \override #'style = #'vaticana_inclinatum - a! b! + a! b! ces' \property Staff.BarLine \override #'bar-size = #3.0 \bar "|" +% \break % 1 (8*1) + \property Voice.NoteHead \override #'style = #'vaticana_virga - ces' b! des'! \~ ges! \~ fes! + b! des'! ges! fes! \breathe \clef "vaticana_fa1" \property Voice.NoteHead \override #'style = #'vaticana_quilisma @@ -62,6 +42,8 @@ upperVoice = \context Staff = upperVoice < \property Voice.NoteHead \override #'style = #'vaticana_rvirga c d \property Staff.BarLine \override #'bar-size = #3.0 \bar "|" +% \break %2 (8*1) + \property Voice.NoteHead \override #'style = #'vaticana_rvirga es f \property Voice.NoteHead \override #'style = #'vaticana_lpes @@ -72,6 +54,8 @@ upperVoice = \context Staff = upperVoice < g f \property Voice.NoteHead \override #'style = #'vaticana_plica \property Staff.BarLine \override #'bar-size = #2.0 \bar "|" +% \break % 3 (8*1) + es d \property Voice.NoteHead \override #'style = #'vaticana_epiphonus c d @@ -85,13 +69,17 @@ upperVoice = \context Staff = upperVoice < \clef "medicaea_fa2" ces! des! \property Staff.BarLine \override #'bar-size = #3.0 \bar "|" +% \break % 4 (8*1) + e! f! ges! \clef "medicaea_do2" - \property Voice.NoteHead \override #'style = #'medicaea_subbipunctum + \property Voice.NoteHead \override #'style = #'medicaea_inclinatum a! b! ces'! \property Voice.NoteHead \override #'style = #'medicaea_virga b! a! \property Staff.BarLine \override #'bar-size = #3.0 \bar "|" +% \break % 5 (8*1) + ges! fes! \clef "medicaea_fa1" \property Voice.NoteHead \override #'style = #'medicaea_rvirga @@ -104,6 +92,8 @@ upperVoice = \context Staff = upperVoice < \clef "hufnagel_fa2" ces! des! es! \property Staff.BarLine \override #'bar-size = #3.0 \bar "|" +% \break % 6 (8*1) + fes! ges! \clef "hufnagel_do2" \property Voice.NoteHead \override #'style = #'hufnagel_lpes @@ -111,16 +101,23 @@ upperVoice = \context Staff = upperVoice < \property Voice.NoteHead \override #'style = #'hufnagel_virga bes! as! \property Staff.BarLine \override #'bar-size = #3.0 \bar "|" +% \break % 7 (8*1) + ges! fes! \clef "hufnagel_do_fa" \property Voice.NoteHead \override #'style = #'hufnagel_punctum es! des! ces! des! es! fes! \bar "||" +% \break % 8 (8*1) + + s32*1 +% \break % 12 (32*1) } + > > -lowerVoice = \context Staff = lowerNotes < - \global +lowerStaff = \context MensuralStaff = lowerStaff < + \context MensuralVoice < % this is broken until further notice -- see refman % \property Staff.StaffSymbol \override #'line-count = #5 @@ -128,131 +125,190 @@ lowerVoice = \context Staff = lowerNotes < #'line-count = #5 \notes \transpose c' { - \property Voice.autoBeaming = ##f \property Staff.Clef \set #'font-family = #'ancient - \property Staff.KeySignature \set #'font-family = #'ancient - \property Staff.KeySignature \override #'style = #'mensural - \property Staff.Accidental \set #'font-family = #'ancient - \property Staff.Accidental \override #'style = #'mensural - \property Staff.Custos \set #'font-family = #'ancient - \property Staff.Custos \override #'style = #'mensural - \property Staff.Custos \override #'neutral-position = #3 - \property Staff.Custos \override #'neutral-direction = #-1 - \property Staff.Custos \override #'adjust-if-on-staffline = ##t + \property Voice.autoBeaming = ##f \property Voice.NoteHead \set #'font-family = #'ancient \property Voice.NoteHead \override #'style = #'neo_mensural \property Voice.Stem \set #'font-family = #'ancient % ancient flags \property Voice.Rest \set #'font-family = #'music \property Voice.Rest \override #'style = #'neo_mensural - \property Voice.Porrectus \override #'style = #'mensural - \property Voice.Porrectus \override #'solid = ##f - \property Voice.Porrectus \override #'add-stem = ##t - \property Voice.Porrectus \override #'thickness = #0.7 -% \property Voice.Porrectus \override #'auto-properties = ##t -% \property Voice.Porrectus \override #'width = #3.0 \key a \major - % IMPORTANT NOTE: - % - % The porrectus syntax is definitely subject to change. For - % proper use, it may eventually change into something like this: - % - % \startLigature e \~ c \endLigature - % - % The reason is that there needs to be some enclosing instance - % for correct handling of line breaking, alignment with - % adjacent note heads, and placement of accidentals. +% FIXME: lily crashes on some (invalid?) ligatures with: +% ERROR: In procedure gh_scm2int: +% ERROR: Wrong type argument in position 1: () - \clef "neo_mensural_c2" - cis' e' \~ d' gis' \~ e' +% FIXME: lily emits "Programming error: Infinity or NaN encountered" +% on many ligatures such as BB. + + cis'1 d'\breve gis'\breve e'\breve \[ e'\longa fis'\longa \] \property Staff.forceClef = ##t \clef "neo_mensural_c2" + cis1 + \bar "|" +% \break % 2 (16*1) - fis' \~ b cis'' - b \~ a a \~ fis + \[ g\breve dis''\longa \] + b\breve \[ a\longa d\longa \] \clef "petrucci_c2" - cis \~ fis ces1 % \bar "|" +% \break % 4 (16*1) + fis1 ces1 \clef "petrucci_c2" r\longa \property Staff.forceClef = ##t \clef "mensural_c2" - r\breve r1 r2 - \clef "mensural_g" - r4 r8 r16 r16 \bar "|" + r\breve + \bar "|" +% \break % 5 (8*1) + r2 + \clef "mensural_g" + r4 r8 r16 r16 \property Voice.NoteHead \override #'style = #'mensural \property Voice.Stem \override #'style = #'mensural \property Voice.Stem \override #'thickness = #1.0 \property Voice.Rest \set #'font-family = #'ancient \property Voice.Rest \override #'style = #'mensural \clef "petrucci_f" - c8 b, c16 b, c32 b, c64 b, c b, - d8 e d16 e d32 e d64 e d e + c8 b, c16 b, c32 b, c64 b, c64 b, + d8 e d16 e d32 e d64 e d64 e r\longa \property Staff.forceClef = ##t \clef "petrucci_f" - r\breve r1 % \bar "|" - \clef "mensural_f" + r\breve + \bar "|" +% \break % 6 (8*1) + r\breve + \clef "mensural_f" % FIXME: must set Voice.Stem style to #'neo_mensural to avoid % segmentation fault on r8/r16/r32. (Strange: what has % Voice.Stem style to do with mensural rests?) \property Voice.Stem \override #'style = #'neo_mensural r2 r4 r8 r16 r32 r32 \property Voice.Stem \override #'style = #'mensural - \property Staff.forceClef = ##t \clef "mensural_f" - e2 f g + e\breve f g a1 \clef "mensural_g" +% \break % 7 (8*1) - bes'! \~ as'! \~ cis''! - bes'! \~ fis'! as'! \~ ges'! + \[ bes'!\longa a'!\longa c''!\longa \] + e'1 d' c' d' \bar "|" + \bar "|" +% \break % 9 (16*1) + + bes'!\longa fis'!1 as'!1 ges'!\longa % lig \property Staff.forceClef = ##t \clef "mensural_g" - e' d' c'1 \bar "|" + e'2 d' c' \bar "|" +% \break % 11 (16*1) \property Staff.forceClef = ##t \clef "petrucci_g" - c'2 d' e' f' g' + c'2 d' e' f' \clef "petrucci_g" - as'! bes'! cis''! + g' as'! bes'! cis''! bes'! as'! gis'! fis'! \property Staff.forceClef = ##t \clef "mensural_g" es'! des'! cis'!1 \bar "||" +% \break % 12 (8*1) } + > > \score { - \context ChoirStaff < - \upperVoice - \lowerVoice + \context Score < + \upperStaff + \lowerStaff > \paper { -% \paperTwentysix linewidth = 17.25\cm textheight = 26.0\cm stafflinethickness = \staffspace / 5.0 indent = 0.0 + \translator { + \ScoreContext + \accepts MensuralStaff + \accepts GregorianStaff +% timing = ##f %%%%%%%% FIXME: this has no effect + } + \translator { + \VoiceContext + \name MensuralVoice + \alias Voice + \remove Ligature_bracket_engraver + \consists Mensural_ligature_engraver + NoteHead \set #'font-family = #'ancient + NoteHead \set #'style = #'mensural + Stem \set #'font-family = #'ancient +% Stem \set #'style = #'mensural %%%%%%%% FIXME: this core dumps + Stem \set #'thickness = #1.0 + Rest \set #'font-family = #'music + Rest \set #'style = #'mensural + autoBeaming = ##f + } + \translator { + \VoiceContext + \name GregorianVoice + \alias Voice + \remove Ligature_bracket_engraver +% \consists Gregorian_ligature_engraver %%%%%%%% TODO: not yet implemented + NoteHead \set #'font-family = #'ancient + NoteHead \set #'style = #'vaticana_punctum + autoBeaming = ##f + } \translator { \StaffContext + \name MensuralStaff + \alias Staff + \accepts MensuralVoice \consists Custos_engraver -% Custos \override #'style = #'mensural - \remove Time_signature_engraver -% StaffSymbol \override #'thickness = #2.0 -% StaffSymbol \override #'line-count = #4 + TimeSignature \set #'font-family = #'ancient + TimeSignature \set #'style = #'mensural + KeySignature \set #'font-family = #'ancient + KeySignature \set #'style = #'mensural + Accidental \set #'font-family = #'ancient + Accidental \set #'style = #'mensural + Custos \set #'font-family = #'ancient + Custos \set #'style = #'mensural + Custos \set #'neutral-position = #3 + Custos \set #'neutral-direction = #-1 + Custos \set #'adjust-if-on-staffline = ##t + Clef \set #'font-family = #'ancient + clefGlyph = #"clefs-petrucci_c2" + clefPosition = #-2 + clefOctavation = #0 } \translator { - \ScoreContext -% \remove System_start_delimiter_engraver -% systemStartDelimiter \override #'glyph = #'brace + \StaffContext + \name GregorianStaff + \alias Staff + \accepts GregorianVoice + \consists Custos_engraver + \remove Time_signature_engraver + StaffSymbol \set #'thickness = #2.0 + StaffSymbol \set #'line-count = #4 + KeySignature \set #'font-family = #'ancient + KeySignature \set #'style = #'vaticana + Accidental \set #'font-family = #'ancient + Accidental \set #'style = #'vaticana + Custos \set #'font-family = #'ancient + Custos \set #'style = #'vaticana + Custos \set #'neutral-position = #4 + Custos \set #'neutral-direction = #-1 + Custos \set #'adjust-if-on-staffline = ##t + Clef \set #'font-family = #'ancient + clefGlyph = #"clefs-vaticana_do" + clefPosition = #1 + clefOctavation = #0 } \translator { - \ChoirStaffContext - \remove System_start_delimiter_engraver -% systemStartDelimiter \override #'glyph = #'empty - } + \HaraKiriStaffContext + \accepts MensuralVoice + \accepts GregorianVoice + } } } diff --git a/lily/note-head.cc b/lily/note-head.cc index 4b2596c298..357f78a112 100644 --- a/lily/note-head.cc +++ b/lily/note-head.cc @@ -125,15 +125,15 @@ internal_brew_molecule (Grob *me, bool ledger_take_space) SCM scm_font_family = ly_cdr (scm_pair); String font_char = "noteheads-" + ly_scm2string (scm_font_char); String font_family = ly_scm2string (scm_font_family); - - me->set_grob_property("font-family", ly_symbol2scm (font_family.to_str0 ())); - Molecule out = - Font_interface::get_default_font (me)->find_by_name (font_char); - if (out.empty_b()) - { - warning (_f("Symbol not found, ", font_char.to_str0())); + + me->set_grob_property("font-family", ly_symbol2scm (font_family.to_str0 ())); + Molecule out = + Font_interface::get_default_font (me)->find_by_name (font_char); + if (out.empty_b()) + { + me->warning (_f ("Symbol `%s' not found in family `%s'", + font_char.to_str0 (), font_family.to_str0 ())); } - int interspaces = Staff_symbol_referencer::line_count (me)-1; int pos = (int)rint (Staff_symbol_referencer::get_position (me)); if (abs (pos) - interspaces > 1) diff --git a/mf/parmesan-heads.mf b/mf/parmesan-heads.mf index 2b35a7eb62..49c964d937 100644 --- a/mf/parmesan-heads.mf +++ b/mf/parmesan-heads.mf @@ -486,50 +486,50 @@ def inclinatum_char(expr verbose_name, internal_name, mudela_name, enddef; % punctum -punctum_char("Ed. Vat. punctum", "0vaticana_punctum", "vatpunctumhead", +punctum_char("Ed. Vat. punctum", "vaticana_punctum", "vatpunctumhead", false, false, false, false, false, false, false, false, false, 1.0); % punctum cavum (for OpusTeX compatibility) -punctum_char("Ed. Vat. punctum cavum", "0vaticana_punctum_cavum", +punctum_char("Ed. Vat. punctum cavum", "vaticana_punctum_cavum", "vatpunctumcavumhead", false, false, false, true, false, false, false, false, false, 1.0); % linea punctum (for OpusTeX compatibility) -punctum_char("Ed. Vat. linea punctum", "0vaticana_linea_punctum", +punctum_char("Ed. Vat. linea punctum", "vaticana_linea_punctum", "vatlineapunctumhead", false, false, true, false, false, false, false, false, false, 1.0); % linea punctum cavum (for OpusTeX compatibility) -punctum_char("Ed. Vat. linea punctum cavum", "0vaticana_linea_punctum_cavum", +punctum_char("Ed. Vat. linea punctum cavum", "vaticana_linea_punctum_cavum", "vatlineapunctumcavumhead", false, false, true, true, false, false, false, false, false, 1.0); % punctum inclinatum -inclinatum_char("Ed. Vat. inclinatum", "0vaticana_inclinatum", +inclinatum_char("Ed. Vat. inclinatum", "vaticana_inclinatum", "vatinclinatumhead", false, false, false); % virga (i.e. right stemmed punctum) -punctum_char("Ed. Vat. virga", "0vaticana_virga", "vatvirgahead", +punctum_char("Ed. Vat. virga", "vaticana_virga", "vatvirgahead", false, true, false, false, false, false, false, false, false, 1.0); % left stemmed punctum as used in clivis (flexa) ligature -punctum_char("Ed. Vat. reverse virga", "0vaticana_rvirga", "vatrvirgahead", +punctum_char("Ed. Vat. reverse virga", "vaticana_rvirga", "vatrvirgahead", true, false, false, false, false, false, false, false, false, 1.0); % pes lower punctum -punctum_char("Ed. Vat. pes lower punctum", "0vaticana_lpes", "vatlpeshead", +punctum_char("Ed. Vat. pes lower punctum", "vaticana_lpes", "vatlpeshead", false, false, false, false, true, false, true, false, false, 1.0); % pes upper punctum -punctum_char("Ed. Vat. pes upper punctum", "0vaticana_upes", "vatupeshead", +punctum_char("Ed. Vat. pes upper punctum", "vaticana_upes", "vatupeshead", false, false, false, false, true, false, false, false, false, 1.0); @@ -539,29 +539,29 @@ punctum_char("Ed. Vat. pes upper punctum", "0vaticana_upes", "vatupeshead", % punctum to avoid collision with the lower punctum note of the pes when % the upper punctum sits directly on top of the lower punctum. % -punctum_char("Ed. Vat. var pes upper punctum", "0vaticana_vupes", +punctum_char("Ed. Vat. var pes upper punctum", "vaticana_vupes", "vatvupeshead", false, false, false, false, true, false, false, false, true, 1.0); % small punctum as used in epiphonus/cephalicus -punctum_char("Ed. Vat. plica", "0vaticana_plica", "vatplicahead", +punctum_char("Ed. Vat. plica", "vaticana_plica", "vatplicahead", false, false, false, false, true, false, false, false, false, 0.5); % excentric punctum as used in epiphonus -punctum_char("Ed. Vat. epiphonus", "0vaticana_epiphonus", "vatepiphonushead", +punctum_char("Ed. Vat. epiphonus", "vaticana_epiphonus", "vatepiphonushead", false, false, false, false, false, false, true, true, false, 1.0); % excentric punctum as used in cephalicus -punctum_char("Ed. Vat. cephalicus", "0vaticana_cephalicus", +punctum_char("Ed. Vat. cephalicus", "vaticana_cephalicus", "vatcephalicushead", false, false, false, false, false, false, false, true, false, 1.0); % quilisma -fet_beginchar("Ed. Vat. quilisma", "0vaticana_quilisma", "vatquilismahead") +fet_beginchar("Ed. Vat. quilisma", "vaticana_quilisma", "vatquilismahead") save b_h,a_w; a_b:=1.54; % b_h*a_b/a_w = wd/ht b_h:=0.85; @@ -589,39 +589,39 @@ fet_beginchar("Ed. Vat. quilisma", "0vaticana_quilisma", "vatquilismahead") fet_endchar; % solesmes punctum inclinatum parvum -inclinatum_char("Solesmes punctum inclinatum parvum", "0solesmes_incl_parvum", +inclinatum_char("Solesmes punctum inclinatum parvum", "solesmes_incl_parvum", "solinclparvumhead", true, false, false); % solesmes punctum auctum ascendens -punctum_char("Solesmes punctum auctum ascendens", "0solesmes_auct_asc", +punctum_char("Solesmes punctum auctum ascendens", "solesmes_auct_asc", "solauctaschead", false, false, false, false, false, true, true, false, false, 1.0); % solesmes punctum auctum descendens -punctum_char("Solesmes punctum auctum descendens", "0solesmes_auct_desc", +punctum_char("Solesmes punctum auctum descendens", "solesmes_auct_desc", "solauctdeschead", false, false, false, false, false, true, false, false, false, 1.0); % solesmes punctum inclinatum auctum -inclinatum_char("Solesmes punctum incl. auctum", "0solesmes_incl_auctum", +inclinatum_char("Solesmes punctum incl. auctum", "solesmes_incl_auctum", "solpunctuminclinatumauctumhead", false, false, true); % solesmes stropha -inclinatum_char("Solesmes stropha", "0solesmes_stropha", +inclinatum_char("Solesmes stropha", "solesmes_stropha", "solstrophahead", false, true, false); % solesmes stropha aucta -inclinatum_char("Solesmes stropha aucta", "0solesmes_stropha_aucta", +inclinatum_char("Solesmes stropha aucta", "solesmes_stropha_aucta", "solstrophaauctahead", false, true, true); % solesmes oriscus -fet_beginchar("Solesmes oriscus", "0solesmes_oriscus", +fet_beginchar("Solesmes oriscus", "solesmes_oriscus", "soloriscushead") save b_h, a_w; a_b := 1.54; % b_h*a_b/a_w = wd/ht @@ -658,7 +658,7 @@ fet_endchar; % % inclinatum -fet_beginchar("Ed. Med. inclinatum", "0medicaea_inclinatum", +fet_beginchar("Ed. Med. inclinatum", "medicaea_inclinatum", "medinclinatumhead") save b_h, a_w; a_b := 1.54; % b_h*a_b/a_w = wd/ht @@ -724,15 +724,15 @@ def punctum_char (expr verbose_name, internal_name, mudela_name, enddef; % punctum -punctum_char("Ed. Med. punctum", "0medicaea_punctum", "medpunctumhead", +punctum_char("Ed. Med. punctum", "medicaea_punctum", "medpunctumhead", false, false); % left up-stemmed punctum -punctum_char("Ed. Med. reverse virga", "0medicaea_rvirga", "medrvirgahead", +punctum_char("Ed. Med. reverse virga", "medicaea_rvirga", "medrvirgahead", true, false); % virga (i.e. left down-stemmed punctum) -punctum_char("Ed. Med. virga", "0medicaea_virga", "medvirgahead", +punctum_char("Ed. Med. virga", "medicaea_virga", "medvirgahead", false, true); %%%%%%%% @@ -783,13 +783,13 @@ def punctum_char (expr verbose_name, internal_name, mudela_name, enddef; % punctum -punctum_char("Hufnagel punctum", "0hufnagel_punctum", "hufpunctumhead", false) +punctum_char("Hufnagel punctum", "hufnagel_punctum", "hufpunctumhead", false) % virga -punctum_char("Hufnagel virga", "0hufnagel_virga", "hufvirgahead", true) +punctum_char("Hufnagel virga", "hufnagel_virga", "hufvirgahead", true) % pes lower punctum -fet_beginchar("Hufnagel pes lower punctum", "0hufnagel_lpes", "huflpeshead") +fet_beginchar("Hufnagel pes lower punctum", "hufnagel_lpes", "huflpeshead") save b_h, a_w; a_b := 1.54; % b_h*a_b/a_w = wd/ht b_h := 0.85; diff --git a/scm/music-functions.scm b/scm/music-functions.scm index 8f30baffb6..28dfc9dc9e 100644 --- a/scm/music-functions.scm +++ b/scm/music-functions.scm @@ -13,7 +13,7 @@ (define (shift-duration-log music shift dot) "Recurse through music, adding SHIFT to duration-log and optionally a dot to any note encountered. This scales the music up by a factor - 2^shift." + 2^shift * (2 - (1/2)^dot)" (let* ((es (ly-get-mus-property music 'elements)) (e (ly-get-mus-property music 'element)) (n (ly-music-name music)) diff --git a/scm/output-lib.scm b/scm/output-lib.scm index 58ec903adc..b9d58c0147 100644 --- a/scm/output-lib.scm +++ b/scm/output-lib.scm @@ -154,8 +154,11 @@ (cons (string-append (number->string duration) "neo_mensural") "ancient") (cons (number->string duration) "music"))) (else - (cons (string-append (number->string (max 0 duration)) (symbol->string style)) - "music")))) + (if (string-match "vaticana*|hufnagel*|medicaea*" style) + (cons (symbol->string style) "ancient") + (cons (string-append (number->string (max 0 duration)) + (symbol->string style)) + "music"))))) (define (note-head-style->attachment-coordinates style duration) -- 2.39.5