+mens_timesig ("Mensural 2/4 meter", "mensural2/4", "mensuraltwofourmeter",
+ false, true, true, false);
+
+%%%%%%%%
+%
+%
+%
+% NEO-MENSURAL NOTATION
+%
+%
+%
+
+save neo_Cdiameter, neo_Cthickness;
+neo_Cdiameter# := 3/2 staff_space#;
+neo_Cthickness# := 2 linethickness#;
+define_pixels(neo_Cdiameter, neo_Cthickness);
+
+def neo_mens_timesig (expr verbose_name, internal_name, ly_name,
+ full_circle, reverse_circle, slashed, dotted) =
+
+ fet_beginchar(verbose_name, internal_name, ly_name)
+ if slashed:
+ set_char_box(0,
+ neo_Cdiameter# + neo_Cthickness#,
+ .5 (neo_Cdiameter# + neo_Cthickness#),
+ .5 (neo_Cdiameter# + neo_Cthickness#));
+ if (full_circle or dotted):
+ draw_block((-neo_Cthickness/2, -d), (neo_Cthickness/2, h));
+ else:
+ draw_block((-neo_Cthickness, -d), (0, h));
+ fi;
+ else:
+ set_char_box(0,
+ neo_Cdiameter# + neo_Cthickness#,
+ .5 (neo_Cdiameter# + neo_Cthickness#),
+ .5 (neo_Cdiameter# + neo_Cthickness#));
+ fi;
+ pickup pencircle scaled neo_Cthickness;
+ if full_circle:
+ draw fullcircle scaled neo_Cdiameter;
+ elseif reverse_circle:
+ draw threequartercircle rotated 225 scaled neo_Cdiameter;
+ else:
+ draw threequartercircle rotated 45 scaled neo_Cdiameter;
+ fi;
+ if dotted:
+ pickup pencircle scaled 4 linethickness;
+ draw (0,0);
+ fi;
+ currentpicture := currentpicture shifted 0.5(neo_Cdiameter + neo_Cthickness, 0);
+ fet_endchar;
+enddef;
+
+%% tempus imperfectum cum prolatione imperfecta
+neo_mens_timesig ("Mensural 4/4 meter", "neo_mensural4/4", "neomensuralfourfourmeter",
+ false, false, false, false);
+
+%% tempus imperfectum cum prolatione imperfecta proportio dupla
+neo_mens_timesig ("Mensural 2/2 meter", "neo_mensural2/2", "neomensuralallabreve",
+ false, false, true, false);
+
+%% tempus perfectum cum prolatione imperfecta
+neo_mens_timesig ("Mensural 3/2 meter", "neo_mensural3/2", "neomensuralthreetwometer",
+ true, false, false, false);
+
+%% tempus imperfectum cum prolatione perfecta
+neo_mens_timesig ("Mensural 6/4 meter", "neo_mensural6/4", "neomensuralsixfourmeter",
+ false, false, false, true);
+
+%% tempus perfectum cum prolatione perfecta
+neo_mens_timesig ("Mensural 9/4 meter", "neo_mensural9/4", "neomensuralninefourmeter",
+ true, false, false, true);
+
+%% tempus perfectum cum prolatione imperfecta proportio dupla
+neo_mens_timesig ("Mensural 3/4 meter", "neo_mensural3/4", "neomensuralthreefourmeter",
+ true, false, true, false);
+
+%% tempus imperfectum cum prolatione perfecta proportio dupla
+neo_mens_timesig ("Mensural 6/8 meter", "neo_mensural6/8", "neomensuralsixeightmeter",
+ false, false, true, true);
+
+%% tempus perfectum cum prolatione perfecta proportio dupla
+neo_mens_timesig ("Mensural 9/8 meter", "neo_mensural9/8", "neomensuralnineeight",
+ true, false, true, true);