]> git.donarmstrong.com Git - lilypond.git/commitdiff
release: 0.1.25 release/0.1.25
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Tue, 21 Oct 1997 10:55:42 +0000 (12:55 +0200)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Tue, 21 Oct 1997 10:55:42 +0000 (12:55 +0200)
42 files changed:
AUTHORS.text
Documentation/AUTHORS.pod
Documentation/gnu-music.pod
Documentation/literature.pod
Documentation/other-packages.pod
INSTALL.text
NEWS
TODO
VERSION
bin/lilypython.py
bin/make-patch.py [deleted file]
bin/makepatch.py [new file with mode: 0644]
bin/rel.py [deleted file]
bin/release.py [new file with mode: 0644]
bin/release.sh [deleted file]
flower/TODO
init/font-en-tja16.ly
init/font-en-tja20.ly
init/table16.ly
init/table20.ly
input/font.ly
lily/VERSION
lily/beam.cc
lily/include/stem.hh
lily/rest.cc
lily/stem.cc
make/Targets.make
make/Variables.make
make/lelievijver.lsm
make/lilypond.lsm
make/lilypond.spec
mf/TODO
mf/dimen.tex
mf/feta-banier.mf
mf/feta-eindelijk.mf
mf/feta-generic.mf
mf/feta-nummer.mf [deleted file]
mf/feta-nummer10.mf [deleted file]
mf/feta-orator.mf [new file with mode: 0644]
mf/feta-orator10.mf [new file with mode: 0644]
tex/font-en-tja16.tex
tex/font-en-tja20.tex

index ac30e62162a79731d01740d6c2d43fc7192c5666..c9ae0e9a5c0eceaa4aec971764e0294e98a695f0 100644 (file)
@@ -46,8 +46,11 @@ C\bC\bC\bCO\bO\bO\bON\bN\bN\bNT\bT\bT\bTR\bR\bR\bRI\bI\bI\bIB\bB\bB\bBU\bU\bU\bUT\bT\bT\bTO\bO\bO\bOR\bR\bR\bRS\bS
        +\bo   Anthony Fok <foka@gpu.srv.ualberta.ca>, debian
            package: make/debian/*
 
-       +\bo   Franc,ois Pinard <pinard@iro.umontreal.ca>, Neil
-           Jerram <nj104@cus.cam.ac.uk>. Documentation/Vocab*
+       +\bo   Franc,ois Pinard <pinard@iro.umontreal.ca>,
+           Documentation/Vocab*, internationalization stuff
+
+       +\bo   Neil Jerram <nj104@cus.cam.ac.uk>.
+           Documentation/Vocab*
 
        Your name could be here! If you want to help, then take a
        look at the SMALLISH PROJECTS section of in the file _\bT_\bO_\bD_\bO.
@@ -55,12 +58,75 @@ C\bC\bC\bCO\bO\bO\bON\bN\bN\bNT\bT\bT\bTR\bR\bR\bRI\bI\bI\bIB\bB\bB\bBU\bU\bU\bUT\bT\bT\bTO\bO\bO\bOR\bR\bR\bRS\bS
 
        [And of course we sincerely thank J.S.Bach, F.Schubert, T.
        Merula and W.A.Mozart for their beautiful music]
+
+
+
+21/Oct/97                LilyPond 0.1.25                        1
+
+
+
+
+
+AUTHORS(1)            LilyPond documentation           AUTHORS(1)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
 
 
 
 
 
 
-10/Oct/97                LilyPond 0.1.24                        1
+21/Oct/97                LilyPond 0.1.25                        2
 
 
index 1839dec91549e6771777e9a78df06587085083a9..f4cb0513fedd4486c8f09f4f2f54300d5b193aa9 100644 (file)
@@ -59,8 +59,12 @@ Anthony Fok <foka@gpu.srv.ualberta.ca>, debian package: make/debian/*
 
 =item *
 
-Franc,ois Pinard <pinard@iro.umontreal.ca>, Neil Jerram
-<nj104@cus.cam.ac.uk>. Documentation/Vocab*
+Franc,ois Pinard <pinard@iro.umontreal.ca>, Documentation/Vocab*,
+internationalization stuff
+
+=item * 
+
+Neil Jerram <nj104@cus.cam.ac.uk>. Documentation/Vocab*
 
 =back
 
index 3f3daf2efc4afcdb6ca60422eb12e69a2e3746b1..f13431ded6dc9d39486518242684d4527e8a3103 100644 (file)
@@ -86,14 +86,15 @@ of use and power.
 
 =item A set of music fonts
 
-Preferably in Metafont, suited to both screen display and use on
-paper.
+In development, the Feta font.  
 
 =item A typesetting engine
 
+In development, included in LilyPond.
 A system with rules on how to set properties of items to be printed
-(up/down directions, breaking, dimensions, etc) LilyPond provides one,
-but it is not (yet) suited to interactive typesetting
+(up/down directions, breaking, dimensions, etc)
+It should be suited to interactive typesetting (so, incremental
+algorithms are needed)
 
 =item A display engine
 
@@ -103,13 +104,13 @@ Ideally the system should cooperate with the typesetting engine
 
 =item An ASCII language
 
-In development, LilyPond has a language. (See over there for goals)
+In development, LilyPond has a language. 
 Having an ASCII format which enables urtext, and easy sharing (via
 mail and news forums) encourages cooperation and exchange of music.
 
 =item A printing engine
 
-Maybe to be merged with the display system.
+In development, included in LilyPond.
 
 =item An input system
 
@@ -132,6 +133,11 @@ simplifies creating a collection of music
 (difficult) A system to generate accompaniments, figured bass,
 automatic accompaniment, etc.
 
+=item A performing system
+
+A system which can play credible performances of abstract music
+representations.  LilyPond has a bare bones system, but it cannot
+(yet) be described as "credible". 
 
 =back
 
@@ -159,24 +165,11 @@ formats.
 
 =back
 
-=head1 TASKS (SHORT TERM)
-
-=over 4
-
-=item *
-
-Think about interfaces for components.
-
-=item *
-
 Find sponsors. This project will take a long time, and in its infant
 stages, having a hard and small core which does a lot of work, is more
 efficient than lots of people doing small subprojects. Finanicial
 support would be desirable.
 
-=back
-
-
 
 =head1 HISTORY 
 
index bbb68635ff234f695fdfe3788699f97399117cf2..6d6094e1eb3f6e3403e9bb185669fadb4e6acc59 100644 (file)
@@ -18,9 +18,9 @@ EDV-gesteuerten Notensatz'', Schott-Verlag, Mainz 1988.ISBN 3-7957-2886-x.
 
 [I. A very thorough overview of engraving practices of various
 craftsmen. It includes detailed specs of characters, dimensions etc.
-II. a thorough overview of a (by now antiquated) automated system
-called Ikarus; EDV Means e(lektronischen) D(aten)v(erarbeitung),
-electronic data processing HWN]
+II. a thorough overview of a anonymous (by now antiquated) automated
+system. EDV Means e(lektronischen) D(aten)v(erarbeitung), electronic
+data processing HWN]
 
 Maxwell Weaner and Walter Boelke, Standard Music Notation Practice,
 revised edition by Arnold Broido and Daniel Dorff. Music Publisher's
@@ -234,6 +234,8 @@ some of the conventions and difficulties in printing music HWN]
 The University of Colorado Music Engraving page.
 http://obenamots.cc.colorado.edu/Musicpress/engraving.html
 
+[Webpages about engraving (designed with finale users in mind) (sic) HWN]
+
 Anthony Donato. Preparing Music Manuscript. Englewood Cliffs:
 Prentice-Hall, 1963.
 
index 4ca3a2b00481744e62e1a35e6a70d61c18a4624c..24b9c5c9264195cb2eaec3c6ec2f3cafbc00e715 100644 (file)
@@ -117,9 +117,11 @@ Notation editor for W95 and Mac
 Notation editor on Acorn machines.  Their developers call it ``best
 notation program available''.
 
-=item Ikarus,
+=item ? [``EDV-Notensatz'']
 
-URW's music-engraving system described by [Wanske]
+URW's music-engraving system described by [Wanske].  (Although URW
+used ~DM 1.000.000 while developing this, it didn't buy them a cute
+name.)
 
 =item Logic,
 
@@ -165,6 +167,7 @@ A project at Ohio State university, which was discontinued in 1987.
 
 =item Berlioz, http://www.?.fr/
 
-Dominique Montel (a professional music typesetter) is now working together with
-computer scientists on his own software for music publishing, called "Berlioz".
+Dominique Montel (a professional music typesetter) is now working
+together with computer scientists on his own software for music
+publishing, called "Berlioz".
 
index fdf183ed07411c7202d313aa8597862f68d3b8bd..2ba7e84cb00891bbd07f7af7a93e8ac4a3b6fac8 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
 
 
 
-20/Oct/97                LilyPond 0.1.24                        1
+20/Oct/97                LilyPond 0.1.25                        1
 
 
 
@@ -127,7 +127,7 @@ 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
 
 
 
-20/Oct/97                LilyPond 0.1.24                        2
+20/Oct/97                LilyPond 0.1.25                        2
 
 
 
@@ -193,7 +193,7 @@ INSTALL(1)            LilyPond documentation           INSTALL(1)
 
 
 
-20/Oct/97                LilyPond 0.1.24                        3
+20/Oct/97                LilyPond 0.1.25                        3
 
 
 
@@ -259,7 +259,7 @@ 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
 
 
 
-20/Oct/97                LilyPond 0.1.24                        4
+20/Oct/97                LilyPond 0.1.25                        4
 
 
 
@@ -325,7 +325,7 @@ 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
 
 
 
-20/Oct/97                LilyPond 0.1.24                        5
+20/Oct/97                LilyPond 0.1.25                        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
 
 
 
-20/Oct/97                LilyPond 0.1.24                        6
+20/Oct/97                LilyPond 0.1.25                        6
 
 
diff --git a/NEWS b/NEWS
index 97539c6c4ec62d778853c117928b2a23b1b2e3cb..74fe14bd87b4c6d3ecdc1fadf8cd63ace701bbe9 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,18 @@
-pl 24.jcn2
-       - feta-nummertjes: 0 1 2 4 7
 
+pl 25  
+       - variable stemlength
+       - feta: 32nd, 64th flags
+       - font.ly
+       - dist & tarball made in out/
+       - rewrote release.sh in python
+       - notehead/stem attachment better.
+       - more Stem cleanage
+       - related Beam cleanage
+       - started numeral font (JCN)
+       - bf: whole rest outside staff.
+
+*********
+oct 20
 pl 24
        - internationalization preps (FP)
        - rewrote make-patch in python
diff --git a/TODO b/TODO
index 96a9fa16a374d3d4355459755a83b8e0d2c0cb63..622775fc4ddbf4c8193e0a813fa11fd257ecd604 100644 (file)
--- a/TODO
+++ b/TODO
@@ -20,8 +20,10 @@ grep for TODO and ugh/ugr
 
        * Make general "spanning"-elements and "placer"-elements
 
-       - naming Mozarella, Madeira, Muella, Feta?
+       - naming Mozarella, Madeira, Muella?
+
        - bf: abbrevs over whole note
+
        - scoping for properties
 
        {       c4
@@ -76,6 +78,7 @@ PROJECTS
        * \header
        - write perl script for handling it into databases
        - write TeX macros to generate titles
+       - adapt make-website to use \header info.
 
        * Makefile stuff:
        - have make dist produce tarball in out/ directory.
diff --git a/VERSION b/VERSION
index afec263f5a44240ff03671a454b06647551d16cc..95817462ade304b19811810265d18cea78d0ee92 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1,6 +1,6 @@
 TOPLEVEL_MAJOR_VERSION = 0
 TOPLEVEL_MINOR_VERSION = 1
-TOPLEVEL_PATCH_LEVEL = 24
-TOPLEVEL_MY_PATCH_LEVEL = .jcn2
+TOPLEVEL_PATCH_LEVEL = 25
+TOPLEVEL_MY_PATCH_LEVEL = 
 
 # use the above to send patches, always empty for released version:
index 1b62c2833d3eabbae63b9f8df47e4bf16c4e904f..7b063437a1e185bbd563e885d68c81f75ccbed55 100644 (file)
@@ -56,6 +56,15 @@ def prev_version(tup):
        return (tup[0], tup[1], tup[2] - 1, '');
 
 
+def dirname(v):
+    return 'lilypond-' + version_tuple_to_str(v)
+
+def tarball(v):
+    return dirname(v)  + '.tar.gz'
+
+def released_tarball(v):
+    return lilydirs.release_dir + tarball(v)
+
 def tuple_to_list(tup):
     l=[]
     for x in tup:
diff --git a/bin/make-patch.py b/bin/make-patch.py
deleted file mode 100644 (file)
index ff070ac..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-#!@PYTHON@
-from lilypython import *
-import getopt
-import pipes
-
-
-mp_version = '2'
-
-class Options:
-    def __init__(self):
-       self.to_version = lilydirs.version_tuple()
-       self.from_version = prev_version(self.to_version)
-
-options = Options()
-       
-
-def help():
-    sys.stdout.write(
-       'Generate a patch to go to this version.\n'
-       '  --from=FROM, -f FROM    old is FROM\n'
-       '  --to=TO, -t TO          to version TO\n'  
-       
-       )
-
-
-def dirname(v):
-    return 'lilypond-' + version_tuple_to_str(v)
-
-def tarball(v):
-    return lilydirs.release_dir + dirname(v)  + '.tar.gz'
-
-def untar(fn):
-    sys.stderr.write('untarring ' + fn)
-    os.system ('tar xzf ' + fn)
-    sys.stderr.write('\n')
-    sys.stderr.flush()
-
-
-header = 'Generated by make-patch, old = %s, new = %s\n\
-\n\
-usage \n\
-\n\
-       cd lilypond-source-dir; patch -E -p0 < patch-$new\n\
-\n\
-Patches do not contain automatically generated files, \n\
-i.e. you should rerun configure\n\n'
-
-import fnmatch
-import os
-
-_debug = 0
-
-_prune = ['(*)']
-
-
-def my_find(patterns, dir = os.curdir):
-        list = []
-        names = os.listdir(dir)
-        names.sort()
-        for name in names:
-                if name in (os.curdir, os.pardir):
-                        continue
-                fullname = os.path.join(dir, name)
-               for pat in patterns:
-                   if fnmatch.fnmatch(name, pat):
-                        list.append(fullname)
-                if os.path.isdir(fullname) and not os.path.islink(fullname):
-                        for p in _prune:
-                                if fnmatch.fnmatch(name, p):
-                                        if _debug: print "skip", `fullname`
-                                        break
-                        else:
-                                if _debug: print "descend into", `fullname`
-                               found = my_find(patterns, fullname)
-                               if found:
-                                   list = list + found
-        return list
-
-def multiple_find(pats, dirnames):
-    from find import find
-    l = []
-    for d in dirnames:
-       l = l + my_find(pats,  d)
-    return l
-
-pats = ['*.lsm', 'configure', '*.text', 'lilypond.spec']
-def remove_automatic(dirnames):
-    files = []
-    files = files + multiple_find(pats, dirnames)
-
-    for f in files:
-       os.remove(f)
-
-def makepatch(fv, tv, patfile_nm):
-    import tempfile
-    os.chdir ('/tmp')
-    untar(tarball(fv))
-    untar(tarball(tv))
-    remove_automatic([dirname(fv), dirname(tv)])
-
-    os.chdir(dirname(tv))
-    
-    if not patfile_nm:
-       patfile_nm = '../patch-%s' % version_tuple_to_str(tv)
-
-    f = open(patfile_nm, 'w')
-    f.write(header % (version_tuple_to_str(fv), version_tuple_to_str(tv)))
-    f.close()
-           
-    sys.stderr.write('diffing ... ')
-    os.system('diff -urN ../%s . >> %s' % (dirname(fv), patfile_nm))
-    #os.system('gzip -9f %s' % patfile_nm)
-    os.chdir('/tmp')
-
-    sys.stderr.write('cleaning ... ')
-    os.system('rm -fr %s %s' % (dirname(tv), dirname(fv)))
-    sys.stderr.write('\n')
-    
-def main():
-    sys.stderr.write('This is make-patch version %s\n' % mp_version)
-    (cl_options, files) = getopt.getopt(sys.argv[1:], 
-                                       'hf:o:t:', ['output=', 'help=', 'from=', 'to='])
-    outfn = ''
-    for opt in cl_options:
-       o = opt[0]
-       a = opt[1]
-       if o == '--from' or o == '-f':
-            options.from_version = version_str_to_tuple(a)
-       elif o == '--to' or o == '-t':
-           options.to_version = version_str_to_tuple(a)
-       elif o== '--help' or o == '-h':
-           help()
-       elif o == '--output' or o == '-o':
-           outfn = os.path.join(os.getcwd(), a)
-       else:
-           raise getopt.error
-
-    if not outfn:
-       pn = 'patch-%s' % version_tuple_to_str(options.to_version)
-       outfn =  os.path.join(os.getcwd(), pn)
-
-    makepatch(options.from_version, options.to_version, outfn)
-
-main()
diff --git a/bin/makepatch.py b/bin/makepatch.py
new file mode 100644 (file)
index 0000000..2763096
--- /dev/null
@@ -0,0 +1,144 @@
+#!@PYTHON@
+from lilypython import *
+import getopt
+import pipes
+
+
+mp_version = '2'
+
+class Options:
+    def __init__(self):
+       self.to_version = lilydirs.version_tuple()
+       self.from_version = prev_version(self.to_version)
+
+options = Options()
+       
+
+def help():
+    sys.stdout.write(
+       'Generate a patch to go to this version.\n'
+       '  --from=FROM, -f FROM    old is FROM\n'
+       '  --to=TO, -t TO          to version TO\n'  
+       
+       )
+
+
+
+def untar(fn):
+    sys.stderr.write('untarring ' + fn)
+    os.system ('tar xzf ' + fn)
+    sys.stderr.write('\n')
+    sys.stderr.flush()
+
+
+header = 'Generated by make-patch, old = %s, new = %s\n\
+\n\
+usage \n\
+\n\
+       cd lilypond-source-dir; patch -E -p0 < %s\n\
+\n\
+Patches do not contain automatically generated files, \n\
+i.e. you should rerun configure\n\n'
+
+import fnmatch
+import os
+
+_debug = 0
+
+_prune = ['(*)']
+
+
+def my_find(patterns, dir = os.curdir):
+        list = []
+        names = os.listdir(dir)
+        names.sort()
+        for name in names:
+                if name in (os.curdir, os.pardir):
+                        continue
+                fullname = os.path.join(dir, name)
+               for pat in patterns:
+                   if fnmatch.fnmatch(name, pat):
+                        list.append(fullname)
+                if os.path.isdir(fullname) and not os.path.islink(fullname):
+                        for p in _prune:
+                                if fnmatch.fnmatch(name, p):
+                                        if _debug: print "skip", `fullname`
+                                        break
+                        else:
+                                if _debug: print "descend into", `fullname`
+                               found = my_find(patterns, fullname)
+                               if found:
+                                   list = list + found
+        return list
+
+def multiple_find(pats, dirnames):
+    from find import find
+    l = []
+    for d in dirnames:
+       l = l + my_find(pats,  d)
+    return l
+
+pats = ['*.lsm', 'configure', '*.text', 'lilypond.spec']
+def remove_automatic(dirnames):
+    files = []
+    files = files + multiple_find(pats, dirnames)
+
+    for f in files:
+       os.remove(f)
+
+def makepatch(fv, tv, patfile_nm):
+    import tempfile
+    prev_cwd = os.getcwd();
+    os.chdir ('/tmp')
+    untar(released_tarball(fv))
+    untar(released_tarball(tv))
+    remove_automatic([dirname(fv), dirname(tv)])
+
+    os.chdir(dirname(tv))
+    
+    if not patfile_nm:
+       patfile_nm = '../patch-%s' % version_tuple_to_str(tv)
+
+    f = open(patfile_nm, 'w')
+    f.write(header %\
+           (version_tuple_to_str(fv), version_tuple_to_str(tv), \
+            os.path.basename(patfile_nm)))
+    f.close()
+           
+    sys.stderr.write('diffing to %s... ' % patfile_nm)
+    os.system('diff -urN ../%s . >> %s' % (dirname(fv), patfile_nm))
+    #os.system('gzip -9f %s' % patfile_nm)
+    os.chdir('/tmp')
+
+    sys.stderr.write('cleaning ... ')
+    os.system('rm -fr %s %s' % (dirname(tv), dirname(fv)))
+    sys.stderr.write('\n')
+    os.chdir(prev_cwd)
+    
+def main():
+    sys.stderr.write('This is make-patch version %s\n' % mp_version)
+    (cl_options, files) = getopt.getopt(sys.argv[1:], 
+                                       'hf:o:t:', ['output=', 'help=', 'from=', 'to='])
+    outfn = ''
+    for opt in cl_options:
+       o = opt[0]
+       a = opt[1]
+       if o == '--from' or o == '-f':
+            options.from_version = version_str_to_tuple(a)
+       elif o == '--to' or o == '-t':
+           options.to_version = version_str_to_tuple(a)
+       elif o== '--help' or o == '-h':
+           help()
+       elif o == '--output' or o == '-o':
+           outfn = os.path.join(os.getcwd(), a)
+       else:
+           raise getopt.error
+
+    if not outfn:
+       pn = 'patch-%s' % version_tuple_to_str(options.to_version)
+       outfn =  os.path.join(os.getcwd(), pn)
+
+    makepatch(options.from_version, options.to_version, outfn)
+
+if __name__ == '__main__':
+    main()
diff --git a/bin/rel.py b/bin/rel.py
deleted file mode 100644 (file)
index d0efcb8..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-
-from lilypython import *
-
-
-os.system('make dist')
diff --git a/bin/release.py b/bin/release.py
new file mode 100644 (file)
index 0000000..3e60269
--- /dev/null
@@ -0,0 +1,19 @@
+#!@PYTHON@
+
+from lilypython import *
+import makepatch
+
+
+os.chdir(lilydirs.topdir)
+os.system('make dist')
+cur_ver = lilydirs.version_tuple()
+
+os.rename('out/' + tarball(cur_ver), released_tarball(cur_ver))
+os.chdir('../test')
+os.system('rm ../test/*gz')
+os.link(released_tarball(cur_ver), tarball(cur_ver))
+
+
+makepatch.main()
+os.system('gzip -9 patch*')
+os.system('tar cf updeet *gz')
diff --git a/bin/release.sh b/bin/release.sh
deleted file mode 100644 (file)
index 6d64b34..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-#!/bin/sh
-
-# script to automate releases
-
-grep -q  '^TOP' VERSION
-    res=$?
-if test ! -f VERSION  || test $res != 0; then
-    echo not in topleveldir
-    exit 1
-fi    
-
-function setversion() {
-eval `sed -n 's/^\([A-Z_]*\) *= *\(.*\)$/\1=\2/p' VERSION`
-
-MJ=$TOPLEVEL_MAJOR_VERSION
-MI=$TOPLEVEL_MINOR_VERSION
-PA=$TOPLEVEL_PATCH_LEVEL 
-MP=$TOPLEVEL_MY_PATCH_LEVEL
-NEWVER=$MJ.$MI.$PA$MP
-if [ x$MP = x -o x$MP = xpre ]
-then
-    LASTVER=$MJ.$MI.`expr $PA - 1`
-
-    if [ -f $releasedir//lilypond-$LASTVER""pre.tar.gz ] ; then
-       LASTVER="$LASTVER""pre"
-    fi
-else
-    LASTVER=$MJ.$MI.$PA
-fi
-
-echo
-echo "Current  version ("`pwd`") is $NEWVER, Last version:  $LASTVER"
-echo
-}
-
-heredir=`pwd`
-releasedir=`pwd`/../releases
-patchdir=`pwd`/../patches
-MAKE=${MAKE:-"make"}
-TAR=${TAR:-"tar"}
-
-
-$MAKE dist; 
-setversion
-LILYVER=$NEWVER
-
-tarball=lilypond-$LILYVER.tar.gz
-patch=patch-$LILYVER.gz
-
-mv  $tarball $releasedir/
-
-cd ../test
-python $heredir/bin/make-patch.py
-gzip -f9 patch-$NEWVER
-mv $patch $patchdir//
-
-RPMS=`find ~/rpms/ -name lilypond-$NEWVER'*'rpm`
-rm *.rpm {lilypond,patch}-*.gz
-
-if [ ! -z "$RPMS" ]; then
-    ln $RPMS . 
-fi
-    
-ln $releasedir//$tarball .
-ln $patchdir//$patch .    
-
-
-if [ ! -z "$RPMS" ]; then
-    RPMS="lilypond-$LILYVER-1.i386.rpm lilypond-$LILYVER-1.src.rpm"
-fi    
-$TAR cf updeet $tarball $patch $RPMS
-$TAR tfv updeet
-
index 714f3ded6e03ad3da22593942ea0b394b5c86226..5468633cf782e4479e2a0a48a0b156293cffee06 100644 (file)
@@ -1,4 +1,7 @@
 
+
+       * Unicode support in strings
+
        * write a decent Dictionary
        - write a String_hash template
        - write a Pointer_hash template
index 394441aecc283c1b80b0b7bb026ec05518c1bf2f..41e99c6833a9f6f208412d2b3326787cc77c698b 100644 (file)
@@ -1,5 +1,5 @@
 % generated automatically by mf-to-table.py version 0.4
-% on Mon Oct 20 01:50:48 1997
+% on Mon Oct 20 23:14:01 1997
 % Do not edit
 % input from out/font-en-tja16.log
 % name=\symboltables {
         "pedalheel"    "\\pedalheel"   -2.00\pt        2.00\pt -2.00\pt        2.67\pt 
         "pedaltoe"     "\\pedaltoe"    -2.00\pt        2.00\pt -0.00\pt        6.00\pt 
         }
-    "floogbars"         = \table {
-        "3u"   "\\eighthflag"  -0.20\pt        4.16\pt -12.83\pt       0.20\pt 
-        "3d"   "\\deighthflag" -0.20\pt        4.60\pt -0.20\pt        12.83\pt        
-        "4u"   "\\sixteenthflag"       -0.20\pt        4.16\pt -13.00\pt       0.20\pt 
-        "4d"   "\\dsixteenthflag"      -0.20\pt        4.60\pt -0.20\pt        12.00\pt        
+    "flags"     = \table {
+        "u3"   "\\eighthflag"  -0.20\pt        4.16\pt -12.26\pt       0.20\pt 
+        "d3"   "\\deighthflag" -0.20\pt        4.60\pt -0.20\pt        11.66\pt        
+        "u4"   "\\sixteenthflag"       -0.20\pt        4.16\pt -14.00\pt       0.20\pt 
+        "d4"   "\\dsixteenthflag"      -0.20\pt        4.60\pt -0.20\pt        12.00\pt        
+        "u5"   "\\thirtysecondflag"    -0.20\pt        4.16\pt -17.00\pt       0.20\pt 
+        "d5"   "\\dthirtysecondflag"   -0.20\pt        4.16\pt -0.20\pt        15.40\pt        
+        "u6"   "\\sixtyfourthflag"     -0.20\pt        4.16\pt -21.00\pt       0.20\pt 
+        "d6"   "\\dsixtyfourthflag"    -0.20\pt        4.16\pt -0.20\pt        17.40\pt        
         }
     %  } % $name
index fe8b2748250c016ec0495d768d7dff89d74a6983..6b22684668a5968eff9d324e7d35e8ca546deb16 100644 (file)
@@ -1,5 +1,5 @@
 % generated automatically by mf-to-table.py version 0.4
-% on Mon Oct 20 01:50:55 1997
+% on Mon Oct 20 23:14:08 1997
 % Do not edit
 % input from out/font-en-tja20.log
 % name=\symboltables {
         "pedalheel"    "\\pedalheel"   -2.50\pt        2.50\pt -2.50\pt        3.33\pt 
         "pedaltoe"     "\\pedaltoe"    -2.50\pt        2.50\pt -0.00\pt        7.50\pt 
         }
-    "floogbars"         = \table {
-        "3u"   "\\eighthflag"  -0.25\pt        5.20\pt -16.04\pt       0.25\pt 
-        "3d"   "\\deighthflag" -0.25\pt        5.75\pt -0.25\pt        16.04\pt        
-        "4u"   "\\sixteenthflag"       -0.25\pt        5.20\pt -16.25\pt       0.25\pt 
-        "4d"   "\\dsixteenthflag"      -0.25\pt        5.75\pt -0.25\pt        15.00\pt        
+    "flags"     = \table {
+        "u3"   "\\eighthflag"  -0.25\pt        5.20\pt -15.33\pt       0.25\pt 
+        "d3"   "\\deighthflag" -0.25\pt        5.75\pt -0.25\pt        14.58\pt        
+        "u4"   "\\sixteenthflag"       -0.25\pt        5.20\pt -17.50\pt       0.25\pt 
+        "d4"   "\\dsixteenthflag"      -0.25\pt        5.75\pt -0.25\pt        15.00\pt        
+        "u5"   "\\thirtysecondflag"    -0.25\pt        5.20\pt -21.25\pt       0.25\pt 
+        "d5"   "\\dthirtysecondflag"   -0.25\pt        5.20\pt -0.25\pt        19.25\pt        
+        "u6"   "\\sixtyfourthflag"     -0.25\pt        5.20\pt -26.25\pt       0.25\pt 
+        "d6"   "\\dsixtyfourthflag"    -0.25\pt        5.20\pt -0.25\pt        21.75\pt        
         }
     %  } % $name
index 4d80868a5b01c5845f3fdfb1d2a2a3288ad9ce9d..daa17af92444e9b32c83c0e8506e05a3166cbd5f 100644 (file)
@@ -103,19 +103,6 @@ table_sixteen=
      }
 
 
-     "flags" = \table {
-       "u3"    "\eighthflag"           0.0\pt  4.0\pt  0.0\pt  0.0\pt
-       "u4"    "\sixteenthflag"                0.0\pt  4.0\pt  0.0\pt  0.0\pt
-       "u5"    "\\thirtysecondflag"    0.0\pt  4.0\pt  0.0\pt  0.0\pt
-       "u6"    "\sixtyfourthflag"      0.0\pt  4.0\pt  0.0\pt  0.0\pt
-       "u7"    "\hundredtwentyeighthflag"      0.0\pt  4.0\pt  0.0\pt  0.0\pt
-       "d3"    "\deighthflag"          0.0\pt  4.0\pt  0.0\pt  0.0\pt
-       "d4"    "\dsixteenthflag"               0.0\pt  4.0\pt  0.0\pt  0.0\pt
-       "d5"    "\dthirtysecondflag"    0.0\pt  4.0\pt  0.0\pt  0.0\pt
-       "d6"    "\dsixtyfourthflag"     0.0\pt  4.0\pt  0.0\pt  0.0\pt
-       "d7"    "\dhundredtwentyeighthflag"     0.0\pt  4.0\pt  0.0\pt  0.0\pt
-     }
-
      "beamslopes" = \table {
        "slope"         "\beamslope{%}{%}"  2.0\pt 64.0\pt 0.0\pt 0.0\pt
        "horizontal"    "\rulesym{%}{%}"        
index dd0daaa11ae311fae7c2d2d7f98a4f637d1b2d4a..305b2c35724cdc16900f5f69366f9761c71a8c68 100644 (file)
@@ -90,20 +90,7 @@ table_twenty =
         "decrescendosym" "\decrescendosym{%}"  0.0\pt  0.0\pt  -3.0\pt 3.0\pt
      }
 
-    "flags" = \table {
-       "u3"    "\eighthflag"           0.0\pt  5.0\pt  0.0\pt  0.0\pt  
-       "u4"    "\sixteenthflag"                0.0\pt  5.0\pt  0.0\pt  0.0\pt
-       "u5"    "\\thirtysecondflag"    0.0\pt  5.0\pt  0.0\pt  0.0\pt
-       "u6"    "\sixtyfourthflag"      0.0\pt  5.0\pt  0.0\pt  0.0\pt
-       "u7"    "\hundredtwentyeighthflag"      0.0\pt  5.0\pt  0.0\pt  0.0\pt
-       "d3"    "\deighthflag"          0.0\pt  5.0\pt  0.0\pt  0.0\pt
-       "d4"    "\dsixteenthflag"               0.0\pt  5.0\pt  0.0\pt  0.0\pt
-       "d5"    "\dthirtysecondflag"    0.0\pt  5.0\pt  0.0\pt  0.0\pt
-       "d6"    "\dsixtyfourthflag"     0.0\pt  5.0\pt  0.0\pt  0.0\pt
-       "d7"    "\dhundredtwentyeighthflag"     0.0\pt  5.0\pt  0.0\pt  0.0\pt
-     }
-
-  "beamslopes" = \table {
+     "beamslopes" = \table {
        "slope"         "\beamslope{%}{%}"  2.0\pt 64.0\pt 0.0\pt 0.0\pt        
        "horizontal"    "\rulesym{%}{%}"        
      }
index 620c39b66e78477ebd72dd4d04d6425623681fe2..5a57033f95af7ae7690089a0552ba0eff4834301 100644 (file)
@@ -26,12 +26,13 @@ TestedFeatures =     "This file tests the Feta music-font"
                [c d e f] [as' ges' f' e']
                [cis' dis' c' des'] [cisis' disis' ceses' deses'] |
                  r1 r2 r4 r8 r16 r32 r64 r128 r128 |
-               \multi 2 < { \stemup r1} {\stemdown c''}>
+               \multi 2 < { \stemup r2 r2} {\stemdown c'' c''}>
                \multi 2 < { \stemup c1 } {\stemdown r1}>               
                \stemboth
                
                e8_. g'8-> e16^^ g'16_^ 
                e32 _| g'32^| g''32-\ltoe g''32-\lheel
+               e64 g'64 c4... |
                }
        \paper{ 
            gourlay_maxmeasures =5.;
@@ -41,7 +42,5 @@ TestedFeatures =       "This file tests the Feta music-font"
            gourlay_maxmeasures =5.;
            \output "lelie20.tex";
        }
-% oeps
-%      \midi{ }
 }
 
index 9e2225975af964d6090e34446521d688e8be9a0e..d657f9b2c79d8f49244211a997b4f48dc666b625 100644 (file)
@@ -1,7 +1,4 @@
 MAJOR_VERSION = 0
 MINOR_VERSION = 1
-PATCH_LEVEL = 24
-# use to send patches, always empty for released version:
-# include separator: ".postfix", "-pl" makes rpm barf
-
+PATCH_LEVEL = 25
 MY_PATCH_LEVEL =
index ea102e44572aab0c69709e6325acb5f637e5404d..a7cfd829cad95cd3f88a5041abf62363678aba6d 100644 (file)
@@ -128,33 +128,36 @@ Beam::do_width() const
 void
 Beam::set_default_dir()
 {
-  int up = 0, down = 0;
-  int up_count = 0, down_count = 0;
-
+  Drul_array<int> total;
+  total[UP]  = total[DOWN] = 0;
+  Drul_array<int> count; 
+  count[UP]  = count[DOWN] = 0;
+  Direction d = DOWN;
+  
   for (int i=0; i <stems.size(); i++)
-    {
-      Stem *sl = stems[i];
-      int cur_down = sl->get_center_distance_from_top();
-      int cur_up = sl->get_center_distance_from_bottom();
-      if (cur_down)
-       {
-         down += cur_down;
-         down_count++;
-       }
-      if (cur_up)
+    do {
+      Stem *s = stems[i];
+      int current = s->dir_ 
+       ? (1 + d * s->dir_)/2
+       : s->get_center_distance(Direction(-d));
+
+      if (current)
        {
-         up += cur_up;
-         up_count++;
+         total[d] += current;
+         count[d] ++;
        }
-    }
-  if (!down)
-    down_count = 1;
-  if (!up)
-    up_count = 1;
-
-  // the following relation is equal to
-  //        up / up_count > down / down_count
-  dir_ = (up * down_count > down * up_count) ? UP : DOWN;
+
+    } while ((d *= -1) != DOWN);
+  
+   do {
+    if (!total[d])
+      count[d] = 1;
+  } while ((d *= -1) != DOWN);
+  
+  /* the following relation is equal to
+          up / up_count > down / down_count
+         */
+  dir_ = (total[UP] * count[DOWN] > total[DOWN] * count[UP]) ? UP : DOWN;
 
   for (int i=0; i <stems.size(); i++)
     {
index 3a034df85e09e778f97ab6afdc467ff03bc7233d..d150eb1e76d42141279fdfa94ab55dbac5cfb879 100644 (file)
@@ -86,8 +86,8 @@ public:
   void do_print() const;
   void set_stemend (Real);
   Direction get_default_dir();
-  int get_center_distance_from_top();
-  int get_center_distance_from_bottom();
+
+  int get_center_distance(Direction);
   void set_default_dir();
   void set_default_stemlen();
   void set_default_extents();
@@ -101,8 +101,7 @@ public:
   bool invisible_b() const;
     
   /// heads that the stem encompasses (positions)
-  int max_head_i() const;
-  int min_head_i() const;
+  Interval_t<int> head_positions() const;
 protected:
   virtual void do_substitute_dependency (Score_elem*,Score_elem*);
   virtual void do_pre_processing();
index d186608b2628766e76bf5d8cc88734cf792f3d96..4cf872f613f0b470edc86ef929f6b5520b77df8f 100644 (file)
@@ -19,6 +19,8 @@ Rest::do_add_processing ()
 {
   if (balltype_i_ != 0 && balltype_i_ != 1)
     position_i_ -= 4;
+  else if (balltype_i_ == 0)
+    position_i_ += 2;
 
   Rhythmic_head::do_add_processing ();
   if (dots_l_)
@@ -34,7 +36,8 @@ Molecule *
 Rest::brew_molecule_p () const
 {
   int staff_size_i_ = 8;
-  bool streepjes_b = abs(position_i_) > staff_size_i_ /2 &&  (balltype_i_ == 0 || balltype_i_ == 1);
+  bool streepjes_b = abs(position_i_) > staff_size_i_ /2 &&  
+    (balltype_i_ == 0 || balltype_i_ == 1);
   
   Atom s(paper ()->lookup_l()->rest (balltype_i_, streepjes_b));
   Molecule * m = new Molecule ( Atom (s));
index 64b737b93fab718bb28bea40d87cbf60cf426296..f72d3068ef17438c945790b3a01232d5fb7bad52 100644 (file)
@@ -43,23 +43,17 @@ Stem::Stem ()
   beam_gap_i_ = 0;
 }
 
-int
-Stem::min_head_i () const
-{
-  int m = 1000;
-  for (int i =0; i < head_l_arr_.size (); i++)
-    m = m <? head_l_arr_[i]->position_i_;
-  return m;
-}
-
-int
-Stem::max_head_i () const
+Interval_t<int>
+Stem::head_positions () const
 {
-  int m = -1000;
+  Interval_t<int> r;
   for (int i =0; i < head_l_arr_.size (); i++)
-    m = m >? head_l_arr_[i]->position_i_;
-  return m;
-
+    {
+      int p = head_l_arr_[i]->position_i_;
+      r[BIGGER] = r[BIGGER] >? p;
+      r[SMALLER] = r[SMALLER] <? p;
+    }
+  return r;
 }
 
 void
@@ -81,13 +75,13 @@ Stem::stem_length_f () const
 Real
 Stem::stem_start_f () const
 {
-  return (dir_ < 0)? yextent_drul_[UP] : yextent_drul_[DOWN];
+  return yextent_drul_[Direction(-dir_)];
 }
 
 Real
 Stem::stem_end_f () const
 {
-  return (dir_ < 0)? yextent_drul_[DOWN] : yextent_drul_[UP];
+  return yextent_drul_[dir_];
 }
 
 
@@ -95,12 +89,12 @@ void
 Stem::set_stemend (Real se)
 {
   // todo: margins
-  if (!  ((dir_ > 0 && se >= max_head_i ()) ||
-         (se <= min_head_i () && dir_ <0)))
+  if (dir_ && dir_ * head_positions()[dir_] >= se*dir_)
     warning (_("Weird stem size; check for narrow beams"));
 
-  yextent_drul_[UP]  = (dir_ < 0) ? max_head_i () : se;
-  yextent_drul_[DOWN]  = (dir_ < 0) ? se  : min_head_i ();
+  
+  yextent_drul_[dir_]  =  se;
+  yextent_drul_[Direction(-dir_)] = head_positions()[-dir_];
 }
 
 int
@@ -126,44 +120,25 @@ Stem::add (Rhythmic_head *n)
 bool
 Stem::invisible_b () const
 {
-
   return (!head_l_arr_.size () ||
     head_l_arr_[0]->balltype_i_ <= 0);
-
-}
-
-// if dir_ is set we return fake values.
-int
-Stem::get_center_distance_from_top ()
-{
-  if (dir_)
-    return (dir_ > 0) ? 0 : 1;
-
-  int staff_center = 0;
-  int max = max_head_i () - staff_center;
-  return max >? 0;
 }
 
-// if dir_ is set we return fake values.
 int
-Stem::get_center_distance_from_bottom ()
+Stem::get_center_distance (Direction d)
 {
-  if (dir_)
-    return (dir_ > 0) ? 1 : 0;
-
   int staff_center = 0;
-  int min = staff_center - min_head_i ();
-  return min >? 0;
+  int distance = d*(head_positions()[d] - staff_center);
+  return distance >? 0;
 }
 
 Direction
 Stem::get_default_dir ()
 {
-  if (dir_)
-    return dir_;
-  return (get_center_distance_from_top () >=
-         get_center_distance_from_bottom ()) ?
-    (Direction)-1 : (Direction)1;
+  return (get_center_distance (UP) >=
+         get_center_distance (DOWN)) 
+    ? DOWN 
+    : UP;
 }
 
 
@@ -176,25 +151,37 @@ Stem::set_default_dir ()
 void
 Stem::set_default_stemlen ()
 {
-  if (!dir_)
-    set_default_dir ();
-
-
-  Real dy = paper ()->interbeam_f ();
   Real len = STEMLEN;
+  Real dy = paper ()->interbeam_f ();
+
   // ugh, should get nice *rule* for this
   if (abbrev_flag_i_ > 1)
     len += (abbrev_flag_i_ - 1)* dy / 2;
-  set_stemend ((dir_ > 0) ? max_head_i () + len :
-              min_head_i () - len);
+
+
+  if (!dir_)
+    set_default_dir ();
+
+  /* If the stem points in the "wrong" direction, it should be
+     shortened, according to [Roush & Gourlay].  Their suggestion to knock off
+     a whole staffspace is a bit drastical though.
+     */
+  else if (dir_ != get_default_dir ())
+    len  -= 1.0;
+
+  if (flag_i_ >= 5)
+    len += 2.0;
+  if (flag_i_ >= 6)
+    len += 1.0;
+  
+  set_stemend ((dir_ > 0) ? head_positions()[BIGGER] + len :
+              head_positions()[SMALLER] - len);
 
 
   if (dir_ * stem_end_f () < 0)
     {
       set_stemend (0);
     }
-
-
 }
 
 void
@@ -203,9 +190,10 @@ Stem::set_default_extents ()
   if (!stem_length_f ())
     set_default_stemlen ();
 
-  set_stemend ((dir_< 0) ?
-              max_head_i ()-stem_length_f (): min_head_i () + stem_length_f ());
-
+  /*  set_stemend ((dir_< 0) ?
+              head_positions()[BIGGER]-stem_length_f (): 
+              head_positions()[SMALLER] + stem_length_f ());
+              */
   if (dir_ == UP)
     stem_xdir_ = RIGHT;
   if (invisible_b ())
@@ -302,10 +290,10 @@ Stem::abbrev_mol () const
   Atom a (paper ()->lookup_l ()->beam (slope, w));
   a.translate (Offset(- w / 2, stem_end_f () - (w / 2 * slope)));
   // ugh
-    if (!beams_i)
-      a.translate_axis (dy + beamdy - dir_ * dy, Y_AXIS);
-    else
-      a.translate_axis (2 * beamdy - dir_ * (beamdy - dy), Y_AXIS);
+  if (!beams_i)
+    a.translate_axis (dy + beamdy - dir_ * dy, Y_AXIS);
+  else
+    a.translate_axis (2 * beamdy - dir_ * (beamdy - dy), Y_AXIS);
 
   for (int i = 0; i < abbrev_flag_i_; i++)
     {
@@ -317,29 +305,34 @@ Stem::abbrev_mol () const
   return beams;
 }
 
+const Real ANGLE = 20* (2.0*M_PI/360.0);
+
 Molecule*
 Stem::brew_molecule_p () const
 {
   Molecule *mol_p =new Molecule;
-
-  Real bot  = yextent_drul_[DOWN];
-  Real top = yextent_drul_[UP];
-
-  assert (bot!=top);
-
   Paper_def *p =paper ();
-
+  Drul_array<Real> stem_y = yextent_drul_;
   Real dy = p->internote_f ();
+  
+
+  Real head_wid = 0;
+  if (head_l_arr_.size ())
+    head_wid = head_l_arr_[0]->width ().length ();
+  stem_y[Direction(-dir_)] += dir_ * head_wid * tan(ANGLE)/(2*dy);
+  
   if (!invisible_b ())
     {
-      Atom ss =p->lookup_l ()->stem (bot*dy,top*dy);
+      Atom ss =p->lookup_l ()->stem (stem_y[DOWN]*dy,
+                                    stem_y[UP]*dy);
       mol_p->add (Atom (ss));
     }
 
   if (!beam_l_ &&abs (flag_i_) > 2)
     {
       Atom fl = p->lookup_l ()->flag (flag_i_, dir_);
-      mol_p->add_at_edge (Y_AXIS, dir_, Molecule (Atom (fl)));
+      fl.translate_axis(stem_y[dir_]*dy, Y_AXIS);
+      mol_p->add(fl);
       assert (!abbrev_flag_i_);
     }
 
@@ -373,7 +366,7 @@ Stem::hpos_f () const
 }
 
 /*
-TODO:  head_l_arr_/rest_l_arr_ in  do_substitute_dependent ()
+  TODO:  head_l_arr_/rest_l_arr_ in  do_substitute_dependent ()
  */
 void
  Stem::do_substitute_dependency (Score_elem*o,Score_elem*n)
index 8f411091885e8d7d3424d3bf0c85afc89f0c8080..aeb43521ac99cf259cbb1e0e904416eb9258b4f8 100644 (file)
@@ -128,7 +128,7 @@ dist:
        $(MAKE) localdist
        chmod -Rf a+rX $(distdir)
 
-       (cd ./$(depth); $(TAR) cf - $(DIST_NAME) | gzip -9 > $(DIST_NAME).tar.gz)
+       (cd ./$(depth)/$(outdir); $(TAR) cf - $(DIST_NAME) | gzip -9 > $(DIST_NAME).tar.gz)
 
 # should be trapped
        rm -rf $(distdir)/
@@ -163,7 +163,7 @@ endif
 moduledist:
        -mkdir $(module-distdir)
        $(MAKE) localmoduledist
-       (cd ./$(depth); $(TAR) cfz $(MODULE_DIST_NAME).tar.gz $(MODULE_DIST_NAME))
+       (cd $(depth)/$(outdir); $(TAR) cfz $(MODULE_DIST_NAME).tar.gz $(MODULE_DIST_NAME))
        rm -rf $(module-distdir)/ 
 
 localmoduledist:
index abcc2dde581c69beb8d646b664d05c3dbc6ba181..37b1127741ff4abc5b30268af361771cdfbc5ece 100644 (file)
@@ -35,7 +35,7 @@ outdir=$(OUTDIR_NAME)
 
 # derived names
 lily_bindir = $(depth)/bin
-distdir = $(depth)/$(DIST_NAME)
+distdir = $(depth)/$(outdir)/$(DIST_NAME)
 module-distdir = $(depth)/$(MODULE_DIST_NAME)
 depdir = $(outdir)
 
index a9d7d16bae2107ff3df19bbe29154a7245cbd4f2..a4441e5010da70c50ae0c12a65038efea0c64204 100644 (file)
@@ -1,7 +1,7 @@
 Begin3
 Titel: LilyPond
-Versie: 0.1.24
-Inschrijf datum: 20OCT97
+Versie: 0.1.25
+Inschrijf datum: 21OCT97
 Beschrijving: LilyPond is de muziek typesetter van het GNU Project.  
                Het programma genereert muziek in zichtbare of 
                hoorbare vorm uit uit een muzikale definitie file: 
@@ -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.24.tar.gz 
+       395k lilypond-0.1.25.tar.gz 
 Oorspronkelijke plek: pcnov095.win.tue.nl /pub/lilypond/
-       395k lilypond-0.1.24.tar.gz 
+       395k lilypond-0.1.25.tar.gz 
 Copi"eer politie: GPL
 End
index 95fbefe271e9f4b4da38b25535de769367641221..c29c89408df4de08edeea96be00566aeaefda41e 100644 (file)
@@ -1,7 +1,7 @@
 Begin3
 Title: LilyPond
-Version: 0.1.24
-Entered-date: 20OCT97
+Version: 0.1.25
+Entered-date: 21OCT97
 Description: LilyPond is the GNU Project music typesetter.  The program
                generates visual or auditive output from a music 
                definition file: it can typeset formatted sheet 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
-       430k lilypond-0.1.24.tar.gz 
+       430k lilypond-0.1.25.tar.gz 
 Original-site: pcnov095.win.tue.nl /pub/lilypond/
-       430k lilypond-0.1.24.tar.gz 
+       430k lilypond-0.1.25.tar.gz 
 Copying-policy: GPL
 End
index 147b27640a77da0f8467319b05a4d02f70334445..ac4318fd52796f41f30c5e673ab750cbce80d83b 100644 (file)
@@ -1,9 +1,9 @@
 Name: lilypond
-Version: 0.1.24
+Version: 0.1.25
 Release: 1
 Copyright: GPL
 Group: Applications/Publishing
-Source0: pcnov095.win.tue.nl:/pub/lilypond/lilypond-0.1.24.tar.gz
+Source0: pcnov095.win.tue.nl:/pub/lilypond/lilypond-0.1.25.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 08ed18eb44b52e625d42e96572d40fa987a8177f..5761f4c81dcdfc6c73e7edd7c1e2de9849be7060 100644 (file)
--- a/mf/TODO
+++ b/mf/TODO
@@ -4,7 +4,6 @@
        - more symbols
          * ledgerlines
          * stem-notehead attachments.
-         * flags
          * clefs
          * some scripts:
          * piano pedals,
@@ -17,6 +16,7 @@
            - normal(1/5staff) bold
            - large(3/4staff) bold
 
+       - redo flags in a orderly manner; 128th flags
        - include important spacing dims in fetalog 
        - lilyrules.mf for different rules (lines) ?
 
index a596396e7a2a665986dc70b1246527d000c1eb3a..44c59a4ef491f193789a62c5ffed205945865acc 100644 (file)
@@ -9,10 +9,8 @@
 \font\slurs=xslhd16
 \font\specfont=musixspx
 \font\egler=opus16
-\font\nummertjes=feta-nummer10
-%\def\thefont{\egler}
+\def\thefont{\egler}
 %\def\thefont{\specfont}
-\def\thefont{\nummertjes}
 
 \def\mb#1{{\thefont\char#1}}
 
@@ -54,8 +52,7 @@
 
 \newcount\n
 \def\charn{\n=-1
-%        \loop\ifnum\n<255\advance\n by1
-        \loop\ifnum\n<10\advance\n by1
+        \loop\ifnum\n<255\advance\n by1
         \doitem{\number\n}\endgraf\repeat}
 
 
index 575c4943fcb89a5ca67824283933f100f4a4c93a..8b6c0c79fe0b340c4374c715de10feaab2aca564 100644 (file)
@@ -1,7 +1,7 @@
 % flags 
 %
 
-fet_begingroup("floogbars")
+fet_begingroup("flags")
 
 % Flags pointing down overlap with  the notehead (in x-direction), so 
 % the down-flag can be bigger
@@ -58,8 +58,7 @@ enddef;
 
 
 % godbewaarme, wat een kutsymbolen
-fet_beginchar("8th Flag (up)", "3u", "eighthflag")
-
+fet_beginchar("8th Flag (up)", "u3", "eighthflag")
        save flare, 
        hip_depth, hip_width,
        foot_depth, foot_width;
@@ -68,7 +67,7 @@ fet_beginchar("8th Flag (up)", "3u", "eighthflag")
        hip_depth# = 8/15 foot_depth#; 
        hip_width# = upflag_width# - hip_thickness#/2;
 
-       foot_depth# =  15/7 interline#;
+       foot_depth# + flare# =  3 interline#;
        foot_width# = .8 hip_width#;
 
        set_char_box(stemthickness# /2, hip_width#  + hip_thickness#/2 
@@ -87,7 +86,7 @@ fet_beginchar("8th Flag (up)", "3u", "eighthflag")
        draw (0, 0) .. (0,-2 interline);
 fet_endchar;
 
-fet_beginchar("8th Flag (down)", "3d", "deighthflag")
+fet_beginchar("8th Flag (down)", "d3", "deighthflag")
        save flare, 
        hip_depth, hip_width, 
        foot_depth, foot_width;
@@ -96,8 +95,10 @@ fet_beginchar("8th Flag (down)", "3d", "deighthflag")
 
        hip_depth# = 8/15 foot_depth#; 
        hip_width# = downflag_width# - hip_thickness#/2;
-       foot_depth# = 15/7 interline#;
-       foot_width# = .8 hip_width#;
+
+       % 2.9 -> don't intersect staffline at foot
+       foot_depth# + flare# =  2.85 interline#;
+       foot_width# = .82 hip_width#;
 
        set_char_box(stemthickness# /2, hip_width#  + hip_thickness#/2 
                + stemthickness#/2, 
@@ -117,7 +118,7 @@ fet_beginchar("8th Flag (down)", "3d", "deighthflag")
 fet_endchar;
 
 
-fet_beginchar("16th Flag (up)", "4u", "sixteenthflag")
+fet_beginchar("16th Flag (up)", "u4", "sixteenthflag")
        save flare,  flagspace,
        hip_depth, hip_width, 
        foot_depth, foot_width;
@@ -126,14 +127,14 @@ fet_beginchar("16th Flag (up)", "4u", "sixteenthflag")
        flagspace# = .85 interline#;
        hip_depth# = 8/15 foot_depth#; 
 
-       flagspace# + flare# + foot_depth# = 3.25 interline#;
+       flagspace# + flare# + foot_depth# = 3.5 interline#;
 
        hip_width# = upflag_width# - hip_thickness#/2;
        foot_width# = .8 hip_width#;
 
        set_char_box(stemthickness# /2, hip_width#  + hip_thickness#/2 
                + stemthickness#/2, 
-               3.25 interline#, stemthickness#/2)
+               3.5 interline#, stemthickness#/2)
 
        define_pixels(flagspace);
                define_pixels(flare, 
@@ -142,7 +143,7 @@ fet_beginchar("16th Flag (up)", "4u", "sixteenthflag")
 
        draw_flag((stemthickness/2, 0),flare, 
                1.2 hip_depth, .97 hip_width, hip_thickness,
-               foot_depth, .9 foot_width, foot_thickness, 0.37);       
+               foot_depth, .9 foot_width, foot_thickness, 0.5);        
        draw_flag((stemthickness/2, -flagspace),flare, 
                hip_depth,  hip_width, hip_thickness,
                foot_depth, foot_width, foot_thickness, 0);     
@@ -153,7 +154,7 @@ fet_beginchar("16th Flag (up)", "4u", "sixteenthflag")
 fet_endchar;
 
 
-fet_beginchar("16th Flag (up)", "4d", "dsixteenthflag")
+fet_beginchar("16th Flag (down)", "d4", "dsixteenthflag")
        save flare,  flagspace,
        hip_depth, hip_width, 
        foot_depth, foot_width;
@@ -179,7 +180,7 @@ fet_beginchar("16th Flag (up)", "4d", "dsixteenthflag")
 
        draw_flag((stemthickness/2, 0),flare, 
                 hip_depth, .97 hip_width, hip_thickness,
-               1.2 foot_depth, .95 foot_width, foot_thickness, 0.0);   
+               1.2 foot_depth, .95 foot_width, foot_thickness, 0.0);
 
        draw_flag((stemthickness/2, -flagspace),flare, 
                hip_depth,  hip_width, hip_thickness,
@@ -191,4 +192,169 @@ fet_beginchar("16th Flag (up)", "4d", "dsixteenthflag")
        y_mirror_char;
 fet_endchar;
 
-fet_endgroup("floogbars");
+fet_beginchar("32nd Flag (up)", "u5", "thirtysecondflag")
+       save flare,  flagspace,
+       hip_depth, hip_width, 
+       foot_depth, foot_width;
+
+       flare# = 0.85 interline#;
+       flagspace# = .87 interline#;
+       hip_depth# = 8/15 foot_depth#; 
+
+       2 flagspace# + flare# + foot_depth# = 4.25 interline#;
+
+       hip_width# = upflag_width# - hip_thickness#/2;
+       foot_width# = .8 hip_width#;
+
+       set_char_box(stemthickness# /2, hip_width#  + hip_thickness#/2 
+               + stemthickness#/2, 
+               4.25 interline#, stemthickness#/2)
+
+       define_pixels(flagspace);
+               define_pixels(flare, 
+       hip_depth, hip_width, hip_thickness,
+       foot_depth, foot_width, foot_thickness);
+
+       draw_flag((stemthickness/2, 0),flare, 
+               1.25 hip_depth, .95 hip_width, hip_thickness,
+               .85 foot_depth, 1.1 foot_width, foot_thickness, 0.0);   
+       draw_flag((stemthickness/2, -flagspace),flare, 
+               1.2 hip_depth, .97 hip_width, hip_thickness,
+               foot_depth, .9 foot_width, foot_thickness, 0.37);       
+       draw_flag((stemthickness/2, -2 flagspace),flare, 
+               1.1 hip_depth,  hip_width,  hip_thickness,
+               foot_depth, 1.15 foot_width,  foot_thickness, 0);       
+
+       pickup pencircle scaled stemthickness;
+       draw (0, 0) .. (0,-3 interline);
+
+fet_endchar;
+
+
+
+fet_beginchar("32nd Flag (up)", "d5", "dthirtysecondflag")
+       save flare,  flagspace,
+       hip_depth, hip_width, 
+       foot_depth, foot_width;
+
+       flare# = 0.85 interline#;
+       flagspace# = .85 interline#;
+       hip_depth# = .57 foot_depth#; 
+       foot_width# = 1.0 hip_width#;
+
+       2 flagspace# + flare# + foot_depth# = 3.85 interline#;
+       hip_width# = upflag_width# - hip_thickness#/2;
+
+
+       set_char_box(stemthickness# /2, hip_width#  + hip_thickness#/2 
+               + stemthickness#/2, 
+               3.85 interline#, stemthickness#/2)
+
+       define_pixels(flagspace);
+               define_pixels(flare, 
+       hip_depth, hip_width, hip_thickness,
+       foot_depth, foot_width, foot_thickness);
+
+       draw_flag((stemthickness/2, 0),flare, 
+               1.3 hip_depth, .93 hip_width, hip_thickness,
+               foot_depth,  .9 foot_width, foot_thickness, 0.0);       
+       draw_flag((stemthickness/2, -flagspace),flare, 
+               1.15 hip_depth, .97 hip_width, hip_thickness,
+               foot_depth,  .95 foot_width, foot_thickness, 0.0);      
+       draw_flag((stemthickness/2, -2 flagspace),flare, 
+               1.0 hip_depth,  hip_width, .95 hip_thickness,
+               foot_depth,  foot_width, .93 foot_thickness, 0);        
+
+       pickup pencircle scaled stemthickness;
+       draw (0, 0) .. (0,-3 interline);
+       y_mirror_char;
+fet_endchar;
+
+fet_beginchar("64th Flag (up)", "u6", "sixtyfourthflag")
+       save flare,  flagspace,
+       hip_depth, hip_width, 
+       foot_depth, foot_width;
+
+       flare# = 0.85 interline#;
+       flagspace# = .9 interline#;
+       hip_depth# = 8/15 foot_depth#; 
+
+       3 flagspace# + flare# + foot_depth# = 5.25 interline#;
+
+       hip_width# = upflag_width# - hip_thickness#/2;
+       foot_width# = .8 hip_width#;
+
+       set_char_box(stemthickness# /2, hip_width#  + hip_thickness#/2 
+               + stemthickness#/2, 
+               5.25 interline#, stemthickness#/2)
+
+       define_pixels(flagspace);
+               define_pixels(flare, 
+       hip_depth, hip_width, hip_thickness,
+       foot_depth, foot_width, foot_thickness);
+
+       draw_flag((stemthickness/2, 0),flare, 
+               1.25 hip_depth, .95 hip_width, hip_thickness,
+               .85 foot_depth, 1.1 foot_width, foot_thickness, 0.0);   
+       draw_flag((stemthickness/2, -flagspace),flare, 
+               1.2 hip_depth, .97 hip_width, hip_thickness,
+               foot_depth, .9 foot_width, foot_thickness, 0.37);       
+       draw_flag((stemthickness/2, -2flagspace),flare, 
+               1.2 hip_depth, .97 hip_width, hip_thickness,
+               foot_depth, .9 foot_width, foot_thickness, 0.37);       
+       draw_flag((stemthickness/2, -3 flagspace),flare, 
+               1.1 hip_depth,  hip_width,  hip_thickness,
+               foot_depth, 1.15 foot_width,  foot_thickness, 0);       
+
+       pickup pencircle scaled stemthickness;
+       draw (0, 0) .. (0,-5 interline);
+
+fet_endchar;
+
+
+fet_beginchar("64th Flag (down)", "d6", "dsixtyfourthflag")
+       save flare,  flagspace,
+       hip_depth, hip_width, 
+       foot_depth, foot_width;
+       save lastcut;
+       flare# = 0.85 interline#;
+       flagspace# = .9 interline#;
+       hip_depth# = .57 foot_depth#; 
+       foot_width# = 1.0 hip_width#;
+
+       lastcut = .7;
+
+       3 flagspace# + flare# + hip_depth# + 
+               (foot_depth# - hip_depth#) * (1-lastcut) = 4.35 interline#;
+       hip_width# = upflag_width# - hip_thickness#/2;
+
+
+       set_char_box(stemthickness# /2, hip_width#  + hip_thickness#/2 
+               + stemthickness#/2, 
+               4.35 interline#, stemthickness#/2)
+
+       define_pixels(flagspace);
+               define_pixels(flare, 
+       hip_depth, hip_width, hip_thickness,
+       foot_depth, foot_width, foot_thickness);
+
+       draw_flag((stemthickness/2, 0),flare, 
+               1.33 hip_depth, .92 hip_width, hip_thickness,
+               1.15 foot_depth,  .9 foot_width, foot_thickness, 0.0);  
+       draw_flag((stemthickness/2, -flagspace),flare, 
+               1.15 hip_depth, .97 hip_width, hip_thickness,
+               1.14 foot_depth,  .92 foot_width, foot_thickness, 0.0); 
+       draw_flag((stemthickness/2, -2 flagspace),flare, 
+               1.15 hip_depth, .97 hip_width, hip_thickness,
+               1.12 foot_depth,  .95 foot_width, foot_thickness, 0.0); 
+       draw_flag((stemthickness/2, -3flagspace),flare, 
+               1.0 hip_depth,  hip_width, .95 hip_thickness,
+               foot_depth,  foot_width, .93 foot_thickness, lastcut);  
+
+       pickup pencircle scaled stemthickness;
+       draw (0, 0) .. (0,-5 interline);
+       y_mirror_char;
+fet_endchar;
+
+
+fet_endgroup("flags");
index b3cadcab90e0f24014d234a20f53a32058baa2dd..d6d7cfcf5448b752cb7d9d99b477cb7c350a9a9b 100644 (file)
@@ -8,11 +8,8 @@ fet_begingroup("rests");
 
 begingroup
 
-med#:=1/33designsize;
 thick#:=1/16designsize;
-define_blacker_pixels(med,thick);
-pen med_pen;
-med_pen:= pencircle scaled med;
+define_blacker_pixels(thick);
 
 rthin:=1/8*interline;
 % rthick:=2rthin;
@@ -59,9 +56,10 @@ def block_rest=
 enddef;
 
 fet_beginchar( "whole rest", "0", "wholerest");
-set_char_box(0, block_rest_x#, -interline# + block_rest_y#,  interline# );
+       set_char_box(0, block_rest_x#,
+               block_rest_y#,  0);
        block_rest;
-       currentpicture := currentpicture shifted (0,interline - block_rest_y);
+       currentpicture := currentpicture shifted (0,- block_rest_y);
 fet_endchar;
 
 fet_beginchar("half rest", "1", "halfrest");
@@ -75,20 +73,26 @@ fet_endchar;
 %
 fet_beginchar( "whole rest (outside staff)", "0o", "outsidewholerest");
        set_char_box(block_rest_y#, block_rest_x# + block_rest_y#, 
-               -interline# + block_rest_y#, interline#);
+               block_rest_y#, ledgerlinethickness#/2);
        block_rest;
-       currentpicture := currentpicture shifted (0,interline - block_rest_y);
+       currentpicture := currentpicture shifted (0, - block_rest_y);
        pickup pencircle scaled ledgerlinethickness;
-       draw (-block_rest_y, interline) 
-             .. (block_rest_x + block_rest_y, interline);
+
+       y5 = y6 = 0;
+       lft x5 = - b; 
+       rt x6 = w;
+       draw z5 .. z6;
 fet_endchar;
 
 fet_beginchar("half rest (outside staff)", "1o", "outsidehalfrest");
        set_char_box(block_rest_y#, block_rest_x#+ block_rest_y#, 
-               0, block_rest_y#);
+               ledgerlinethickness#/2, block_rest_y#);
        block_rest;
        pickup pencircle scaled ledgerlinethickness;
-       draw (-block_rest_y,0) .. (block_rest_x + block_rest_y,0);
+       y5 = y6 = 0;
+       lft x5 = - b; 
+       rt x6 = w;
+       draw z5 .. z6;
 fet_endchar;
 
 fet_beginchar("Quarter rest","2","quartrest");
index 798782d5d418469188d7ee6344934add0397a117..4b99ef06d74de566b068d2c9d75ec2a0202a029b 100644 (file)
@@ -24,6 +24,6 @@ if test = 0:
        input feta-schrift;
        input feta-banier;
 else:
-       input feta-bolletjes;
-       input feta-banier;
+%      input feta-bolletjes;   input feta-banier;
+       input feta-eindelijk;
 fi
diff --git a/mf/feta-nummer.mf b/mf/feta-nummer.mf
deleted file mode 100644 (file)
index 577f09f..0000000
+++ /dev/null
@@ -1,207 +0,0 @@
-% feta-nummer.mf
-% part of LilyPond's pretty-but-neat music font
-
-fet_begingroup("nummer")
-
-height#:=designsize;
-%thick#:=height#/4;
-thick#:=height#/3.9;
-thin#:=thick#/4;
-hair#:=thin#/2;
-kuulleke#:=hair#;
-%kuulleke#:=0;
-
-define_pixels(height,thick,thin,hair);
-foot_top#:=2thin#;
-foot_width#:=2thick#+thin#;
-define_pixels(foot_top,foot_width);
-define_pixels(kuulleke);
-
-def draw_foot(expr xpos) = 
-       begingroup;
-       clearxy;
-       penpos1(thick,0);
-       z1=(xpos,foot_top);
-       penpos2(foot_width,0);
-       z2=(x1,0);
-       penpos3(hair,-90);
-       z3r=z2r;
-       penpos4(hair,90);
-       z4l=z2l;
-       z5=(x1,hair/2);
-       fill z1..{right}z1r{down}..{right}z3l..z3r{left}..z5..{left}z4l..z4r{right}..{up}z1l{right}..z1..cycle;
-       endgroup;
-enddef;
-
-fet_beginchar("Numeral 0", "0", "zero")
-       set_char_box(0, 3thick#, 0, height#);
-       penpos1(thin,90);
-       z1r=(w/2,h);
-       penpos2(thick,0);
-       z2r=(w,h/2);
-       penpos3(thin,-90);
-       z3r=(w/2,0);
-       penpos4(thick,180);
-       z4r=(0,h/2);
-       fill z1r..z2r..z3r..z4r..cycle;
-       unfill z1l..tension1.2..z2l..tension1.2..z3l..tension1.2..z4l..tension1.2..cycle;
-fet_endchar;
-       
-fet_beginchar("Numeral 1", "1", "one")
-       set_char_box(0, 5/2thick#+thin#, 0, height#);
-       save alpha; alpha=0;
-       penpos1(thick,alpha);
-       z1=(thick+thick/2,height);
-       penpos2(hair,alpha+45);
-       z2=z1l+(1/4sqrt(2)*hair)*dir(alpha-45);
-       penpos3(hair,alpha-45);
-       z3=z1r+(1/4sqrt(2)*hair)*dir(alpha-135);
-       z4=z1+kuulleke*dir(alpha-90);
-
-       penpos5(thick,0);
-       z5=(x1,foot_top);
-       
-       z6=(0,h/2);
-       save beta; beta=angle(z1l-z6);
-       penpos7(thin,beta-90);
-       z7l=z6;
-       penpos8(thin/cosd(beta),-90);
-       z8l=z1l;
-       penpos9(hair,beta-90);
-       z9r=z8r+(hair/cosd(beta))*(0,-1);
-       save gamma; gamma=angle(length(z1r-z1),+2kuulleke);
-       fill z2r{dir(alpha-gamma)}..z4..{dir(alpha+gamma)}z3l..z3r{down}..{down}z5r{left}..z5..{left}z5l{up}..{up}z2l..cycle;
-       fill z7l{dir(beta)}..{dir(beta)}z1l..z2r..z9r{up}..z9l{dir(180+beta)}..{dir(180+beta)}z7r..cycle;
-       penlabels(7,8,9);
-
-       draw_foot(x1);
-fet_endchar;
-
-fet_beginchar("Numeral 2", "2", "two")
-       set_char_box(0, 2thick#+3thin#, 0, height#);
-       clearxy;
-       save alpha; alpha=-50;
-       save beta; beta=75;
-       penpos1(thin,90+beta);
-       z1=(0,0)+(1/2sqrt(2)*thin)*dir(45);
-       penpos3(hair,90+beta);
-       z3=(w,thick)+(1/2sqrt(2)*hair)*dir(-135);
-       penpos2(3/4thick,90+alpha);
-       x2-x1=x3-x2; y2=thick/2;
-       penlabels(1,2,3);
-
-       fill z1r{dir(beta)}..{dir(alpha)}z2r..{dir(beta)}z3r..z3l{dir(180+beta)}..{dir(180+alpha)}z2l..{dir(180+beta)}z1l..cycle;
-
-       penpos4(thin,90);
-       z4r=(w/2-thin-hair,2/5h);
-       penpos5(thick-hair,0);
-       z5r=(w-thin,(y4+y6)/2);
-       penpos6(thin,90);
-       z6r=(w/2-thin-hair,h);
-       penlabels(4,5,6);
-%      fill z1l{dir(beta)}..{dir(5)}z4l..{up}z5r..{left}z6r..z6l{right}..z5l{down}..z4r{dir(180+5)}..{dir(180+beta)}z1r..cycle;
-       penpos7(thick,90);
-       z7l=(thick/2,y5-hair);
-       penpos8(thick,0);
-       z8=z7;
-       penlabels(7,8);
-       fill z1l{dir(beta)}..{dir(20)}z4l..{up}z5r..{left}z6r..z8l{down}..z7l{right}..{up}z8r..tension0.75..z6l{right}..z5l{down}..z4r{dir(180+20)}..{dir(180+beta)}z1r..cycle;
-fet_endchar;
-
-fet_beginchar("Numeral 4", "4", "four")
-       set_char_box(0, 5/2thick#+3thin#, 0, height#);
-       save alpha; alpha=0;
-       penpos1(3/2thick,alpha);
-       z1r=(w-3thin,height);
-       penpos2(hair,alpha+45);
-       z2=z1l+(1/4sqrt(2)*hair)*dir(alpha-45);
-       penpos3(hair,alpha-45);
-       z3=z1r+(1/4sqrt(2)*hair)*dir(alpha-135);
-       z4=z1+kuulleke*dir(alpha-90);
-
-       z5=(thin,1/4height+thin);
-       save beta; beta=angle(z3r-z5);
-       penpos6(thin,-90);
-       z6l=z5;
-       penpos7(thin,-90);
-       y7=y6; x7=w-1/2thin;
-       penpos8(thin,-alpha);
-       z8r=z5;
-       save gamma; gamma=angle(length(z1r-z1),+2kuulleke);
-       fill z2r{dir(alpha-gamma)}..z4..{dir(alpha+gamma)}z3l..z3r{dir(180+beta)}..{dir(180+beta)}z8r{right}..{right}z7l..z7r{left}..{left}z6r..z8l{dir(beta)}..{up}z2l..cycle;
-       penlabels(1,2,3,4,5,6,7);
-
-       clearxy;
-
-       save alpha; alpha=beta;
-       penpos1(thick/cosd(alpha),alpha);
-       % ugh, must be just > foot_width/2!
-       z1r=(w-3thin,height-(thin+hair)/cosd(alpha));
-       penpos2(hair,alpha+45);
-       z2=z1l+(1/4sqrt(2)*hair)*dir(alpha-45);
-       penpos3(hair,alpha-45);
-       z3=z1r+(1/4sqrt(2)*hair)*dir(alpha-135);
-       z4=z1+kuulleke*dir(alpha-90);
-
-       % ugh
-       % the angle alpha may just let the hair penposes 3 and 4
-       % stick-out to the right of the vertical...
-%      penpos5(thick,0);
-%      z5=(x1,foot_top);
-       penpos5(whatever,0);
-       x5r-x5l=x3r-x2l; x5r=x3r; y5=foot_top;
-       
-       save gamma; gamma=angle(length(z1r-z1),+2kuulleke);
-       fill z2r{dir(alpha-gamma)}..z4..{dir(alpha+gamma)}z3l..z3r{down}..{down}z5r{left}..z5..{left}z5l{up}..{up}z2l..cycle;
-       penlabels(1,2,3,4,5);
-
-       draw_foot(x5);
-fet_endchar;
-
-fet_beginchar("Numeral 7", "7", "seven")
-%      set_char_box(0, 5/2thick#+thin#, 0, height#);
-       set_char_box(0, 5/2thick#+2thin#, 0, height#);
-       save alpha; alpha=-180;
-       penpos1(3/2thick,alpha);
-       z1r=(thin,0);
-       penpos2(hair,alpha+45);
-       z2=z1l+(1/4sqrt(2)*hair)*dir(alpha-45);
-       penpos3(hair,alpha-45);
-       z3=z1r+(1/4sqrt(2)*hair)*dir(alpha-135);
-       z4=z1+kuulleke*dir(alpha-90);
-
-       save beta; beta=50;
-       penpos5(thin,90+beta);
-       z5=(w,h)+(1/2sqrt(2)*thin)*dir(-135);
-
-       save gamma; gamma=angle(length(z1r-z1),+2kuulleke);
-       save delta; delta=12;
-       fill z2r{dir(alpha-gamma)}..z4..{dir(alpha+gamma)}z3l..z3r{dir(beta+delta)}..{dir(beta)}z5r..z5l{dir(180+beta)}..{dir(delta-90)}z2l..cycle;
-       penlabels(1,2,3,4,5);
-
-       clearxy;
-       save alpha; alpha=-50;
-       penpos1(2thin,90);
-%      z1=(3/2thin,h-thick/2-thin);
-       z1=(3/2thin,h-(thick+thin)/2);
-       penpos3(thin,90+beta);
-       z3=(w,h)+(1/2sqrt(2)*thin)*dir(-135);
-       penpos2(3/4thick,90+alpha);
-       x2-x1=x3-x2; y2=h-thick/2;
-
-       penpos4(thin,0);
-       z4l=(0,h-thin/2);
-       penpos5(thin,0);
-       z5l=(0,h/2+thin/2);
-
-       penpos6(4thin,90);
-       z6r=(thin,y1r+thin/2);
-       
-       fill z1r{dir(beta)}..{dir(alpha)}z2r..{dir(beta)}z3r..z3l{dir(180+beta)}..{dir(180+alpha)}z2l..{dir(180+beta)}z1l..z6l{down}..{down}z5r..z5l{up}..{up}z4l..z4r{down}..{down}z6r..{right}cycle;
-       penlabels(1,2,3,4,5,6);
-
-
-fet_endchar;
-
-
-fet_endgroup("nummer")
diff --git a/mf/feta-nummer10.mf b/mf/feta-nummer10.mf
deleted file mode 100644 (file)
index 45d33f4..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-% feta-nummer10.mf
-% part of LilyPond's pretty-but-neat music font
-
-input autometric;
-fet_beginfont("feta-nummer", 10);
-
-mode_setup;
-
-input feta-nummer;
-
-fet_endfont("feta-nummer");
-
-end.
-
diff --git a/mf/feta-orator.mf b/mf/feta-orator.mf
new file mode 100644 (file)
index 0000000..1448c8c
--- /dev/null
@@ -0,0 +1,121 @@
+% feta-orator.mf
+% part of LilyPond's pretty-but-neat music font
+
+fet_begingroup("orator")
+
+height#:=designsize;
+thick#:=height#/4;
+thin#:=thick#/4;
+hair#:=thin#/2;
+kuulleke#:=thin#;
+
+define_pixels(height,thick,thin,hair);
+foot_top#:=2thin#;
+foot_width#:=2thick#+thin#;
+define_pixels(foot_top,foot_width);
+define_pixels(kuulleke);
+
+def draw_foot(expr xpos) = 
+       begingroup;
+       clearxy;
+       penpos1(thick,0);
+       z1=(xpos,foot_top);
+       penpos2(foot_width,0);
+       z2=(x1,0);
+       penpos3(hair,-90);
+       z3r=z2r;
+       penpos4(hair,90);
+       z4l=z2l;
+       z5=(x1,hair/2);
+       fill z1..{right}z1r{down}..{right}z3l..z3r{left}..z5..{left}z4l..z4r{right}..{up}z1l{right}..z1..cycle;
+       endgroup;
+enddef;
+
+fet_beginchar("Numeral 0", "0", "zero")
+       set_char_box(0, 3thick#, 0, height#);
+       penpos1(thin,90);
+       z1r=(w/2,h);
+       penpos2(thick,0);
+       z2r=(w,h/2);
+       penpos3(thin,-90);
+       z3r=(w/2,0);
+       penpos4(thick,180);
+       z4r=(0,h/2);
+       fill z1r..z2r..z3r..z4r..cycle;
+       unfill z1l..tension1.2..z2l..tension1.2..z3l..tension1.2..z4l..tension1.2..cycle;
+fet_endchar;
+       
+fet_beginchar("Numeral 1", "1", "one")
+       set_char_box(0, 5/2thick#+thin#, 0, height#);
+       penpos1(thick,0);
+       z1=(thick+thick/2,height);
+       penpos2(hair,45);
+       z2=z1l+(1/4sqrt(2)*hair)*(1,-1);
+       penpos3(hair,-45);
+       z3=z1r+(1/4sqrt(2)*hair)*(-1,-1);
+       x4=x1; y4=y1-kuulleke;
+
+       penpos5(thick,0);
+       z5=(x1,foot_top);
+       
+       z6=(0,h/2);
+       save alpha; alpha=angle(z1l-z6);
+       penpos7(thin,alpha-90);
+       z7l=z6;
+       penpos8(thin/cosd(alpha),-90);
+       z8l=z1l;
+       penpos9(hair,alpha-90);
+       z9r=z8r+(hair/cosd(alpha))*(0,-1);
+       fill z2r{(1,-1)}..z4..{(1,1)}z3l..z3r{down}..{down}z5r{left}..z5..{left}z5l{up}..{up}z2l..cycle;
+%      fill z7l{dir(alpha)}..{dir(alpha)}z2l{down}..z9r{up}..z9l{dir(180+alpha)}..{dir(180+alpha)}z7r..cycle;
+       fill z7l{dir(alpha)}..{dir(alpha)}z1l..z2r..z9r{up}..z9l{dir(180+alpha)}..{dir(180+alpha)}z7r..cycle;
+       penlabels(7,8,9);
+
+       draw_foot(x1);
+fet_endchar;
+
+fet_beginchar("Numeral 4", "4", "four")
+       set_char_box(0, 5/2thick#+3thin#, 0, height#);
+       penpos1(3/2thick,0);
+       z1r=(w-3thin,height);
+       z2=(thin,1/4height+thin);
+       penpos3(hair,45);
+       z3=z1l+(1/4sqrt(2)*hair)*(1,-1);
+       penpos4(hair,-45);
+       z4=z1r+(1/4sqrt(2)*hair)*(-1,-1);
+       x5=x1; y5=y1-kuulleke;
+       save alpha; alpha=angle(z4r-z2);
+       penpos6(thin,-90);
+       z6l=z2;
+       penpos7(thin,-90);
+       y7=y6; x7=w-1/2thin;
+       penpos8(thin,-alpha);
+       z8r=z2;
+       fill z3r{(1,-1)}..z5..{(1,1)}z4l..z4r{dir(180+alpha)}..{dir(180+alpha)}z8r{right}..{right}z7l..z7r{left}..{left}z6r..z8l{dir(alpha)}..{up}z3l..cycle;
+       penlabels(1,2,3,4,5,6,7);
+
+       clearxy;
+       penpos1(thick/cosd(alpha),alpha);
+       % ugh, must be just > foot_width/2!
+       z1r=(w-3thin,height-(thin+hair)/cosd(alpha));
+       penpos2(hair,alpha+45);
+       z2=z1l+(1/4sqrt(2)*hair)*dir(alpha-45);
+       penpos3(hair,alpha-45);
+       z3=z1r+(1/4sqrt(2)*hair)*dir(alpha-135);
+       z4=z1+kuulleke*dir(alpha-90);
+
+       % ugh
+       % the angle alpha may just let the hair penposes 3 and 4
+       % stick-out to the right of the vertical...
+%      penpos5(thick,0);
+%      z5=(x1,foot_top);
+       penpos5(whatever,0);
+       x5r-x5l=x3r-x2l; x5r=x3r; y5=foot_top;
+       
+       fill z2r{dir(alpha-45)}..z4..{dir(alpha+45)}z3l..z3r{down}..{down}z5r{left}..z5..{left}z5l{up}..{up}z2l..cycle;
+       penlabels(1,2,3,4,5);
+
+       draw_foot(x5);
+fet_endchar;
+
+fet_endgroup("orator")
diff --git a/mf/feta-orator10.mf b/mf/feta-orator10.mf
new file mode 100644 (file)
index 0000000..c4c0ed0
--- /dev/null
@@ -0,0 +1,14 @@
+% feta-orator20.mf
+% part of LilyPond's pretty-but-neat music font
+
+input autometric;
+fet_beginfont("feta-orator", 10);
+
+mode_setup;
+
+input feta-orator;
+
+fet_endfont("feta-orator");
+
+end.
+
index d7c1698b2cd60bbae874d2fb465299fb7d67e44e..890c8c726f677e947acd86dd1999c029bd5c6139 100644 (file)
@@ -1,5 +1,5 @@
 % generated automatically by mf-to-table.py version 0.4
-% on Mon Oct 20 01:50:48 1997
+% on Mon Oct 20 23:14:01 1997
 % Do not edit
 % input from out/font-en-tja16.log
 % name
 \fetdef\pedalheel{36}
 \fetdef\pedaltoe{37}
 
-% floogbars
+% flags
 \fetdef\eighthflag{38}
 \fetdef\deighthflag{39}
 \fetdef\sixteenthflag{40}
 \fetdef\dsixteenthflag{41}
+\fetdef\thirtysecondflag{42}
+\fetdef\dthirtysecondflag{43}
+\fetdef\sixtyfourthflag{44}
+\fetdef\dsixtyfourthflag{45}
 
index 6e2125afd11362b337e0b255a71a129dec658aa0..347abfb99882c66750028206060c190d7e50b8d7 100644 (file)
@@ -1,5 +1,5 @@
 % generated automatically by mf-to-table.py version 0.4
-% on Mon Oct 20 01:50:55 1997
+% on Mon Oct 20 23:14:08 1997
 % Do not edit
 % input from out/font-en-tja20.log
 % name
 \fetdef\pedalheel{36}
 \fetdef\pedaltoe{37}
 
-% floogbars
+% flags
 \fetdef\eighthflag{38}
 \fetdef\deighthflag{39}
 \fetdef\sixteenthflag{40}
 \fetdef\dsixteenthflag{41}
+\fetdef\thirtysecondflag{42}
+\fetdef\dthirtysecondflag{43}
+\fetdef\sixtyfourthflag{44}
+\fetdef\dsixtyfourthflag{45}