]> git.donarmstrong.com Git - lilypond.git/commitdiff
release: 0.1.21 release/0.1.21
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Wed, 8 Oct 1997 13:19:42 +0000 (15:19 +0200)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Wed, 8 Oct 1997 13:19:42 +0000 (15:19 +0200)
31 files changed:
Documentation/INSTALL.pod
Documentation/literature.pod
INSTALL.text
NEWS
TODO
VERSION
init/font-en-tja16.ly
init/font-en-tja20.ly
lily/VERSION
lily/idealspacing.cc
lily/include/idealspacing.hh
lily/include/spring-spacer.hh
lily/midi-stream.cc
lily/spring-spacer.cc
lily/tex-stream.cc
make/lelievijver.lsm
make/lilypond.lsm
make/lilypond.spec
mf/TODO
mf/autometric.mf
mf/feta-generic.mf
mf/feta-params.mf
mf/feta-schrift.mf
mf/font-en-tja16.mf
mf/font-en-tja20.mf
mf/foo.mf [new file with mode: 0644]
mf/vette-beams16.mf
mf/vette-beams20.mf
mf/wat-zie-ik.mf
tex/font-en-tja16.tex
tex/font-en-tja20.tex

index 8ba5d1cf9a2baf73de101c753ac133908460750c..44c6bf621b7a38f8cc9a7049d11a2f056375a2d2 100644 (file)
@@ -95,8 +95,8 @@ Although not strictly necessary, these are recommended to have.
 
 =item *
 
-Perl-5.  Most scripts are written in Perl. Most  documentation was created
-with the perl's Plain Old Documentation. (I use 5.003)
+Perl-5.  Most documentation was created with the perl's Plain Old
+Documentation. (I use 5.003)
 
 =item *
 
@@ -109,9 +109,9 @@ GNU find
 
 =item *
 
-A fast computer (a full page of music typically takes 1 minute
-on my 486/133, using the B<--enable-checking> compile. It's lot slower
-than most MusiXTeX preprocessors)
+A fast computer (a full page of music typically takes 1 minute on my
+486/133, using the B<--enable-checking> compile. It's lot slower than
+most MusiXTeX preprocessors)
 
 =back
 
index f96915a22cadd5d8c5cd48972db147aeea310949..038c86f577c1a46e4d3d98914f04358a9f238be8 100644 (file)
@@ -41,9 +41,12 @@ New York.
 [This is as close to the ``standard'' reference work for music
 notation issues as one is likely to get. MB]
 
-K. Hader. ``Aus der Werkstatt eines Notenstechers'' Waldheim--Eberle
+Karl Hader. ``Aus der Werkstatt eines Notenstechers'' Waldheim--Eberle
 Verlag, Vienna 1948
 
+[Hader was the leader of the Waldheim-Eberle music publishers.  This
+book contains the most important rules on engraving]
+
 MPA. Standard music notation specifications for computer programming.
 December 1996
 
index 20f340f20a009560789de1ebfef4c187b6a6fae5..638c0073488e14e90821bcefbd510f4c71a5bbf0 100644 (file)
@@ -61,7 +61,7 @@ R\bR\bR\bRU\bU\bU\bUN\bN\bN\bNN\bN\bN\bNI\bI\bI\bIN\bN\bN\bNG\bG\bG\bG
 
 
 
-8/Oct/97                 LilyPond 0.1.20                        1
+8/Oct/97                 LilyPond 0.1.21                        1
 
 
 
@@ -87,9 +87,8 @@ R\bR\bR\bRE\bE\bE\bEC\bC\bC\bCO\bO\bO\bOM\bM\bM\bMM\bM\bM\bME\bE\bE\bEN\bN\bN\bND\bD\bD\bDE\bE\bE\bED\bD\bD\bD
        Although not strictly necessary, these are recommended to
        have.
 
-       +\bo         Perl-5.  Most scripts are written in Perl. Most
-                 documentation was created with the perl's Plain
-                 Old Documentation. (I use 5.003)
+       +\bo         Perl-5.  Most documentation was created with the
+                 perl's Plain Old Documentation. (I use 5.003)
 
        +\bo         Python.  Although perl is nice, python is
                  better.  We will shift towards python for build
@@ -124,10 +123,11 @@ C\bC\bC\bCO\bO\bO\bON\bN\bN\bNF\bF\bF\bFI\bI\bI\bIG\bG\bG\bGU\bU\bU\bUR\bR\bR\bRI\bI\bI\bIN\bN\bN\bNG\bG\bG\bG a\b
        can be adjusted with -\b-\b-\b--\b-\b-\b-e\be\be\ben\bn\bn\bna\ba\ba\bab\bb\bb\bbl\bl\bl\ble\be\be\be-\b-\b-\b-t\bt\bt\bte\be\be\bex\bx\bx\bx-\b-\b-\b-p\bp\bp\bpr\br\br\bre\be\be\bef\bf\bf\bfi\bi\bi\bix\bx\bx\bx and -\b-\b-\b--\b-\b-\b-e\be\be\ben\bn\bn\bna\ba\ba\bab\bb\bb\bbl\bl\bl\ble\be\be\be-\b-\b-\b-t\bt\bt\bte\be\be\bex\bx\bx\bx-\b-\b-\b-
        d\bd\bd\bdi\bi\bi\bir\br\br\br. The above assumes that you are root and have the GNU
        development tools, and your make is GNU make.  If this is
+       not the case, you can adjust your environment variables to
 
 
 
-8/Oct/97                 LilyPond 0.1.20                        2
+8/Oct/97                 LilyPond 0.1.21                        2
 
 
 
@@ -136,7 +136,6 @@ C\bC\bC\bCO\bO\bO\bON\bN\bN\bNF\bF\bF\bFI\bI\bI\bIG\bG\bG\bGU\bU\bU\bUR\bR\bR\bRI\bI\bI\bIN\bN\bN\bNG\bG\bG\bG a\b
 INSTALL(1)            LilyPond documentation           INSTALL(1)
 
 
-       not the case, you can adjust your environment variables to
        your taste:
 
                export CPPFLAGS="-I /home/me/my_include -DWEIRD_FOOBAR"
@@ -190,10 +189,11 @@ INSTALL(1)            LilyPond documentation           INSTALL(1)
 
        --enable-mf-dir
                 Set the directory mf input is in (idem)
+                [obsolete]
 
 
 
-8/Oct/97                 LilyPond 0.1.20                        3
+8/Oct/97                 LilyPond 0.1.21                        3
 
 
 
@@ -202,8 +202,6 @@ INSTALL(1)            LilyPond documentation           INSTALL(1)
 INSTALL(1)            LilyPond documentation           INSTALL(1)
 
 
-                [obsolete]
-
        --enable-out-dir
                 Set the directory for machine generated output.
 
@@ -256,10 +254,12 @@ I\bI\bI\bIN\bN\bN\bNS\bS\bS\bST\bT\bT\bTA\bA\bA\bAL\bL\bL\bLL\bL\bL\bLI\bI\bI\bIN\bN\bN\bNG\bG\bG\bG
 
        should do the trick.
 
+       Install the musixtex fonts in a directory which TeX and MF
+       knows (if you are root, look for a directory which
 
 
 
-8/Oct/97                 LilyPond 0.1.20                        4
+8/Oct/97                 LilyPond 0.1.21                        4
 
 
 
@@ -268,8 +268,6 @@ I\bI\bI\bIN\bN\bN\bNS\bS\bS\bST\bT\bT\bTA\bA\bA\bAL\bL\bL\bLL\bL\bL\bLI\bI\bI\bIN\bN\bN\bNG\bG\bG\bG
 INSTALL(1)            LilyPond documentation           INSTALL(1)
 
 
-       Install the musixtex fonts in a directory which TeX and MF
-       knows (if you are root, look for a directory which
        contains the directories with AMS and CM source (*.mf)
        files. Create a subdir lilypond or musixtex and copy the
        fonts into that). Do not forget to rehash TeX (if
@@ -325,7 +323,9 @@ R\bR\bR\bRE\bE\bE\bED\bD\bD\bDH\bH\bH\bHA\bA\bA\bAT\bT\bT\bT L\bL\bL\bLI\bI\bI\bIN\bN\bN\bNU\bU\bU\bUX\bX\bX\bX
 
 
 
-8/Oct/97                 LilyPond 0.1.20                        5
+
+
+8/Oct/97                 LilyPond 0.1.21                        5
 
 
 
@@ -391,6 +391,6 @@ A\bA\bA\bAU\bU\bU\bUT\bT\bT\bTH\bH\bH\bHO\bO\bO\bOR\bR\bR\bRS\bS\bS\bS
 
 
 
-8/Oct/97                 LilyPond 0.1.20                        6
+8/Oct/97                 LilyPond 0.1.21                        6
 
 
diff --git a/NEWS b/NEWS
index facfa0b0fc55884f2390bd650019b2d3c0ae6b2a..3f196faa5e00354e02dc8e085a65bc8837493aa3 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,11 @@
+pl 21
+       - shrinking uses more energy  than stretching
+       - check IO error on writing (disk full?)
+
+
+*********
+
+oct 8
 pl 20
        - don't swallow non lyric-stuff in lyrics
        - x-position of Stem
diff --git a/TODO b/TODO
index 3c414d5349250705ac48519c40becba85d28185c..f3b65e6c36d98fc2be9f90cc8d91dde4fda19b73 100644 (file)
--- a/TODO
+++ b/TODO
@@ -8,22 +8,21 @@ grep for TODO and ugh/ugr
 
        * accidental placement
 
-       * bar-checking lyrics.
-
-       * check IO error on writing (disk full?)
-
        * AFM for font input?
 
        * Make general "spanning"-elements and "placer"-elements
 
+       * Unicode support?
+
        - naming Mozarella, Madeira, Muella, Fontaigna, Feta?
        - bf: abbrevs over whole note
        - scoping for properties
 
        {       c4
                \multi 2  < { \stemup .. } { \stemdown .. } >
-               c2 }
-       
+               c2 
+       }
+
        this modifies \stem for the c2
 
        * use properties for:
diff --git a/VERSION b/VERSION
index d7f57e3c375996b9649f5e195ec621ab175d21d6..bc8631da7448cc2ed8a92ccc012fe0b3868ab3a7 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1,6 +1,6 @@
 TOPLEVEL_MAJOR_VERSION = 0
 TOPLEVEL_MINOR_VERSION = 1
-TOPLEVEL_PATCH_LEVEL = 20.jcn1
+TOPLEVEL_PATCH_LEVEL = 21
 TOPLEVEL_MY_PATCH_LEVEL = 
 
 # use the above to send patches, always empty for released version:
index 0ff3a8cdc0b3f0afe6ae07757f4d1952fac41622..a2984b2481d746528d1bcbb071e8272e73dca816 100644 (file)
@@ -1,5 +1,5 @@
 % generated automatically by mf-to-table.py version 0.3
-% on Wed Oct  8 16:18:13 1997
+% on Thu Oct  9 11:15:46 1997
 % Do not edit
 
 % input from out/font-en-tja16.log
@@ -34,7 +34,7 @@
         "2" "\quartball" -0.00\pt 5.28\pt -2.20\pt 2.20\pt 
         }
     "foobars"  = \table {
-        "ufermata" "\ufermata" -6.30\pt 6.30\pt -0.00\pt 6.80\pt 
+        "ufermata" "\ufermata" -6.30\pt 6.30\pt -0.30\pt 6.80\pt 
         "dfermata" "\dfermata" -6.30\pt 6.30\pt -6.80\pt 0.00\pt 
         "accent" "\sforzatoaccent" -3.60\pt 3.60\pt -2.00\pt 2.00\pt 
         "staccato" "\staccato" -0.50\pt 0.50\pt -0.50\pt 0.50\pt 
@@ -48,6 +48,7 @@
         "upbow" "\upbow" -2.60\pt 2.60\pt -0.00\pt 7.80\pt 
         "downbow" "\downbow" -3.50\pt 3.50\pt -0.00\pt 4.00\pt 
         "turn" "\turn" -4.38\pt 4.38\pt -2.12\pt 2.12\pt 
+        "utrill" "\utrill" -0.00\pt 8.00\pt -0.00\pt 6.00\pt 
         }
     "floogbars"  = \table {
         "3u" "\eighthflag" -0.20\pt 5.17\pt -12.77\pt 0.20\pt 
index 4746d6ce47ee3ddc0d1c64f65cd2492610d8a40a..fcffbad34eddc010676bb9059c90526acc181510 100644 (file)
@@ -1,5 +1,5 @@
 % generated automatically by mf-to-table.py version 0.3
-% on Wed Oct  8 16:18:16 1997
+% on Thu Oct  9 11:15:50 1997
 % Do not edit
 
 % input from out/font-en-tja20.log
@@ -34,7 +34,7 @@
         "2" "\quartball" -0.00\pt 6.61\pt -2.75\pt 2.75\pt 
         }
     "foobars"  = \table {
-        "ufermata" "\ufermata" -7.88\pt 7.88\pt -0.00\pt 8.50\pt 
+        "ufermata" "\ufermata" -7.88\pt 7.88\pt -0.38\pt 8.50\pt 
         "dfermata" "\dfermata" -7.88\pt 7.88\pt -8.50\pt 0.00\pt 
         "accent" "\sforzatoaccent" -4.50\pt 4.50\pt -2.50\pt 2.50\pt 
         "staccato" "\staccato" -0.63\pt 0.63\pt -0.63\pt 0.63\pt 
@@ -48,6 +48,7 @@
         "upbow" "\upbow" -3.25\pt 3.25\pt -0.00\pt 9.75\pt 
         "downbow" "\downbow" -4.38\pt 4.38\pt -0.00\pt 5.00\pt 
         "turn" "\turn" -5.47\pt 5.47\pt -2.65\pt 2.65\pt 
+        "utrill" "\utrill" -0.00\pt 10.00\pt -0.00\pt 7.50\pt 
         }
     "floogbars"  = \table {
         "3u" "\eighthflag" -0.25\pt 6.46\pt -15.91\pt 0.25\pt 
index c9923f9d22eb29a3a09840964f6bd2601bc7b6d1..9b9967a6f26e6d0cd0b118e0e5579ea78fae7b09 100644 (file)
@@ -1,6 +1,6 @@
 MAJOR_VERSION = 0
 MINOR_VERSION = 1
-PATCH_LEVEL = 20
+PATCH_LEVEL = 21
 # use to send patches, always empty for released version:
 # include separator: ".postfix", "-pl" makes rpm barf
 
index 16298be1e11613652a55bd2ccd23f9a87ca8f9a1..7497d3b66a8b5508a6fab8d7e07c62a845f8c421 100644 (file)
@@ -34,3 +34,15 @@ Idealspacing::OK() const
 {
   assert (hooke_f_ >= 0);
 }
+
+Real
+Idealspacing::energy_f(Real x) const
+{
+  Real dx = (space_f_ - x);
+  
+  Real e =  sqr(dx);
+  if ( dx < 0)
+    e *= 4;                    // ugh.
+  
+  return hooke_f_ * e;
+}
index 068ec5836cf6defd292de401a7484e82b9a1b563..198b7e000b5f59f78df0de2b1561165dc58cd76f 100644 (file)
 /// ideal spacing between two columns
 struct Idealspacing {
 
-    /// the ideal distance
-    Real space_f_;
+  /// the ideal distance
+  Real space_f_;
 
-    /// Hooke's constant: how strong are the "springs" attached to columns
-    Real hooke_f_;
+  /// Hooke's constant: how strong are the "springs" attached to columns
+  Real hooke_f_;
 
-    /// the two columns
-    int left_i_;
-    int right_i_;
+  /// the two columns
+  int left_i_;
+  int right_i_;
     
-    void print() const;
-    void OK() const ;
-    Idealspacing();
+  Real energy_f (Real x) const;
+  void print() const;
+  void OK() const ;
+  Idealspacing();
 };
 
 
index 22c4d9634e3ac232f7bcc6a8acd62bbe2abf8c2f..f5a40b63da6db4c5f45c9fa79b3d4650cd359b59 100644 (file)
@@ -87,6 +87,7 @@ class Spring_spacer : public Line_spacer {
   Score_column* scol_l (int);
   void connect (int i,int j, Real,Real);
   Line_of_cols error_pcol_l_arr() const;
+  Real calculate_energy_f (Vector) const;
 public:
   static Line_spacer *constructor();
 
index 05d942138893b9d54c0424e23f7a69ca4ad46db8..9f9008dfed5f99897e722829e7145295d248dc69 100644 (file)
@@ -24,6 +24,12 @@ Midi_stream::Midi_stream (String filename_str)
 
 Midi_stream::~Midi_stream()
 {
+  *os_p_ << flush;             // ugh. Share with tex_stream.
+  if (!*os_p_)
+    {
+      warning("error syncing file (disk full?)");
+      exit_status_i_ = 1;
+    }  
   delete os_p_;
 }
 
index 4a366304e6bb79f981749806d46ed0253391c85e..d1fb487b0050a6cc7ce2acf89e4f4e7c0bc41fd7 100644 (file)
@@ -283,6 +283,18 @@ Spring_spacer::make_constraints (Mixed_qp& lp) const
     }
 }
 
+
+Real
+Spring_spacer::calculate_energy_f (Vector solution) const
+{
+  Real e = 0.0;
+  for (PCursor<Idealspacing*> i (ideal_p_list_.top()); i.ok(); i++)  
+    {
+      e += i->energy_f(solution(i->right_i_) - solution(i->left_i_));
+    }
+  
+  return e;
+}
 void
 Spring_spacer::lower_bound_solution (Col_hpositions*positions) const
 {
@@ -294,7 +306,7 @@ Spring_spacer::lower_bound_solution (Col_hpositions*positions) const
   start.fill (0.0);
   Vector solution_vec (lp.solve (start));
 
-  positions->energy_f_ = lp.eval (solution_vec);
+  positions->energy_f_ = calculate_energy_f (solution_vec);
   positions->config = solution_vec;
   positions->satisfies_constraints_b_ = check_constraints (solution_vec);
 }
@@ -318,7 +330,7 @@ Spring_spacer::solve (Col_hpositions*positions) const
       WARN << "solution doesn't satisfy constraints.\n" ;
     }
   position_loose_cols (solution_vec); 
-  positions->energy_f_ = lp.eval (solution_vec);
+  positions->energy_f_ = calculate_energy_f (solution_vec);
   positions->config = solution_vec;
   positions->error_col_l_arr_ = error_pcol_l_arr();
   
index eed823e575fdd6695c29a5fbeed6bdba9aa29de8..71ac2f6e2acffb819b31cc5a8eb1ac868757772c 100644 (file)
@@ -5,11 +5,6 @@
 
   (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
   
-  TODO
-
-  make an abstract interface to output, operations: 
-
-  move (x,y), put (symbol).
 */
 
 #include <fstream.h>
@@ -42,6 +37,12 @@ Tex_stream::header()
 }
 Tex_stream::~Tex_stream()
 {
+  *os << flush;
+  if (!*os)
+    {
+      warning("error syncing file (disk full?)");
+      exit_status_i_ = 1;
+    }
   delete os;
   assert (nest_level == 0);
 }
@@ -110,4 +111,3 @@ Tex_stream::break_line()
   line_len_i_ = 0;
 }
 
-/* *************************************************************** */
index ad7e8f6372b44f96f95b944835aa7505552994be..32a48b236e61ffc47dc7db051e841aafcabf9aff 100644 (file)
@@ -1,6 +1,6 @@
 Begin3
 Titel: LilyPond
-Versie: 0.1.20
+Versie: 0.1.21
 Inschrijf datum: 08OCT97
 Beschrijving: LilyPond is de muziek typesetter van het GNU Project.  
                Het programma genereert muziek in zichtbare of 
@@ -16,8 +16,8 @@ Auteur: hanwen@stack.nl (Han-Wen Nienhuys)
        jan@digicash.com (Jan Nieuwenhuizen)
 Onderhouden door: hanwen@stack.nl (Han-Wen Nienhuys)
 Voornaamste plek: sunsite.unc.edu /pub/Linux/apps
-       395k lilypond-0.1.20.tar.gz 
+       395k lilypond-0.1.21.tar.gz 
 Oorspronkelijke plek: pcnov095.win.tue.nl /pub/lilypond/
-       395k lilypond-0.1.20.tar.gz 
+       395k lilypond-0.1.21.tar.gz 
 Copi"eer politie: GPL
 End
index 176eb4fecc2c67f9ab88a9c854b9e5ec55bfc42c..3470c648c6f7887dfc0433ba0efe0ce8ba8fc81e 100644 (file)
@@ -1,6 +1,6 @@
 Begin3
 Title: LilyPond
-Version: 0.1.20
+Version: 0.1.21
 Entered-date: 08OCT97
 Description: LilyPond is the GNU Project music typesetter.  The program
                generates visual or auditive output from a music 
@@ -14,8 +14,8 @@ Author: hanwen@stack.nl (Han-Wen Nienhuys)
        jan@digicash.com (Jan Nieuwenhuizen)
 Maintained-by: hanwen@stack.nl (Han-Wen Nienhuys)
 Primary-site: sunsite.unc.edu /pub/Linux/apps
-       395k lilypond-0.1.20.tar.gz 
+       395k lilypond-0.1.21.tar.gz 
 Original-site: pcnov095.win.tue.nl /pub/lilypond/
-       395k lilypond-0.1.20.tar.gz 
+       395k lilypond-0.1.21.tar.gz 
 Copying-policy: GPL
 End
index 7eaca4df99783e656825485eaec4571898bfb291..18049956f0737110ca3a143a90561f08f86f2b65 100644 (file)
@@ -1,9 +1,9 @@
 Name: lilypond
-Version: 0.1.20
+Version: 0.1.21
 Release: 1
 Copyright: GPL
 Group: Applications/Publishing
-Source0: pcnov095.win.tue.nl:/pub/lilypond/lilypond-0.1.20.tar.gz
+Source0: pcnov095.win.tue.nl:/pub/lilypond/lilypond-0.1.21.tar.gz
 Summary: A preprocessor to make TeX typeset music.
 URL: http://www.stack.nl/~hanwen/lilypond
 Packager: Han-Wen Nienhuys <hanwen@stack.nl>
diff --git a/mf/TODO b/mf/TODO
index a13e94503a5a070fb03d1d82c8286593112a1cfd..212eefa4f299df2c26f11192ac42da8e5123c2fe 100644 (file)
--- a/mf/TODO
+++ b/mf/TODO
@@ -5,20 +5,19 @@
          * flags
          * clefs
          * some scripts:
-           - {up, down}bow
            - toe/heel
            - piano pedals,
          * braces.
          * trills
          * maxima notehead
          * coda signs.
-         * 0 - 9
+         * 0 - 9: bold and italic
 
-       - move to OpusTeX fonts ?  (no!)
-       - include important spacing dims in TFM? 
+       - include important spacing dims in fetalog 
        - lilyrules.mf for different rules (lines) ?
        - check out Adobe Sonata/Petrucci font layout.  They are the
 standard for Music fonts
+
        - hack up GS to do round pixels iso. square pixels.  (Printers
 don't do square pixels.)
 
index 9912d70d59e1af77295c828d7c07042c13560653..cd924a3aab9412d644e4869020c1c067df0f84d9 100644 (file)
@@ -74,6 +74,8 @@ def no_dimen_beginchar(expr c) =
        scantokens extra_beginchar;
 enddef;
 
+code:=-1;
+
 % starts just as plain mf's beginchar:
 %     charcode, 
 % and then adds:
index 97c2dabc0a4b59d3c2c98d07707b924485a58458..7fa8ffd6b743d0e755996a69a4a972c6aa4c4a45 100644 (file)
@@ -7,6 +7,7 @@ input feta-params;
 
 
 test:= 0;
+
 if test = 0: 
        input feta-eindelijk;
        input feta-toevallig;
index ea95ec352339fc56be6c34da166b136f0ececbc6..51ec99126a05757b12d1c37c54577986e10a25f4 100644 (file)
@@ -1,4 +1,6 @@
 
+stafflines = 5;
+
 interline#:=staffsize#/(stafflines-1);
 
 %
index 4600513b992714f51926193d3bad172c3a17e0b0..bd156643ff46a2bc6c4f378641f45dcb18a0ece0 100644 (file)
@@ -19,7 +19,7 @@ def draw_fermata =
 
        radius# + crook_fatness#/2 = h#;
        radius# + crook_thinness#/2 = w#;
-       set_char_box(w#, w#, 0, h#);
+       set_char_box(w#, w#, crook_thinness#/2, h#);
        
        define_pixels(radius, crook_thinness, crook_fatness);
        dot_diam = 4/3 crook_fatness;
@@ -269,9 +269,9 @@ fet_beginchar("Downbow", "downbow", "downbow")
 fet_endchar;
 
 %
-% FIXME the middle part (NW -> SE) may have some more (ok; it is
-% negative: less) slope
+% Inspired by a computer-set version of auf dem Strom by Baerenreiter. 
 %
+
 fet_beginchar("Turn","turn","turn")
        save thin, thick, ball_diam, darkness;
        save wd, ht, thick_nibangle, ball_nib_thick;
@@ -280,7 +280,7 @@ fet_beginchar("Turn","turn","turn")
 
        wd# = 35/16 interline#;
        ht# = 18/17 interline#;
-       darkness = 1.3 stafflinethickness;
+       darkness = 1.25 stafflinethickness;
 
        set_char_box(wd#/2, wd#/2, ht#/2, ht#/2);
 
@@ -326,4 +326,114 @@ fet_beginchar("Turn","turn","turn")
        
 fet_endchar;
 
+
+
+def draw_bulb(expr zl, zr, center_factor, radius_factor)=
+       begingroup;
+       clearxy;
+       save rad, ang;
+
+       ang = angle(zr-zl);
+       z0 = center_factor [zr, zl];
+       rad = center_factor * length(zr-zl);
+       
+       z1 = z0 + radius_factor* rad * dir(ang - 100);
+       z2 = z0 + rad * dir(ang - 270);
+       labels(0,1,2);
+       fill zr{dir (ang - 90)} .. z1 .. z2 -- cycle;
+
+       endgroup
+enddef;
+
+fet_beginchar("Trill (`tr')","utrill","utrill")
+       
+       save start_angle,  ascender_extra, ex, hair_thick, fatness,
+         slant_angle, slant, t_fatness, r_fatness, kerning;
+       pair slant_vec;
+
+       define_pixels(ex, ascender_extra, ascender);
+       ascender_extra# = 1/2 ex#;
+       ascender# = ascender_extra# + ex#;
+       ex# = interline#;
+
+       fatness = 12/40 ex;
+       t_fatness = 8/10 fatness;
+       r_fatness = 8/10 fatness;
+
+       hair_thick = 2/3 blot_diameter;
+
+
+       y1 = ascender;
+       x1l = 0;
+       x1r = t_fatness;
+       penpos1(start_nib_wid, 25);
+       
+       z2 = (x1, 7/18 ex);
+       penpos2(start_nib_wid, 25);
+
+       z3l = (11/10 t_fatness, 0);
+
+       z4l = (13/6 t_fatness, 3/8 ex);
+       penpos4(hair_thick, 180);
+
+       1.9 [z3l, z3r] = z4r;
+       z3 = .5 [z3l, z3r];
+
+
+       
+       save t_p, krul_p;
+       path t_p, krul_p, r_p;
+
+
+       t_p := z1l -- z2l{down} .. z3l{right} .. z4l{up} -- z4r{down} 
+               .. z3r{left} .. z2r{up} .. z1r -- cycle;
+       fill t_p ;
+
+       krul_ang = 32;
+
+       pickup pencircle scaled hair_thick;
+
+       z5 = (t_fatness/2, 2/3 ex);
+       
+       lft x6 = -18/40 ex;
+       y6 =  y5 - 1/20 ex;
+
+       z7 = (2 t_fatness, ex);
+
+       krul_p := z4{up} .. tension 1.1 .. z5  .. {down}z6
+               .. tension 1.1 .. z5 --- z7;
+       draw krul_p;
+
+       penpos7(hair_thick, angle (z7-z5) + 90);
+
+       z8l = (2 t_fatness + 2 hair_thick, ex);
+       penpos8(2 hair_thick, 35);
+
+       y9 = 3/4 ex;
+       x9l = 2.8 t_fatness;
+       penpos9(r_fatness, 0);
+
+       x10 = x9;
+       y10 = 0;
+       penpos10(r_fatness, 0);
+
+       r_p := z7l{z7-z5} .. z8l{right} .. z9l{down} --- z10l -- z10r
+               --- z9r{up} 
+               ..  z8r{left} ..  z7r{z5-z7} -- cycle;
+       fill r_p;
+       set_char_box(0,2 interline#, 0,ascender#);
+
+
+       penpos11(1/4 r_fatness, -20);
+       z11r = z9r;
+       
+       z13 = (x9 + 2 r_fatness, y11 + 1/16 ex);
+       penpos13(r_fatness, 180);
+       fill z11r{dir 70} .. z13r{down} -- z13l{up} .. z11l{dir 250} -- cycle;
+       penlabels(range 1 thru 15);
+
+       draw_bulb(z13r, z13l, 0.5, 1.5);
+fet_endchar;
+
 fet_endgroup("foobars");
index 80ccfadeec197b758159fa9afaccac70b13e795d..2749d8d55771f4055859cb1cb21ef02959de7bc9 100644 (file)
@@ -10,8 +10,6 @@ fet_beginfont("font-en-tja", 16);
 mode_setup;
 
 staffsize#:=16pt#;
-stafflines:=5;
-code:=-1;
 
 input feta-generic;
 
index c7e35a13ed98dc51e3d38937e29f43a7d0f3c73b..7255d9f87287145eac8a5d22789c099e26c83ef0 100644 (file)
@@ -7,9 +7,6 @@ input autometric;
 fet_beginfont("font-en-tja", 20);
 
 staffsize#:=20pt#;
-stafflines:=5;
-stafflinethickness#:=0.4pt#;
-code:=-1;
 
 input feta-generic;
 
diff --git a/mf/foo.mf b/mf/foo.mf
new file mode 100644 (file)
index 0000000..e69de29
index 461658677623b4a5fb74cb955db54d03d99c05a8..5162c158531963f3a078935309f954d25812d4cb 100644 (file)
@@ -7,12 +7,7 @@ font_identifier:="vette-beams16";
 font_size 16;
 mode_setup;
 
-test:=0;
-
 staffsize#:=16pt#;
-stafflines:=5;
-stafflinethickness#:=0.4pt#;
-input feta-params;
 input wat-zie-ik;
 end.
 
index 9d0f93d1d7a2d2b0a86ad165fc9d899bd93ada22..af183f260c10370336b0f8a7b08049faeb46e880 100644 (file)
@@ -8,11 +8,7 @@ font_identifier:="vette-beams16";
 font_size 20;
 mode_setup;
 
-test:=0;
-
 staffsize#:=20pt#;
-stafflines:=5;
-stafflinethickness#:=0.4pt#;
-input feta-params;
+
 input wat-zie-ik;
 end.
index 507d377496f80eb5e8cc806aa893931c149fd6e3..8bcdf19bc8ee190ee918a5cc509f4f2b313297b5 100644 (file)
@@ -2,24 +2,21 @@
 % part of LilyPond's pretty-but-neat music font
 % beams: plat en steil
 
-%\tracingequations:= tracingonline := 1;
-
+input feta-params;
 
 beamheight#:=0.48interline#;
+
 define_pixels(beamheight);
 
 pen beam_pen;
 beam_pen:=penrazor scaled beamheight rotated 90;
 
-% mimic taupin-SLOPES for now -- because lily knows them
 ELEM_TAN:=0.05;
 SLOPES:=20;
 LENGTHS:=6;
 ELEM_FACTOR := 2;
 ELEM_INITIAL_LEN:=2;
 
-
-% Beamslopes up
 for i := -SLOPES upto SLOPES:
        width:= ELEM_INITIAL_LEN;
        for j:=1 upto LENGTHS:
index 4793b3cdcea8a84140d1d19eca0f2864a35094ed..e09b104022d37e1d9afc1e41f0c250af48a3a161 100644 (file)
@@ -1,5 +1,5 @@
 % generated automatically by mf-to-table.py version 0.3
-% on Wed Oct  8 16:18:13 1997
+% on Thu Oct  9 11:15:46 1997
 % Do not edit
 
 % input from out/font-en-tja16.log
@@ -48,8 +48,9 @@
 \fetdef\upbow{32}
 \fetdef\downbow{33}
 \fetdef\turn{34}
+\fetdef\utrill{35}
 
 % floogbars
-\fetdef\eighthflag{35}
-\fetdef\deighthflag{36}
+\fetdef\eighthflag{36}
+\fetdef\deighthflag{37}
 
index 4739128ba775bcc69830f13ea0b0d617c3fae7d7..ff33516f8c325c94eecab9805d90150a08d0d48c 100644 (file)
@@ -1,5 +1,5 @@
 % generated automatically by mf-to-table.py version 0.3
-% on Wed Oct  8 16:18:16 1997
+% on Thu Oct  9 11:15:50 1997
 % Do not edit
 
 % input from out/font-en-tja20.log
@@ -48,8 +48,9 @@
 \fetdef\upbow{32}
 \fetdef\downbow{33}
 \fetdef\turn{34}
+\fetdef\utrill{35}
 
 % floogbars
-\fetdef\eighthflag{35}
-\fetdef\deighthflag{36}
+\fetdef\eighthflag{36}
+\fetdef\deighthflag{37}