+
+
+if test = 0:
+else:
+def draw_harmonic_notehead(expr harmwid) =
+ save beamheight, head_width, head_char_width;
+ save holeheight, stem_width;
+ save serif_size, serif_protrude;
+ save stemthick;
+ save thin, thick;
+ save ht, schuif_op;
+
+% setup_notehead_vars;
+
+% a_b:=1.54;
+% ai_a:=0;
+% ai_bi:=1;
+% b_h:=0.85;
+% a_w:=1.09;
+
+% notehead_calc;
+
+
+ head_width# = harmwid;
+
+ define_pixels(head_width);
+
+% ht# = noteheight#;
+ head_char_width = 1.54 noteheight;
+ head_char_width# := 1.54 ht#;
+ schuif_op = head_char_width - head_width; %ugh
+ schuif_op# := head_char_width# - head_width#;
+% set_char_box(0, head_char_width#, noteheight#/2, noteheight#/2);
+ set_char_box(0, head_width#, head_width#/2, head_width#/2);
+% 2 beamheight + holeheight = noteheight;
+ thin = stafflinethickness;
+ thick = 2.2 stafflinethickness;
+% serif_size = (holeheight - stafflinethickness)/2;
+% serif_protrude = 1.5 serif_size;
+ penpos1(thick, 45);
+ penpos2(thin, 315);
+ penpos3(thin, 135);
+ penpos4(thick, 45);
+ penpos5(thick, 225);
+ penpos6(thin, 135);
+ penpos7(thin, 315);
+ penpos8(thick, 225);
+
+% 1.5 noteheight = head_width;
+ z1l = (schuif_op, 0);
+ z2l = z1l;
+% z3l = (schuif_op + head_width/2,-head_width/2);
+ z3l = (schuif_op + head_width/2, -noteheight/2);
+ z4l = z3l;
+ z5l = (schuif_op + head_width, 0);
+ z6l = z5l;
+% z7l = (schuif_op + head_width/2, head_width/2);
+ z7l = (schuif_op + head_width/2, noteheight/2);
+ z8l = z7l;
+
+ pickup pencircle; %scaled stemthick;
+ penlabels(1,2,3,4,5,6,7,8);
+ test_grid;
+ fill z1l -- z2r -- z7r -- z7l -- cycle;
+ fill z1l -- z1r -- z4r -- z4l -- cycle;
+ fill z3r -- z3l -- z6l -- z6r -- cycle;
+ fill z5r -- z5l -- z8l -- z8r -- cycle;
+enddef;
+
+%save uitsteek;
+% uitsteek = .25;
+harmonic_wid# := interline#;
+
+fet_beginchar("Harmonic notehead","harmonic","harmonicball")
+ draw_harmonic_notehead(harmonic_wid#)
+fet_endchar;
+
+fet_beginchar("Harmonic ledger", "harmonicl", "harmonicledger")
+ draw_ledger(harmonic_wid#);
+fet_endchar;
+fi
+