summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGES17
-rw-r--r--VERSION2
-rwxr-xr-xbuildscripts/ps-to-pfa.py5
-rw-r--r--input/test/ped.ly14
-rw-r--r--input/test/pedal.ly14
-rw-r--r--lily/include/axis-group-item.hh1
-rw-r--r--lily/include/axis-group-spanner.hh2
-rw-r--r--lily/include/notename-table.hh1
-rw-r--r--lily/include/priority-halign-engraver.hh1
-rw-r--r--lily/include/rhythmic-head.hh6
-rw-r--r--lily/lexer.ll1
-rw-r--r--lily/lookup.cc50
-rw-r--r--lily/new-span-bar-engraver.cc1
-rw-r--r--lily/notename-table.cc1
-rw-r--r--lily/piano-pedal-engraver.cc246
-rw-r--r--lily/piano-pedal-performer.cc32
-rw-r--r--lily/span-score-bar-engraver.cc1
-rw-r--r--ly/engraver.ly1
-rw-r--r--mf/GNUmakefile17
-rw-r--r--mf/feta-accordion.mf20
-rw-r--r--mf/feta-generic.mf9
-rw-r--r--mf/feta-macros.mf6
-rw-r--r--mf/feta-nummer-generic.mf4
-rw-r--r--mf/feta-nummer.mf9
-rw-r--r--mf/feta-params.mf8
-rw-r--r--mf/feta-pendaal.mf262
-rw-r--r--mf/feta-schrift.mf1
-rw-r--r--mf/feta-test11.mf21
-rw-r--r--mf/feta-test13.mf4
-rw-r--r--mf/feta-test23.mf22
-rw-r--r--mf/feta-test26.mf2
-rw-r--r--scm/generic-property.scm6
-rw-r--r--scm/paper.scm16
-rw-r--r--stepmake/stepmake/metafont-vars.make1
-rw-r--r--tex/p.tex39
-rw-r--r--tex/pedal.tex62
36 files changed, 829 insertions, 76 deletions
diff --git a/CHANGES b/CHANGES
index eabea191bf..c9d7f0f36a 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,20 @@
+1.3.43.jcn1
+===========
+
+* Added a Piano_pedal_engraver.
+
+* Removed some empty files.
+
+* Created piano pedal symbols: * - . P e d.
+
+* Fixed ps-to-pfa.py to handle multiple unfills.
+
+* Moved accordion symbols out of feta-script to end of font.
+
+* Bugfix: don't create tfm's, pfa's etc of feta-test fonts.
+
+* Fixed blot_diameter for small resolutions.
+
1.3.43
======
diff --git a/VERSION b/VERSION
index 5cad32c1ab..dd77d048be 100644
--- a/VERSION
+++ b/VERSION
@@ -2,7 +2,7 @@ PACKAGE_NAME=LilyPond
MAJOR_VERSION=1
MINOR_VERSION=3
PATCH_LEVEL=43
-MY_PATCH_LEVEL=
+MY_PATCH_LEVEL=jcn1
# use the above to send patches: MY_PATCH_LEVEL is always empty for a
# released version.
diff --git a/buildscripts/ps-to-pfa.py b/buildscripts/ps-to-pfa.py
index bab745820d..796c5d8b37 100755
--- a/buildscripts/ps-to-pfa.py
+++ b/buildscripts/ps-to-pfa.py
@@ -122,8 +122,7 @@ end % of font dictionary
f.write (''
'exch definefont pop % Define the font\n')
-
-suspect_re = re.compile ('closepath (.*?) 1 setgray newpath (.*?) closepath fill')
+suspect_re = re.compile ('closepath ((gsave )*fill( grestore stroke)*) 1 setgray newpath (.*?) closepath fill')
def characters (f):
sys.stderr.write ('[')
@@ -153,7 +152,7 @@ def characters (f):
m = suspect_re.search (s)
while m:
fill = m.group (1)
- path = m.group (2)
+ path = m.group (4)
# be complicated, in case of gsave/grestore.
# vill as quick hack to avoid duple substitutions.
diff --git a/input/test/ped.ly b/input/test/ped.ly
new file mode 100644
index 0000000000..40410a32f6
--- /dev/null
+++ b/input/test/ped.ly
@@ -0,0 +1,14 @@
+\score{
+\context Staff \notes\relative c'{
+c\sustaindown d e f\sustainup g\sustaindown b c
+c,\sustainup\sustaindown d e f \sustainup g\sustaindown b c
+\property Staff.stopStartSustain = #"-P"
+\property Staff.startSustain = #"P"
+c,\sustainup\sustaindown d e f \sustainup g\sustaindown b c
+}
+\paper{
+}
+\midi{
+\tempo 4 = 60;
+}
+}
diff --git a/input/test/pedal.ly b/input/test/pedal.ly
new file mode 100644
index 0000000000..cd7398265c
--- /dev/null
+++ b/input/test/pedal.ly
@@ -0,0 +1,14 @@
+\score{
+\context Staff \notes\relative c{
+c\sustaindown d e f\sustainup g\sustaindown b c
+c,\sustainup\sustaindown d e f \sustainup g\sustaindown b c
+\property Staff.stopStartSustain = #"-P"
+\property Staff.startSustain = #"P"
+c,\sustainup\sustaindown d e f \sustainup g\sustaindown b c
+}
+\paper{
+}
+\midi{
+\tempo 4 = 60;
+}
+}
diff --git a/lily/include/axis-group-item.hh b/lily/include/axis-group-item.hh
index 09c7cfafd0..e69de29bb2 100644
--- a/lily/include/axis-group-item.hh
+++ b/lily/include/axis-group-item.hh
@@ -1 +0,0 @@
-#error
diff --git a/lily/include/axis-group-spanner.hh b/lily/include/axis-group-spanner.hh
index 65296f8106..e69de29bb2 100644
--- a/lily/include/axis-group-spanner.hh
+++ b/lily/include/axis-group-spanner.hh
@@ -1,2 +0,0 @@
-
-#error
diff --git a/lily/include/notename-table.hh b/lily/include/notename-table.hh
index 8b13789179..e69de29bb2 100644
--- a/lily/include/notename-table.hh
+++ b/lily/include/notename-table.hh
@@ -1 +0,0 @@
-
diff --git a/lily/include/priority-halign-engraver.hh b/lily/include/priority-halign-engraver.hh
index 09c7cfafd0..e69de29bb2 100644
--- a/lily/include/priority-halign-engraver.hh
+++ b/lily/include/priority-halign-engraver.hh
@@ -1 +0,0 @@
-#error
diff --git a/lily/include/rhythmic-head.hh b/lily/include/rhythmic-head.hh
index 2435085d57..bb34f17efe 100644
--- a/lily/include/rhythmic-head.hh
+++ b/lily/include/rhythmic-head.hh
@@ -12,6 +12,12 @@
#include "item.hh"
+/*
+ Why don't I have a
+ VIRTUAL_COPY_CONS (Score_element);
+ see also note-head, rest.
+ ?
+*/
class Rhythmic_head : public Item
{
diff --git a/lily/lexer.ll b/lily/lexer.ll
index 1f75b5d39b..23692d60d7 100644
--- a/lily/lexer.ll
+++ b/lily/lexer.ll
@@ -25,7 +25,6 @@
#include <stdio.h>
#include <ctype.h>
-#include "notename-table.hh"
#include "lily-guile.hh"
#include "string.hh"
#include "string-convert.hh"
diff --git a/lily/lookup.cc b/lily/lookup.cc
index 8be036fa78..166af27043 100644
--- a/lily/lookup.cc
+++ b/lily/lookup.cc
@@ -365,11 +365,11 @@ Lookup::accordion (SCM s, Real staff_space) const
if (sym == "Discant")
{
- Molecule r = afm_find("scripts-accDiscant");
+ Molecule r = afm_find("accordion-accDiscant");
m.add_molecule(r);
if (reg.left_str(1) == "F")
{
- Molecule d = afm_find("scripts-accDot");
+ Molecule d = afm_find("accordion-accDot");
d.translate_axis(staff_space * 2.5 PT, Y_AXIS);
m.add_molecule(d);
reg = reg.right_str(reg.length_i()-1);
@@ -397,27 +397,27 @@ Lookup::accordion (SCM s, Real staff_space) const
}
if (eflag & 0x02)
{
- Molecule d = afm_find("scripts-accDot");
+ Molecule d = afm_find("accordion-accDot");
d.translate_axis(staff_space * 1.5 PT, Y_AXIS);
m.add_molecule(d);
}
if (eflag & 0x04)
{
- Molecule d = afm_find("scripts-accDot");
+ Molecule d = afm_find("accordion-accDot");
d.translate_axis(staff_space * 1.5 PT, Y_AXIS);
d.translate_axis(0.8 * staff_space PT, X_AXIS);
m.add_molecule(d);
}
if (eflag & 0x01)
{
- Molecule d = afm_find("scripts-accDot");
+ Molecule d = afm_find("accordion-accDot");
d.translate_axis(staff_space * 1.5 PT, Y_AXIS);
d.translate_axis(-0.8 * staff_space PT, X_AXIS);
m.add_molecule(d);
}
if (reg.left_str(2) == "SS")
{
- Molecule d = afm_find("scripts-accDot");
+ Molecule d = afm_find("accordion-accDot");
d.translate_axis(0.5 * staff_space PT, Y_AXIS);
d.translate_axis(0.4 * staff_space PT, X_AXIS);
m.add_molecule(d);
@@ -427,7 +427,7 @@ Lookup::accordion (SCM s, Real staff_space) const
}
if (reg.left_str(1) == "S")
{
- Molecule d = afm_find("scripts-accDot");
+ Molecule d = afm_find("accordion-accDot");
d.translate_axis(0.5 * staff_space PT, Y_AXIS);
m.add_molecule(d);
reg = reg.right_str(reg.length_i()-1);
@@ -435,29 +435,29 @@ Lookup::accordion (SCM s, Real staff_space) const
}
else if (sym == "Freebase")
{
- Molecule r = afm_find("scripts-accFreebase");
+ Molecule r = afm_find("accordion-accFreebase");
m.add_molecule(r);
if (reg.left_str(1) == "F")
{
- Molecule d = afm_find("scripts-accDot");
+ Molecule d = afm_find("accordion-accDot");
d.translate_axis(staff_space * 1.5 PT, Y_AXIS);
m.add_molecule(d);
reg = reg.right_str(reg.length_i()-1);
}
if (reg == "E")
{
- Molecule d = afm_find("scripts-accDot");
+ Molecule d = afm_find("accordion-accDot");
d.translate_axis(staff_space * 0.5 PT, Y_AXIS);
m.add_molecule(d);
}
}
else if (sym == "Bayanbase")
{
- Molecule r = afm_find("scripts-accBayanbase");
+ Molecule r = afm_find("accordion-accBayanbase");
m.add_molecule(r);
if (reg.left_str(1) == "T")
{
- Molecule d = afm_find("scripts-accDot");
+ Molecule d = afm_find("accordion-accDot");
d.translate_axis(staff_space * 2.5 PT, Y_AXIS);
m.add_molecule(d);
reg = reg.right_str(reg.length_i()-1);
@@ -465,14 +465,14 @@ Lookup::accordion (SCM s, Real staff_space) const
/* include 4' reed just for completeness. You don't want to use this. */
if (reg.left_str(1) == "F")
{
- Molecule d = afm_find("scripts-accDot");
+ Molecule d = afm_find("accordion-accDot");
d.translate_axis(staff_space * 1.5 PT, Y_AXIS);
m.add_molecule(d);
reg = reg.right_str(reg.length_i()-1);
}
if (reg.left_str(2) == "EE")
{
- Molecule d = afm_find("scripts-accDot");
+ Molecule d = afm_find("accordion-accDot");
d.translate_axis(staff_space * 0.5 PT, Y_AXIS);
d.translate_axis(0.4 * staff_space PT, X_AXIS);
m.add_molecule(d);
@@ -482,7 +482,7 @@ Lookup::accordion (SCM s, Real staff_space) const
}
if (reg.left_str(1) == "E")
{
- Molecule d = afm_find("scripts-accDot");
+ Molecule d = afm_find("accordion-accDot");
d.translate_axis(staff_space * 0.5 PT, Y_AXIS);
m.add_molecule(d);
reg = reg.right_str(reg.length_i()-1);
@@ -490,25 +490,25 @@ Lookup::accordion (SCM s, Real staff_space) const
}
else if (sym == "Stdbase")
{
- Molecule r = afm_find("scripts-accStdbase");
+ Molecule r = afm_find("accordion-accStdbase");
m.add_molecule(r);
if (reg.left_str(1) == "T")
{
- Molecule d = afm_find("scripts-accDot");
+ Molecule d = afm_find("accordion-accDot");
d.translate_axis(staff_space * 3.5 PT, Y_AXIS);
m.add_molecule(d);
reg = reg.right_str(reg.length_i()-1);
}
if (reg.left_str(1) == "F")
{
- Molecule d = afm_find("scripts-accDot");
+ Molecule d = afm_find("accordion-accDot");
d.translate_axis(staff_space * 2.5 PT, Y_AXIS);
m.add_molecule(d);
reg = reg.right_str(reg.length_i()-1);
}
if (reg.left_str(1) == "M")
{
- Molecule d = afm_find("scripts-accDot");
+ Molecule d = afm_find("accordion-accDot");
d.translate_axis(staff_space * 2 PT, Y_AXIS);
d.translate_axis(staff_space PT, X_AXIS);
m.add_molecule(d);
@@ -516,14 +516,14 @@ Lookup::accordion (SCM s, Real staff_space) const
}
if (reg.left_str(1) == "E")
{
- Molecule d = afm_find("scripts-accDot");
+ Molecule d = afm_find("accordion-accDot");
d.translate_axis(staff_space * 1.5 PT, Y_AXIS);
m.add_molecule(d);
reg = reg.right_str(reg.length_i()-1);
}
if (reg.left_str(1) == "S")
{
- Molecule d = afm_find("scripts-accDot");
+ Molecule d = afm_find("accordion-accDot");
d.translate_axis(staff_space * 0.5 PT, Y_AXIS);
m.add_molecule(d);
reg = reg.right_str(reg.length_i()-1);
@@ -533,22 +533,22 @@ Lookup::accordion (SCM s, Real staff_space) const
for the rectangle */
else if (sym == "SB")
{
- Molecule r = afm_find("scripts-accSB");
+ Molecule r = afm_find("accordion-accSB");
m.add_molecule(r);
}
else if (sym == "BB")
{
- Molecule r = afm_find("scripts-accBB");
+ Molecule r = afm_find("accordion-accBB");
m.add_molecule(r);
}
else if (sym == "OldEE")
{
- Molecule r = afm_find("scripts-accOldEE");
+ Molecule r = afm_find("accordion-accOldEE");
m.add_molecule(r);
}
else if (sym == "OldEES")
{
- Molecule r = afm_find("scripts-accOldEES");
+ Molecule r = afm_find("accordion-accOldEES");
m.add_molecule(r);
}
return m;
diff --git a/lily/new-span-bar-engraver.cc b/lily/new-span-bar-engraver.cc
index 8b13789179..e69de29bb2 100644
--- a/lily/new-span-bar-engraver.cc
+++ b/lily/new-span-bar-engraver.cc
@@ -1 +0,0 @@
-
diff --git a/lily/notename-table.cc b/lily/notename-table.cc
index 8b13789179..e69de29bb2 100644
--- a/lily/notename-table.cc
+++ b/lily/notename-table.cc
@@ -1 +0,0 @@
-
diff --git a/lily/piano-pedal-engraver.cc b/lily/piano-pedal-engraver.cc
new file mode 100644
index 0000000000..6d0327ddc3
--- /dev/null
+++ b/lily/piano-pedal-engraver.cc
@@ -0,0 +1,246 @@
+/*
+ piano-pedal-engraver.cc -- implement Piano_pedal_engraver
+
+ source file of the GNU LilyPond music typesetter
+
+ (c) 2000 Jan Nieuwenhuizen <janneke@gnu.org>
+
+ */
+
+#include "engraver.hh"
+#include "musical-request.hh"
+#include "score-element.hh"
+#include "item.hh"
+#include "lookup.hh"
+#include "lily-guile.hh"
+#include "note-head.hh"
+#include "stem.hh"
+#include "side-position-interface.hh"
+#include "staff-symbol-referencer.hh"
+
+
+/*
+ TODO:
+ sostenuto
+ una-chorda / tre-corde
+ */
+
+
+/*
+ Urg.
+ This is almost text
+ Problem is:
+ * we have no kerning
+ * symbols are at wrong place in font
+*/
+
+class Sustain_pedal : public Item
+{
+public:
+ VIRTUAL_COPY_CONS (Score_element);
+
+protected:
+ virtual Molecule do_brew_molecule () const;
+ virtual void after_line_breaking ();
+};
+
+void
+Sustain_pedal::after_line_breaking ()
+{
+ Side_position_interface i (this);
+ Direction d = i.get_direction ();
+ i.set_direction (d);
+}
+
+Molecule
+Sustain_pedal::do_brew_molecule () const
+{
+ Molecule mol;
+ SCM glyph = get_elt_property ("glyph");
+ if (glyph == SCM_UNDEFINED)
+ return mol;
+ String text = ly_scm2string (glyph);
+
+ for (int i = 0; i < text.length_i (); i++)
+ {
+ // leuke koor dump door tiepo, snapnie helemaal:
+ //String idx = ("pedal-") + text[i];
+ // urg, Byte* ??
+ // braak: waarom vindt String het zo moeilijk om
+ // String + char te doen?
+ //String idx = "pedal-" + String (&text.byte_C ()[i], 1);
+ String idx = String ("pedal-") + String (&text.byte_C ()[i], 1);
+ Molecule m = lookup_l ()->afm_find (idx);
+ if (m.empty_b ())
+ continue;
+ Real kern = 0;
+ if (i)
+ {
+ SCM s = scm_eval (gh_list (ly_symbol2scm ("pedal-kerning"),
+ ly_str02scm (String (&text.byte_C ()[i - 1], 1).ch_C ()),
+ ly_str02scm (String (&text.byte_C ()[i], 1).ch_C ()),
+ SCM_UNDEFINED));
+ if (gh_number_p (s))
+ {
+ Staff_symbol_referencer_interface st (this);
+ Real staff_space = st.staff_space ();
+ kern = gh_scm2double (s) * staff_space;
+ }
+ }
+ mol.add_at_edge (X_AXIS, RIGHT, m, kern);
+ }
+
+ return mol;
+}
+
+/**
+ engrave Piano pedals
+ */
+class Piano_pedal_engraver : public Engraver
+{
+public:
+ VIRTUAL_COPY_CONS (Translator);
+ Piano_pedal_engraver ();
+
+protected:
+ virtual bool do_try_music (Music*);
+ virtual void do_process_music ();
+ virtual void do_pre_move_processing ();
+ virtual void do_post_move_processing ();
+ virtual void acknowledge_element (Score_element_info);
+
+private:
+ Span_req* sustain_start_req_l_;
+ Drul_array<Span_req*> sustain_req_l_drul_;
+ Sustain_pedal* sustain_p_;
+};
+
+ADD_THIS_TRANSLATOR(Piano_pedal_engraver);
+
+Piano_pedal_engraver::Piano_pedal_engraver ()
+{
+ sustain_p_ = 0;
+ sustain_req_l_drul_[START] = 0;
+ sustain_req_l_drul_[STOP] = 0;
+ sustain_start_req_l_ = 0;
+}
+
+/*
+ Urg: Code dup
+ I'm a script
+ */
+void
+Piano_pedal_engraver::acknowledge_element (Score_element_info i)
+{
+ if (sustain_p_)
+ {
+ if (Note_head* n = dynamic_cast<Note_head*> (i.elem_l_))
+ {
+ Side_position_interface st (sustain_p_);
+ st.add_support (n);
+ if (st.get_axis( ) == X_AXIS
+ && !sustain_p_->parent_l (Y_AXIS))
+ sustain_p_->set_parent (n, Y_AXIS);
+ }
+ if (Stem* s = dynamic_cast<Stem*> (i.elem_l_))
+ {
+ Side_position_interface st (sustain_p_);
+ st.add_support (s);
+ }
+ }
+}
+
+bool
+Piano_pedal_engraver::do_try_music (Music *m)
+{
+ if (Span_req * s = dynamic_cast<Span_req*>(m))
+ {
+ if (s->span_type_str_ == "sustain")
+ {
+ sustain_req_l_drul_[s->span_dir_] = s;
+ return true;
+ }
+ }
+ return false;
+}
+
+void
+Piano_pedal_engraver::do_process_music ()
+{
+ SCM s = SCM_UNDEFINED;
+ if (sustain_req_l_drul_[STOP] && sustain_req_l_drul_[START])
+ {
+ if (!sustain_start_req_l_)
+ {
+ sustain_req_l_drul_[STOP]->warning (_ ("can't find start of piano_pedal"));
+ }
+ else
+ {
+ s = get_property ("stopStartSustain");
+ if (!gh_string_p (s))
+ s = ly_str02scm ("*Ped.");
+ }
+ sustain_start_req_l_ = sustain_req_l_drul_[START];
+ }
+ else if (sustain_req_l_drul_[STOP])
+ {
+ if (!sustain_start_req_l_)
+ {
+ sustain_req_l_drul_[STOP]->warning (_ ("can't find start of piano_pedal"));
+ }
+ else
+ {
+ s = get_property ("stopSustain");
+ if (!gh_string_p (s))
+ s = ly_str02scm ("*");
+ }
+ sustain_start_req_l_ = 0;
+ }
+ else if (sustain_req_l_drul_[START])
+ {
+ sustain_start_req_l_ = sustain_req_l_drul_[START];
+ s = get_property ("startSustain");
+ if (!gh_string_p (s))
+ s = ly_str02scm ("Ped.");
+ }
+ if (s != SCM_UNDEFINED)
+ {
+ sustain_p_ = new Sustain_pedal;
+ sustain_p_->set_elt_property ("glyph", s);
+
+
+ Side_position_interface si (sustain_p_);
+ si.set_axis (Y_AXIS);
+
+ /* Hmm,
+ If set to empty, it can't be centred
+ Howto centre non-fat text?
+ sustain_p_->set_empty (X_AXIS);
+ */
+ sustain_p_->set_elt_property ("self-alignment-X", gh_int2scm (0));
+ sustain_p_->add_offset_callback (Side_position_interface::aligned_on_self, X_AXIS);
+ sustain_p_->add_offset_callback (Side_position_interface::centered_on_parent, X_AXIS);
+ announce_element (Score_element_info (sustain_p_,
+ sustain_req_l_drul_[START]
+ ? sustain_req_l_drul_[START]
+ : sustain_req_l_drul_[STOP]));
+ }
+}
+
+void
+Piano_pedal_engraver::do_pre_move_processing ()
+{
+ if (sustain_p_)
+ {
+ side_position (sustain_p_).add_staff_support ();
+ typeset_element (sustain_p_);
+ }
+ sustain_p_ = 0;
+}
+
+void
+Piano_pedal_engraver::do_post_move_processing ()
+{
+ sustain_req_l_drul_[STOP] = 0;
+ sustain_req_l_drul_[START] = 0;
+}
diff --git a/lily/piano-pedal-performer.cc b/lily/piano-pedal-performer.cc
index f5cfd90895..444028b8de 100644
--- a/lily/piano-pedal-performer.cc
+++ b/lily/piano-pedal-performer.cc
@@ -15,7 +15,7 @@
/*
TODO:
sostenuto
- una-chorda ?
+ una-chorda / tre-corde
*/
/**
@@ -36,27 +36,27 @@ protected:
private:
Link_array<Audio_piano_pedal> audio_p_arr_;
- Span_req* span_start_req_l_;
- Drul_array<Span_req*> span_req_l_drul_;
+ Span_req* sustain_start_req_l_;
+ Drul_array<Span_req*> sustain_req_l_drul_;
};
ADD_THIS_TRANSLATOR (Piano_pedal_performer);
Piano_pedal_performer::Piano_pedal_performer ()
{
- span_req_l_drul_[START] = 0;
- span_req_l_drul_[STOP] = 0;
- span_start_req_l_ = 0;
+ sustain_req_l_drul_[START] = 0;
+ sustain_req_l_drul_[STOP] = 0;
+ sustain_start_req_l_ = 0;
}
void
Piano_pedal_performer::do_process_music ()
{
- if (span_req_l_drul_[STOP])
+ if (sustain_req_l_drul_[STOP])
{
- if (!span_start_req_l_)
+ if (!sustain_start_req_l_)
{
- span_req_l_drul_[STOP]->warning (_ ("can't find start of piano_pedal"));
+ sustain_req_l_drul_[STOP]->warning (_ ("can't find start of piano_pedal"));
}
else
{
@@ -64,12 +64,12 @@ Piano_pedal_performer::do_process_music ()
p->type_b_ = false;
audio_p_arr_.push (p);
}
- span_start_req_l_ = 0;
+ sustain_start_req_l_ = 0;
}
- if (span_req_l_drul_[START])
+ if (sustain_req_l_drul_[START])
{
- span_start_req_l_ = span_req_l_drul_[START];
+ sustain_start_req_l_ = sustain_req_l_drul_[START];
Audio_piano_pedal* p = new Audio_piano_pedal;
p->type_b_ = true;
audio_p_arr_.push (p);
@@ -87,8 +87,8 @@ Piano_pedal_performer::do_pre_move_processing ()
void
Piano_pedal_performer::do_post_move_processing ()
{
- span_req_l_drul_[STOP] = 0;
- span_req_l_drul_[START] = 0;
+ sustain_req_l_drul_[STOP] = 0;
+ sustain_req_l_drul_[START] = 0;
}
bool
@@ -96,9 +96,9 @@ Piano_pedal_performer::do_try_music (Music* r)
{
if (Span_req * s = dynamic_cast<Span_req*>(r))
{
- if (s-> span_type_str_ == "sustain")
+ if (s->span_type_str_ == "sustain")
{
- span_req_l_drul_[s->span_dir_] = s;
+ sustain_req_l_drul_[s->span_dir_] = s;
return true;
}
}
diff --git a/lily/span-score-bar-engraver.cc b/lily/span-score-bar-engraver.cc
index 8b13789179..e69de29bb2 100644
--- a/lily/span-score-bar-engraver.cc
+++ b/lily/span-score-bar-engraver.cc
@@ -1 +0,0 @@
-
diff --git a/ly/engraver.ly b/ly/engraver.ly
index 68a8c9df2e..2859461903 100644
--- a/ly/engraver.ly
+++ b/ly/engraver.ly
@@ -144,6 +144,7 @@ VoiceContext = \translator {
\consists "Melisma_engraver";
textScriptPadding = #3.0
\consists "Text_engraver";
+ \consists "Piano_pedal_engraver";
\consists "Script_engraver";
\consists "Script_column_engraver";
\consists "Rhythmic_column_engraver";
diff --git a/mf/GNUmakefile b/mf/GNUmakefile
index 4549535290..2cbdcded23 100644
--- a/mf/GNUmakefile
+++ b/mf/GNUmakefile
@@ -3,14 +3,18 @@
depth = ..
STEPMAKE_TEMPLATES=metafont metapost asciifont install install-out
+include $(depth)/make/stepmake.make
AF_FILES = $(wildcard *.af)
EXTRA_DIST_FILES += README feta.tex
-FET_FILES = $(wildcard feta[0-9]*.mf)
-FONT_FILES = $(wildcard feta*[0-9].mf)
-XPM_FONTS = feta20
+# don't try to make fonts from test files
+TEST_FILES = $(wildcard *test*.mf)
+FET_FILES = $(filter-out $(TEST_FILES),$(wildcard feta[0-9]*.mf))
+FONT_FILES = $(filter-out $(TEST_FILES),$(wildcard feta*[0-9].mf))
+
+XPM_FONTS = feta20 feta-nummer10 feta-braces20
LOG_FILES = $(addprefix $(outdir)/, $(FET_FILES:.mf=.log))
TEXTABLES = $(addprefix $(outdir)/, $(FET_FILES:.mf=.tex))
@@ -18,6 +22,11 @@ AFM_FILES = $(addprefix $(outdir)/, $(FET_FILES:.mf=.afm) $(AF_FILES:.af=.afm))
TFM_FILES = $(addprefix $(outdir)/, $(FONT_FILES:.mf=.tfm))
PFA_FILES = $(addprefix $(outdir)/, $(FONT_FILES:.mf=.pfa))
+foo:
+ @echo fof: $(FONT_FILES)
+ @echo fef: $(FET_FILES)
+ @echo tfm: $(TFM_FILES)
+
# Make tfm files first, log files last,
# so that normally log files aren't made twice
ALL_GEN_FILES= $(TFM_FILES) $(TEXTABLES) $(AFM_FILES) $(TFM_FILES) $(PFA_FILES) $(LOG_FILES)
@@ -42,9 +51,7 @@ INSTALLATION_OUT_FILES3=$(TFM_FILES)
INSTALLATION_OUT_DIR4=$(datadir)/pfa
INSTALLATION_OUT_FILES4=$(PFA_FILES)
-
export MFINPUTS:=.:$(MFINPUTS)
-include $(depth)/make/stepmake.make
default: $(ALL_GEN_FILES)
diff --git a/mf/feta-accordion.mf b/mf/feta-accordion.mf
index e08c90bf00..c06618dc37 100644
--- a/mf/feta-accordion.mf
+++ b/mf/feta-accordion.mf
@@ -1,5 +1,7 @@
% -*- Fundamental -*-
+fet_begingroup("accordion")
+
accreg_dot_size# := .5staff_space#;
accreg_linethickness# := 1.3stafflinethickness#;
@@ -150,16 +152,28 @@ def def_some_vars =
enddef;
def print_penpos (suffix $)=
- message str $ &": ("&decimal x.$.l&", "&decimal y.$.l&"); ("&decimal x.$.r&", "&decimal y.$.r&");";
+ message "z"&str $ &"l = ("&decimal x.$.l&", "&decimal y.$.l&"); z"&str $ &"r = ("&decimal x.$.r&", "&decimal y.$.r&");";
enddef;
+%fet_beginchar("accTEST", "accTEST", "accTEST")
+% set_char_box(.4staffsize#, .4staffsize#, 0, 2.4staff_space#);
+% def_some_vars;
+% penlabels(10, 11, 12, 13, 14);
+% penstroke z10e--z11e{right}..z12e..z13e{left}--z14e;
+%fet_endchar;
+
fet_beginchar("accSB", "accSB", "accSB")
set_char_box(.4staffsize#, .4staffsize#, 0, 2.4staff_space#);
def_some_vars;
def_B(.35width, .7height);
- penstroke z10e--z11e{right}..z12e..z13e{left}--z14e;
+ %print_penpos (10);
+ %print_penpos (11);
+ %print_penpos (12);
+ %print_penpos (13);
+ %print_penpos (14);
penlabels(10, 11, 12, 13, 14);
+ penstroke z10e--z11e{right}..z12e..z13e{left}--z14e;
penstroke z13e{right}..z15e{up}..z16e{left}--z17e;
penstroke z18e--z19e;
@@ -283,3 +297,5 @@ fet_beginchar("accOldEES", "accOldEES", "accOldEES")
currentpicture := currentpicture shifted (-w/2, -shy*h);
currentpicture := currentpicture shifted (0, r);
fet_endchar;
+
+fet_endgroup("accordion")
diff --git a/mf/feta-generic.mf b/mf/feta-generic.mf
index 94c8c67611..4d01e53bf7 100644
--- a/mf/feta-generic.mf
+++ b/mf/feta-generic.mf
@@ -22,8 +22,7 @@ make_pen_stack;
make_picture_stack;
input feta-params;
-
-
+font_x_height staff_space#;
if test = 0:
input feta-eindelijk;
@@ -34,13 +33,17 @@ if test = 0:
input feta-banier;
input feta-klef;
input feta-timesig;
+ input feta-pendaal;
+ input feta-accordion;
else:
% input feta-bolletjes;
% input feta-banier;
% input feta-eindelijk;
% input feta-klef;
% input feta-toevallig;
- input feta-schrift;
+% input feta-schrift;
% input feta-haak;
% input feta-timesig;
+ input feta-pendaal;
+% input feta-accordion;
fi
diff --git a/mf/feta-macros.mf b/mf/feta-macros.mf
index 47e415c70d..814c82a16d 100644
--- a/mf/feta-macros.mf
+++ b/mf/feta-macros.mf
@@ -214,7 +214,11 @@ def draw_bulb(expr turndir, zl, zr, bulb_rad, radius_factor)=
save rad, ang;
ang = angle(zr-zl);
- z0 = zr + bulb_rad * (zl-zr)/length(zr -zl);
+
+ % don't get near infinity
+ %z0 = zr + bulb_rad * (zl-zr)/length(zr -zl);
+ z0 = zr + bulb_rad /length(zr -zl) * (zl-zr);
+
rad = bulb_rad;
z1 = z0 + radius_factor* rad * dir(ang + turndir* 100);
diff --git a/mf/feta-nummer-generic.mf b/mf/feta-nummer-generic.mf
index cdd56736c3..c171f9b42d 100644
--- a/mf/feta-nummer-generic.mf
+++ b/mf/feta-nummer-generic.mf
@@ -5,14 +5,16 @@ test:=0;
input feta-autometric;
input feta-macros;
+input feta-params;
-blot_diameter# = .4pt#;
+%blot_diameter# = .4pt#;
fet_beginfont("feta-nummer", size);
mode_setup;
height#:=designsize;
+font_x_height height#;
save b,h; 4h+b=1.15; 10h+b=1;
fatten:=designsize*h+b;
diff --git a/mf/feta-nummer.mf b/mf/feta-nummer.mf
index b66cc177a5..a7664589ef 100644
--- a/mf/feta-nummer.mf
+++ b/mf/feta-nummer.mf
@@ -6,7 +6,7 @@
%
% (c) 1997--2000 Jan Nieuwenhuizen <janneke@gnu.org>
-fet_begingroup("nummer")
+fet_begingroup("number")
define_pixels(height,thick,thick,thin,hair,flare);
define_pixels(foot_top,foot_width);
@@ -85,7 +85,8 @@ save dot_diam;
dot_diam# = 7/8flare#;
define_pixels(dot_diam);
-code := 43;
+
+code := 43; % , = 44
% urg
fet_beginchar("Numeral comma", ",", "comma")
@@ -121,7 +122,7 @@ fet_endchar;
% skip slash
-code := 47;
+code := 47; % 0 = 48
fet_beginchar("Numeral 0", "0", "zero")
% set_char_box(0, 4/5height#*widen, 0, height#);
@@ -416,5 +417,5 @@ fet_beginchar("Numeral 9", "9", "nine")
currentpicture := currentpicture shifted (w,h);
fet_endchar;
-fet_endgroup("nummer")
+fet_endgroup("number")
diff --git a/mf/feta-params.mf b/mf/feta-params.mf
index 21b365958f..702604002a 100644
--- a/mf/feta-params.mf
+++ b/mf/feta-params.mf
@@ -4,7 +4,7 @@ stafflines = 5;
staff_space#:=staffsize#/(stafflines-1);
% URG!
-font_x_height staff_space# ;
+%font_x_height staff_space# ;
%
% [D.K.Roush & J.S.Gourlay] say this should be 0.072
@@ -39,4 +39,10 @@ overdone_heads = 0.0;
%
numeric blot_diameter;
blot_diameter# = .4pt#;
+if (blot_diameter# * hppp) < 1:
+ blot_diameter# := 1/hppp;
+fi
+if (blot_diameter# * vppp) < 1:
+ blot_diameter# := 1/vppp;
+fi
define_pixels(blot_diameter);
diff --git a/mf/feta-pendaal.mf b/mf/feta-pendaal.mf
new file mode 100644
index 0000000000..2cdbddc0a0
--- /dev/null
+++ b/mf/feta-pendaal.mf
@@ -0,0 +1,262 @@
+% feta-pendaal.mf -- piano pedal markings
+%
+% part of LilyPond's pretty-but-neat music font
+%
+% source file of the Feta (not the Font-En-Tja) music font
+%
+% (c) 2000 Jan Nieuwenhuizen <janneke@gnu.org>
+%
+% Voor Cup
+
+% Kerning
+%
+% Pe = -0.034 pedalh == -0.07 staff-space
+% ed = -0.27 pedalh == -0.53 staff-space
+
+fet_begingroup("pedal")
+
+pedalpha = 40;
+pedbeta = 25;
+
+penh#=0.7stafflinethickness#;
+penw#=4penh#;
+%penw#=penh#;
+define_pixels (penh,penw);
+
+pedalh# = 2staff_space#;
+pedalbh# = 4/7pedalh#;
+define_pixels (pedalh,pedalbh);
+
+% code values for own pedal font commented out
+% code := 41; % * = 42
+
+def draw_asterisk_bulb (expr w, h, i) =
+ begingroup;
+ clearxy;
+ save bulb, p;
+ path p;
+ bulb = 4/3penw;
+
+ pickup pencircle scaled penh;
+ penpos 1 (bulb, 180);
+ penpos 2 (bulb, 0);
+ penpos 3 (penh, 0);
+ penpos 4 (penw, 0);
+
+ z0 = (1/2w, h - 1/2w);
+ z1 = (1/2w, h-1/2bulb);
+ z2 = z1;
+ z3 = (x1, y1-penw);
+ z4 = (x1, y3-2penh);
+
+ penlabels (1,2,3,4);
+% penstroke z1e{up}..z2e{down}..z3e{down}..z4e;
+ p = z1l{up}..z2l{down}..z3l{down}..z4l..z4r
+ ..z3r{up}..z2r{up}..z1r{down}..cycle;
+ p := p rotatedaround (z0, 360/8i);
+ fill p;
+ endgroup;
+ enddef;
+
+fet_beginchar("Pedal asterisk", "*", "pedal-asterisk")
+ set_char_box(0, 7/9pedalh#, 0, pedalh#);
+ z0 = (1/2w, h - 1/2w);
+ for i = 0 upto 7:
+ draw_asterisk_bulb (w, h, i);
+ pickup pencircle scaled penw;
+ undraw z0;
+ endfor
+fet_endchar;
+
+% skip + and ,
+
+% code := 44; % - = 45
+
+fet_beginchar("Pedal dash", "-", "pedal-dash")
+ set_char_box(0, 3penw#, 0, pedalbh#);
+ pickup pencircle scaled penh;
+
+ penpos 1 (penw, 60);
+ penpos 2 (penw, 60);
+ z1l = (0, 2/3h - 1/2penw);
+ z2r = (w, y1l + 1.2penw);
+ penlabels (1,2);
+ penstroke z1e{dir 40}..tension 1.2 ..z2e{dir 40};
+fet_endchar;
+
+fet_beginchar("Pedal dot", ".", "pedal-dot")
+ set_char_box(0, penw#, 0, penw#);
+ pickup pencircle scaled penw;
+ draw (1/2penw,1/2penw);
+fet_endchar;
+
+% code := 79; % P = 80
+
+fet_beginchar("Pedal P", "P", "pedal-P")
+ set_char_box(0, 5/6pedalh#, 0, pedalh#);
+ pickup pencircle scaled penh;
+
+ penpos 1 (penh, 0);
+ penpos 2 (penw, 55);
+ penpos 3 (penw, pedalpha);
+ penpos 4 (1.2penh, -pedalpha);
+ penpos 5 (penh, -pedalpha);
+ penpos 6 (penh, 180-pedalpha);
+ penpos 7 (2penh, 180-pedalpha);
+ penpos 8 (penh, 90);
+ penpos 9 (4/3penw,50);
+ penpos 10 (1.4penw,50);
+ penpos 11 (penh, 90+pedalpha);
+
+ z1r = (0.6w, h);
+ x2l = x1l - penw;
+ y2 = 0.7h;
+ x3r = x2l + 2penw;
+ y3r = 0.4h;
+ z4l = z5r + 1/4(z3r - z5r);
+ x5 = 1/4w;
+ y5r = 0;
+ z6 = z5;
+ z7 = z6r + 1/3(z8r - z6r);
+ z8r = z5r + 3/5(z3r - z5r);
+ x9l = x10l - penh;
+ y9l = 1/4penh;
+ x10l = w - tand (90-pedalpha)*y11l;
+ y10l = 1/4penh;
+ x11l = w;
+ y11 = 1/5h;
+
+ penlabels (1,2,3,4,5,6,7,8,9,10,11);
+ penstroke z1e..tension 2.5 .. z2e.. tension 1.5 .. z3e ..tension 2.5
+ ..z4e..tension 1.5
+ ..z5e..z6e..tension 1.5
+ ..z7e..tension 1.5
+ ..z8e{right}..tension 1.5
+ ..z9e{dir -pedalpha}
+ ..z10e..tension 2.5..z11e;
+
+ penpos 12 (penh, 0);
+ penpos 13 (penw, -90-pedbeta);
+ penpos 14 (penh, 90);
+ penpos 15 (penw, -90+pedbeta);
+ penpos 16 (penh, 180+pedbeta);
+ z12 = (5/9x1, y2);
+ z13l = (1/2x12r, y15r);
+ z14r = z1r;
+ z15l = (1/2[x16,w], y2l + 0.5penw);
+ x16 = 1/4[x1, w];
+ y16r = y2r;
+
+ penlabels (12,13,14,15,16);
+ penstroke z12e{down}..tension 1.1
+ ..z13e{dir (180-pedbeta)}..tension 1.1
+ ..z14e{right}..tension 1.1
+ ..z15e{dir (180+pedbeta)}..tension 1.1
+ ..z16e{dir (90+pedbeta)};
+fet_endchar;
+
+
+% code := 99; % d = 100
+
+if 0 = 1:
+
+fet_beginchar("Pedal d", "d", "pedal-d")
+ set_char_box(2/9pedalh#, 4/9pedalh#, 0, 7/8pedalh#);
+ pickup pencircle scaled penh;
+
+ penpos 1 (penh, -70);
+ penpos 2 (3/4penw, 0);
+ penpos 3 (2penh, 90);
+ penpos 4 (penw, 190);
+ penpos 5 (penh, -10-90);
+
+ z1l = (1/2w, pedalbh);
+ z2l = (0, 1/2pedalbh);
+ z3l = (1/2w, 0);
+ z4 = (w - 1/2penw, 1/2pedalbh + penh);
+ x5r = -b;
+ y5l = h;
+
+ penlabels (1,2,3,4,5);
+
+ penstroke z1e{dir (-70-90)}..tension 1.1
+ ..z2e{down}..tension 1.1
+ ..z3e{right}..tension 1.1
+ ..z4e{dir (90+10)}..tension 1.1
+ ..z5e{dir (180-10)};
+fet_endchar;
+
+else:
+
+fet_beginchar("Pedal d", "d", "pedal-d")
+ set_char_box(0, 2/3pedalh#, 0, 7/8pedalh#);
+ pickup pencircle scaled penh;
+
+ penpos 1 (penh, -70);
+ penpos 2 (3/4penw, 0);
+ penpos 3 (2penh, 90);
+ penpos 4 (penw, 190);
+ penpos 5 (penh, -10-90);
+
+ z1l = (2/3w, pedalbh);
+ z2l = (1/3w, 1/2pedalbh);
+ z3l = (x1l, 0);
+ z4 = (w - 1/2penw, 1/2pedalbh + penh);
+ x5r = 0;
+ y5l = h;
+
+ penlabels (1,2,3,4,5);
+
+ penstroke z1e{dir (-70-90)}..tension 1.1
+ ..z2e{down}..tension 1.1
+ ..z3e{right}..tension 1.1
+ ..z4e{dir (90+10)}..tension 1.1
+ ..z5e{dir (180-10)};
+fet_endchar;
+
+fi
+
+fet_beginchar("Pedal e", "e", "pedal-e")
+ set_char_box(0, 2/5pedalh#, 0, pedalbh#);
+ pickup pencircle scaled penh;
+
+ penpos 1 (penh, pedalpha-90);
+ penpos 2 (penh, pedalpha-90);
+ penpos 3 (3/5penw, pedalpha);
+ penpos 4 (1.2penh, 90+pedalpha);
+ penpos 5 (2/3penw, 180);
+ penpos 6 (penw, 180+pedalpha);
+ penpos 7 (2/3penw, -90-20);
+ penpos 8 (penh, pedalpha-90);
+
+ z1l = (0, 1/5pedalh);
+ z2 = z1 + dir pedalpha * penw;
+ z3 = (3/5w, 8/9h);
+
+ z4 = (2/9w, y3);
+
+ x5r = 0;
+ y5 = y2;
+
+ x6 = 3/8w;
+ y6r = 1/2penh;
+
+ z7l = (x6l+penh, y6l);
+
+ x8r = w;
+ y8 = 1/5pedalh;
+
+ penlabels (1,2,3,4,5,6,7,8);
+ penstroke z1e{dir pedalpha}
+ ..z2e{dir pedalpha}.. tension 1.1
+ %urg
+ ..z3e..tension 1.05
+ ..z4e..tension 1.1
+ ..z5e..tension 1.5
+ ..z6e{dir -pedalpha}..tension 1.1
+ ..z7e.. tension 2.5
+ ..z8e;
+fet_endchar;
+
+fet_endgroup("pedal")
+
diff --git a/mf/feta-schrift.mf b/mf/feta-schrift.mf
index b72653b4ad..481e378e50 100644
--- a/mf/feta-schrift.mf
+++ b/mf/feta-schrift.mf
@@ -699,7 +699,6 @@ fet_beginchar("Coda", "coda", "coda")
fet_endchar;
input feta-slag;
-input feta-accordion;
fet_endgroup("scripts");
diff --git a/mf/feta-test11.mf b/mf/feta-test11.mf
new file mode 100644
index 0000000000..eaaa862fc5
--- /dev/null
+++ b/mf/feta-test11.mf
@@ -0,0 +1,21 @@
+% feta-test16
+% part of LilyPond's pretty-but-neat music font
+
+input feta-autometric;
+fet_beginfont("feta-test", 23);
+staffsize#:=23pt#;
+test:=1;
+
+% smoked cheese
+% test := -1;
+
+
+% dem piksels.
+%test := 1;
+
+input feta-generic;
+
+fet_endfont("feta");
+
+end.
+
diff --git a/mf/feta-test13.mf b/mf/feta-test13.mf
index 3d2ed3cea2..ce1e04cf85 100644
--- a/mf/feta-test13.mf
+++ b/mf/feta-test13.mf
@@ -2,8 +2,8 @@
% part of LilyPond's pretty-but-neat music font
input feta-autometric;
-fet_beginfont("feta-test", 16);
-staffsize#:=16pt#;
+fet_beginfont("feta-test", 13);
+staffsize#:=13pt#;
test:=1;
% smoked cheese
diff --git a/mf/feta-test23.mf b/mf/feta-test23.mf
new file mode 100644
index 0000000000..e4656d6d26
--- /dev/null
+++ b/mf/feta-test23.mf
@@ -0,0 +1,22 @@
+% feta-test23
+% part of LilyPond's pretty-but-neat music font
+
+
+input feta-autometric;
+fet_beginfont("feta-test", 23);
+staffsize#:=23pt#;
+test:=1;
+
+% smoked cheese
+% test := -1;
+
+
+% dem piksels.
+%test := 1;
+
+input feta-generic;
+
+fet_endfont("feta");
+
+end.
+
diff --git a/mf/feta-test26.mf b/mf/feta-test26.mf
index e51a6ce12a..212d63fa4a 100644
--- a/mf/feta-test26.mf
+++ b/mf/feta-test26.mf
@@ -2,7 +2,7 @@
% part of LilyPond's pretty-but-neat music font
input feta-autometric;
-fet_beginfont("feta-test", 16);
+fet_beginfont("feta-test", 26);
staffsize#:=26pt#;
test:=1;
diff --git a/scm/generic-property.scm b/scm/generic-property.scm
index 554408caff..adbf00a735 100644
--- a/scm/generic-property.scm
+++ b/scm/generic-property.scm
@@ -67,6 +67,11 @@
)
))
+(define generic-sustain-pedal-properties
+ (cons "Sustain_pedal" (list
+ (list 'textScriptPadding number? 'padding)
+ (list 'sustainPedalPadding number? 'padding))))
+
(define generic-crescendo-properties
(cons "Crescendo" (list
(list 'verticalDirection dir? 'direction)
@@ -198,6 +203,7 @@
generic-slur-properties
generic-beam-properties
generic-text-properties
+ generic-sustain-pedal-properties
generic-note-column-properties
generic-script-properties
generic-All-properties
diff --git a/scm/paper.scm b/scm/paper.scm
index a615f9564f..c5bdbbeba4 100644
--- a/scm/paper.scm
+++ b/scm/paper.scm
@@ -137,3 +137,19 @@
(beta (/ (* pi r-0) (* 2.0 h-inf))))
(* alpha (atan (* beta b)))))
+;; see mf/feta-pendaal.mf
+(define pedal-kerning-alist '())
+(set! pedal-kerning-alist
+ (append
+ '(
+ (("P" . "e") . -0.07)
+ (("e" . "d") . -0.53)
+ (("*" . "P") . 0.2)
+ )
+ pedal-kerning-alist))
+
+(define (pedal-kerning l r)
+ (let ((entry (assoc (cons l r) pedal-kerning-alist)))
+ (if entry
+ (cdr entry))))
+
diff --git a/stepmake/stepmake/metafont-vars.make b/stepmake/stepmake/metafont-vars.make
index 7beeca4110..96af147311 100644
--- a/stepmake/stepmake/metafont-vars.make
+++ b/stepmake/stepmake/metafont-vars.make
@@ -1,6 +1,5 @@
MF_FILES := $(wildcard *.mf)
-FONT_FILES = $(wildcard *[0-9].mf)
EXTRA_DIST_FILES += $(MF_FILES)
MF_TFM_FILES = $(addprefix $(outdir)/, $(FONT_FILES:.mf=.tfm))
MF_DVI_FILES = $(addprefix $(outdir)/, $(FONT_FILES:.mf=.dvi))
diff --git a/tex/p.tex b/tex/p.tex
new file mode 100644
index 0000000000..2f6169490e
--- /dev/null
+++ b/tex/p.tex
@@ -0,0 +1,39 @@
+% pedal.tex
+
+\hsize = 296mm
+\vsize = 210mm
+
+% fix chord.cc::banter_str before removing these
+\def\fetdef#1#2{%
+ \def#1{\hbox{\char#2}}}
+
+\fetdef\pedalasterisk{101}
+\fetdef\pedaldash{102}
+\fetdef\pedaldot{103}
+\fetdef\pedalP{104}
+\fetdef\pedald{105}
+\fetdef\pedale{106}
+
+%\font\fetatwentysixfontt=feta26 scaled \magstep 4
+%\font\fetatwentysixfontt=feta26 scaled 18842
+\font\fetatwentysixfontt=feta26 scaled 2407
+\magnification \magstep 4
+
+\def\fetafont{\fetatwentysixfontt}
+
+\baselineskip 12mm
+
+\vbox{
+\kern 50mm
+
+\hbox{
+\fetatwentysixfontt
+\hbox { \pedalP\kern-0.06ex\pedale\kern -0.55ex\pedald\pedaldot}
+\kern 100mm
+\pedalasterisk
+}
+}
+
+\end
+
+%\endinput
diff --git a/tex/pedal.tex b/tex/pedal.tex
new file mode 100644
index 0000000000..a4c7616ed5
--- /dev/null
+++ b/tex/pedal.tex
@@ -0,0 +1,62 @@
+% pedal.tex
+
+% fix chord.cc::banter_str before removing these
+\def\fetdef#1#2{%
+ \def#1{\hbox{\char#2}}}
+
+\fetdef\pedalasterisk{101}
+\fetdef\pedaldash{102}
+\fetdef\pedaldot{103}
+\fetdef\pedalP{104}
+\fetdef\pedald{105}
+\fetdef\pedale{106}
+
+
+\font\fetaelevenfont=feta11
+\font\fetathirteenfont=feta13
+\font\fetasixteenfont=feta16
+\font\fetatwentyfont=feta20
+\font\fetatwentythreefont=feta23
+\font\fetatwentysixfont=feta26
+
+\font\fetaelevenfontt=feta11 scaled \magstep 4
+\font\fetathirteenfontt=feta13 scaled \magstep 4
+\font\fetasixteenfontt=feta16 scaled \magstep 4
+\font\fetatwentyfontt=feta20 scaled \magstep 4
+\font\fetatwentythreefontt=feta23 scaled \magstep 4
+\font\fetatwentysixfontt=feta26 scaled \magstep 4
+
+\def\fetafont{\fetasixteenfont}
+
+\def\test{
+\hbox {
+\hbox { \pedalP\kern-0.05ex\pedale\kern -0.6ex\pedald\pedaldot}
+\kern 1ex
+\pedalasterisk
+\kern 1ex
+\hbox {\pedaldash\pedalP}
+}
+}
+
+\magnification \magstep 4
+\baselineskip 12mm
+
+\vbox{
+\fetaelevenfont \test
+\fetathirteenfont \test
+\fetasixteenfont \test
+\fetatwentyfont \test
+\fetatwentythreefont \test
+\fetatwentysixfont \test
+
+%\fetaelevenfontt \test
+%\fetathirteenfontt \test
+\fetasixteenfontt \test
+\fetatwentyfontt \test
+\fetatwentythreefontt \test
+\fetatwentysixfontt \test
+}
+
+\end
+
+%\endinput