Hi, all!
With the attached patch, font-family is automatically set on accidentals,
key signatures, custodes and rests. This should take some burden from
users that want to access symbols from the ancient font (and we do not
have any more to write documentation on property font-family :-)).
It also should now be easily possible to define mixtures of font styles
(as the baroque note head style already does), see scm/output-lib.scm.
Similar code for clefs and flags is still missing, but will follow.
Greetings,
Juergen
diff -Naur lilypond-1.5.72/ChangeLog lilypond-1.5.72.NEW/ChangeLog
--- lilypond-1.5.72/ChangeLog Mon Aug 12 12:55:05 2002
+++ lilypond-1.5.72.NEW/ChangeLog Tue Aug 13 01:49:02 2002
@@ -1,3 +1,14 @@
+2002-08-13 Juergen Reuter <[EMAIL PROTECTED]>
+
+ * scm/output-lib.scm, lily/key-signature-interface.cc,
+ lily/custos.cc, lily/rest.cc, lily/multi-measure-rest.cc,
+ lily/accidental.cc, lily/include/rest.hh, input/test/rests.ly:
+ automatically set property font-family on rests, accidentals, key
+ signatures and custodes.
+
+ * lily/note-head.cc: removed unnecessary style check; indentation
+ fixes
+
2002-08-12 Han-Wen Nienhuys <[EMAIL PROTECTED]>
* VERSION: 1.5.72 released
diff -Naur lilypond-1.5.72/input/test/rests.ly lilypond-1.5.72.NEW/input/test/rests.ly
--- lilypond-1.5.72/input/test/rests.ly Wed Jul 17 01:57:07 2002
+++ lilypond-1.5.72.NEW/input/test/rests.ly Tue Aug 13 01:39:59 2002
@@ -1,14 +1,35 @@
\version "1.5.68"
\score {
- \context Voice \notes\relative c {
- r\longa r\breve r1 r2 r4 r8 r16 r32 r64 r128 r128
- \property Staff.restStyle = "mensural"
- \emptyText
- r\longa^"restStyle = \"mensural\"" r\breve r1 r2 r4 r8 r16 r32 r64 r128 r128
-
-
- }
- \paper { }
- \midi { }
+ \context Staff \notes\relative c {
+ \property Staff.Rest \set #'style = #'neo_mensural
+ r\longa^"Rest style = \#'neo\\_mensural"
+ r\breve r1 r2 r4 r8 r16 r32 r64 r128 r128
+ \break
+
+ \property Staff.Rest \set #'style = #'mensural
+ r\longa^"Rest style = \#'mensural"
+ r\breve r1 r2 r4 r8 r16 r32 r64 r128 r128
+ \break
+
+ \property Staff.Rest \set #'style = #'classical
+ r\longa^"Rest style = \#'classical"
+ r\breve r1 r2 r4 r8 r16 r32 r64 r128 r128
+ \break
+
+ \property Staff.Rest \set #'style = #'default
+ r\longa^"Rest style = \#'default"
+ r\breve r1 r2 r4 r8 r16 r32 r64 r128 r128
+ \break
+ }
+ \paper {
+ \translator {
+ \StaffContext
+ % \remove Bar_engraver
+ }
+ \translator {
+ \ScoreContext
+ \remove Bar_number_engraver
+ }
+ }
}
diff -Naur lilypond-1.5.72/lily/accidental.cc lilypond-1.5.72.NEW/lily/accidental.cc
--- lilypond-1.5.72/lily/accidental.cc Fri Aug 9 11:54:56 2002
+++ lilypond-1.5.72.NEW/lily/accidental.cc Mon Aug 12 22:46:09 2002
@@ -111,45 +111,43 @@
smaller = gh_equal_p (cstyle, ly_symbol2scm ("smaller"));
}
- SCM scm_style = me->get_grob_property ("style");
- String style;
- if (gh_symbol_p (scm_style))
- {
- style = ly_scm2string (scm_symbol_to_string (scm_style));
- }
- else
- {
- /*
- preferably no name for the default style.
- */
- style = "";
- }
-
-
- Font_metric *fm = 0;
- if (smaller)
- {
- SCM ac = Font_interface::font_alist_chain (me);
- ac = gh_cons (gh_cons (gh_cons
- (ly_symbol2scm ("font-relative-size"),
- scm_int2num (-1)), SCM_EOL),
- ac);
- fm = Font_interface::get_font (me, ac);
- }
- else
- fm = Font_interface::get_default_font (me);
+ SCM style = me->get_grob_property ("style");
Molecule mol;
for (SCM s = me->get_grob_property ("accidentals");
gh_pair_p (s); s= gh_cdr (s))
{
SCM entry = gh_car (s);
-
-
- Molecule acc (fm->find_by_name (String ("accidentals-") +
- style +
- to_string (gh_scm2int(entry))));
-
+ SCM exp = scm_list_n (ly_symbol2scm ("find-accidental-symbol"), entry,
+ ly_quote_scm (style),
+ SCM_UNDEFINED);
+ SCM scm_pair = scm_primitive_eval (exp);
+ SCM scm_font_char = ly_car (scm_pair);
+ SCM scm_font_family = ly_cdr (scm_pair);
+ String font_char = "accidentals-" + 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 ()));
+
+ Font_metric *fm = 0;
+ if (smaller)
+ {
+ SCM ac = Font_interface::font_alist_chain (me);
+ ac = gh_cons (gh_cons (gh_cons
+ (ly_symbol2scm ("font-relative-size"),
+ scm_int2num (-1)), SCM_EOL),
+ ac);
+ fm = Font_interface::get_font (me, ac);
+ }
+ else
+ fm = Font_interface::get_default_font (me);
+
+ Molecule acc = fm->find_by_name (font_char);
+ if (acc.empty_b())
+ {
+ me->warning (_f ("Symbol not found, ", font_char.to_str0()));
+ }
+
mol.add_at_edge (X_AXIS, RIGHT, acc, 0.1);
}
diff -Naur lilypond-1.5.72/lily/custos.cc lilypond-1.5.72.NEW/lily/custos.cc
--- lilypond-1.5.72/lily/custos.cc Fri Jul 26 12:26:58 2002
+++ lilypond-1.5.72.NEW/lily/custos.cc Mon Aug 12 23:21:14 2002
@@ -8,10 +8,6 @@
/* TODO:
- - merge create_ledger_line () and Note_head::create_ledger_line ()
-
- - rewrite create_ledger_line () to support short and thin ledger lines
-
- do not show if a clef change immediately follows in the next line
- decide: do or do not print custos if the next line starts with a rest
@@ -35,80 +31,83 @@
Custos::brew_molecule (SCM smob)
{
Item *me = (Item *)unsmob_grob (smob);
- SCM scm_style = me->get_grob_property ("style");
+ SCM style = me->get_grob_property ("style");
- if (gh_symbol_p (scm_style))
- {
- String style = ly_scm2string (scm_symbol_to_string (scm_style));
+ /*
+ * Shall we use a common custos font character regardless if on
+ * staffline or not, or shall we use individual font characters
+ * for both cases?
+ */
+ bool adjust =
+ to_boolean (me->get_grob_property ("adjust-if-on-staffline"));
+
+ int neutral_pos;
+ SCM ntr_pos = me->get_grob_property ("neutral-position");
+ if (gh_number_p (ntr_pos))
+ neutral_pos = gh_scm2int (ntr_pos);
+ else
+ neutral_pos = 0;
- /*
- * Shall we use a common custos font character regardless if on
- * staffline or not, or shall we use individual font characters
- * for both cases?
- */
- bool adjust =
- to_boolean (me->get_grob_property ("adjust-if-on-staffline"));
-
- String idx = "custodes-" + style + "-";
-
- int neutral_pos;
- SCM ntr_pos = me->get_grob_property ("neutral-position");
- if (gh_number_p (ntr_pos))
- neutral_pos = gh_scm2int (ntr_pos);
- else
- neutral_pos = 0;
+ Direction neutral_direction =
+ to_dir (me->get_grob_property ("neutral-direction"));
- Direction neutral_direction =
- to_dir (me->get_grob_property ("neutral-direction"));
+ int pos = (int)rint (Staff_symbol_referencer::get_position (me));
+ int sz = Staff_symbol_referencer::line_count (me)-1;
- int pos = (int)rint (Staff_symbol_referencer::get_position (me));
- int sz = Staff_symbol_referencer::line_count (me)-1;
+ String idx;
+ if (pos < neutral_pos)
+ idx = "u";
+ else if (pos > neutral_pos)
+ idx = "d";
+ else if (neutral_direction == UP)
+ idx = "u";
+ else if (neutral_direction == DOWN)
+ idx = "d";
+ else // auto direction; not yet supported -> use "d"
+ idx = "d";
- if (pos < neutral_pos)
- idx += "u";
- else if (pos > neutral_pos)
- idx += "d";
- else if (neutral_direction == UP)
- idx += "u";
- else if (neutral_direction == DOWN)
- idx += "d";
- else // auto direction; not yet supported -> use "d"
- idx += "d";
-
- if (adjust)
- {
- idx += (((pos ^ sz) & 0x1) == 0) ? "1" : "0";
- }
- else
- {
- idx += "2";
- }
+ if (adjust)
+ {
+ idx += (((pos ^ sz) & 0x1) == 0) ? "1" : "0";
+ }
+ else
+ {
+ idx += "2";
+ }
- Molecule molecule
- = Font_interface::get_default_font (me)->find_by_name (idx);
- if (molecule.empty_b ())
- {
- String message = "no such custos: `" + idx + "'";
- warning (_ (message.to_str0 ()));
- return SCM_EOL;
- }
- else
- {
- // add ledger lines
- int pos = (int)rint (Staff_symbol_referencer::get_position (me));
- int interspaces = Staff_symbol_referencer::line_count (me)-1;
- if (abs (pos) - interspaces > 1)
- {
- Molecule ledger_lines =
- Note_head::brew_ledger_lines (me, pos, interspaces,
- molecule.extent (X_AXIS), true);
- molecule.add_molecule (ledger_lines);
- }
- return molecule.smobbed_copy ();
- }
+ SCM exp = scm_list_n (ly_symbol2scm ("find-custos-symbol"),
+ ly_quote_scm (ly_symbol2scm(idx.to_str0 ())),
+ ly_quote_scm (style),
+ SCM_UNDEFINED);
+ SCM scm_pair = scm_primitive_eval (exp);
+ SCM scm_font_char = ly_car (scm_pair);
+ SCM scm_font_family = ly_cdr (scm_pair);
+ String font_char = "custodes-" + 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 m =
+ Font_interface::get_default_font (me)->find_by_name (font_char);
+
+ if (m.empty_b())
+ {
+ String message = "no such custos: `" + font_char + "'";
+ me->warning (_ (message.to_str0 ()));
+ return SCM_EOL;
}
else
- return SCM_EOL;
+ {
+ // add ledger lines
+ int pos = (int)rint (Staff_symbol_referencer::get_position (me));
+ int interspaces = Staff_symbol_referencer::line_count (me)-1;
+ if (abs (pos) - interspaces > 1)
+ {
+ Molecule ledger_lines =
+ Note_head::brew_ledger_lines (me, pos, interspaces,
+ m.extent (X_AXIS), true);
+ m.add_molecule (ledger_lines);
+ }
+ return m.smobbed_copy ();
+ }
}
diff -Naur lilypond-1.5.72/lily/include/rest.hh
lilypond-1.5.72.NEW/lily/include/rest.hh
--- lilypond-1.5.72/lily/include/rest.hh Fri Feb 1 19:16:23 2002
+++ lilypond-1.5.72.NEW/lily/include/rest.hh Tue Aug 13 00:39:33 2002
@@ -17,7 +17,8 @@
public:
DECLARE_SCHEME_CALLBACK (after_line_breaking, (SCM ));
static bool has_interface (Grob*);
- static String glyph_name (Grob*, int, String);
+
+ static bool is_ledgered_rest (Grob *, int);
static SCM brew_internal_molecule (SCM);
DECLARE_SCHEME_CALLBACK (extent_callback, (SCM,SCM));
DECLARE_SCHEME_CALLBACK (brew_molecule, (SCM ));
diff -Naur lilypond-1.5.72/lily/key-signature-interface.cc
lilypond-1.5.72.NEW/lily/key-signature-interface.cc
--- lilypond-1.5.72/lily/key-signature-interface.cc Fri Jul 26 12:26:59 2002
+++ lilypond-1.5.72.NEW/lily/key-signature-interface.cc Mon Aug 12 22:36:24 2002
@@ -100,17 +100,7 @@
Real inter = Staff_symbol_referencer::staff_space (me)/2.0;
- SCM scm_style = me->get_grob_property ("style");
- String style;
- if (gh_symbol_p (scm_style))
- {
- style = ly_scm2string (scm_symbol_to_string (scm_style));
- }
- else
- {
- style = "";
- }
-
+ SCM style = me->get_grob_property ("style");
SCM newas = me->get_grob_property ("new-accidentals");
Molecule mol;
@@ -127,11 +117,25 @@
for (SCM s = newas; gh_pair_p (s); s = ly_cdr (s))
{
SCM what = ly_caar (s);
- int alter = gh_scm2int (ly_cdar (s));
+ SCM alter = ly_cdar (s);
+ SCM exp = scm_list_n (ly_symbol2scm ("find-accidental-symbol"), alter,
+ ly_quote_scm (style),
+ SCM_UNDEFINED);
+ SCM scm_pair = scm_primitive_eval (exp);
+ SCM scm_font_char = ly_car (scm_pair);
+ SCM scm_font_family = ly_cdr (scm_pair);
+ String font_char = "accidentals-" + 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 m =
+ Font_interface::get_default_font (me)->find_by_name (font_char);
+ if (m.empty_b())
+ {
+ me->warning (_f ("Symbol not found, ", font_char.to_str0()));
+ }
+
int pos = alteration_pos (what, alter, c0p);
-
- Molecule m = Font_interface::get_default_font (me)->
- find_by_name (String ("accidentals-") + style + to_string (alter));
m.translate_axis (pos * inter, Y_AXIS);
mol.add_at_edge (X_AXIS, LEFT, m, 0);
}
@@ -153,9 +157,21 @@
Molecule natural;
if (gh_pair_p (old))
- natural=Font_interface::get_default_font (me)->
- find_by_name (String ("accidentals-") + style + String ("0"));
-
+ {
+ SCM exp = scm_list_n (ly_symbol2scm ("find-accidental-symbol"),
+gh_int2scm(0),
+ ly_quote_scm (style),
+ SCM_UNDEFINED);
+ SCM scm_pair = scm_primitive_eval (exp);
+ SCM scm_font_char = ly_car (scm_pair);
+ SCM scm_font_family = ly_cdr (scm_pair);
+ String font_char = "accidentals-" + 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
+()));
+ natural =
+ Font_interface::get_default_font (me)->find_by_name (font_char);
+ }
+
for (; gh_pair_p (old); old = ly_cdr (old))
{
SCM found = scm_assoc (ly_caar (old), newas);
diff -Naur lilypond-1.5.72/lily/multi-measure-rest.cc
lilypond-1.5.72.NEW/lily/multi-measure-rest.cc
--- lilypond-1.5.72/lily/multi-measure-rest.cc Mon Aug 5 11:37:21 2002
+++ lilypond-1.5.72.NEW/lily/multi-measure-rest.cc Tue Aug 13 00:41:38 2002
@@ -165,7 +165,15 @@
if (measures == 1)
{
- Molecule s = musfont->find_by_name (Rest::glyph_name (me, 0, ""));
+ bool ledgered = Rest::is_ledgered_rest (me, 0);
+ SCM exp = scm_list_n (ly_symbol2scm ("find-rest-symbol"),
+ gh_int2scm(0),
+ gh_bool2scm(ledgered),
+ ly_quote_scm (ly_symbol2scm("")),
+ SCM_UNDEFINED);
+ SCM scm_font_char = ly_car (scm_primitive_eval (exp));
+ String font_char = "rests-" + ly_scm2string (scm_font_char);
+ Molecule s = musfont->find_by_name (font_char);
/*
ugh.
diff -Naur lilypond-1.5.72/lily/note-head.cc lilypond-1.5.72.NEW/lily/note-head.cc
--- lilypond-1.5.72/lily/note-head.cc Mon Aug 5 11:37:21 2002
+++ lilypond-1.5.72.NEW/lily/note-head.cc Mon Aug 12 23:39:48 2002
@@ -105,11 +105,7 @@
Molecule
internal_brew_molecule (Grob *me, bool ledger_take_space)
{
- SCM style = me->get_grob_property ("style");
- if (!gh_symbol_p (style))
- {
- return Molecule();
- }
+ SCM style = me->get_grob_property ("style");
/*
ugh: use gh_call () / scm_apply ().
@@ -126,12 +122,12 @@
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 not found, ", font_char.to_str0()));
}
int interspaces = Staff_symbol_referencer::line_count (me)-1;
diff -Naur lilypond-1.5.72/lily/rest.cc lilypond-1.5.72.NEW/lily/rest.cc
--- lilypond-1.5.72/lily/rest.cc Wed Jul 31 13:14:52 2002
+++ lilypond-1.5.72.NEW/lily/rest.cc Tue Aug 13 01:16:15 2002
@@ -45,14 +45,10 @@
return SCM_UNSPECIFIED;
}
-/*
- make this function easily usable in C++
- */
-
-String
-Rest::glyph_name (Grob * me, int balltype, String style)
+bool
+Rest::is_ledgered_rest (Grob *me, int balltype)
{
- bool ledger_b =false;
+ bool ledgered_b = false;
if (balltype == 0 || balltype == 1)
{
@@ -63,48 +59,42 @@
Figure out when the rest is far enough outside the staff. This
could bemore generic, but hey, we understand this even after
dinner.
-
*/
- ledger_b = ledger_b || (balltype == 0 && (pos >= rad +2 || pos < -rad ));
- ledger_b = ledger_b || (balltype == 1 &&
- (pos <= -rad -2 || pos > rad));
+ ledgered_b |= (balltype == 0 && (pos >= +rad + 2 || pos < -rad));
+ ledgered_b |= (balltype == 1 && (pos <= -rad - 2 || pos > +rad));
}
- return ("rests-") + to_string (balltype)
- + (ledger_b ? "o" : "") + style;
+ return ledgered_b;
}
-
-
-
MAKE_SCHEME_CALLBACK (Rest,brew_molecule,1);
SCM
Rest::brew_internal_molecule (SCM smob)
{
Grob* me = unsmob_grob (smob);
-
- SCM balltype_scm = me->get_grob_property ("duration-log");
- if (!gh_number_p (balltype_scm))
- return Molecule ().smobbed_copy ();
-
- int balltype = gh_scm2int (balltype_scm);
-
- String style;
- SCM style_sym =me->get_grob_property ("style");
- if (gh_symbol_p (style_sym))
+ SCM balltype = me->get_grob_property ("duration-log");
+ bool ledgered = is_ledgered_rest (me, gh_scm2int (balltype));
+ SCM style = me->get_grob_property ("style");
+ SCM exp = scm_list_n (ly_symbol2scm ("find-rest-symbol"),
+ balltype,
+ gh_bool2scm(ledgered),
+ ly_quote_scm (style),
+ SCM_UNDEFINED);
+ SCM scm_pair = scm_primitive_eval (exp);
+ SCM scm_font_char = ly_car (scm_pair);
+ SCM scm_font_family = ly_cdr (scm_pair);
+ String font_char = "rests-" + 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())
{
- style = ly_scm2string (scm_symbol_to_string (style_sym));
+ me->warning (_f ("Symbol not found, ", font_char.to_str0()));
}
-
- for(;;) {
- String idx = glyph_name (me, balltype, style);
- Molecule res = Font_interface::get_default_font (me)->find_by_name (idx);
- if(res.empty_b() && style!="")
- style="";
- else
- return res.smobbed_copy();
- }
+ return out.smobbed_copy();
}
SCM
diff -Naur lilypond-1.5.72/scm/output-lib.scm lilypond-1.5.72.NEW/scm/output-lib.scm
--- lilypond-1.5.72/scm/output-lib.scm Sat Aug 10 00:47:10 2002
+++ lilypond-1.5.72.NEW/scm/output-lib.scm Tue Aug 13 01:34:29 2002
@@ -125,7 +125,6 @@
(cons (string-append (number->string (max 0 duration)) (symbol->string style))
"music"))))
-
(define (note-head-style->attachment-coordinates style duration)
"Return pair (X . Y), containing multipliers for the note head
bounding box, where to attach the stem. e.g.: X==0 means horizontally
@@ -155,6 +154,94 @@
;; this also works for easy notation.
'(1.0 . 0.0)
)))
+
+(define (find-rest-symbol balltype ledgered style)
+ (case style
+ ((mensural)
+ (if (> balltype 4)
+ ;; 32th/64th/128th mensural rests: revert to "music" font
+ (cons (number->string balltype) "music")
+ (cons (string-append (number->string balltype) style) "ancient")))
+ ((neo_mensural)
+ (if (> balltype 4)
+ ;; 32th/64th/128th neo_mensural rests: revert to "music" font
+ (cons (number->string balltype) "music")
+ (cons (string-append (number->string balltype) style) "music")))
+ ((classical)
+ (cons
+ (if (= balltype 2)
+ "2classical"
+ (if (eq? ledgered #t)
+ (string-append (number->string balltype) "o")
+ (number->string balltype)))
+ "music"))
+ (else
+ (cons
+ (if (eq? ledgered #t)
+ (string-append (number->string balltype) "o")
+ (number->string balltype))
+ "music"))))
+
+(define (find-custos-symbol idx style)
+ (case style
+ ((hufnagel)
+ (cons (string-append style "-" idx) "ancient"))
+ ((medicaea)
+ (cons (string-append style "-" idx) "ancient"))
+ ((vaticana)
+ (cons (string-append style "-" idx) "ancient"))
+ ((mensural)
+ (cons (string-append style "-" idx) "ancient"))
+ ((neo_mensural) ;; currently same as mensural
+ (cons (string-append "mensural-" idx) "ancient"))
+ (else ;; default: use mensural style
+ (cons (string-append "mensural-" idx) "ancient"))))
+
+(define (find-accidental-symbol alter style)
+ ;; There are still some accidentals missing -- some of them simply
+ ;; because they never existed (e.g. there was nothing like a
+ ;; double-sharp in gregorian chant). For the sake of completeness,
+ ;; in such cases we fall back to glyphs of similar styles where
+ ;; available, or -- as a last resort -- use the modern variants of
+ ;; the "music" font.
+ (case style
+ ((hufnagel)
+ (case alter
+ ((-2) (cons "-2" "music"))
+ ((-1) (cons "hufnagel-1" "ancient"))
+ ((0) (cons "vaticana0" "ancient"))
+ ((1) (cons "mensural1" "ancient"))
+ ((2) (cons "2" "music"))))
+ ((medicaea)
+ (case alter
+ ((-2) (cons "-2" "music"))
+ ((-1) (cons "medicaea-1" "ancient"))
+ ((0) (cons "vaticana0" "ancient"))
+ ((1) (cons "mensural1" "ancient"))
+ ((2) (cons "2" "music"))))
+ ((vaticana)
+ (case alter
+ ((-2) (cons "-2" "music"))
+ ((-1) (cons "vaticana-1" "ancient"))
+ ((0) (cons "vaticana0" "ancient"))
+ ((1) (cons "mensural1" "ancient"))
+ ((2) (cons "2" "music"))))
+ ((mensural)
+ (case alter
+ ((-2) (cons "-2" "music"))
+ ((-1) (cons "mensural-1" "ancient"))
+ ((0) (cons "vaticana0" "ancient"))
+ ((1) (cons "mensural1" "ancient"))
+ ((2) (cons "2" "music"))))
+ ((neo_mensural) ;; currently same as default
+ (case alter
+ ((-2) (cons "-2" "music"))
+ ((-1) (cons "-1" "music"))
+ ((0) (cons "0" "music"))
+ ((1) (cons "1" "music"))
+ ((2) (cons "2" "music"))))
+ (else ;; default: use "music" font
+ (cons (number->string alter) "music"))))
(define (find-timesig-symbol nom denom style)
(case style