2004-12-12 Han-Wen Nienhuys <hanwen@xs4all.nl>
+ * lily/open-type-font.cc (make_index_to_charcode_map): new method.
+
* mf/feta-autometric.mf (code): remove tex name from fet_beginchar.
* lily/open-type-font.cc (load_scheme_table): new function
#ifndef OPEN_TYPE_FONT_HH
#define OPEN_TYPE_FONT_HH
+#include <map>
#include "freetype.hh"
#include "font-metric.hh"
+typedef std::map<FT_UInt, FT_ULong> Index_to_charcode_map;
+
class Open_type_font : public Font_metric
{
FT_Face face_; /* handle to face object */
SCM lily_character_table_;
SCM lily_global_table_;
-
- Open_type_font();
+ Index_to_charcode_map index_to_charcode_map_;
+ Open_type_font (FT_Face);
public:
static SCM make_otf (String);
virtual ~Open_type_font();
*/
+#include <map>
#include <stdio.h>
#include <freetype/tttables.h>
return tab;
}
+Index_to_charcode_map
+make_index_to_charcode_map (FT_Face face)
+{
+ Index_to_charcode_map m;
+ FT_ULong charcode;
+ FT_UInt gindex;
+
+ charcode = FT_Get_First_Char( face, &gindex );
+ while ( gindex != 0 )
+ {
+ m[gindex] = charcode;
+ charcode = FT_Get_Next_Char( face, charcode, &gindex );
+ }
+ return m;
+}
+
SCM
Open_type_font::make_otf (String str)
{
- Open_type_font * otf = new Open_type_font;
+ FT_Face face;
int error_code = FT_New_Face(freetype2_library, str.to_str0(),
- 0, &(otf->face_));
+ 0, &face);
if (error_code == FT_Err_Unknown_File_Format)
{
}
+ Open_type_font * otf = new Open_type_font (face);
- otf->lily_character_table_ = load_scheme_table ("LILC", otf->face_);
- otf->lily_global_table_ = load_scheme_table ("LILY", otf->face_);
-
+
return otf->self_scm ();
}
-Open_type_font::Open_type_font()
+Open_type_font::Open_type_font(FT_Face)
{
lily_character_table_ = SCM_EOL;
lily_global_table_ = SCM_EOL;
+
+ lily_character_table_ = load_scheme_table ("LILC", face_);
+ lily_global_table_ = load_scheme_table ("LILY", face_);
+ index_to_charcode_map_ = make_index_to_charcode_map (face_);
}
void
#include "staff-spacing.hh"
#include "note-spacing.hh"
#include "global-context.hh"
+#include "open-type-font.hh"
/*
TODO: the column creation logic is rather hairy. Revise it.
%% +1 is needed because fet_beginchar increments after dumping the strings.
fet_beginchar ("brace number " & (decimal (code + 1)),
- "brace" & abc_encode_int (code - 64),
- "brace" & abc_encode_int (code - 64))
+ "brace" & decimal code)
set_char_box (0, width#, height#/2, height#/2);
fi;
draw_hufnagel_do_fa_clef((0,0), 1.0);
fet_endchar;
-fet_beginchar("Hufnagel do/fa clef", "hufnagel-do-fa_change",
- "chufnageldofaclef")
+fet_beginchar("Hufnagel do/fa clef", "hufnagel-do-fa_change")
draw_hufnagel_do_fa_clef((0,0), .8);
fet_endchar;
%
% parameterized hufnagel custos
-def custos_hufnagel(expr verbose_name, internal_name, ly_name,
+def custos_hufnagel(expr verbose_name, internal_name,
direction, staffline_adjustment) =
- fet_beginchar(verbose_name, internal_name, ly_name)
+ fet_beginchar(verbose_name, internal_name)
save alpha, dalpha, ht, wd, stem_ht, pen_size;
ht# = noteheight#;
wd#/ht# = 0.6;
enddef;
% custos hufnagel, stem up, between staff lines
-custos_hufnagel("Custos Hufnagel", "hufnagel-u0", "hufnagelu0",
+custos_hufnagel("Custos Hufnagel", "hufnagel-u0",
dir_up, between_staff_lines);
% custos hufnagel, stem up, on staff line
-custos_hufnagel("Custos Hufnagel", "hufnagel-u1", "hufnagelu1",
+custos_hufnagel("Custos Hufnagel", "hufnagel-u1",
dir_up, on_staff_line);
% custos hufnagel, stem up, anywhere
-custos_hufnagel("Custos Hufnagel", "hufnagel-u2", "hufnagelu2",
+custos_hufnagel("Custos Hufnagel", "hufnagel-u2",
dir_up, anywhere);
% custos hufnagel, stem down, between staff lines
-custos_hufnagel("Reverse Custos Hufnagel", "hufnagel-d0", "hufnageld0",
+custos_hufnagel("Reverse Custos Hufnagel", "hufnagel-d0",
dir_down, between_staff_lines);
% custos hufnagel, stem down, on staff line
-custos_hufnagel("Reverse Custos Hufnagel", "hufnagel-d1", "hufnageld1",
+custos_hufnagel("Reverse Custos Hufnagel", "hufnagel-d1",
dir_down, on_staff_line);
% custos hufnagel, stem down, anywhere
-custos_hufnagel("Reverse Custos Hufnagel", "hufnagel-d2", "hufnageld2",
+custos_hufnagel("Reverse Custos Hufnagel", "hufnagel-d2",
dir_down, anywhere);
%%%%%%%%
%
%
-def custos_medicaea(expr verbose_name, internal_name, ly_name,
+def custos_medicaea(expr verbose_name, internal_name,
direction, staffline_adjustment) =
- fet_beginchar(verbose_name, internal_name, ly_name)
+ fet_beginchar(verbose_name, internal_name)
save ht, wd, stem_ht;
ht# = noteheight#;
enddef;
% custos medicaea, stem up, between staff lines
-custos_medicaea("Custos Med.", "medicaea-u0", "medicaeau0",
+custos_medicaea("Custos Med.", "medicaea-u0",
dir_up, between_staff_lines);
% custos medicaea, stem up, on staff line
-custos_medicaea("Custos Med.", "medicaea-u1", "medicaeau1",
+custos_medicaea("Custos Med.", "medicaea-u1",
dir_up, on_staff_line);
% custos medicaea, stem up, anywhere
-custos_medicaea("Custos Med.", "medicaea-u2", "medicaeau2",
+custos_medicaea("Custos Med.", "medicaea-u2",
dir_up, anywhere);
% custos medicaea, stem down, between staff lines
-custos_medicaea("Reverse Custos Med.", "medicaea-d0", "medicaead0",
+custos_medicaea("Reverse Custos Med.", "medicaea-d0",
dir_down, between_staff_lines);
% custos medicaea, stem down, on staff line
-custos_medicaea("Reverse Custos Med.", "medicaea-d1", "medicaead1",
+custos_medicaea("Reverse Custos Med.", "medicaea-d1",
dir_down, on_staff_line);
% custos medicaea, stem down, anywhere
-custos_medicaea("Reverse Custos Med.", "medicaea-d2", "medicaead2",
+custos_medicaea("Reverse Custos Med.", "medicaea-d2",
dir_down, anywhere);
%%%%%%%%
%
%
-def custos_vaticana(expr verbose_name, internal_name, ly_name,
+def custos_vaticana(expr verbose_name, internal_name,
direction, staffline_adjustment) =
- fet_beginchar(verbose_name, internal_name, ly_name)
+ fet_beginchar(verbose_name, internal_name)
save ht, wd, u_offs, l_offs, stem_size, stem_end;
save pen_ht, l_shift, curve_ht, bend_ht;
ht# = noteheight#;
enddef;
% custos vaticana, stem up, between staff lines
-custos_vaticana("Custos Ed. Vat.", "vaticana-u0", "vaticanau0",
+custos_vaticana("Custos Ed. Vat.", "vaticana-u0",
dir_up, between_staff_lines);
% custos vaticana, stem up, on staff line
-custos_vaticana("Custos Ed. Vat.", "vaticana-u1", "vaticanau1",
+custos_vaticana("Custos Ed. Vat.", "vaticana-u1",
dir_up, on_staff_line);
% custos vaticana, stem up, anywhere
-custos_vaticana("Custos Ed. Vat.", "vaticana-u2", "vaticanau2",
+custos_vaticana("Custos Ed. Vat.", "vaticana-u2",
dir_up, anywhere);
% custos vaticana, stem down, between staff lines
-custos_vaticana("Reverse Custos Ed. Vat.", "vaticana-d0", "vaticanad0",
+custos_vaticana("Reverse Custos Ed. Vat.", "vaticana-d0",
dir_down, between_staff_lines);
% custos vaticana, stem down, on_staff_line
-custos_vaticana("Reverse Custos Ed. Vat.", "vaticana-d1", "vaticanad1",
+custos_vaticana("Reverse Custos Ed. Vat.", "vaticana-d1",
dir_down, on_staff_line);
% custos vaticana, stem down, anywhere
-custos_vaticana("Reverse Custos Ed. Vat.", "vaticana-d2", "vaticanad2",
+custos_vaticana("Reverse Custos Ed. Vat.", "vaticana-d2",
dir_down, anywhere);
%%%%%%%%
%
%
-def custos_mensural(expr verbose_name, internal_name, ly_name,
+def custos_mensural(expr verbose_name, internal_name,
direction, staffline_adjustment) =
- fet_beginchar(verbose_name, internal_name, ly_name)
+ fet_beginchar(verbose_name, internal_name)
save alpha, dalpha, ht, wd, stem_ht;
ht# = noteheight#;
wd#/ht# = 1.2;
enddef;
% custos mensural, stem up, between staff lines
-custos_mensural("Custos Mensural", "mensural-u0", "mensuralu0",
+custos_mensural("Custos Mensural", "mensural-u0",
dir_up, between_staff_lines);
% custos mensural, stem up, on staff line
-custos_mensural("Custos Mensural", "mensural-u1", "mensuralu1",
+custos_mensural("Custos Mensural", "mensural-u1",
dir_up, on_staff_line);
% custos mensural, stem up, anywhere
-custos_mensural("Custos Mensural", "mensural-u2", "mensuralu2",
+custos_mensural("Custos Mensural", "mensural-u2",
dir_up, anywhere);
% custos mensural, stem down, between staff lines
-custos_mensural("Reverse Custos Mensural", "mensural-d0", "mensurald0",
+custos_mensural("Reverse Custos Mensural", "mensural-d0",
dir_down, between_staff_lines);
% custos mensural, stem down, on staff line
-custos_mensural("Reverse Custos Mensural", "mensural-d1", "mensurald1",
+custos_mensural("Reverse Custos Mensural", "mensural-d1",
dir_down, on_staff_line);
% custos mensural, stem down, anywhere
-custos_mensural("Reverse Custos Mensural", "mensural-d2", "mensurald2",
+custos_mensural("Reverse Custos Mensural", "mensural-d2",
dir_down, anywhere);
fet_endgroup ("custodes")
%
fet_beginchar("Harmonic notehead (Neo-mensural open)",
- "0harmonic","harmonichead")
+ "0harmonic")
draw_neomensural_open_head (1.3 staff_space#, 1.3 noteheight#);
charwx := head_width#;
%
% parameterized punctum
-def punctum_char (expr verbose_name, internal_name, ly_name,
+def punctum_char (expr verbose_name, internal_name,
left_stem, right_stem, linea, cavum,
straight, auctum, direction_up, excentric, up_shift, down_shift, mag) =
- fet_beginchar(verbose_name, internal_name, ly_name)
+ fet_beginchar(verbose_name, internal_name)
save b_h, a_w;
a_b := 1.54; % b_h*a_b/a_w = wd/ht
b_h := 0.85;
enddef;
% parameterized punctum inclinatum
-def inclinatum_char(expr verbose_name, internal_name, ly_name,
+def inclinatum_char(expr verbose_name, internal_name,
small, stropha, auctum) =
- fet_beginchar(verbose_name, internal_name, ly_name)
+ fet_beginchar(verbose_name, internal_name)
save ht, alpha;
alpha# = 35;
if small:
enddef;
% punctum
-punctum_char("Ed. Vat. punctum", "vaticana-punctum", "vatpunctumhead",
+punctum_char("Ed. Vat. punctum", "vaticana-punctum",
false, false, false, false, false,
false, false, false, false, false, 1.0);
% punctum cavum (for OpusTeX compatibility)
punctum_char("Ed. Vat. punctum cavum", "vaticana-punctum-cavum",
- "vatpunctumcavumhead",
false, false, false, true, false,
false, false, false, false, false, 1.0);
% linea punctum (for OpusTeX compatibility)
punctum_char("Ed. Vat. linea punctum", "vaticana-linea-punctum",
- "vatlineapunctumhead",
false, false, true, false, false,
false, false, false, false, false, 1.0);
% linea punctum cavum (for OpusTeX compatibility)
punctum_char("Ed. Vat. linea punctum cavum", "vaticana-linea-punctum-cavum",
- "vatlineapunctumcavumhead",
false, false, true, true, false,
false, false, false, false, false, 1.0);
% punctum inclinatum
inclinatum_char("Ed. Vat. inclinatum", "vaticana-inclinatum",
- "vatinclinatumhead",
false, false, false);
% pes lower punctum
-punctum_char("Ed. Vat. pes lower punctum", "vaticana-lpes", "vatlpeshead",
+punctum_char("Ed. Vat. pes lower punctum", "vaticana-lpes",
false, false, false, false, true,
false, true, false, false, false, 1.0);
% pes lower punctum
-punctum_char("Ed. Vat. pes var lower punctum", "vaticana-vlpes", "vatvlpeshead",
+punctum_char("Ed. Vat. pes var lower punctum", "vaticana-vlpes",
false, false, false, false, true,
false, true, false, false, true, 1.0);
% pes upper punctum
-punctum_char("Ed. Vat. pes upper punctum", "vaticana-upes", "vatupeshead",
+punctum_char("Ed. Vat. pes upper punctum", "vaticana-upes",
false, false, false, false, true,
false, false, false, false, false, 1.0);
% punctum sits directly on top of the lower punctum.
%
punctum_char("Ed. Vat. var pes upper punctum", "vaticana-vupes",
- "vatvupeshead",
false, false, false, false, true,
false, false, false, true, false, 1.0);
% small punctum as used in epiphonus
-punctum_char("Ed. Vat. plica", "vaticana-plica", "vatplicahead",
+punctum_char("Ed. Vat. plica", "vaticana-plica",
false, false, false, false, false,
false, false, false, false, false, 0.6);
% excentric punctum as used in epiphonus
-punctum_char("Ed. Vat. epiphonus", "vaticana-epiphonus", "vatepiphonushead",
+punctum_char("Ed. Vat. epiphonus", "vaticana-epiphonus",
false, false, false, false, false,
false, true, true, false, false, 1.0);
% avoid collision with the plica head when the plica sits directly on
% top of the lower head.
%
-punctum_char("Ed. Vat. var epiphonus", "vaticana-vepiphonus", "vatvepiphonushead",
+punctum_char("Ed. Vat. var epiphonus", "vaticana-vepiphonus",
false, false, false, false, false,
false, true, true, false, true, 1.0);
% small punctum as used in cephalicus
-punctum_char("Ed. Vat. rev. plica", "vaticana-reverse-plica", "vatrplicahead",
+punctum_char("Ed. Vat. rev. plica", "vaticana-reverse-plica",
false, false, false, false, false,
false, true, false, false, false, 0.6);
% excentric punctum as used in cephalicus; without left stem
punctum_char("Ed. Vat. cephalicus", "vaticana-inner-cephalicus",
- "vatinnercephalicushead",
false, false, false, false, false,
false, false, true, false, false, 1.0);
% excentric punctum as used in cephalicus; with left stem
punctum_char("Ed. Vat. cephalicus", "vaticana-cephalicus",
- "vatcephalicushead",
true, false, false, false, false,
false, false, true, false, false, 1.0);
% solesmes punctum inclinatum parvum
inclinatum_char("Solesmes punctum inclinatum parvum", "solesmes-incl-parvum",
- "solinclparvumhead",
true, false, false);
% solesmes punctum auctum ascendens
punctum_char("Solesmes punctum auctum ascendens", "solesmes-auct-asc",
- "solauctaschead",
false, false, false, false, false,
true, true, false, false, false, 1.0);
% solesmes punctum auctum descendens
punctum_char("Solesmes punctum auctum descendens", "solesmes-auct-desc",
- "solauctdeschead",
false, false, false, false, false,
true, false, false, false, false, 1.0);
% solesmes punctum inclinatum auctum
inclinatum_char("Solesmes punctum incl. auctum", "solesmes-incl-auctum",
- "solpunctuminclinatumauctumhead",
false, false, true);
% solesmes stropha
inclinatum_char("Solesmes stropha", "solesmes-stropha",
- "solstrophahead",
false, true, false);
% solesmes stropha aucta
inclinatum_char("Solesmes stropha aucta", "solesmes-stropha-aucta",
- "solstrophaauctahead",
false, true, true);
% solesmes oriscus
-fet_beginchar("Solesmes oriscus", "solesmes-oriscus",
- "soloriscushead")
+fet_beginchar("Solesmes oriscus", "solesmes-oriscus")
save b_h, a_w;
a_b := 1.54; % b_h*a_b/a_w = wd/ht
b_h := 0.85;
%
% inclinatum
-fet_beginchar("Ed. Med. inclinatum", "medicaea-inclinatum",
- "medinclinatumhead")
+fet_beginchar("Ed. Med. inclinatum", "medicaea-inclinatum")
draw_diamond_head (1.2staff_space#, 0, 0, 35, false);
fet_endchar;
% parametrized punctum
-def punctum_char (expr verbose_name, internal_name, ly_name,
+def punctum_char (expr verbose_name, internal_name,
left_up_stem, left_down_stem) =
- fet_beginchar(verbose_name, internal_name, ly_name)
+ fet_beginchar(verbose_name, internal_name)
save a, beta, ht, wd;
ht# = 2 staff_space#;
enddef;
% punctum
-punctum_char("Ed. Med. punctum", "medicaea-punctum", "medpunctumhead",
+punctum_char("Ed. Med. punctum", "medicaea-punctum",
false, false);
% left up-stemmed punctum
-punctum_char("Ed. Med. reverse virga", "medicaea-rvirga", "medrvirgahead",
+punctum_char("Ed. Med. reverse virga", "medicaea-rvirga",
true, false);
% virga (i.e. left down-stemmed punctum)
-punctum_char("Ed. Med. virga", "medicaea-virga", "medvirgahead",
+punctum_char("Ed. Med. virga", "medicaea-virga",
false, true);
%%%%%%%%
% punctum
% parametrized punctum
-def punctum_char (expr verbose_name, internal_name, ly_name,
+def punctum_char (expr verbose_name, internal_name,
down_stem) =
- fet_beginchar(verbose_name, internal_name, ly_name)
+ fet_beginchar(verbose_name, internal_name)
save alpha;
alpha# = 55;
draw_diamond_head (staff_space#, 0, 0, alpha#, false);
enddef;
% punctum
-punctum_char("Hufnagel punctum", "hufnagel-punctum", "hufpunctumhead", false)
+punctum_char("Hufnagel punctum", "hufnagel-punctum", false)
% virga
-punctum_char("Hufnagel virga", "hufnagel-virga", "hufvirgahead", true)
+punctum_char("Hufnagel virga", "hufnagel-virga", true)
% pes lower punctum
fet_beginchar("Hufnagel pes lower punctum", "hufnagel-lpes")
enddef;
-def mensural_timesig (expr verbose_name, internal_name, ly_name,
+def mensural_timesig (expr verbose_name, internal_name,
full_circle, reverse_circle, slashed, dotted) =
- fet_beginchar(verbose_name, internal_name, ly_name)
+ fet_beginchar(verbose_name, internal_name)
if slashed:
set_char_box(0,
mensural_Cdiameter# + mensural_Cthickness#,
enddef;
%% tempus imperfectum cum prolatione imperfecta
-mensural_timesig ("Mensural 4/4 meter", "mensural44", "mensuralfourfourmeter",
+mensural_timesig ("Mensural 4/4 meter", "mensural44",
false, false, false, false);
%% tempus imperfectum cum prolatione imperfecta proportio dupla
-mensural_timesig ("Mensural 2/2 meter", "mensural22", "mensuralallabreve",
+mensural_timesig ("Mensural 2/2 meter", "mensural22",
false, false, true, false);
%% tempus perfectum cum prolatione imperfecta
-mensural_timesig ("Mensural 3/2 meter", "mensural32", "mensuralthreetwometer",
+mensural_timesig ("Mensural 3/2 meter", "mensural32",
true, false, false, false);
%% tempus imperfectum cum prolatione perfecta
-mensural_timesig ("Mensural 6/4 meter", "mensural64", "mensuralsixfourmeter",
+mensural_timesig ("Mensural 6/4 meter", "mensural64",
false, false, false, true);
%% tempus perfectum cum prolatione perfecta
-mensural_timesig ("Mensural 9/4 meter", "mensural94", "mensuralninefourmeter",
+mensural_timesig ("Mensural 9/4 meter", "mensural94",
true, false, false, true);
%% tempus perfectum cum prolatione imperfecta proportio dupla
-mensural_timesig ("Mensural 3/4 meter", "mensural34", "mensuralthreefourmeter",
+mensural_timesig ("Mensural 3/4 meter", "mensural34",
true, false, true, false);
%% tempus imperfectum cum prolatione perfecta proportio dupla
-mensural_timesig ("Mensural 6/8 meter", "mensural68", "mensuralsixeightmeter",
+mensural_timesig ("Mensural 6/8 meter", "mensural68",
false, false, true, true);
%% tempus perfectum cum prolatione perfecta proportio dupla
-mensural_timesig ("Mensural 9/8 meter", "mensural98", "mensuralnineeight",
+mensural_timesig ("Mensural 9/8 meter", "mensural98",
true, false, true, true);
%% tempus imperfectum cum prolatione imperfecta diminutio simplex
-mensural_timesig ("Mensural 4/8 meter", "mensural48", "mensuralfoureightmeter",
+mensural_timesig ("Mensural 4/8 meter", "mensural48",
false, true, false, false);
%% tempus imperfectum cum prolatione perfecta diminutio simplex
-mensural_timesig ("Mensural 6/8 meter", "mensural68alt", "mensuralsixeightmeteralt",
+mensural_timesig ("Mensural 6/8 meter", "mensural68alt",
false, true, false, true);
%% tempus imperfectum cum prolatione imperfecta diminutio duplex
-mensural_timesig ("Mensural 2/4 meter", "mensural24", "mensuraltwofourmeter",
+mensural_timesig ("Mensural 2/4 meter", "mensural24",
false, true, true, false);
%%%%%%%%
neomensural_Cthickness# := 2 linethickness#;
define_pixels(neomensural_Cdiameter, neomensural_Cthickness);
-def neomensural_timesig (expr verbose_name, internal_name, ly_name,
+def neomensural_timesig (expr verbose_name, internal_name,
full_circle, reverse_circle, slashed, dotted) =
- fet_beginchar(verbose_name, internal_name, ly_name)
+ fet_beginchar(verbose_name, internal_name)
if slashed:
set_char_box(0,
neomensural_Cdiameter# + neomensural_Cthickness#,
enddef;
%% tempus imperfectum cum prolatione imperfecta
-neomensural_timesig ("Mensural 4/4 meter", "neomensural44", "neomensuralfourfourmeter",
+neomensural_timesig ("Mensural 4/4 meter", "neomensural44",
false, false, false, false);
%% tempus imperfectum cum prolatione imperfecta proportio dupla
-neomensural_timesig ("Mensural 2/2 meter", "neomensural22", "neomensuralallabreve",
+neomensural_timesig ("Mensural 2/2 meter", "neomensural22",
false, false, true, false);
%% tempus perfectum cum prolatione imperfecta
-neomensural_timesig ("Mensural 3/2 meter", "neomensural32", "neomensuralthreetwometer",
+neomensural_timesig ("Mensural 3/2 meter", "neomensural32",
true, false, false, false);
%% tempus imperfectum cum prolatione perfecta
-neomensural_timesig ("Mensural 6/4 meter", "neomensural64", "neomensuralsixfourmeter",
+neomensural_timesig ("Mensural 6/4 meter", "neomensural64",
false, false, false, true);
%% tempus perfectum cum prolatione perfecta
-neomensural_timesig ("Mensural 9/4 meter", "neomensural94", "neomensuralninefourmeter",
+neomensural_timesig ("Mensural 9/4 meter", "neomensural94",
true, false, false, true);
%% tempus perfectum cum prolatione imperfecta proportio dupla
-neomensural_timesig ("Mensural 3/4 meter", "neomensural34", "neomensuralthreefourmeter",
+neomensural_timesig ("Mensural 3/4 meter", "neomensural34",
true, false, true, false);
%% tempus imperfectum cum prolatione perfecta proportio dupla
-neomensural_timesig ("Mensural 6/8 meter", "neomensural68", "neomensuralsixeightmeter",
+neomensural_timesig ("Mensural 6/8 meter", "neomensural68",
false, false, true, true);
%% tempus perfectum cum prolatione perfecta proportio dupla
-neomensural_timesig ("Mensural 9/8 meter", "neomensural98", "neomensuralnineeight",
+neomensural_timesig ("Mensural 9/8 meter", "neomensural98",
true, false, true, true);
%% tempus imperfectum cum prolatione imperfecta diminutio simplex
-neomensural_timesig ("Mensural 4/8 meter", "neomensural48", "neomensuralfoureightmeter",
+neomensural_timesig ("Mensural 4/8 meter", "neomensural48",
false, true, false, false);
%% tempus imperfectum cum prolatione perfecta diminutio simplex
-neomensural_timesig ("Mensural 6/8 meter", "neomensural68alt", "neomensuralsixeightmeteralt",
+neomensural_timesig ("Mensural 6/8 meter", "neomensural68alt",
false, true, false, true);
%% tempus imperfectum cum prolatione imperfecta diminutio duplex
-neomensural_timesig ("Mensural 2/4 meter", "neomensural24", "neomensuraltwofourmeter",
+neomensural_timesig ("Mensural 2/4 meter", "neomensural24",
false, true, true, false);
fet_endgroup ("timesig")