]> git.donarmstrong.com Git - lilypond.git/commitdiff
release: 0.1.22 release/0.1.22
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Sat, 11 Oct 1997 11:28:50 +0000 (13:28 +0200)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Sat, 11 Oct 1997 11:28:50 +0000 (13:28 +0200)
149 files changed:
.dstreamrc
AUTHORS.text
Documentation/AUTHORS.pod
Documentation/Rules.make
Documentation/gnu-music.pod
Documentation/literature.pod
INSTALL.text
NEWS
TODO
VERSION
bin/Makefile
bin/clean-diaper.sh [new file with mode: 0644]
bin/clean-fonts [deleted file]
bin/clean-fonts.sh [new file with mode: 0644]
bin/clearlily [deleted file]
bin/conflily [deleted file]
bin/conflily.sh [new file with mode: 0644]
bin/convert-mudela.in [deleted file]
bin/convert-mudela.pl [new file with mode: 0644]
bin/cpgento [deleted file]
bin/cpgento.sh [new file with mode: 0644]
bin/find-typenames.pl [new file with mode: 0644]
bin/genheader.py
bin/lily.efence [deleted file]
bin/make-docxx.sh [new file with mode: 0644]
bin/make-patch [deleted file]
bin/make-patch.sh [new file with mode: 0644]
bin/make-version [deleted file]
bin/make-version.sh [new file with mode: 0644]
bin/make-website.in [deleted file]
bin/make-website.pl [new file with mode: 0644]
bin/mf-to-table.py
bin/mudela-book.in [deleted file]
bin/mudela-book.pl [new file with mode: 0644]
bin/release [deleted file]
bin/release.sh [new file with mode: 0644]
bin/show-latest.in [deleted file]
bin/show-latest.pl [new file with mode: 0644]
flower/TODO
flower/include/string.hh
init/engraver.ly
init/font-en-tja16.ly
init/font-en-tja20.ly
init/script.ly
init/symbol.ly
init/table16.ly
init/table20.ly
init/vette-beams16.ly [deleted file]
init/vette-beams20.ly [deleted file]
input/abbrev.ly
input/beams.ly
input/cadenza.ly
input/collisions.ly
input/coriolan-alto.ly
input/font.ly
input/gallina.ly
input/gourlay.ly
input/keys.ly
input/kortjakje.ly
input/multi.ly
input/pedal.ly
input/rhythm.ly
input/scales.ly
input/scripts.ly
input/scsii-menuetto.ly
input/slurs.ly
input/standchen-16.ly
input/standchen-20.ly
input/standchen.ly
input/toccata-fuga-E.ly
input/twinkle-pop.ly
input/twinkle.ly
input/wtk1-fugue1.ly
input/wtk1-fugue2.ly
input/wtk1-prelude1.ly
lily/Stable.make
lily/VERSION
lily/abbreviation-beam.cc
lily/atom.cc
lily/axis.cc
lily/bar.cc
lily/beam-swallow-trans.cc [new file with mode: 0644]
lily/beam.cc
lily/boxes.cc
lily/clef-grav.cc
lily/clef-item.cc
lily/col-info.cc
lily/dot-column.cc
lily/dots.cc
lily/graphical-element.cc
lily/horizontal-align-item.cc
lily/include/atom.hh
lily/include/axes.hh
lily/include/beam-swallow-trans.hh [new file with mode: 0644]
lily/include/clef-item.hh
lily/include/col-info.hh
lily/include/graphical-element.hh
lily/include/lookup.hh
lily/include/molecule.hh
lily/include/my-lily-lexer.hh
lily/key-item.cc
lily/lexer.l
lily/local-key-item.cc
lily/lookup.cc
lily/lyric-grav.cc
lily/meter.cc
lily/molecule.cc
lily/my-lily-lexer.cc
lily/my-lily-parser.cc
lily/note-head.cc [new file with mode: 0644]
lily/notehead.cc [deleted file]
lily/parser.y
lily/rest.cc
lily/scoreline.cc
lily/script-def.cc
lily/script.cc
lily/span-bar.cc
lily/spring-spacer.cc
lily/staff-side.cc
lily/staff-sym.cc
lily/stem.cc
lily/tex-slur.cc
lily/text-item.cc
lily/vertical-align-elem.cc
make/Targets.make
make/Variables.make
make/lelievijver.lsm
make/lilypond.lsm
make/lilypond.spec
make/lilypond.spec.in
mf/Makefile
mf/TODO
mf/autometric.mf
mf/dimen.tex
mf/feta-banier.mf
mf/feta-bolletjes.mf
mf/feta-generic.mf
mf/feta-macros.mf
mf/feta-schrift.mf
mf/feta-toevallig.mf
mf/font-en-tja16.mf
mf/font-en-tja20.mf
mf/foo.mf [deleted file]
mf/mfbug.mf [deleted file]
tex/font-en-tja16.tex
tex/font-en-tja20.tex
tex/lilyponddefs.tex
tex/vette-beams16.tex [deleted file]
tex/vette-beams20.tex [deleted file]

index 7669e1cdb3cdbe13411e07f505b7e01029f7d461..178573bd1ab6ada7aad989c2d9a0c545b07002a5 100644 (file)
@@ -5,18 +5,18 @@ Dstream                       1
 
 # yydebug
 InitParser             1
-Parser                 0
+Parser                 1
 InitDeclarations       1
 Declarations           1
 # FlexLexer debug
 InitLexer              1
-Lexer                  1
+Lexer                  0
 
 
 # flower lib
 File_path              1
 Matrix                 0
-Vector                 1
+Vector                 0
 
 # lily
 Atom                   0
@@ -35,11 +35,11 @@ Engraver_group_engraver 0
 Group_change_req       0
 Head_column            0
 Idealspacing           0
-Ineq_constrained_qp    1
+Ineq_constrained_qp    0
 Input_translator       0
 Item                   0
 Key_item               0
-Lookup                 1
+Lookup                 0
 Line_spacer            0
 Melodic_req            0
 Midi_def               0
@@ -47,7 +47,7 @@ Midistrings           1
 Mixed_qp               0
 Music                  0
 Music_iterator         0
-My_lily_lexer          0
+My_lily_lexer          1
 Note_head              0
 Note_performer         0
 Note_req               0
@@ -80,8 +80,8 @@ Staff_commands                0
 Stem                   0
 Stem                   0
 Stem_req               0
-Symtable               1
-Symtables              1
+Symtable               0
+Symtables              0
 
 Text_def               0
 Text_req               0
index 59490e17be9e4d4888fb76df6f545c4c402cf0f5..45db5d43746097eb59d76c9c9abb526de3ca8b31 100644 (file)
@@ -25,7 +25,8 @@ A\bA\bA\bAU\bU\bU\bUT\bT\bT\bTH\bH\bH\bHO\bO\bO\bOR\bR\bR\bRS\bS\bS\bS
            Documentation/mudela.pod, lib/*source-file*,
            lib/duration.cc, lib/source*, flower/*{list,cursor}*,
            lily/rest-collision*, lily/*abbreviation*, conflily,
-           cygnus w32 stuff, lily/*perf*, some input files, mf/*
+           cygnus w32 stuff, lily/*perf*, some input files,
+           mf/*{bolletjes,wat-zie-ik,eindelijk}
 
            and corresponding header files.
 
@@ -60,7 +61,6 @@ 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
 
 
 
-
-23/Sep/97                LilyPond 0.1.20                        1
+10/Oct/97                LilyPond 0.1.22                        1
 
 
index 16f62c203f796f3d4056899dd8084f615b9920e8..1839dec91549e6771777e9a78df06587085083a9 100644 (file)
@@ -24,7 +24,7 @@ lily/midi-*, mi2mu/*, parts flower/string*.cc, make/*.make, */Makefile
 parts of Documentation/mudela.pod, lib/*source-file*, lib/duration.cc,
 lib/source*, flower/*{list,cursor}*, lily/rest-collision*,
 lily/*abbreviation*, conflily, cygnus w32 stuff, lily/*perf*, some
-input files, mf/*
+input files, mf/*{bolletjes,wat-zie-ik,eindelijk}
 
 and corresponding header files.
 
index 7e87d4ff6bf100d8c39d09f748563328f01390f2..d5c66f344b4bed447e2a7b4bf83235944cba8816 100644 (file)
@@ -57,7 +57,7 @@ $(outdir)/%.dvi: $(depth)/input/%.ly $(depth)/VERSION
 
 # generate the pixmap at twice the size, then rescale (for antialiasing)
 $(outdir)/%.gif: $(outdir)/%.ps
-       gs -q -sDEVICE=ppmraw -sOutputFile=- -r200 -dNOPAUSE  $< -c quit |pnmscale 0.5| ppmtogif > $@
+       gs  -q -sDEVICE=ppmraw -sOutputFile=- -r200 -dNOPAUSE  $< -c quit |pnmscale 0.5| ppmtogif > $@
 
 $(outdir)/%.ly.txt: $(depth)/input/%.ly
        ln -f $< $@
index 21a6385130e27ccfb03b4a04d8fe7c1c024f97ee..3a34a5dfac9842e6098a3445b2357507b0bdac29 100644 (file)
@@ -93,17 +93,12 @@ of use and power.
 =item A set of music fonts
 
 Preferably in Metafont, suited to both screen display and use on
-paper; This is needed because
-
-1. the copyright heritage of {Opus,Musix}tex is unclear.
-
-2. We don't have any legal papers which make these fonts free (to use
-and alter)
+paper.
 
 =item A typesetting engine
 
 A system with rules on how to set properties of items to be printed
-(up/down directions, breaking, dimensoins, etc) LilyPond provides one,
+(up/down directions, breaking, dimensions, etc) LilyPond provides one,
 but it is not (yet) suited to interactive typesetting
 
 =item A display engine
@@ -170,10 +165,6 @@ formats.
 
 =back
 
-The typesetting system has a complexity comparable to TeX's, the GUI
-would be comparable to LyX (?)  with additional complexity in
-recognizing input.
-
 =head1 TASKS (SHORT TERM)
 
 =over 4
index 038c86f577c1a46e4d3d98914f04358a9f238be8..a085af6c6aaae59171dd6415e04ffefa6fb8a671 100644 (file)
@@ -44,14 +44,20 @@ notation issues as one is likely to get. MB]
 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]
+[Hader was the chief-engraver of the Waldheim-Eberle music publishers.
+This book contains the most important rules on engraving (according to
+[Chlapik])]
 
 MPA. Standard music notation specifications for computer programming.
 December 1996
 
 [Pamphlet explaining some fine points in music font design HWN]
 
+D. Roush. ``Music Formatting Guidelines,'' Technical Report
+OSU-CISRC-3/88-TR10, Department of Computer and Information Science,
+The Ohio State University, 1988.
+
+[Rules on formatting music formulated for use in computers HWN]
 
 =head2 Notation with computers
 
@@ -130,12 +136,6 @@ Computer and Information Science, The Ohio State University, 1987.
 [Placement of balls, stems, dots which occur at the same moment
 ("Simultaneity") HWN]
 
-D. Roush. ``Music Formatting Guidelines,'' Technical Report
-OSU-CISRC-3/88-TR10, Department of Computer and Information Science,
-The Ohio State University, 1988.
-
-[Rules on formatting music formulated for use in computers HWN]
-
 F. Sola. ``Computer Design of Musical Slurs, Ties and Phrase Marks,''
 Technical Report OSU-CISRC-10/87-TR32, Department of Computer and
 Information Science, The Ohio State University, 1987.
index 638c0073488e14e90821bcefbd510f4c71a5bbf0..202a89efffd1567f419d87e65271b69f5525447f 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.21                        1
+8/Oct/97                 LilyPond 0.1.22                        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
 
 
 
-8/Oct/97                 LilyPond 0.1.21                        2
+8/Oct/97                 LilyPond 0.1.22                        2
 
 
 
@@ -193,7 +193,7 @@ INSTALL(1)            LilyPond documentation           INSTALL(1)
 
 
 
-8/Oct/97                 LilyPond 0.1.21                        3
+8/Oct/97                 LilyPond 0.1.22                        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
 
 
 
-8/Oct/97                 LilyPond 0.1.21                        4
+8/Oct/97                 LilyPond 0.1.22                        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
 
 
 
-8/Oct/97                 LilyPond 0.1.21                        5
+8/Oct/97                 LilyPond 0.1.22                        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.21                        6
+8/Oct/97                 LilyPond 0.1.22                        6
 
 
diff --git a/NEWS b/NEWS
index 3f196faa5e00354e02dc8e085a65bc8837493aa3..abf20884ef75cc409b52b19007a6db8e139b2667 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,16 @@
+pl 22
+       - bf: lyric 's- Zondags
+       - bf: colliding accidentals: renamed translate(Real,Axis) to translate_axis()
+       - renaming of scripts
+       - strings with escaped characters.
+       - bf "string_with_\"_embedded"
+       - bf: mf/Makefile
+       - feta changes (trill, organ pedals)
+       - updated mf-to-table for new feta conventions
+       - changed header format to something sensible.
+       - moved staff to centerline == 0;
+
+********
 pl 21
        - shrinking uses more energy  than stretching
        - check IO error on writing (disk full?)
diff --git a/TODO b/TODO
index f3b65e6c36d98fc2be9f90cc8d91dde4fda19b73..e8416d10030bc0fdcc44618e03368f9062107660 100644 (file)
--- a/TODO
+++ b/TODO
@@ -6,15 +6,15 @@ done, or is an idea that I want to think about
 Most of the items are marked in the code as well, with full explanation. 
 grep for TODO and ugh/ugr
 
-       * accidental placement
+       * todo key-sig placement.
+       
+       * put errorlevel in Input
 
        * AFM for font input?
 
        * Make general "spanning"-elements and "placer"-elements
 
-       * Unicode support?
-
-       - naming Mozarella, Madeira, Muella, Fontaigna, Feta?
+       - naming Mozarella, Madeira, Muella, Feta?
        - bf: abbrevs over whole note
        - scoping for properties
 
@@ -53,20 +53,20 @@ grep for TODO and ugh/ugr
 
        * Fix profiling. gprof bugreport?
 
-       * read from mmap directly: bugreport to flex developers->
-       yy_scan_buffer in C++..
-
-       * (where are the) gcc compile warnings on linux
-
 PROJECTS
 
+       * Unicode support?
+       - 16 bit Strings
+       - -u switch
+       - detect of 16/8 bit files
+       - examples to go with it.
+
        * Spring_spacer:
        - write a faster Spring_spacer ( without matrices if possible )
        - relate energybound to linelen unitspace fontsize etc.
        - used fixed point fp
 
        * \header
-       - revise lexer mode
        - write perl script for handling it into databases
        - write TeX macros to generate titles
 
@@ -102,16 +102,13 @@ languages:
        - derive lily_stream, Dstream, texstream from ostream?
        - indentable stream as baseclass for TeX stream, lily stream, Dstream.
        - use dstream feature in mi2mu
+       - integrate IO checking into stream class
 
        * input converters
        - NIFF?
        - ABC? 
        - SMDL?
 
-       * robustification
-       - check write errors
-       - check read errors
-       
        * placement of bar-numbers
 
 ******************
diff --git a/VERSION b/VERSION
index eb47bd8f02ff5423a45998095b747e3691dd13c1..f54b7cfd6e0ac1df26aaecb2964727d1cba025c5 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1,6 +1,6 @@
 TOPLEVEL_MAJOR_VERSION = 0
 TOPLEVEL_MINOR_VERSION = 1
-TOPLEVEL_PATCH_LEVEL = 21
-TOPLEVEL_MY_PATCH_LEVEL = .jcn1
+TOPLEVEL_PATCH_LEVEL = 22
+TOPLEVEL_MY_PATCH_LEVEL = 
 
 # use the above to send patches, always empty for released version:
index 4b3c40476d46aa075cca1844de2f76fa9bdc4003..7850aabe6542060771c415b106ecbbaf1f2f3ec0 100644 (file)
@@ -4,24 +4,26 @@ depth = ..
 include $(depth)/make/Include.make
 
 # list of distribution files:
-SCRIPTS = clearlily cpgento make-patch lily.efence \
-       make-version release conflily clean-fonts
-PERL_SCRIPTS_IN = $(wildcard *.in)
-PERL_SCRIPTS = $(addprefix $(outdir)/, $(PERL_SCRIPTS_IN:.in=))
+PERL_SCRIPTS_IN = $(wildcard *.pl)
+PERL_SCRIPTS = $(addprefix $(outdir)/, $(PERL_SCRIPTS_IN:.pl=))
+SH_SCRIPTS_IN = $(wildcard *.sh)
+SH_SCRIPTS = $(addprefix $(outdir)/, $(SH_SCRIPTS_IN:.sh=))
 PYTHON_SCRIPTS_IN = $(wildcard *.py)
 PYTHON_SCRIPTS = $(addprefix $(outdir)/, $(PYTHON_SCRIPTS_IN:.py=))
-EXTRA_DISTFILES = $(SCRIPTS) $(PERL_SCRIPTS_IN) $(PYTHON_SCRIPTS_IN) 
-#
+EXTRA_DISTFILES = $(SH_SCRIPTS_IN) $(PERL_SCRIPTS_IN) $(PYTHON_SCRIPTS_IN) 
 
-all: $(PERL_SCRIPTS) $(PYTHON_SCRIPTS)
 
-$(outdir)/%: %.in
-#      cd .. && CONFIG_FILES=bin/$(notdir $@) CONFIG_HEADERS= ./config.status
-#      mv $(< :.in=) $@
-# this nukes make/out/Configure_variables.make.
+all: $(PERL_SCRIPTS) $(PYTHON_SCRIPTS) $(SH_SCRIPTS)
+
+$(outdir)/%: %.pl
        sed 's!@PERL@!$(PERL)!' < $< > $@
        chmod 755 $@
 
+#FIXME.  Check for bash?
+$(outdir)/%: %.sh
+       sed 's!@SH@!$(SH)!' < $< > $@
+       chmod 755 $@
+
 $(outdir)/%: %.py
        sed 's!@PYTHON@!$(PYTHON)!' < $< > $@
        chmod 755 $@
diff --git a/bin/clean-diaper.sh b/bin/clean-diaper.sh
new file mode 100644 (file)
index 0000000..284346d
--- /dev/null
@@ -0,0 +1,14 @@
+#!/bin/sh
+
+# unclobber current dir.
+rm -vf *.aux *.log `grep -li "^% Creator: GNU LilyPond" *.out` *.orig *~
+rm -vf `grep -li "Creator: mi2mu" *.midi.ly`
+rm -vf `grep -li "Creator: GNU LilyPond" *.midi`
+rm -vf `find -name 'core'`
+rm -vf `find -name *.orig`
+rm -vf `find -name *.rej`
+
+# docxx mess
+rm -vf *dvi
+rm -vf *.class  HIER*.html dxxgifs.tex gifs.db icon?.gif logo.gif down.gif \
+    aindex.html index.html
diff --git a/bin/clean-fonts b/bin/clean-fonts
deleted file mode 100755 (executable)
index cc1c070..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/sh
-
-# remove possibly stale .pk/.tfm files 
-echo> /tmp/cleaning-font
-FILES=`find /var/lib/texmf/ -name 'font-en-tja*'`
-# FILES=`find /var/lib/texmf/ -name 'font-en-tja*' -o -name 'vette-beam*' -o -name 'dyn10*'`
-echo removing $FILES
-rm  $FILES /tmp/cleaning-font
diff --git a/bin/clean-fonts.sh b/bin/clean-fonts.sh
new file mode 100644 (file)
index 0000000..8494ff6
--- /dev/null
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+# remove possibly stale .pk/.tfm files 
+echo> /tmp/cleaning-font
+FILES=`find /var/lib/texmf/ -name 'font-en-tja*'` # -or -name 'vette-beam*'`
+echo removing $FILES
+rm  $FILES /tmp/cleaning-font
diff --git a/bin/clearlily b/bin/clearlily
deleted file mode 100755 (executable)
index 22a4ea6..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/sh
-
-# unclobber current dir.
-rm -vf *.aux *.log `grep -li "^% Creator: GNU LilyPond" *.out` *.orig *~
-rm -vf `grep -li "Creator: mi2mu" *.midi.ly`
-rm -vf `grep -li "Creator: GNU LilyPond" *.midi`
-# docxx mess
-rm -vf *dvi
-rm -vf *.class  HIER*.html dxxgifs.tex gifs.db icon?.gif logo.gif down.gif \
-    aindex.html index.html
diff --git a/bin/conflily b/bin/conflily
deleted file mode 100755 (executable)
index de2ce67..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/bin/sh
-# conflily
-# ugh: must be executed from lilypond-x.x.x (bin/conflily)
-
-# the lilypond root dir looks like this:
-# current -> ./lilypond-x.x.x  symlink to current source
-# lilypond-x.x.x               the lilypond source
-# patches                      gzipped patches
-# releases                     gzipped releases
-
-# the lily root dir
-#
-lelie=$HOME/music/lily
-#
-
-if [ ! -e $HOME/lelie ]; then
-       ln -s $lelie $HOME/lelie
-fi
-
-rm $lelie/current 2>&1 > /dev/null
-current=`basename \`pwd\``
-echo ln -s $lelie/$current $lelie/current
-ln -s $lelie/$current $lelie/current
-
-ln -sf $lelie/current/lily/out/lilypond bin/out/lilypond
-ln -sf $lelie/current/mi2mu/out/mi2mu bin/out/mi2mu
-
-if [ "x$LILYINCLUDE" = "x" ]; then
-       echo you should make add the following to your login script
-       echo "export LILYINCLUDE=$lelie/current/init"
-       echo "export PATH=$PATH:$lelie/current/bin/out/"
-       echo "export MFINPUTS=$MFINPUTS:$lelie/current/mf"
-fi
-
-configure --prefix=/usr --enable-debugging --enable-printing --enable-checking
-
diff --git a/bin/conflily.sh b/bin/conflily.sh
new file mode 100644 (file)
index 0000000..de2ce67
--- /dev/null
@@ -0,0 +1,36 @@
+#!/bin/sh
+# conflily
+# ugh: must be executed from lilypond-x.x.x (bin/conflily)
+
+# the lilypond root dir looks like this:
+# current -> ./lilypond-x.x.x  symlink to current source
+# lilypond-x.x.x               the lilypond source
+# patches                      gzipped patches
+# releases                     gzipped releases
+
+# the lily root dir
+#
+lelie=$HOME/music/lily
+#
+
+if [ ! -e $HOME/lelie ]; then
+       ln -s $lelie $HOME/lelie
+fi
+
+rm $lelie/current 2>&1 > /dev/null
+current=`basename \`pwd\``
+echo ln -s $lelie/$current $lelie/current
+ln -s $lelie/$current $lelie/current
+
+ln -sf $lelie/current/lily/out/lilypond bin/out/lilypond
+ln -sf $lelie/current/mi2mu/out/mi2mu bin/out/mi2mu
+
+if [ "x$LILYINCLUDE" = "x" ]; then
+       echo you should make add the following to your login script
+       echo "export LILYINCLUDE=$lelie/current/init"
+       echo "export PATH=$PATH:$lelie/current/bin/out/"
+       echo "export MFINPUTS=$MFINPUTS:$lelie/current/mf"
+fi
+
+configure --prefix=/usr --enable-debugging --enable-printing --enable-checking
+
diff --git a/bin/convert-mudela.in b/bin/convert-mudela.in
deleted file mode 100644 (file)
index 8b05c15..0000000
+++ /dev/null
@@ -1,324 +0,0 @@
-#!@PERL@ -w
-# -*-perl-*-
-
-=head1 TODO
-
-    detect \lyrics and \melodic, and do substitution accordingly.
-    count <> and {} ?
-
-Ugh . Perl sux. Anybody for Python?
-    
-=cut    
-
-
-
-#
-# version of "supporting" engine, not mudela conversions.
-# 
-
-
-
-
-$convert_mudela_version = "0.1.2";
-
-use Getopt::Long;
-
-
-sub version_compare
-{
-    local ($a,$b)=@_;
-    return &cmpver;
-}
-    
-
-sub  cmpver 
-{      
-       my(@a)= split /\./,$a;
-       my(@b)= split /\./,$b;
-
-       for $i (0,1,2) {
-           return $a[$i] <=> $b[$i] if ($a[$i] != $b[$i]);
-       }
-       return $a cmp $b;
-}
-
-sub version_string_conv
-{
-    my ($from_version, $to_version) = @_;
-    s/\version \"$from_version\"/\version \"$to_version\"/g;
-}
-
-################################################################
-
-sub no_conv
-{
-}
-sub convert_0_0_52_to_0_0_53
-{
-
-    s/include \"/$1\\include \"/g;
-}
-
-  
-sub convert_0_0_54_to_0_0_55
-{
-    s/%{/% {/g;
-}
-
-  
-sub convert_0_0_53_to_0_0_54
-{
-    print STDERR "Not smart enough to convert \\transpose\n"    if (/\\transpose/) ;
-}
-
-# we-re not at 58 yet, but this is at least one of the rules
-sub convert_0_0_55_to_0_0_56
-{
-    s/\"\|\|\"/\"|.\"/g;
-}
-
-sub convert_0_0_56_to_0_0_57
-{
-    s/\(([ \]\[|\t-\.>]|\\[<!>a-z]+)*\)/\~ $1/g;
-}
-
-sub convert_0_0_57_to_0_0_58
-{
-    s/\[ *([^\[\]]*)\] *([1-9]*) *\/ *([1-9]*)/[$2\/$3 $1]1\/1/g;
-}
-
-sub convert_0_0_58_to_0_0_59
-{
-    die "Not smart enough to convert 0.0.58 to 0.0.59\n";
-}
-
-sub convert_0_0_59_to_0_0_60
-{
-    s/(\\unitspace [0-9.mcptin\\ ]+|\\geometric [0-9.]+|\\width [0-9.mcp\\tin]+)/$1;/g;
-    s/(\\output \"[^\"]+\")/$1;/;
-    s/(\\tempo  [0-9: ]+)/$1;/;
-}
-
-sub convert_0_0_60_to_0_0_61
-{
-    s/(\\unitspace|\\geometric|\\width)/$1=/g;
-   
-}
-
-sub convert_0_1_0_to_0_1_1
-{
-    s/\\tempo (.*):(.*);/\\tempo $1 = $2;/g
-}
-
-sub convert_0_1_2_to_0_1_3
-{
-    s/\\stem *(\\up|1) *;/\\stemup/g;
-    s/\\stem *(\\down|-1) *;/\\stemdown/g;
-    s/\\stem *0 *;/\\stemboth/g;
-    s/\\hshift ([^;]+) *;/\\property Voice.hshift = $1/g;
-}
-
-sub convert_0_1_4_to_0_1_5
-{
-    s/([<{]) *\\id "Piano" (.+);/\\type Grandstaff = $3 $1/;    
-    s/([<{]) *\\id (.+) (.+);/\\type $2 = $3 $1/;
-}
-
-       
-sub convert_0_1_5_to_0_1_6
-{
-    s/< *\\multi (.*);/\\multi $1 </;
-}
-       
-###############################################################
-
-sub    last_conversion
-{
-    my @v = &versions;
-    return pop @v;
-}
-sub identify
-{
-    
-    print STDERR "This is convert-mudela " . $convert_mudela_version . 
-       " (up to mudela version ", last_conversion,     ")\n";
-}
-  
-  
- sub usage
-  {
-     print STDERR "Usage: convert-mudela [options] [mudela-file]...\n"
-     . "Convert old mudela source from mudela-file or stdin\n\n"
-     . "Options:\n"
-     . "  -e, --edit             perform in-place conversion\n"
-     . "  -f, --from=PATHLEVEL   use source version 0.0.PATCHLEVEL\n"
-     . "  -h, --help             print this help\n"
-     . "  -o, --output=FILE      name output file\n"
-     . "  -s, --show-rules       print all known conversion rules\n"
-     . "  -t, --to=VERSION       convert to version VERSION\n"
-  }
-      
-
-my %minor_conversions = ("0.0.50" => \&no_conv,
-                        "0.0.52" => \&convert_0_0_50_to_0_0_52,
-                        "0.0.53" => \&convert_0_0_52_to_0_0_53,
-                        "0.0.54" => \&convert_0_0_53_to_0_0_54,
-                        "0.0.55" => \&convert_0_0_54_to_0_0_55,
-                        "0.0.56" => \&convert_0_0_55_to_0_0_56,
-                        "0.0.57" => \&convert_0_0_56_to_0_0_57,
-                        "0.0.58" => \&convert_0_0_57_to_0_0_58,
-                        "0.0.59" => \&convert_0_0_58_to_0_0_59,
-                        "0.0.60" => \&convert_0_0_59_to_0_0_60,
-                        "0.0.61" => \&convert_0_0_60_to_0_0_61,
-                        "0.1.1" => \&convert_0_1_0_to_0_1_1,
-                        "0.1.2" => \&no_conv,
-                        "0.1.3" => \&convert_0_1_2_to_0_1_3,
-                        "0.1.4" => \&no_conv,
-                        "0.1.5" => \&convert_0_1_4_to_0_1_5,
-                        "0.1.6" => \&convert_0_1_5_to_0_1_6
-                        );
-
-sub versions 
-{
-    return (sort { cmpver; } (keys %minor_conversions));
-}
-    
-
-sub show_rules
-{
-    my (@v) = versions;
-
-    print "Rules: ", join(", ", @v), "\n";
-    
-}
-
-sub do_conversion
-{
-    my ($from,$to) = @_;
-
-    my @applicable_conversion;
-    my @mudela_levels;
-    
-    my @v = versions;
-    foreach $ver (@v) {
-       if (version_compare($ver, $from) > 0 && version_compare($ver,$to) <= 0 ){ 
-           push @applicable_conversion, $minor_conversions{$ver};
-           push @mudela_levels, $ver;
-       }
-    }
-    
-    print STDERR "Applying following rules: ", join(", ", @mudela_levels) , "\n";
-
-    while (<INLY>) {
-       foreach $subroutine (@applicable_conversion) {
-       
-           &$subroutine;
-           
-       }
-       version_string_conv $from, $to;
-       print OUTLY;
-    }
-}
-
-sub get_auto_from
-{
-    my ($fn)=@_;
-    my ($ver);
-    open INLY, $fn || die "Can't open";
-
-    while (<INLY>) {
-       s/^.*\\version \"([^\"]*)\".*$//;
-       if (defined ($1)) {
-           print STDERR "Guessing version: ", $1, ".. ";
-           $ver = $1;
-           last;
-       }
-    }
-    if (!defined($ver)){
-       print STDERR "can't determine mudela version in $fn.\n";
-       my $u;
-       return $u;
-    }
-    close INLY;
-    return $ver;
-}   
-
-sub  set_files 
-{
-    $infile = "-";
-    $outfile = "-";
-    $outfile = $opt_output if (defined($opt_output));
-
-    if ($ARGV [0])  {
-       $infile = $ARGV[0];
-    } 
-    if (!(-f $infile) && !($infile =~ /\.ly$/s)) {
-       $infile .= ".ly";
-    }
-    if ($opt_edit && $infile ne "-") {
-       $opt_edit = 1;
-       $outfile = "$infile.NEW";
-       $infile = "$infile";
-    }
-    print STDERR "Input ", (($infile eq "-") ?"STDIN" : $infile), " .. ";
-
-}
-
-sub do_one_arg
-{
-    set_files;
-
-    local ($from_version, $to_version);
-    $from_version = $opt_from;
-    $to_version = $opt_to;
-    
-    ($from_version = get_auto_from $infile) unless defined($opt_from);
-    return if (!defined($from_version));
-    
-    ($to_version =  last_conversion) unless (defined($opt_to));
-
-    die "can't open \`$infile\'" unless open INLY,$infile ;
-    die "can't open \`$outfile\'" unless open OUTLY, ">$outfile";
-    
-    do_conversion $from_version, $to_version;
-    close INLY;
-    close OUTLY;
-
-    if ($opt_edit) {
-       rename $infile, "$infile~";
-       rename $outfile, "$infile";
-    }
-}
-
-## "main"
-
-identify;
-
-
-GetOptions ("help", "output=s", "from=i", "to=i", "minor=i", "edit", "show-rules");
-
-if ($opt_help) {
-    usage();
-    $opt_help = 0;     # to extinguish typo check.
-    exit 0;
-}
-
-if ($opt_show_rules) { 
-    show_rules ;
-    $opt_show_rules = 0;       # to extinguish typo check.
-    exit 0;
-}
-
-local ( $infile,$outfile);
-my $processed_one=0;
-
-while (defined($ARGV[0])) {
-    do_one_arg;
-    shift @ARGV;
-    $processed_one = 1;
-}
-do_one_arg unless ($processed_one);
-
-    
diff --git a/bin/convert-mudela.pl b/bin/convert-mudela.pl
new file mode 100644 (file)
index 0000000..7c26746
--- /dev/null
@@ -0,0 +1,349 @@
+#!@PERL@ -w
+# -*-perl-*-
+
+=head1 TODO
+
+    detect \lyrics and \melodic, and do substitution accordingly.
+    count <> and {} ?
+
+Ugh . Perl sux. Anybody for Python?
+    
+=cut    
+
+
+
+#
+# version of "supporting" engine, not mudela conversions.
+# 
+
+
+
+
+$convert_mudela_version = "0.1.2";
+
+use Getopt::Long;
+
+
+sub version_compare
+{
+    local ($a,$b)=@_;
+    return &cmpver;
+}
+    
+
+sub  cmpver 
+{      
+       my(@a)= split /\./,$a;
+       my(@b)= split /\./,$b;
+
+       for $i (0,1,2) {
+           return $a[$i] <=> $b[$i] if ($a[$i] != $b[$i]);
+       }
+       return $a cmp $b;
+}
+
+sub version_string_conv
+{
+    my ($from_version, $to_version) = @_;
+    s/\version \"$from_version\"/\version \"$to_version\"/g;
+}
+
+################################################################
+
+sub no_conv
+{
+}
+sub convert_0_0_52_to_0_0_53
+{
+
+    s/include \"/$1\\include \"/g;
+}
+
+  
+sub convert_0_0_54_to_0_0_55
+{
+    s/%{/% {/g;
+}
+
+  
+sub convert_0_0_53_to_0_0_54
+{
+    print STDERR "Not smart enough to convert \\transpose\n"    if (/\\transpose/) ;
+}
+
+# we-re not at 58 yet, but this is at least one of the rules
+sub convert_0_0_55_to_0_0_56
+{
+    s/\"\|\|\"/\"|.\"/g;
+}
+
+sub convert_0_0_56_to_0_0_57
+{
+    s/\(([ \]\[|\t-\.>]|\\[<!>a-z]+)*\)/\~ $1/g;
+}
+
+sub convert_0_0_57_to_0_0_58
+{
+    s/\[ *([^\[\]]*)\] *([1-9]*) *\/ *([1-9]*)/[$2\/$3 $1]1\/1/g;
+}
+
+sub convert_0_0_58_to_0_0_59
+{
+    die "Not smart enough to convert 0.0.58 to 0.0.59\n";
+}
+
+sub convert_0_0_59_to_0_0_60
+{
+    s/(\\unitspace [0-9.mcptin\\ ]+|\\geometric [0-9.]+|\\width [0-9.mcp\\tin]+)/$1;/g;
+    s/(\\output \"[^\"]+\")/$1;/;
+    s/(\\tempo  [0-9: ]+)/$1;/;
+}
+
+sub convert_0_0_60_to_0_0_61
+{
+    s/(\\unitspace|\\geometric|\\width)/$1=/g;
+   
+}
+
+sub convert_0_1_0_to_0_1_1
+{
+    s/\\tempo (.*):(.*);/\\tempo $1 = $2;/g
+}
+
+sub convert_0_1_2_to_0_1_3
+{
+    s/\\stem *(\\up|1) *;/\\stemup/g;
+    s/\\stem *(\\down|-1) *;/\\stemdown/g;
+    s/\\stem *0 *;/\\stemboth/g;
+    s/\\hshift ([^;]+) *;/\\property Voice.hshift = $1/g;
+}
+
+my $header_b = 0;
+
+sub generic_conversion_scan
+{
+    if (/\\header *\{/)
+    {
+       $header_b = 1;
+    }
+    if ($header_b && /^ *\}/)
+    {
+       $header_b = 0;
+    }
+}
+sub convert_0_1_4_to_0_1_5
+{
+    s/([<{]) *\\id "Piano" (.+);/\\type Grandstaff = $3 $1/;    
+    s/([<{]) *\\id (.+) (.+);/\\type $2 = $3 $1/;
+}
+
+       
+sub convert_0_1_5_to_0_1_6
+{
+    s/< *\\multi (.*);/\\multi $1 </;
+}
+
+sub convert_0_1_6_to_0_1_7
+{
+    if ($header_b) 
+    {
+       s/^([a-zA-z]+)[ \t]+(.*)$/$1 =\t \"$2\";/;
+       s/^([ \t])+(.*)$/$1 \"$2\";/;
+    }
+}  
+
+###############################################################
+
+sub    last_conversion
+{
+    my @v = &versions;
+    return pop @v;
+}
+sub identify
+{
+    
+    print STDERR "This is convert-mudela " . $convert_mudela_version . 
+       " (up to mudela version ", last_conversion,     ")\n";
+}
+  
+  
+ sub usage
+  {
+     print STDERR "Usage: convert-mudela [options] [mudela-file]...\n"
+     . "Convert old mudela source from mudela-file or stdin\n\n"
+     . "Options:\n"
+     . "  -e, --edit             perform in-place conversion\n"
+     . "  -f, --from=PATHLEVEL   use source version 0.0.PATCHLEVEL\n"
+     . "  -h, --help             print this help\n"
+     . "  -o, --output=FILE      name output file\n"
+     . "  -s, --show-rules       print all known conversion rules\n"
+     . "  -t, --to=VERSION       convert to version VERSION\n"
+  }
+      
+
+my %minor_conversions = ("0.0.50" => \&no_conv,
+                        "0.0.52" => \&convert_0_0_50_to_0_0_52,
+                        "0.0.53" => \&convert_0_0_52_to_0_0_53,
+                        "0.0.54" => \&convert_0_0_53_to_0_0_54,
+                        "0.0.55" => \&convert_0_0_54_to_0_0_55,
+                        "0.0.56" => \&convert_0_0_55_to_0_0_56,
+                        "0.0.57" => \&convert_0_0_56_to_0_0_57,
+                        "0.0.58" => \&convert_0_0_57_to_0_0_58,
+                        "0.0.59" => \&convert_0_0_58_to_0_0_59,
+                        "0.0.60" => \&convert_0_0_59_to_0_0_60,
+                        "0.0.61" => \&convert_0_0_60_to_0_0_61,
+                        "0.1.1" => \&convert_0_1_0_to_0_1_1,
+                        "0.1.2" => \&no_conv,
+                        "0.1.3" => \&convert_0_1_2_to_0_1_3,
+                        "0.1.4" => \&no_conv,
+                        "0.1.5" => \&convert_0_1_4_to_0_1_5,
+                        "0.1.6" => \&convert_0_1_5_to_0_1_6
+                        ,"0.1.7" => \&convert_0_1_6_to_0_1_7
+                        );
+
+
+sub versions 
+{
+    return (sort { cmpver; } (keys %minor_conversions));
+}
+
+
+sub show_rules
+{
+    my (@v) = versions;
+
+    print "Rules: ", join(", ", @v), "\n";
+    
+}
+
+sub do_conversion
+{
+    my ($from,$to) = @_;
+
+    my @applicable_conversion;
+    my @mudela_levels;
+    
+    my @v = versions;
+    foreach $ver (@v) {
+       if (version_compare($ver, $from) > 0 && version_compare($ver,$to) <= 0 ){ 
+           push @applicable_conversion, $minor_conversions{$ver};
+           push @mudela_levels, $ver;
+       }
+    }
+    
+    print STDERR "Applying following rules: ", join(", ", @mudela_levels) , "\n";
+
+    while (<INLY>) {
+       generic_conversion_scan;
+       foreach $subroutine (@applicable_conversion) {
+       
+           &$subroutine;
+           
+       }
+       version_string_conv $from, $to;
+       print OUTLY;
+    }
+}
+
+sub get_auto_from
+{
+    my ($fn)=@_;
+    my ($ver);
+    open INLY, $fn || die "Can't open";
+
+    while (<INLY>) {
+       s/^.*\\version \"([^\"]*)\".*$//;
+       if (defined ($1)) {
+           print STDERR "Guessing version: ", $1, ".. ";
+           $ver = $1;
+           last;
+       }
+    }
+    if (!defined($ver)){
+       print STDERR "can't determine mudela version in $fn.\n";
+       my $u;
+       return $u;
+    }
+    close INLY;
+    return $ver;
+}   
+
+sub  set_files 
+{
+    $infile = "-";
+    $outfile = "-";
+    $outfile = $opt_output if (defined($opt_output));
+
+    if ($ARGV [0])  {
+       $infile = $ARGV[0];
+    } 
+    if (!(-f $infile) && !($infile =~ /\.ly$/s)) {
+       $infile .= ".ly";
+    }
+    if ($opt_edit && $infile ne "-") {
+       $opt_edit = 1;
+       $outfile = "$infile.NEW";
+       $infile = "$infile";
+    }
+    print STDERR "Input ", (($infile eq "-") ?"STDIN" : $infile), " .. ";
+
+}
+
+sub do_one_arg
+{
+    set_files;
+
+    local ($from_version, $to_version);
+    $from_version = $opt_from;
+    $to_version = $opt_to;
+    
+    ($from_version = get_auto_from $infile) unless defined($opt_from);
+    return if (!defined($from_version));
+    
+    ($to_version =  last_conversion) unless (defined($opt_to));
+
+    die "can't open \`$infile\'" unless open INLY,$infile ;
+    die "can't open \`$outfile\'" unless open OUTLY, ">$outfile";
+    
+    do_conversion $from_version, $to_version;
+    close INLY;
+    close OUTLY;
+
+    if ($opt_edit) {
+       rename $infile, "$infile~";
+       rename $outfile, "$infile";
+    }
+}
+
+## "main"
+
+identify;
+
+
+GetOptions ("help", "output=s", "from=i", "to=i", "minor=i", "edit", "show-rules");
+
+if ($opt_help) {
+    usage();
+    $opt_help = 0;     # to extinguish typo check.
+    exit 0;
+}
+
+if ($opt_show_rules) { 
+    show_rules ;
+    $opt_show_rules = 0;       # to extinguish typo check.
+    exit 0;
+}
+
+local ( $infile,$outfile);
+my $processed_one=0;
+
+while (defined($ARGV[0])) {
+    do_one_arg;
+    shift @ARGV;
+    $processed_one = 1;
+}
+do_one_arg unless ($processed_one);
+
+    
diff --git a/bin/cpgento b/bin/cpgento
deleted file mode 100755 (executable)
index 74f7778..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-#!/bin/sh
-# cpgento
-#
-
-if test $# -ne 1
-then
-       echo "Usage: "
-       echo "  cpgento LOCATION, e.g.:"; 
-       echo
-       echo "  cpgento /mnt/aix/usr/src/lily"
-               echo "  CP=rcp cpgento fred@pcnov095.win.tue.nl:music/lily"
-       exit 1
-fi
-
-MAKE=${MAKE:-make}
-CP=${CP:-cp}
-
-genlily="out/parser.hh out/parser.cc out/lexer.cc"
-echo generating $genlily ...
-$MAKE -C lily $genlily
-
-genmi2mu="out/midi-parser.hh out/midi-parser.cc out/midi-lexer.cc"
-echo generating $genmi2mu ...
-$MAKE -C mi2mu $genmi2mu
-
-lilydir=`pwd | sed "s/.*\///"`
-todir=$1/$lilydir
-echo "copying $lilydir -> $todir"
-
-cpto() {
-       name=$1
-       tostuff=$todir/$name/out
-       genstuff="$2"
-       if [ "$CP" = "cp" -a \! -d $tostuff ]
-       then
-               echo mkdir -p $tostuff
-               mkdir -p $tostuff
-       fi
-       echo $CP $genstuff $tostuff
-       (cd $name; $CP $genstuff $tostuff)
-}
-
-cpto lily "$genlily"
-cpto mi2mu "$genmi2mu"
-
-# if you cannot gen the above, you-ll probably want:
-flexlexerh=/usr/include/FlexLexer.h
-cpto lib $flexlexerh
-
diff --git a/bin/cpgento.sh b/bin/cpgento.sh
new file mode 100644 (file)
index 0000000..74f7778
--- /dev/null
@@ -0,0 +1,49 @@
+#!/bin/sh
+# cpgento
+#
+
+if test $# -ne 1
+then
+       echo "Usage: "
+       echo "  cpgento LOCATION, e.g.:"; 
+       echo
+       echo "  cpgento /mnt/aix/usr/src/lily"
+               echo "  CP=rcp cpgento fred@pcnov095.win.tue.nl:music/lily"
+       exit 1
+fi
+
+MAKE=${MAKE:-make}
+CP=${CP:-cp}
+
+genlily="out/parser.hh out/parser.cc out/lexer.cc"
+echo generating $genlily ...
+$MAKE -C lily $genlily
+
+genmi2mu="out/midi-parser.hh out/midi-parser.cc out/midi-lexer.cc"
+echo generating $genmi2mu ...
+$MAKE -C mi2mu $genmi2mu
+
+lilydir=`pwd | sed "s/.*\///"`
+todir=$1/$lilydir
+echo "copying $lilydir -> $todir"
+
+cpto() {
+       name=$1
+       tostuff=$todir/$name/out
+       genstuff="$2"
+       if [ "$CP" = "cp" -a \! -d $tostuff ]
+       then
+               echo mkdir -p $tostuff
+               mkdir -p $tostuff
+       fi
+       echo $CP $genstuff $tostuff
+       (cd $name; $CP $genstuff $tostuff)
+}
+
+cpto lily "$genlily"
+cpto mi2mu "$genmi2mu"
+
+# if you cannot gen the above, you-ll probably want:
+flexlexerh=/usr/include/FlexLexer.h
+cpto lib $flexlexerh
+
diff --git a/bin/find-typenames.pl b/bin/find-typenames.pl
new file mode 100644 (file)
index 0000000..e08fd00
--- /dev/null
@@ -0,0 +1,20 @@
+#!/usr/bin/perl
+
+open GREP, "egrep -h '^struct|^class' *.hh *.cc|";
+open OUT, "|sort | uniq";
+while (<GREP>) {
+
+       s/^struct/class/;
+       if (! /; *$/) {
+               s/:[^{]+{.*$//;
+               s/ *{.*$/;/;
+       }
+       if (! /; *$/) {
+               chop;
+               $_ .= ";\n";
+               
+       }
+       print OUT;
+}
+close OUT;
+close GREP;
index f8c1cc30f132a0e45490dacf67cb6dada86718bf..07bd45077264f5db842bef0c9e984d7292a4f04d 100644 (file)
@@ -66,7 +66,7 @@ def head_str(filename):
 
 def c_include(filename):
     startdef= filename;
-    trans = string.maketrans( string.lowercase + '.', string.uppercase + '_')
+    trans = string.maketrans( string.lowercase + '-.', string.uppercase + '__')
     startdef = string.translate(filename, trans)
 
    
diff --git a/bin/lily.efence b/bin/lily.efence
deleted file mode 100755 (executable)
index 5924253..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/sh
-gdb --command=bin/efence.gdbinit
-
-
diff --git a/bin/make-docxx.sh b/bin/make-docxx.sh
new file mode 100644 (file)
index 0000000..dc60f80
--- /dev/null
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+p1=`find ./ -name '*.hh' |egrep -v out/` 
+p2=`find ./ -name '*.cc' |egrep -v out/`
+doc++ -d out/ -S -k -p $p1 $p2
diff --git a/bin/make-patch b/bin/make-patch
deleted file mode 100755 (executable)
index e11d7b8..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-#!/bin/sh
-
-case $# in
-0) echo make_patch old new name
-       exit 1;;
-esac
-
-old=$1
-new=$2
-nm=$3-
-
-newarc=../releases/$nm$new.tar.gz
-oldarc=../releases/$nm$old.tar.gz
-
-
-if [ ! -x  $nm$new ]
-then
-   echo untarring ..
-  if [ ! -f $newarc ]
-  then
-       echo "can't find $newarc"
-       exit
-  fi
-  tar zfx $newarc
-fi
-if [ ! -x  $nm$old ]
-then
-   echo untarring
-
-  if [ ! -f $oldarc ]
-  then
-       echo "can't find $oldarc"
-       exit
-  fi
-   tar zfx $oldarc
-fi
-
-# not interested in auto generated files.
-for a in lilypond.lsm INSTALL.text AUTHORS.text lilypond.spec configure; do
-    rm `find  $nm$old $nm$new  -name $a`
-done    
-
-cat <<EOF > patch-$new
-Generated with 
-
-       make_patch $1 $2 $3
-
-usage 
-
-       cd lilypond-source-dir; patch -E -p0 < patch-$new
-       
-Patches do not contain automatically generated files, 
-i.e. you should rerun configure
-EOF
-
-(cd $nm$new; diff -urN  ../$nm$old . >> ../patch-$new)
-rm -rf $nm$old $nm$new
diff --git a/bin/make-patch.sh b/bin/make-patch.sh
new file mode 100644 (file)
index 0000000..e11d7b8
--- /dev/null
@@ -0,0 +1,57 @@
+#!/bin/sh
+
+case $# in
+0) echo make_patch old new name
+       exit 1;;
+esac
+
+old=$1
+new=$2
+nm=$3-
+
+newarc=../releases/$nm$new.tar.gz
+oldarc=../releases/$nm$old.tar.gz
+
+
+if [ ! -x  $nm$new ]
+then
+   echo untarring ..
+  if [ ! -f $newarc ]
+  then
+       echo "can't find $newarc"
+       exit
+  fi
+  tar zfx $newarc
+fi
+if [ ! -x  $nm$old ]
+then
+   echo untarring
+
+  if [ ! -f $oldarc ]
+  then
+       echo "can't find $oldarc"
+       exit
+  fi
+   tar zfx $oldarc
+fi
+
+# not interested in auto generated files.
+for a in lilypond.lsm INSTALL.text AUTHORS.text lilypond.spec configure; do
+    rm `find  $nm$old $nm$new  -name $a`
+done    
+
+cat <<EOF > patch-$new
+Generated with 
+
+       make_patch $1 $2 $3
+
+usage 
+
+       cd lilypond-source-dir; patch -E -p0 < patch-$new
+       
+Patches do not contain automatically generated files, 
+i.e. you should rerun configure
+EOF
+
+(cd $nm$new; diff -urN  ../$nm$old . >> ../patch-$new)
+rm -rf $nm$old $nm$new
diff --git a/bin/make-version b/bin/make-version
deleted file mode 100755 (executable)
index 3be1435..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/bin/sh
-
-#shift;
-if test "x$1" = x;
-then
-    versionfile="VERSION"
-else
-    versionfile=$1;
-fi
-
-cat $versionfile| sed 's/#.*$//g'|sed 's/\([^ ]*\)[\t ]*=[ \t]*\([^ ]*\)$/#define \1 \"\2\"/g' 
-echo
-    
diff --git a/bin/make-version.sh b/bin/make-version.sh
new file mode 100644 (file)
index 0000000..3be1435
--- /dev/null
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+#shift;
+if test "x$1" = x;
+then
+    versionfile="VERSION"
+else
+    versionfile=$1;
+fi
+
+cat $versionfile| sed 's/#.*$//g'|sed 's/\([^ ]*\)[\t ]*=[ \t]*\([^ ]*\)$/#define \1 \"\2\"/g' 
+echo
+    
diff --git a/bin/make-website.in b/bin/make-website.in
deleted file mode 100644 (file)
index 9830035..0000000
+++ /dev/null
@@ -1,357 +0,0 @@
-#!@PERL@ -w 
-# -*-Perl-*- 
-
-
-# stupid script to generate WWW site.  The WWW site is my 
-# test-suite for LilyPond, I usually don't distribute versions that
-# fail to make the website
-
-use FileHandle;
-use Getopt::Long;
-
-my $lily_version;
-my $footstr;
-my $mw_id = "<!make_website!>";
-my $id_str = "make-website 0.4";
-my $TAR="tar";
-my $MAKE="make";
-
-sub get_version
-{
-    my ($vstr)=("");
-    open V, "$depth/VERSION";
-    while (<V>) {
-       s/#.*$//g;
-       next if (/^ *$/);
-       s/^/\$/;
-       s/= *(.*)$/=\"$1\";/;
-       $vstr .= $_;
-    }
-    eval ($vstr);
-    
-    $lily_version= "$TOPLEVEL_MAJOR_VERSION.$TOPLEVEL_MINOR_VERSION.$TOPLEVEL_PATCH_LEVEL$TOPLEVEL_MY_PATCH_LEVEL";
-    
-    # stupid checks.
-    $lily_version= $lily_version;
-    
-    close V;
-}
-
-sub set_html_footer
-{
-    my $MAILADDRESS=$ENV{MAILADDRESS};
-    my @pw=(getpwuid($<));
-    my $username=$pw[6];
-
-    $footstr = 
-       "\n<hr>Please take me <a href=index.html>back to the index</a>\n
-of LilyPond -- The GNU Project Music typesetter
-<hr>
-<font size=-1>
-This page was built using <code>" . $id_str . "</code> from lilypond-"
-    . $lily_version . 
-       " by<p>
-<address><br>$username <a href=mailto:" 
-    . $MAILADDRESS . ">&lt<!bla>" . $MAILADDRESS ."</a>&gt</address>
-<p></font>";
-}
-    
-
-# do something, check return status
-sub my_system
-{
-    my (@cmds) = @_;
-    foreach $cmd (@cmds) {
-       my ($ignoreret)=0;
-       if ( $cmd  =~ /^-/ ) {
-           $ignoreret = 1;
-           $cmd = substr ($cmd, 1);
-       }
-       
-       my $ret =  ( system ($cmd));
-       if ($ret) {
-           if ($ignoreret) {
-               print STDERR "ignoring failed command \`$cmd\' (status $ret)\n";
-           }else {
-               print STDERR "\nmake_website: failed on command \`$cmd\' (status $ret)\n";
-               exit 2;
-           }
-       }
-    }
-}
-
-
-local $base="lilypond/";
-
-local @examples=("twinkle-pop", 
-                "wtk1-fugue2",
-                "standchen-16", 
-                "standchen-20", 
-                "wtk1-prelude1",
-                "toccata-fuga-E", 
-                "scsii-menuetto",
-                "cadenza", 
-                "gallina",
-                "twinkle", 
-                "collisions",
-                "font",
-                #"scales", 
-                "rhythm", 
-                "multi" );
-
-
-sub gen_html
-{
-    print "generating HTML\n";
-    my_system "$MAKE -kC .. html";
-}
-
-sub gen_examples
-{
-    print "generating examples: \n";
-    my @todo=();
-    foreach $a (@examples) {
-       push @todo, "out/$a.ps.gz", "out/$a.gif", "out/$a.ly.txt";
-    }
-    
-    my_system ("$MAKE -C .. " . join(' ', @todo));
-}
-
-my @texstuff = ("mudela-man", "mudela-course");
-
-sub gen_manuals
-{
-    print "generating TeX doco list\n";
-    open HTMLLIST, ">tex_manuals.html";
-    print HTMLLIST "<HTML><TITLE>PostScript Manuals</TITLE>\n" ;
-    print HTMLLIST "<BODY><h1>LilyPond manuals (in PostScript)</h1>";
-    print HTMLLIST "<ul>\n";
-    my @todo=();
-    foreach $a (@texstuff) {
-       push @todo , "out/$a.ps.gz";
-       print HTMLLIST "<li><a href=$a.ps.gz>$a.ps.gz</a>";
-    }
-    print HTMLLIST "</ul>";
-    
-    print HTMLLIST "</BODY></HTML>";
-    close HTMLLIST;
-
-    my_system( "$MAKE -C .. " .  join(' ', @todo));
-}
-
-sub gen_list
-{
-    print "generating HTML list\n";
-    open HTMLLIST, ">example_output.html";
-
-    print HTMLLIST "<html><body><TITLE>Rendered Examples</TITLE>\n
-These example files are taken from the LilyPond distribution.
-LilyPond currently only outputs TeX and MIDI. The pictures and
-PostScript files were generated using TeX, Ghostscript and some
-graphics tools.  The papersize used for these examples is A4.  The GIF
-files have been scaled to eliminate aliasing."; 
-
-
-
-    foreach $a (@examples)
-    {
-       $name=$a; print HTMLLIST "<h1>example file: $name</h1>\n<XMP>\n";
-
-       open IF, "$depth/input/$a.ly";
-       input_record_separator IF "\n}";
-       
-       $desc = <IF>;
-       close IF;
-       
-       print HTMLLIST "$desc\n</XMP>";
-
-       $inputf="$a.ly.txt";
-       $giff="$a.gif";
-       $jpegf="$a.jpeg";
-       $pngf = "$a.png";
-       $psf="$a.ps.gz";
-       $midif="$a.midi";
-       
-       print HTMLLIST "<ul>";
-
-       print HTMLLIST "<li><a href=$inputf> The input file</a>"
-           if ( -f $inputf );
-       
-       print HTMLLIST "<li><a href=$giff>The output (picture)</a>"     
-           if ( -f $giff );
-
-       print HTMLLIST "<li><a href=$psf>The output (PS)</a>\n"
-           if ( -f $psf );
-               
-       print HTMLLIST "<li><a href=$midif>The output (MIDI)</a>\n" 
-           if ( -f $midif );
-       print HTMLLIST "</ul>";
-    }
-    print HTMLLIST "</BODY></HTML>";
-    close HTMLLIST;
-}
-
-sub edit_html
-{
-    print STDERR "adding footer\n";
-
-    OUTER:
-    foreach $a (<*.html>) {
-       open H, "$a";
-       my $sep="</BODY>";
-       input_record_separator H $sep;
-       my $file="";
-       
-       while (<H>) { 
-           if (/$mw_id/) {
-               close H;
-               next OUTER;
-           }
-           $file .= $_; 
-
-       }
-       close H;
-
-       my $subst =  $footstr;
-       $subst .= $back if (! $a =~ /index.html/ );
-       $file =~ s/$sep/$subst$sep/g ;
-       $file =~ s/\.gif/\.$image/g;
-       $file =~ s!<TITLE>(.*)</TITLE>!<TITLE>LilyPond WWW: $1</TITLE>!g;
-       open H, ">$a";
-       print H $mw_id;
-       
-       print H $file;
-       close H;
-    }
-}
-
-sub copy_txt_file
-{
-    my ($f) = @_;
-    my $d = $f;
-    $d =~ s!^.*\/!!;
-    if (! $f =~ /.txt$/) {
-       $d = "$f.txt";
-    }
-    print, $d;
-}
-    
-sub top_of_NEWS
-{
-    open NEWS, "NEWS.txt";
-    input_record_separator NEWS "****";
-    $desc = <NEWS>;
-    chop ($desc);
-    close NEWS;
-
-    return $desc;
-}
-
-sub edit_index
-{
-    $ton = top_of_NEWS();
-    $ton = "\n<XMP>\n$ton\n</XMP>\n";
-    open INDEX, "index.html";
-    input_record_separator NEWS undef;
-    $index = <INDEX>;
-    close INDEX;
-    $index =~ s/top_of_NEWS/$ton/;
-    open INDEX, ">index.html";
-    print INDEX $index;
-    close INDEX;
-}
-
-
-sub copy_files
-{  
-    print "copying files\n";
-    my_system "ln -s $depth/out ./docxx" if ( ! -x "docxx" ) ;
-    my_system "cp $depth/TODO ./TODO.txt",
-    "cp $depth/ANNOUNCE ./ANNOUNCE.txt",
-    "cp $depth/NEWS ./NEWS.txt",
-    "cp $depth/DEDICATION ./DEDICATION.txt";
-    my_system "make -C .. gifs";
-    
-}
-
-sub set_images
-{
-    for $a (<*.gif>) {
-       if ($opt_png) {
-           my_system "gif2png -d $a";
-       }
-       if ($opt_jpeg) {
-           my $b=$a;
-           $b =~ s/.gif/.jpeg/;
-           my_system "cjpeg -o $b $a";
-       }
-    }
-}
-
-sub docxx_update
-{
-    open BANNER, ">/tmp/lilybanner.html";
-    my $ban = $footstr;
-    $ban =~ s!index.html!../index.html!g;
-    print BANNER $ban;
-    close BANNER;
-    my_system "$MAKE -C $depth docxx-opts=\"-p -S -k -B /tmp/lilybanner.html\" doc++";
-    # should add a cute header.
-}
-
-sub do_tar
-{
-     print "tarring.\n";
-     $files = join (' ', < *.html *.$image *.ps.gz *.txt *.midi docxx/*>);
-     my_system
-        "-$TAR zvhcf website.tar.gz $files;",
-#       "gzip -f9 website.tar;";
-}
-
-sub identify
-{
-    print STDERR "This is " . $id_str . "\n";
-    
-}
-sub main
-{
-    identify;
-    GetOptions("jpeg", "gif", "png", "noexamples");
-
-    local $image="gif" ;
-    $image = "png" if ($opt_png);
-    $image = "jpeg" if ($opt_jpeg);
-    
-    $depth = "../";
-    my $cwd;
-    chomp($cwd = `pwd`);
-    die "need to be in directory Documentation\n" if ( ! ($cwd =~ /Documentation$/));
-    get_version;
-    print "lily v. " . $lily_version . "\n";
-    set_html_footer;
-
-
-    $depth = "../../";
-
-    chdir ("out");
-    $ENV{"TEXINPUTS"} .= ":$depth/input/:";
-    $ENV{"LILYINCLUDE"} = "$depth/input/";
-
-
-    gen_html;
-    copy_files;
-
-    if (! $opt_noexamples) {
-       gen_examples;
-       gen_list;
-       gen_manuals;
-    }
-    set_images;
-
-    edit_html;
-    edit_index;
-    docxx_update;
-    do_tar;
-}
-
-main;
diff --git a/bin/make-website.pl b/bin/make-website.pl
new file mode 100644 (file)
index 0000000..1d690e2
--- /dev/null
@@ -0,0 +1,356 @@
+#!@PERL@ -w 
+# -*-Perl-*- 
+
+
+# stupid script to generate WWW site.  The WWW site is my 
+# test-suite for LilyPond, I usually don't distribute versions that
+# fail to make the website
+
+use FileHandle;
+use Getopt::Long;
+
+my $lily_version;
+my $footstr;
+my $mw_id = "<!make_website!>";
+my $id_str = "make-website 0.4";
+my $TAR="tar";
+my $MAKE="make";
+
+sub get_version
+{
+    my ($vstr)=("");
+    open V, "$depth/VERSION";
+    while (<V>) {
+       s/#.*$//g;
+       next if (/^ *$/);
+       s/^/\$/;
+       s/= *(.*)$/=\"$1\";/;
+       $vstr .= $_;
+    }
+    eval ($vstr);
+    
+    $lily_version= "$TOPLEVEL_MAJOR_VERSION.$TOPLEVEL_MINOR_VERSION.$TOPLEVEL_PATCH_LEVEL$TOPLEVEL_MY_PATCH_LEVEL";
+    
+    # stupid checks.
+    $lily_version= $lily_version;
+    
+    close V;
+}
+
+sub set_html_footer
+{
+    my $MAILADDRESS=$ENV{MAILADDRESS};
+    my @pw=(getpwuid($<));
+    my $username=$pw[6];
+
+    $footstr = 
+       "\n<hr>Please take me <a href=index.html>back to the index</a>\n
+of LilyPond -- The GNU Project Music typesetter
+<hr>
+<font size=-1>
+This page was built using <code>" . $id_str . "</code> from lilypond-"
+    . $lily_version . 
+       " by<p>
+<address><br>$username <a href=mailto:" 
+    . $MAILADDRESS . ">&lt<!bla>" . $MAILADDRESS ."</a>&gt</address>
+<p></font>";
+}
+    
+
+# do something, check return status
+sub my_system
+{
+    my (@cmds) = @_;
+    foreach $cmd (@cmds) {
+       my ($ignoreret)=0;
+       if ( $cmd  =~ /^-/ ) {
+           $ignoreret = 1;
+           $cmd = substr ($cmd, 1);
+       }
+       
+       my $ret =  ( system ($cmd));
+       if ($ret) {
+           if ($ignoreret) {
+               print STDERR "ignoring failed command \`$cmd\' (status $ret)\n";
+           }else {
+               print STDERR "\nmake_website: failed on command \`$cmd\' (status $ret)\n";
+               exit 2;
+           }
+       }
+    }
+}
+
+
+local $base="lilypond/";
+
+local @examples=("twinkle-pop", 
+                "wtk1-fugue2",
+                "standchen-16", 
+                "standchen-20", 
+                "wtk1-prelude1",
+                "toccata-fuga-E", 
+                "scsii-menuetto",
+                "cadenza", 
+                "gallina",
+                "twinkle", 
+                "collisions",
+                "font",
+                #"scales", 
+                "rhythm", 
+                "multi" );
+
+
+sub gen_html
+{
+    print "generating HTML\n";
+    my_system "$MAKE -kC .. html";
+}
+
+sub gen_examples
+{
+    print "generating examples: \n";
+    my @todo=();
+    foreach $a (@examples) {
+       push @todo, "out/$a.ps.gz", "out/$a.gif", "out/$a.ly.txt";
+    }
+    
+    my_system ("$MAKE -C .. " . join(' ', @todo));
+}
+
+my @texstuff = ("mudela-man", "mudela-course");
+
+sub gen_manuals
+{
+    print "generating TeX doco list\n";
+    open HTMLLIST, ">tex_manuals.html";
+    print HTMLLIST "<HTML><TITLE>PostScript Manuals</TITLE>\n" ;
+    print HTMLLIST "<BODY><h1>LilyPond manuals (in PostScript)</h1>";
+    print HTMLLIST "<ul>\n";
+    my @todo=();
+    foreach $a (@texstuff) {
+       push @todo , "out/$a.ps.gz";
+       print HTMLLIST "<li><a href=$a.ps.gz>$a.ps.gz</a>";
+    }
+    print HTMLLIST "</ul>";
+    
+    print HTMLLIST "</BODY></HTML>";
+    close HTMLLIST;
+
+    my_system( "$MAKE -C .. " .  join(' ', @todo));
+}
+
+sub gen_list
+{
+    print "generating HTML list\n";
+    open HTMLLIST, ">example_output.html";
+
+    print HTMLLIST "<html><body><TITLE>Rendered Examples</TITLE>\n
+These example files are taken from the LilyPond distribution.
+LilyPond currently only outputs TeX and MIDI. The pictures and
+PostScript files were generated using TeX, Ghostscript and some
+graphics tools.  The papersize used for these examples is A4.  The GIF
+files have been scaled to eliminate aliasing."; 
+
+
+
+    foreach $a (@examples)
+    {
+       $name=$a; print HTMLLIST "<h1>example file: $name</h1>\n<XMP>\n";
+
+       open IF, "$depth/input/$a.ly";
+       input_record_separator IF "\n}";
+       
+       $desc = <IF>;
+       close IF;
+       
+       print HTMLLIST "$desc\n</XMP>";
+
+       $inputf="$a.ly.txt";
+       $giff="$a.gif";
+       $jpegf="$a.jpeg";
+       $pngf = "$a.png";
+       $psf="$a.ps.gz";
+       $midif="$a.midi";
+       
+       print HTMLLIST "<ul>";
+
+       print HTMLLIST "<li><a href=$inputf> The input file</a>"
+           if ( -f $inputf );
+       
+       print HTMLLIST "<li><a href=$giff>The output (picture)</a>"     
+           if ( -f $giff );
+
+       print HTMLLIST "<li><a href=$psf>The output (PS)</a>\n"
+           if ( -f $psf );
+               
+       print HTMLLIST "<li><a href=$midif>The output (MIDI)</a>\n" 
+           if ( -f $midif );
+       print HTMLLIST "</ul>";
+    }
+    print HTMLLIST "</BODY></HTML>";
+    close HTMLLIST;
+}
+
+sub edit_html
+{
+    print STDERR "adding footer\n";
+
+    OUTER:
+    foreach $a (<*.html>) {
+       open H, "$a";
+       my $sep="</BODY>";
+       input_record_separator H $sep;
+       my $file="";
+       
+       while (<H>) { 
+           if (/$mw_id/) {
+               close H;
+               next OUTER;
+           }
+           $file .= $_; 
+
+       }
+       close H;
+
+       my $subst =  $footstr;
+       $subst .= $back if (! $a =~ /index.html/ );
+       $file =~ s/$sep/$subst$sep/g ;
+       $file =~ s/\.gif/\.$image/g;
+       $file =~ s!<TITLE>(.*)</TITLE>!<TITLE>LilyPond WWW: $1</TITLE>!g;
+       open H, ">$a";
+       print H $mw_id;
+       
+       print H $file;
+       close H;
+    }
+}
+
+sub copy_txt_file
+{
+    my ($f) = @_;
+    my $d = $f;
+    $d =~ s!^.*\/!!;
+    if (! $f =~ /.txt$/) {
+       $d = "$f.txt";
+    }
+    print, $d;
+}
+    
+sub top_of_NEWS
+{
+    open NEWS, "NEWS.txt";
+    input_record_separator NEWS "****";
+    $desc = <NEWS>;
+    chop ($desc);
+    close NEWS;
+
+    return $desc;
+}
+
+sub edit_index
+{
+    $ton = top_of_NEWS();
+    $ton = "\n<XMP>\n$ton\n</XMP>\n";
+    open INDEX, "index.html";
+    input_record_separator NEWS undef;
+    $index = <INDEX>;
+    close INDEX;
+    $index =~ s/top_of_NEWS/$ton/;
+    open INDEX, ">index.html";
+    print INDEX $index;
+    close INDEX;
+}
+
+
+sub copy_files
+{  
+    print "copying files\n";
+    my_system "ln -s $depth/out ./docxx" if ( ! -x "docxx" ) ;
+    my_system "cp $depth/TODO ./TODO.txt",
+    "cp $depth/ANNOUNCE ./ANNOUNCE.txt",
+    "cp $depth/NEWS ./NEWS.txt",
+    "cp $depth/DEDICATION ./DEDICATION.txt";
+    my_system "make -C .. gifs";
+    
+}
+
+sub set_images
+{
+    for $a (<*.gif>) {
+       if ($opt_png) {
+           my_system "gif2png -d $a";
+       }
+       if ($opt_jpeg) {
+           my $b=$a;
+           $b =~ s/.gif/.jpeg/;
+           my_system "cjpeg -o $b $a";
+       }
+    }
+}
+
+sub docxx_update
+{
+    open BANNER, ">/tmp/lilybanner.html";
+    my $ban = $footstr;
+    $ban =~ s!index.html!../index.html!g;
+    print BANNER $ban;
+    close BANNER;
+    my_system "BANNEROPT=\"-B /tmp/lilybanner.html\" $depth/bin/out/make-docxx";
+}
+
+sub do_tar
+{
+     print "tarring.\n";
+     $files = join (' ', < *.html *.$image *.ps.gz *.txt *.midi docxx/*>);
+     my_system
+        "-$TAR zvhcf website.tar.gz $files;",
+#       "gzip -f9 website.tar;";
+}
+
+sub identify
+{
+    print STDERR "This is " . $id_str . "\n";
+    
+}
+sub main
+{
+    identify;
+    GetOptions("jpeg", "gif", "png", "noexamples");
+
+    local $image="gif" ;
+    $image = "png" if ($opt_png);
+    $image = "jpeg" if ($opt_jpeg);
+    
+    $depth = "../";
+    my $cwd;
+    chomp($cwd = `pwd`);
+    die "need to be in directory Documentation\n" if ( ! ($cwd =~ /Documentation$/));
+    get_version;
+    print "lily v. " . $lily_version . "\n";
+    set_html_footer;
+
+
+    $depth = "../../";
+
+    chdir ("out");
+    $ENV{"TEXINPUTS"} .= ":$depth/input/:";
+    $ENV{"LILYINCLUDE"} = "$depth/input/";
+
+
+    gen_html;
+    copy_files;
+
+    if (! $opt_noexamples) {
+       gen_examples;
+       gen_list;
+       gen_manuals;
+    }
+    set_images;
+
+    edit_html;
+    edit_index;
+    docxx_update;
+    do_tar;
+}
+
+main;
index bf680f93779f75af04417c93a69185b60797b1f5..1cd84f5ee6f9b308e13186c1a466add699f8ebc8 100644 (file)
@@ -18,8 +18,8 @@ import time
 
 begin_autometric_re = regex.compile('@{')
 end_autometric_re = regex.compile('@}')
-autometric_re = regex.compile('@{\([^@]*\)@}')
-version = '0.3'
+autometric_re = regex.compile('@{\(.*\)@}')
+version = '0.4'
 
 class File:
     """silly wrapper for Python file object."""
@@ -63,10 +63,12 @@ class Feta_file(File):
     def readline(self):
        """return what is enclosed in one @{ @} pair"""
        line = '';
-       while autometric_re.match(line) == -1 and not self.eof():
+       while autometric_re.search(line) == -1 and not self.eof():
            line = self.read_autometricline()
+
        if self.eof():
            return '';
+
        return autometric_re.group(1);
     def __init__(self, nm):
        File.__init__(self, nm)
@@ -105,16 +107,20 @@ class Indentable_file(File):
 class Ly_file(Indentable_file):
     """extra provisions for mozarella quirks"""
     def print_lit(self, str):
-       self.write('\"' + str + '\" ')
+       self.write('\"%s\"\t' % str)
+
+    def print_f_dimen(self, f):
+       self.write( '%.2f\\pt\t' % f);
 
     def print_dimen(self, str):
-       self.write( '%.2f' % atof(str) + '\\pt ');
+       self.print_f_dimen(atof(str))
     
     def neg_print_dimen(self, str):
-       self.write( '%.2f' % -atof(str) + '\\pt ');
+       self.print_f_dimen(-atof(str));
+       
     def def_symbol(self, lily_id, tex_id, dims):
        self.print_lit(lily_id)
-       self.print_lit('\\' + tex_id)
+       self.print_lit('\\\\' + tex_id)
 
        self.neg_print_dimen(dims [0])
        self.print_dimen(dims [1])
@@ -126,9 +132,10 @@ class Ly_file(Indentable_file):
 class Log_reader:
     """Read logs, destill info, and put into output files"""
     def output_label(self, line):
+
        if not line:
            return;
-       tags = split(line, ':')
+       tags = split(line, '@:')
        label = tags[0]
        name = tags[1]
        ly = self.lyfile        
@@ -155,14 +162,14 @@ class Log_reader:
            
            ly.def_symbol(id, texstr, tags[3:7])
            
-           self.texfile.write("\\fetdef\\" + texstr + '{' + code + '}\n')
+           self.texfile.write("\\fetdef\\%s{%s}\n" % (texstr, code))
        else:
            raise 'unknown label: ' + label
 
 
     def do_file(self,filenm):
        self.lyfile.write('\n% input from ' + filenm + '\n')
-       self.texfile.write('\n% input from ' + filenm + '\n')   
+       self.texfile.write('\n% input from ' + filenm + '\n')
        feta = Feta_file(filenm)
        while not feta.eof():
            line = feta.readline()
@@ -173,9 +180,9 @@ class Log_reader:
        self.lyfile = Ly_file(lyfile_nm, 'w')
        self.texfile = Indentable_file(texfile_nm, 'w')
 
-       headerstr = '% generated automatically by ' + program_id()
-       headerstr = headerstr + '\n% on ' + today_str()
-       headerstr = headerstr + '\n% Do not edit\n'
+
+       headerstr = '%% generated automatically by %s\n%% on %s\n%% Do not edit' % \
+                  (program_id(), today_str())
 
        self.lyfile.write(headerstr)
        self.texfile.write(headerstr)
diff --git a/bin/mudela-book.in b/bin/mudela-book.in
deleted file mode 100644 (file)
index 9aec75c..0000000
+++ /dev/null
@@ -1,178 +0,0 @@
-#!@PERL@ -w            
-# -*-Perl-*-
-my $mudcount = 0;
-my $mudela_b = 0;
-my $outname = "-";
-my $outdir;
-use Getopt::Long;
-
-
-# do something, check return status
-sub my_system
-{
-    my (@cmds) = @_;
-    foreach $cmd (@cmds) {
-       my ($ignoreret)=0;
-       if ( $cmd  =~ /^-/ ) {
-           $ignoreret = 1;
-           $cmd = substr ($cmd, 1);
-       }
-       
-       my $ret =  ( system ($cmd));
-       if ($ret) {
-           if ($ignoreret) {
-               print STDERR "ignoring failed command \`$cmd\' (status $ret)\n";
-           }else {
-               print STDERR "\nmudela-book: failed on command \`$cmd\' (status $ret)\n";
-               exit 2;
-           }
-       }
-    }
-}
-sub gen_mufile
-{
-    return "$outdir/$outname$mudcount.ly";
-}
-
-sub gen_texfile
-{
-    return "$outdir/$outname$mudcount.tex";
-}
-
-sub close_mudela
-{
-    $mudela_b = 0;
-    if ($fragment_b) {
-       print MUDELA "}\n \\paper { linewidth = -1.0\\cm; castingalgorithm = \\Wordwrap; } }\n";
-       $fragment_b =0;
-    }
-    if ( $verbatim_b)  {
-       print BOOK "\\end{verbatim}\n\\interexample";
-       $verbatim_b =0;
-    }
-    close MUDELA;
-    my $status =0;
-    if ( -f gen_mufile ) {
-       $status = system "diff -q $outdir/book-mudela.ly " . gen_mufile;
-    } else {
-       $status = 1;
-       }
-    if ( $status ) {
-       rename "$outdir/book-mudela.ly", gen_mufile;
-       unlink gen_texfile;
-    }
-    
-    if ( ! -f gen_texfile) {
-       my_system "lilypond ". gen_mufile;
-       rename "lelie.tex", gen_texfile;
-    }
-    print BOOK "\\preexample\\input " . gen_texfile . "\n\\postexample\n";
-       
-}
-
-sub open_mudela
-{
-    $mudcount++;
-    $mudela_b = 1      ;
-    open MUDELA, ">$outdir/book-mudela.ly";
-    if ($verbatim_b) {
-       print BOOK "\\begin{verbatim}\n";
-    }
-    if ($fragment_b) {
-       print MUDELA "\\score { \\melodic {";
-    }
-
-}
-
-sub begin_b
-{
-    my ($s) = @_;
-    return (/^\\begin{$s}/) ;    
-}
-
-sub end_b
-{
-    my ($s) = @_;
-    return (/^\\end{$s}/) ;    
-}
-sub parse_mudela_opts
-{
-   my ($s) = @_;
-   $s =~ s/[\[\]]//g;
-
-   $verbatim_b =1 if ($s =~ /verbatim/ );
-   $fragment_b = 1 if ($s =~ /fragment/ );
-}   
-
-sub help
-{
-    print  "usage: convert-mudela [options] [file]
-options: 
---help
---outdir=DIRECTORY     write all files in directory DIRECTORY
---outname=NAME         use NAME as base  for the output
-";
-    exit;
-}
-    
-sub main
-{
-    GetOptions( 'outdir=s', 'outname=s', 'help');
-    help    if ( $opt_help ) ;
-
-    if  (defined ($opt_outdir)) {
-       $outdir = $opt_outdir .  "/";
-    } else {
-       $outdir = ".";
-    }
-   
-    if (defined ($ARGV[0])) {
-       $infile = $ARGV[0] ;
-    } else {
-       $infile = "-";
-    }
-    if (defined ($opt_outname)) {
-       $outname = $opt_outname ;
-    } else { 
-       die "Need to have an output name, use --outname" if ( $infile eq "-");
-       $outname = "$infile.tex";
-    }
-
-    my $openout ="$outdir$outname"; 
-    if  ( $infile eq $openout ) {
-       die "The input can't be the output\n";
-    }
-
-    open INFILE, "<$infile";
-    open BOOK, ">$openout";
-    while (<INFILE>) {
-       if ($mudela_b) {
-           if (end_b "mudela") {
-               close_mudela;
-               next;
-           }
-           print MUDELA;
-           if ( $verbatim_b ) {
-               my $s = $_;
-               $s =~ s/\t/    /g; #shit
-               print BOOK $s;
-           }
-           
-       } else {
-           if (/^\\begin(\[.*\])?{mudela}/ ) {
-               my $opts ="";
-               $opts = $1 if ( defined ($1));
-
-               parse_mudela_opts($opts);
-               open_mudela;
-               next;  
-           } 
-           print BOOK;
-       }
-    }
-    close INFILE;
-    close BOOK;
-}
-
-
-main;
diff --git a/bin/mudela-book.pl b/bin/mudela-book.pl
new file mode 100644 (file)
index 0000000..9aec75c
--- /dev/null
@@ -0,0 +1,178 @@
+#!@PERL@ -w            
+# -*-Perl-*-
+my $mudcount = 0;
+my $mudela_b = 0;
+my $outname = "-";
+my $outdir;
+use Getopt::Long;
+
+
+# do something, check return status
+sub my_system
+{
+    my (@cmds) = @_;
+    foreach $cmd (@cmds) {
+       my ($ignoreret)=0;
+       if ( $cmd  =~ /^-/ ) {
+           $ignoreret = 1;
+           $cmd = substr ($cmd, 1);
+       }
+       
+       my $ret =  ( system ($cmd));
+       if ($ret) {
+           if ($ignoreret) {
+               print STDERR "ignoring failed command \`$cmd\' (status $ret)\n";
+           }else {
+               print STDERR "\nmudela-book: failed on command \`$cmd\' (status $ret)\n";
+               exit 2;
+           }
+       }
+    }
+}
+sub gen_mufile
+{
+    return "$outdir/$outname$mudcount.ly";
+}
+
+sub gen_texfile
+{
+    return "$outdir/$outname$mudcount.tex";
+}
+
+sub close_mudela
+{
+    $mudela_b = 0;
+    if ($fragment_b) {
+       print MUDELA "}\n \\paper { linewidth = -1.0\\cm; castingalgorithm = \\Wordwrap; } }\n";
+       $fragment_b =0;
+    }
+    if ( $verbatim_b)  {
+       print BOOK "\\end{verbatim}\n\\interexample";
+       $verbatim_b =0;
+    }
+    close MUDELA;
+    my $status =0;
+    if ( -f gen_mufile ) {
+       $status = system "diff -q $outdir/book-mudela.ly " . gen_mufile;
+    } else {
+       $status = 1;
+       }
+    if ( $status ) {
+       rename "$outdir/book-mudela.ly", gen_mufile;
+       unlink gen_texfile;
+    }
+    
+    if ( ! -f gen_texfile) {
+       my_system "lilypond ". gen_mufile;
+       rename "lelie.tex", gen_texfile;
+    }
+    print BOOK "\\preexample\\input " . gen_texfile . "\n\\postexample\n";
+       
+}
+
+sub open_mudela
+{
+    $mudcount++;
+    $mudela_b = 1      ;
+    open MUDELA, ">$outdir/book-mudela.ly";
+    if ($verbatim_b) {
+       print BOOK "\\begin{verbatim}\n";
+    }
+    if ($fragment_b) {
+       print MUDELA "\\score { \\melodic {";
+    }
+
+}
+
+sub begin_b
+{
+    my ($s) = @_;
+    return (/^\\begin{$s}/) ;    
+}
+
+sub end_b
+{
+    my ($s) = @_;
+    return (/^\\end{$s}/) ;    
+}
+sub parse_mudela_opts
+{
+   my ($s) = @_;
+   $s =~ s/[\[\]]//g;
+
+   $verbatim_b =1 if ($s =~ /verbatim/ );
+   $fragment_b = 1 if ($s =~ /fragment/ );
+}   
+
+sub help
+{
+    print  "usage: convert-mudela [options] [file]
+options: 
+--help
+--outdir=DIRECTORY     write all files in directory DIRECTORY
+--outname=NAME         use NAME as base  for the output
+";
+    exit;
+}
+    
+sub main
+{
+    GetOptions( 'outdir=s', 'outname=s', 'help');
+    help    if ( $opt_help ) ;
+
+    if  (defined ($opt_outdir)) {
+       $outdir = $opt_outdir .  "/";
+    } else {
+       $outdir = ".";
+    }
+   
+    if (defined ($ARGV[0])) {
+       $infile = $ARGV[0] ;
+    } else {
+       $infile = "-";
+    }
+    if (defined ($opt_outname)) {
+       $outname = $opt_outname ;
+    } else { 
+       die "Need to have an output name, use --outname" if ( $infile eq "-");
+       $outname = "$infile.tex";
+    }
+
+    my $openout ="$outdir$outname"; 
+    if  ( $infile eq $openout ) {
+       die "The input can't be the output\n";
+    }
+
+    open INFILE, "<$infile";
+    open BOOK, ">$openout";
+    while (<INFILE>) {
+       if ($mudela_b) {
+           if (end_b "mudela") {
+               close_mudela;
+               next;
+           }
+           print MUDELA;
+           if ( $verbatim_b ) {
+               my $s = $_;
+               $s =~ s/\t/    /g; #shit
+               print BOOK $s;
+           }
+           
+       } else {
+           if (/^\\begin(\[.*\])?{mudela}/ ) {
+               my $opts ="";
+               $opts = $1 if ( defined ($1));
+
+               parse_mudela_opts($opts);
+               open_mudela;
+               next;  
+           } 
+           print BOOK;
+       }
+    }
+    close INFILE;
+    close BOOK;
+}
+
+
+main;
diff --git a/bin/release b/bin/release
deleted file mode 100755 (executable)
index 7521b49..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
-$heredir/bin/make-patch $LASTVER $NEWVER lilypond
-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
-
diff --git a/bin/release.sh b/bin/release.sh
new file mode 100644 (file)
index 0000000..e6e3b67
--- /dev/null
@@ -0,0 +1,73 @@
+#!/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
+sh $heredir/bin/make-patch.sh $LASTVER $NEWVER lilypond
+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
+
diff --git a/bin/show-latest.in b/bin/show-latest.in
deleted file mode 100644 (file)
index a75250b..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-#!@PERL@
-# -*-Perl-*-
-
-
-$reldir="/home/hw/musix/releases";
-
-use FileHandle;
-use Getopt::Long;
-
-sub cmpver 
-{      
-    my(@a)= split( /\./, $a);
-    my(@b)= split( /\./, $b);
-    
-    for $i (0,1,2) {
-       return $a[$i] <=> $b[$i] if ($a[$i] != $b[$i]);
-    }
-    return $a cmp $b;
-}
-
-my @versions;
-open LS, "ls -1 $reldir|";
-
-GetOptions( 'print', 'news', 'latest');
-
-
-while (<LS>) {
-    $_ =~ /lilypond-([^.]+\.[^.]+\.[^.]+).tar.gz/;
-    push @versions, $1;
-}
-
-
-@versions = sort cmpver @versions;
-my $last= (pop @versions);
-
-
-if (  $opt_print ) {
-    print $last;
-}
-
-if ( $opt_latest) {
-    system "rm $reldir/zZ*";
-    system  "> $reldir/zZ_LATEST_IS_$last";
-}
-if ( $opt_news ) {
-    open NEWS, "tar --to-stdout  -zxf $reldir/lilypond-$last.tar.gz lilypond-$last/NEWS |";
-    input_record_separator NEWS "****";
-    $desc = <NEWS>;
-    chop ($desc);
-    close NEWS;
-
-    print $desc;
-}
diff --git a/bin/show-latest.pl b/bin/show-latest.pl
new file mode 100644 (file)
index 0000000..a75250b
--- /dev/null
@@ -0,0 +1,53 @@
+#!@PERL@
+# -*-Perl-*-
+
+
+$reldir="/home/hw/musix/releases";
+
+use FileHandle;
+use Getopt::Long;
+
+sub cmpver 
+{      
+    my(@a)= split( /\./, $a);
+    my(@b)= split( /\./, $b);
+    
+    for $i (0,1,2) {
+       return $a[$i] <=> $b[$i] if ($a[$i] != $b[$i]);
+    }
+    return $a cmp $b;
+}
+
+my @versions;
+open LS, "ls -1 $reldir|";
+
+GetOptions( 'print', 'news', 'latest');
+
+
+while (<LS>) {
+    $_ =~ /lilypond-([^.]+\.[^.]+\.[^.]+).tar.gz/;
+    push @versions, $1;
+}
+
+
+@versions = sort cmpver @versions;
+my $last= (pop @versions);
+
+
+if (  $opt_print ) {
+    print $last;
+}
+
+if ( $opt_latest) {
+    system "rm $reldir/zZ*";
+    system  "> $reldir/zZ_LATEST_IS_$last";
+}
+if ( $opt_news ) {
+    open NEWS, "tar --to-stdout  -zxf $reldir/lilypond-$last.tar.gz lilypond-$last/NEWS |";
+    input_record_separator NEWS "****";
+    $desc = <NEWS>;
+    chop ($desc);
+    close NEWS;
+
+    print $desc;
+}
index b71ad836c0a0b6e762f1e526136aa67f6b8479f4..714f3ded6e03ad3da22593942ea0b394b5c86226 100644 (file)
@@ -1,12 +1,18 @@
-       * write a String_hash template
 
+       * write a decent Dictionary
+       - write a String_hash template
+       - write a Pointer_hash template
 
        * Array::slice() upper too
 
-       * write a Pointer_hash template
+       * fix ambiguous String constructor overloads, e.g.:
+         String( int ) and String( char ), use 
+       
+       class String { 
+               explicit String(int);
+       }
 
-       * fix/junk ambiguous String constructor overloads, e.g.:
-         String( int ) and String( char )
+       * Automake, libtool
 
        * version numbering for shared lib.
 
index 9e60bf9858ee02be020b9978f62d171cdc54cfe3..69226f075bff167595898f37c9fbe163fb43c214 100644 (file)
@@ -83,10 +83,7 @@ public:
   Byte const* byte_C() const;
   char* ch_l();
   Byte* byte_l();
-#if 0
-  /// deprecated; use ch_C()
-  operator char const*() const { return ch_C(); }
-#endif
+
   String &operator =(String const & source);
 
   /// concatenate s
index 0852b4ca8c2d335f6bd40bd845e0c1822e6144a8..528df1cc670434249cd11b706470d8e4b0548cfb 100644 (file)
@@ -66,7 +66,7 @@ Lyric_voice =
 
        \consists "Lyric_engraver";
        \consists "Line_group_engraver";
-       %\consists "Swallow_engraver";
+       \consists "Beam_req_swallow_translator";
 }
 
 Lyrics = \translator {
index dddd3152d258972b573bbd325fc9fcb183e4ee72..4d27f2f7504e176e2adf7b67fb229f30e515b903 100644 (file)
@@ -1,57 +1,58 @@
-% generated automatically by mf-to-table.py version 0.3
-% on Thu Oct  9 20:24:25 1997
+% generated automatically by mf-to-table.py version 0.4
+% on Fri Oct 10 21:22:38 1997
 % Do not edit
-
 % input from out/font-en-tja16.log
 % name=\symboltables {
-    "rests"  = \table {
-        "0" "\wholerest" -0.00\pt 6.00\pt 1.50\pt 4.00\pt 
-        "1" "\halfrest" -0.00\pt 6.00\pt -0.00\pt 2.50\pt 
-        "0o" "\outsidewholerest" -2.50\pt 8.50\pt 1.50\pt 4.00\pt 
-        "1o" "\outsidehalfrest" -2.50\pt 8.50\pt -0.00\pt 2.50\pt 
-        "2" "\quartrest" -0.00\pt 4.00\pt 3.00\pt 14.00\pt 
-        "3" "\eighthrest" -0.00\pt 5.33\pt 4.00\pt 11.47\pt 
-        "4" "\sixteenthrest" -0.00\pt 5.33\pt -0.00\pt 11.47\pt 
-        "5" "\thirtysecondrest" -0.00\pt 5.33\pt -0.00\pt 15.47\pt 
-        "6" "\sixtyfourthrest" -0.00\pt 5.33\pt -0.00\pt 19.47\pt 
-        "7" "\hundredtwentyeighthrest" -0.00\pt 5.33\pt -0.00\pt 23.47\pt 
+    "rests"     = \table {
+        "0"    "\\wholerest"   -0.00\pt        6.00\pt 1.50\pt 4.00\pt 
+        "1"    "\\halfrest"    -0.00\pt        6.00\pt -0.00\pt        2.50\pt 
+        "0o"   "\\outsidewholerest"    -2.50\pt        8.50\pt 1.50\pt 4.00\pt 
+        "1o"   "\\outsidehalfrest"     -2.50\pt        8.50\pt -0.00\pt        2.50\pt 
+        "2"    "\\quartrest"   -0.00\pt        4.00\pt 3.00\pt 14.00\pt        
+        "3"    "\\eighthrest"  -0.00\pt        5.33\pt 4.00\pt 11.47\pt        
+        "4"    "\\sixteenthrest"       -0.00\pt        5.33\pt -0.00\pt        11.47\pt        
+        "5"    "\\thirtysecondrest"    -0.00\pt        5.33\pt -0.00\pt        15.47\pt        
+        "6"    "\\sixtyfourthrest"     -0.00\pt        5.33\pt -0.00\pt        19.47\pt        
+        "7"    "\\hundredtwentyeighthrest"     -0.00\pt        5.33\pt -0.00\pt        23.47\pt        
         }
-    "accidentals"  = \table {
-        "1" "\sharp" -0.00\pt 4.40\pt -6.00\pt 6.00\pt 
-        "0" "\natural" -0.00\pt 2.67\pt -6.00\pt 6.00\pt 
-        "-1" "\flat" -0.00\pt 3.00\pt -2.00\pt 8.00\pt 
-        "-2" "\flatflat" -0.00\pt 6.00\pt -2.00\pt 8.00\pt 
-        "2" "\sharpsharp" -0.00\pt 4.00\pt -2.00\pt 2.00\pt 
+    "accidentals"       = \table {
+        "1"    "\\sharp"       -0.00\pt        4.40\pt -6.00\pt        6.00\pt 
+        "0"    "\\natural"     -0.00\pt        2.67\pt -6.00\pt        6.00\pt 
+        "-1"   "\\flat"        -0.00\pt        3.00\pt -2.00\pt        8.00\pt 
+        "-2"   "\\flatflat"    -0.00\pt        6.00\pt -2.00\pt        8.00\pt 
+        "2"    "\\sharpsharp"  -0.00\pt        4.00\pt -2.00\pt        2.00\pt 
         }
-    "dots"  = \table {
-        "dot" "\dot" -0.00\pt 1.80\pt -0.90\pt 0.90\pt 
+    "dots"      = \table {
+        "dot"  "\\dot" -0.00\pt        1.80\pt -0.90\pt        0.90\pt 
         }
-    "balls"  = \table {
-        "-1" "\brevisball" -0.00\pt 8.00\pt -2.20\pt 2.20\pt 
-        "-2" "\longaball" -0.00\pt 8.00\pt -2.20\pt 2.20\pt 
-        "0" "\wholeball" -0.00\pt 7.92\pt -2.20\pt 2.20\pt 
-        "1" "\halfball" -0.00\pt 5.51\pt -2.20\pt 2.20\pt 
-        "2" "\quartball" -0.00\pt 5.28\pt -2.20\pt 2.20\pt 
+    "balls"     = \table {
+        "-1"   "\\brevisball"  -0.00\pt        8.00\pt -2.20\pt        2.20\pt 
+        "-2"   "\\longaball"   -0.00\pt        8.00\pt -2.20\pt        2.20\pt 
+        "0"    "\\wholeball"   -0.00\pt        7.92\pt -2.20\pt        2.20\pt 
+        "1"    "\\halfball"    -0.00\pt        5.51\pt -2.20\pt        2.20\pt 
+        "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.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 
-        "ustaccatissimo" "\ustaccatissimo" -0.80\pt 0.80\pt -0.20\pt 4.00\pt 
-        "dstaccatissimo" "\dstaccatissimo" -0.80\pt 0.80\pt -4.00\pt 0.20\pt 
-        "tenuto" "\tenuto" -3.60\pt 3.60\pt -0.24\pt 0.24\pt 
-        "umarcato" "\umarcato" -2.00\pt 2.00\pt -0.00\pt 4.40\pt 
-        "dmarcato" "\dmarcato" -2.00\pt 2.00\pt -4.40\pt 0.00\pt 
-        "open" "\ouvert" -1.40\pt 1.40\pt -0.00\pt 3.50\pt 
-        "stopped" "\plusstop" -2.20\pt 2.20\pt -2.20\pt 2.20\pt 
-        "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 
+    "scripts"   = \table {
+        "ufermata"     "\\ufermata"    -5.30\pt        5.30\pt -0.30\pt        5.80\pt 
+        "dfermata"     "\\dfermata"    -5.30\pt        5.30\pt -5.80\pt        0.00\pt 
+        "sforzato"     "\\sforzatoaccent"      -3.60\pt        3.60\pt -2.00\pt        2.00\pt 
+        "staccato"     "\\staccato"    -0.60\pt        0.60\pt -0.60\pt        0.60\pt 
+        "ustaccatissimo"       "\\ustaccatissimo"      -0.80\pt        0.80\pt -0.20\pt        4.00\pt 
+        "dstaccatissimo"       "\\dstaccatissimo"      -0.80\pt        0.80\pt -4.00\pt        0.20\pt 
+        "tenuto"       "\\tenuto"      -3.60\pt        3.60\pt -0.24\pt        0.24\pt 
+        "umarcato"     "\\umarcato"    -2.00\pt        2.00\pt -0.00\pt        4.40\pt 
+        "dmarcato"     "\\dmarcato"    -2.00\pt        2.00\pt -4.40\pt        0.00\pt 
+        "open" "\\ouvert"      -1.60\pt        1.60\pt -2.00\pt        2.00\pt 
+        "stopped"      "\\plusstop"    -2.20\pt        2.20\pt -2.20\pt        2.20\pt 
+        "upbow"        "\\upbow"       -2.60\pt        2.60\pt -0.00\pt        8.32\pt 
+        "downbow"      "\\downbow"     -3.00\pt        3.00\pt -0.00\pt        5.33\pt 
+        "turn" "\\turn"        -4.38\pt        4.38\pt -2.12\pt        2.12\pt 
+        "trill"        "\\trill"       -0.00\pt        8.00\pt -0.00\pt        9.00\pt 
+        "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 5.17\pt -12.77\pt 0.20\pt 
-        "3d" "\deighthflag" -0.20\pt 5.17\pt -0.20\pt 12.77\pt 
+    "floogbars"         = \table {
+        "3u"   "\\eighthflag"  -0.20\pt        4.10\pt -12.77\pt       0.20\pt 
+        "3d"   "\\deighthflag" -0.20\pt        4.10\pt -0.20\pt        12.77\pt        
         }
     %  } % $name
index eee1f222b74b82ca137df730ff14b5c3534b83fa..63af39049e2714fd52ebfe71421440a790017e77 100644 (file)
@@ -1,57 +1,58 @@
-% generated automatically by mf-to-table.py version 0.3
-% on Thu Oct  9 20:24:27 1997
+% generated automatically by mf-to-table.py version 0.4
+% on Fri Oct 10 21:22:44 1997
 % Do not edit
-
 % input from out/font-en-tja20.log
 % name=\symboltables {
-    "rests"  = \table {
-        "0" "\wholerest" -0.00\pt 7.50\pt 1.88\pt 5.00\pt 
-        "1" "\halfrest" -0.00\pt 7.50\pt -0.00\pt 3.13\pt 
-        "0o" "\outsidewholerest" -3.13\pt 10.62\pt 1.88\pt 5.00\pt 
-        "1o" "\outsidehalfrest" -3.13\pt 10.62\pt -0.00\pt 3.13\pt 
-        "2" "\quartrest" -0.00\pt 5.00\pt 3.75\pt 17.50\pt 
-        "3" "\eighthrest" -0.00\pt 6.67\pt 5.00\pt 14.33\pt 
-        "4" "\sixteenthrest" -0.00\pt 6.67\pt -0.00\pt 14.33\pt 
-        "5" "\thirtysecondrest" -0.00\pt 6.67\pt -0.00\pt 19.33\pt 
-        "6" "\sixtyfourthrest" -0.00\pt 6.67\pt -0.00\pt 24.33\pt 
-        "7" "\hundredtwentyeighthrest" -0.00\pt 6.67\pt -0.00\pt 29.33\pt 
+    "rests"     = \table {
+        "0"    "\\wholerest"   -0.00\pt        7.50\pt 1.88\pt 5.00\pt 
+        "1"    "\\halfrest"    -0.00\pt        7.50\pt -0.00\pt        3.13\pt 
+        "0o"   "\\outsidewholerest"    -3.13\pt        10.62\pt        1.88\pt 5.00\pt 
+        "1o"   "\\outsidehalfrest"     -3.13\pt        10.62\pt        -0.00\pt        3.13\pt 
+        "2"    "\\quartrest"   -0.00\pt        5.00\pt 3.75\pt 17.50\pt        
+        "3"    "\\eighthrest"  -0.00\pt        6.67\pt 5.00\pt 14.33\pt        
+        "4"    "\\sixteenthrest"       -0.00\pt        6.67\pt -0.00\pt        14.33\pt        
+        "5"    "\\thirtysecondrest"    -0.00\pt        6.67\pt -0.00\pt        19.33\pt        
+        "6"    "\\sixtyfourthrest"     -0.00\pt        6.67\pt -0.00\pt        24.33\pt        
+        "7"    "\\hundredtwentyeighthrest"     -0.00\pt        6.67\pt -0.00\pt        29.33\pt        
         }
-    "accidentals"  = \table {
-        "1" "\sharp" -0.00\pt 5.50\pt -7.50\pt 7.50\pt 
-        "0" "\natural" -0.00\pt 3.33\pt -7.50\pt 7.50\pt 
-        "-1" "\flat" -0.00\pt 3.75\pt -2.50\pt 10.00\pt 
-        "-2" "\flatflat" -0.00\pt 7.50\pt -2.50\pt 10.00\pt 
-        "2" "\sharpsharp" -0.00\pt 5.00\pt -2.50\pt 2.50\pt 
+    "accidentals"       = \table {
+        "1"    "\\sharp"       -0.00\pt        5.50\pt -7.50\pt        7.50\pt 
+        "0"    "\\natural"     -0.00\pt        3.33\pt -7.50\pt        7.50\pt 
+        "-1"   "\\flat"        -0.00\pt        3.75\pt -2.50\pt        10.00\pt        
+        "-2"   "\\flatflat"    -0.00\pt        7.50\pt -2.50\pt        10.00\pt        
+        "2"    "\\sharpsharp"  -0.00\pt        5.00\pt -2.50\pt        2.50\pt 
         }
-    "dots"  = \table {
-        "dot" "\dot" -0.00\pt 2.25\pt -1.13\pt 1.13\pt 
+    "dots"      = \table {
+        "dot"  "\\dot" -0.00\pt        2.25\pt -1.13\pt        1.13\pt 
         }
-    "balls"  = \table {
-        "-1" "\brevisball" -0.00\pt 10.00\pt -2.75\pt 2.75\pt 
-        "-2" "\longaball" -0.00\pt 10.00\pt -2.75\pt 2.75\pt 
-        "0" "\wholeball" -0.00\pt 9.90\pt -2.75\pt 2.75\pt 
-        "1" "\halfball" -0.00\pt 6.89\pt -2.75\pt 2.75\pt 
-        "2" "\quartball" -0.00\pt 6.61\pt -2.75\pt 2.75\pt 
+    "balls"     = \table {
+        "-1"   "\\brevisball"  -0.00\pt        10.00\pt        -2.75\pt        2.75\pt 
+        "-2"   "\\longaball"   -0.00\pt        10.00\pt        -2.75\pt        2.75\pt 
+        "0"    "\\wholeball"   -0.00\pt        9.90\pt -2.75\pt        2.75\pt 
+        "1"    "\\halfball"    -0.00\pt        6.89\pt -2.75\pt        2.75\pt 
+        "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.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 
-        "ustaccatissimo" "\ustaccatissimo" -1.00\pt 1.00\pt -0.20\pt 5.00\pt 
-        "dstaccatissimo" "\dstaccatissimo" -1.00\pt 1.00\pt -5.00\pt 0.20\pt 
-        "tenuto" "\tenuto" -4.50\pt 4.50\pt -0.30\pt 0.30\pt 
-        "umarcato" "\umarcato" -2.50\pt 2.50\pt -0.00\pt 5.50\pt 
-        "dmarcato" "\dmarcato" -2.50\pt 2.50\pt -5.50\pt 0.00\pt 
-        "open" "\ouvert" -1.75\pt 1.75\pt -0.00\pt 4.38\pt 
-        "stopped" "\plusstop" -2.75\pt 2.75\pt -2.75\pt 2.75\pt 
-        "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 
+    "scripts"   = \table {
+        "ufermata"     "\\ufermata"    -6.63\pt        6.63\pt -0.38\pt        7.25\pt 
+        "dfermata"     "\\dfermata"    -6.63\pt        6.63\pt -7.25\pt        0.00\pt 
+        "sforzato"     "\\sforzatoaccent"      -4.50\pt        4.50\pt -2.50\pt        2.50\pt 
+        "staccato"     "\\staccato"    -0.75\pt        0.75\pt -0.75\pt        0.75\pt 
+        "ustaccatissimo"       "\\ustaccatissimo"      -1.00\pt        1.00\pt -0.20\pt        5.00\pt 
+        "dstaccatissimo"       "\\dstaccatissimo"      -1.00\pt        1.00\pt -5.00\pt        0.20\pt 
+        "tenuto"       "\\tenuto"      -4.50\pt        4.50\pt -0.30\pt        0.30\pt 
+        "umarcato"     "\\umarcato"    -2.50\pt        2.50\pt -0.00\pt        5.50\pt 
+        "dmarcato"     "\\dmarcato"    -2.50\pt        2.50\pt -5.50\pt        0.00\pt 
+        "open" "\\ouvert"      -2.00\pt        2.00\pt -2.50\pt        2.50\pt 
+        "stopped"      "\\plusstop"    -2.75\pt        2.75\pt -2.75\pt        2.75\pt 
+        "upbow"        "\\upbow"       -3.25\pt        3.25\pt -0.00\pt        10.40\pt        
+        "downbow"      "\\downbow"     -3.75\pt        3.75\pt -0.00\pt        6.67\pt 
+        "turn" "\\turn"        -5.47\pt        5.47\pt -2.65\pt        2.65\pt 
+        "trill"        "\\trill"       -0.00\pt        10.00\pt        -0.00\pt        11.25\pt        
+        "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 6.46\pt -15.91\pt 0.25\pt 
-        "3d" "\deighthflag" -0.25\pt 6.46\pt -0.25\pt 15.91\pt 
+    "floogbars"         = \table {
+        "3u"   "\\eighthflag"  -0.25\pt        5.13\pt -15.91\pt       0.25\pt 
+        "3d"   "\\deighthflag" -0.25\pt        5.13\pt -0.25\pt        15.91\pt        
         }
     %  } % $name
index 508e43223f96f88fcb7e21cedee38e5e95ebf875..a96f2adf765253576766b25ff479b1454474833f 100644 (file)
@@ -13,10 +13,16 @@ staccato = \script { "staccato" 1 -1 0 0 0 }
 tenuto = \script {"tenuto" 0 -1 0 0 0 }
 upbow = \script { "upbow" 0 0 1 0 0 }
 downbow = \script { "downbow" 0 0 1 0 0 }
-lheel = \script { "heel" 0 0 -1  0 0 }
-rheel = \script { "heel" 0 0 1 0 0 }
-ltoe = \script { "toe" 0 0 -1 0 0 }
-rtoe = \script { "toe" 0 0 1 0 0 }
+lheel = \script { "pedalheel" 0 0 -1  0 0 }
+rheel = \script { "pedalheel" 0 0 1 0 0 }
+ltoe = \script { "pedaltoe" 0 0 -1 0 0 }
+rtoe = \script { "pedaltoe" 0 0 1 0 0 }
+turn = \script { "turn" 0 0 1 0 0 }
+open = \script { "open" 0 0 1 0 0 }
+
+
+% could  we do without this bloat?
+%
 lbheel = \script { "bheel" 0 0 -1  0 0 }
 rbheel = \script { "bheel" 0 0 1 0 0 }
 lbtoe = \script { "btoe" 0 0 -1 0 0 }
@@ -25,8 +31,6 @@ lfheel = \script { "fheel" 0 0 -1  0 0 }
 rfheel = \script { "fheel" 0 0 1 0 0 }
 lftoe = \script { "ftoe" 0 0 -1 0 0 }
 rftoe = \script { "ftoe" 0 0 1 0 0 }
-turn = \script { "turn" 0 0 1 0 0 }
-open = \script { "open" 0 0 1 0 0 }
 
 %
 % left toe:      right heel:
@@ -45,3 +49,5 @@ open = \script { "open" 0 0 1 0 0 }
 % being translated into priority...
 back = \script { "back" 0 -1 -1  0 0 }
 front = \script { "front" 0 -1 1 0 0 }
+
+trill =\script { "trill" 0 0 1 0 0 }
index 3efcaa9b0befedc363c5c9a11467e2894a8aa505..564fca56cf114280e6540a2a34cf6cc4a4247b9c 100644 (file)
@@ -2,7 +2,7 @@
 %
 % FIXME other name
   
-\version "0.1.6";
+\version "0.1.7";
   
 breve = \duration { -1 0 }
 longa = \duration { -2 0 }
index 0fe26c3108dc2336becf48112f1945e5412037f3..4d80868a5b01c5845f3fdfb1d2a2a3288ad9ce9d 100644 (file)
@@ -10,35 +10,20 @@ table_sixteen=
    \texid      "\input lilyponddefs \musixsixteendefs"
    % index TeXstring,  xmin xmax ymin ymax
 
-    "scripts" = \table {
-        "stopped" "\plusstop" -2.20\pt 2.20\pt -2.20\pt 2.20\pt 
-        "open" "\ouvert" -1.07\pt 1.07\pt -0.00\pt 2.67\pt 
-       "fermata" "\ufermata"           0.0\pt 0.0\pt   0.0\pt 6.0\pt
-       "-fermata" "\dfermata"          0.0\pt 0.0\pt   -6.0\pt 0.0\pt
-       "portato" "\portato"            0.0\pt 4.0\pt   0.0\pt  2.0\pt
-       "-portato" "\iportato"          0.0\pt 4.0\pt   -2.0\pt 0.0\pt
-       "tenuto" "\utenuto"                     0.0\pt 4.0\pt   -1.0\pt 1.0\pt
-       "-tenuto" "\dtenuto"            0.0\pt 4.0\pt   -1.0\pt 1.0\pt
-       "sforzato" "\sforzatoaccent"            -0.8\pt 4.0\pt  -1.92\pt 1.92\pt
-       "marcato" "\umarcato"           0.0\pt 4.0\pt   0.0\pt  4.0\pt
-       "-marcato" "\dmarcato"          0.0\pt 4.0\pt   -4.0\pt 0.0\pt
-       "staccato" "\staccato"          0.0\pt  0.0\pt  -1.1\pt 1.1\pt
-       "staccatissimo" "\ustaccatissimo"       0.0\pt  0.0\pt  0.0\pt  1.0\pt
-       "-staccatissimo" "\dstaccatissimo"      0.0\pt  0.0\pt  0.0\pt  1.0\pt
-       "upbow" "\upbow"                        -1.0\pt 6.0\pt  0.0\pt  5.0\pt
-       "downbow" "\downbow"            0.0\pt  5.0\pt  0.0\pt 7.5\pt
+
+       %{ 
        "back" "\backorfront"           0.0\pt  6.0\pt  0.0\pt  3.0\pt
        "-front" "\backorfront"         0.0\pt  6.0\pt  0.0\pt  3.0\pt
        "heel" "\heel"                  0.0\pt  6.0\pt  -1.0\pt 5.0\pt
-       "toe" "\toe"                    0.0\pt  6.0\pt  -1.0\pt 5.0\pt
+       "toe" "\\toe"                   0.0\pt  6.0\pt  -1.0\pt 5.0\pt
        "bheel" "\bheel"                        0.0\pt  6.0\pt  -1.0\pt 5.0\pt
        "btoe" "\btoe"                  0.0\pt  6.0\pt  -1.0\pt 5.0\pt
        "fheel" "\fheel"                        0.0\pt  6.0\pt  -1.0\pt 5.0\pt
        "ftoe" "\ftoe"                  0.0\pt  6.0\pt  -1.0\pt 5.0\pt
        "-back" "\backorfront"          0.0\pt  6.0\pt  0.0\pt  3.0\pt
        "front" "\backorfront"          0.0\pt  6.0\pt  0.0\pt  3.0\pt
-       "turn"  "\turn"                 -2.0\pt 7.0\pt  0.0\pt  4.0\pt
-       }
+       "turn"  "\\turn"                        -2.0\pt 7.0\pt  0.0\pt  4.0\pt
+       %}
 
      "style" = \table {
                "roman" "\settext{%}"   0.0\pt  7.50\pt 0.0\pt  8.0\pt
@@ -83,8 +68,8 @@ table_sixteen=
      }
 
      "streepjes" = \table {
-       "toplines"      "\topledgerlines{%}{%}" -1.0\pt 7.0\pt  0.0\pt  0.0\pt
-       "botlines"      "\botledgerlines{%}{%}" -1.0\pt 7.0\pt  0.0\pt  0.0\pt
+       "toplines"      "\\topledgerlines{%}{%}"        -1.0\pt 7.0\pt  0.0\pt  0.0\pt
+       "botlines"      "\\botledgerlines{%}{%}"        -1.0\pt 7.0\pt  0.0\pt  0.0\pt
      }
 
      "bars" = \table {
@@ -100,26 +85,6 @@ table_sixteen=
 
      }
 
-     "rests" = \table {
-       "-2o"   "\longarest"            0.0\pt  6.0\pt  0.0\pt  4.0\pt
-       "-2"    "\longarest"            0.0\pt  6.0\pt  0.0\pt  4.0\pt
-       "-1o"   "\breverest"            0.0\pt  6.0\pt  0.0\pt  4.0\pt
-       "-1"    "\breverest"            0.0\pt  6.0\pt  0.0\pt  4.0\pt
-       "0o"    "\outsidewholerest"     0.0\pt  6.0\pt  0.0\pt  2.0\pt
-       "0"     "\wholerest"            0.0\pt  6.0\pt  0.0\pt  2.0\pt
-       "1"     "\halfrest"             0.0\pt  6.0\pt  -2.0\pt 0.0\pt
-       "1o"    "\outsidehalfrest"              0.0\pt  6.0\pt  -2.0\pt 0.0\pt
-       "2o"    "\quartrest"            -5.0\pt 2.0\pt  -5.0\pt 5.0\pt
-       "3o"    "\eighthrest"           0.0\pt  5.0\pt  0.0\pt  8.0\pt
-       "4o"    "\sixteenthrest"                0.0\pt  6.0\pt  0.0\pt  12.0\pt
-       "2"     "\quartrest"            -5.0\pt 2.0\pt  -5.0\pt 5.0\pt
-       "3"     "\eighthrest"           0.0\pt  5.0\pt  0.0\pt  8.0\pt
-       "4"     "\sixteenthrest"                0.0\pt  6.0\pt  0.0\pt  12.0\pt
-       "5"     "\thirtysecondrest"     0.0\pt  6.0\pt  0.0\pt  16.0\pt
-       "6"     "\sixtyfourthrest"      0.0\pt  6.0\pt  0.0\pt  16.0\pt
-       "7"     "\hundredtwentyeighthrest"      0.0\pt  6.0\pt  0.0\pt  16.0\pt
-     }
-
      "meters" = \table {
        "C"     "\fourfourmeter"                0.0\pt  10.0\pt -5.0\pt 5.0\pt
        "C2"    "\allabreve"            0.0\pt  10.0\pt -5.0\pt 5.0\pt
@@ -128,7 +93,7 @@ table_sixteen=
      % dims ignored for this table
      "param" = \table {
        "brace" "\pianobrace{%}"        0.0\pt  0.0\pt  0.0\pt  0.0\pt
-       "meter" "\generalmeter{%}{%}"   0.0\pt  10.0\pt -5.0\pt 5.0\pt
+       "meter" "\generalmeter{%}{%}"   0.0\pt  10.0\pt -8.0\pt 8.0\pt
        "linestaf"      "\linestafsym{%}{%}"
        "stem"  "\stem{%}{%}"
        "fill"  "\hbox{}"
@@ -137,16 +102,11 @@ table_sixteen=
        "decrescendosym"        "\decrescendosym{%}"    0.0\pt  0.0\pt  -3.0\pt 3.0\pt
      }
 
-     "dots" = \table {
-       "1"     "\lsingledot"           0.0\pt  2.0\pt  -1.0\pt 1.0\pt
-       "2"     "\ldoubledot"           0.0\pt  5.0\pt  -1.0\pt 1.0\pt
-       "3"     "\ltripledot"           0.0\pt  8.0\pt  -1.0\pt 1.0\pt
-     }
 
      "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
+       "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
index b98a254235befaa941c40b56c231916773059691..dd0daaa11ae311fae7c2d2d7f98a4f637d1b2d4a 100644 (file)
@@ -11,36 +11,6 @@ table_twenty =
 
     % index TeXstring,         xmin xmax ymin ymax
 
-    "scripts" = \table {
-           "open" "\ouvert" -1.33\pt 1.33\pt -0.00\pt 3.33\pt 
-        "stopped" "\plusstop" -2.75\pt 2.75\pt -2.75\pt 2.75\pt 
-    "fermata" "\ufermata"              0.0\pt 0.0\pt   0.0\pt 6.0\pt
-       "-fermata" "\dfermata"          0.0\pt 0.0\pt   -6.0\pt 0.0\pt
-       "portato" "\portato"            0.0\pt 4.0\pt   0.0\pt  2.0\pt
-       "-portato" "\iportato"          0.0\pt 4.0\pt   -2.0\pt 0.0\pt
-       "tenuto" "\utenuto"                     0.0\pt 4.0\pt   -1.0\pt 1.0\pt
-       "-tenuto" "\dtenuto"            0.0\pt 4.0\pt   -1.0\pt 1.0\pt
-       "sforzato" "\sforzatoaccent"            -0.8\pt 4.0\pt  -1.92\pt 1.92\pt
-       "marcato" "\umarcato"           0.0\pt 4.0\pt   0.0\pt  4.0\pt
-       "-marcato" "\dmarcato"          0.0\pt 4.0\pt   -4.0\pt 0.0\pt
-       "staccato" "\staccato"          0.0\pt  0.0\pt  -1.1\pt 1.1\pt
-       "staccatissimo" "\ustaccatissimo"       0.0\pt  0.0\pt  0.0\pt  1.0\pt
-       "-staccatissimo" "\dstaccatissimo"      0.0\pt  0.0\pt  0.0\pt  1.0\pt
-       "upbow" "\upbow"                        -1.0\pt 6.0\pt  0.0\pt  5.0\pt
-       "downbow" "\downbow"            0.0\pt  5.0\pt  0.0\pt 7.5\pt
-       "back" "\backorfront"           0.0\pt  6.0\pt  0.0\pt  3.0\pt
-       "-front" "\backorfront"         0.0\pt  6.0\pt  0.0\pt  3.0\pt
-       "heel" "\heel"                  0.0\pt  6.0\pt  -1.0\pt 5.0\pt
-       "toe" "\toe"                    0.0\pt  6.0\pt  -1.0\pt 5.0\pt
-       "bheel" "\bheel"                        0.0\pt  6.0\pt  -1.0\pt 5.0\pt
-       "btoe" "\btoe"                  0.0\pt  6.0\pt  -1.0\pt 5.0\pt
-       "fheel" "\fheel"                        0.0\pt  6.0\pt  -1.0\pt 5.0\pt
-       "ftoe" "\ftoe"                  0.0\pt  6.0\pt  -1.0\pt 5.0\pt
-       "-back" "\backorfront"          0.0\pt  6.0\pt  0.0\pt  3.0\pt
-       "front" "\backorfront"          0.0\pt  6.0\pt  0.0\pt  3.0\pt
-       "turn"  "\turn"                 -2.0\pt 7.0\pt  0.0\pt  4.0\pt
-       }
-
      "style" = \table {
                "roman" "\settext{%}"   0.0\pt  7.5\pt  0.0\pt  10.0\pt
                "italic"        "\setitalic{%}" 0.0\pt  0.0\pt  0.0\pt  8.0\pt
@@ -85,16 +55,9 @@ table_twenty =
        "half"  "\hslurchar%{%}"        0.0\pt  0.0\pt  0.0\pt  0.0\pt
     }
 
-    "accidentals" = \table {
-       "-2"    "\flatflat"     0.0\pt  10.2\pt -2.5\pt 7.5\pt
-       "-1"    "\flat"         0.0\pt  6.0\pt  -2.5\pt 7.5\pt
-       "0"     "\natural"      0.0\pt  6.0\pt  -7.5\pt 7.5\pt
-       "1"     "\sharp"        0.0\pt  6.0\pt  -7.5\pt 7.5\pt
-       "2"     "\sharpsharp"   0.0\pt  6.0\pt  -2.5\pt 7.5\pt
-    }
 
     "streepjes" = \table {
-       "toplines"      "\topledgerlines{%}{%}" -3.0\pt 9.0\pt  0.0\pt  0.0\pt
+       "toplines"      "\\topledgerlines{%}{%}"        -3.0\pt 9.0\pt  0.0\pt  0.0\pt
        "botlines"      "\botledgerlines{%}{%}" -3.0\pt 9.0\pt  0.0\pt  0.0\pt
     }
 
@@ -110,24 +73,6 @@ table_twenty =
        ":|:"   "\repeatbarstartrepeat" 0.0\pt  16.0\pt 0.0\pt  20.0\pt
     }
 
-     "rests" = \table {
-       "-1o"   "\breverest"            0.0\pt  6.0\pt  0.0\pt  4.0\pt
-       "-1"    "\breverest"            0.0\pt  6.0\pt  0.0\pt  4.0\pt
-        "0o"   "\outsidewholerest"     0.0\pt  6.0\pt  0.0\pt  2.0\pt
-        "0"    "\wholerest"            0.0\pt  6.0\pt  0.0\pt  2.0\pt
-        "1"    "\halfrest"             0.0\pt  6.0\pt  -2.0\pt 0.0\pt
-        "1o"   "\outsidehalfrest"              0.0\pt  6.0\pt  -2.0\pt 0.0\pt
-        "2o"   "\quartrest"            -5.0\pt 2.0\pt  -5.0\pt 5.0\pt
-        "3o"   "\eighthrest"           0.0\pt  5.0\pt  0.0\pt  8.0\pt
-        "4o"   "\sixteenthrest"                0.0\pt  6.0\pt  0.0\pt  12.0\pt
-        "2"    "\quartrest"            -5.0\pt 2.0\pt  -5.0\pt 5.0\pt
-        "3"    "\eighthrest"           0.0\pt  5.0\pt  0.0\pt  8.0\pt
-        "4"    "\sixteenthrest"                0.0\pt  6.0\pt  0.0\pt  12.0\pt
-        "5"    "\thirtysecondrest"     0.0\pt  6.0\pt  0.0\pt  16.0\pt
-        "6"    "\sixtyfourthrest"      0.0\pt  6.0\pt  0.0\pt  16.0\pt
-        "7"    "\hundredtwentyeighthrest"      0.0\pt  6.0\pt  0.0\pt  16.0\pt
-     }
-
     "meters" = \table {
        "C"     "\fourfourmeter"                0.0\pt  10.0\pt -5.0\pt 5.0\pt
        "C2"    "\allabreve"            0.0\pt  10.0\pt -5.0\pt 5.0\pt
@@ -145,16 +90,10 @@ table_twenty =
         "decrescendosym" "\decrescendosym{%}"  0.0\pt  0.0\pt  -3.0\pt 3.0\pt
      }
 
-    "dots" = \table {
-       "1"     "\lsingledot"           0.0\pt  8.0\pt  -1.0\pt 1.0\pt
-       "2"     "\ldoubledot"           0.0\pt  12.0\pt -1.0\pt 1.0\pt
-       "3"     "\ltripledot"           0.0\pt  16.0\pt -1.0\pt 1.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
+       "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
diff --git a/init/vette-beams16.ly b/init/vette-beams16.ly
deleted file mode 100644 (file)
index 55fc848..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-% generated at Fri Sep 26 15:26:29 1997 from out/vette-beams16.log
-% changes will be lost
-
diff --git a/init/vette-beams20.ly b/init/vette-beams20.ly
deleted file mode 100644 (file)
index 438f27e..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-% generated at Fri Sep 26 15:26:46 1997 from out/vette-beams20.log
-% changes will be lost
-
index e81a18a4941c57a9480908d1b046edc2962ed78e..2b2de802f41de2c809b89ba1e3d8548fe53078c6 100644 (file)
@@ -1,10 +1,10 @@
 \header{
-enteredby      jcn
-copyright      PD
-TestedFeatures simple abbreviations
+enteredby =     "jcn";
+copyright =     "PD";
+TestedFeatures =        "simple abbreviations";
 }
 
-\version "0.1.6";
+\version "0.1.7";
 
 \score{
        \melodic{ 
index 8dffc79edb96bc9bd0364e271e70c2a29f5bd0bd..3dae027c332c2beb919358c0fa8789ec5dd44084 100644 (file)
@@ -1,16 +1,15 @@
-%{MudelaHeader
 
- filename: beams.ly
- title: 
- description: 
- composer(s): heu
- entered-by: jcn
- copyright: PD
+\header{
+filename =      "beams.ly";
+title =         "";
+description =   "";
+composer =      "heu";
+enteredby =     "jcn";
+copyright =     "PD";
 
- Tested Features: beams and beamflags
-EndMudelaHeader
-%}
-\version "0.1.6"
+TestedFeatures =        "beams and beamflags";
+}
+\version "0.1.7"
 
 \score{
        \melodic \multi 3 < 
index 7127940dd43856f2dd651acac6ac2d7e797ca9de..e7538272f9ad08e1abcffd98b2f3de23609c68fd 100644 (file)
@@ -1,17 +1,17 @@
 \header{
-filename       cadenza.ly
-title  Cadenza ad libitum
-description    Cadenza to Mozart Horn concerto 3
-composer       unknown
-enteredby      HWN
-copyright      public domain
+filename =      "cadenza.ly";
+title =         "Cadenza ad libitum";
+description =   "Cadenza to Mozart Horn concerto 3";
+composer =      "unknown";
+enteredby =     "HWN";
+copyright =     "public domain";
 }
 
 %{
 Tested Features: cadenza mode
 %}
 
-\version "0.1.6";
+\version "0.1.7";
 
 
 cad = \melodic  {
@@ -26,8 +26,8 @@ cad = \melodic  {
        c'4.\mf g8
 
 
-       [e'^"accel" ~ d' c' b]
-       [b~ c'] g-\fermata
+       [e'^"accel" () d' c' b]
+       [b() c'] g-\fermata
                \bar "empty";
                        c [c_"rubato" e g c']
        \octave c'';
@@ -56,7 +56,7 @@ cad = \melodic  {
                \bar "" ;
        [g8.(_"a tempo" e g8. )e]
        a4. g8 [f8 e8 d8 c8]
-       'g2 d2^"\tr"
+       'g2 d2-\trill
        c4
        }}
 \score {
index d2c945889d048732f126124084072bf310788bd0..861ec2d936c88b6e54f9c026b7163204957de7e2 100644 (file)
@@ -1,11 +1,11 @@
 \header{
-filename       collisions.ly
-description    random counterpoint to test collisions
-enteredby      HWN,JCN
-copyright      public domain
-Tested         test the Collision resolution 
+filename =      "collisions.ly";
+description =   "random counterpoint to test collisions";
+enteredby =     "HWN,JCN";
+copyright =     "public domain";
+Tested =        "test the Collision resolution ";
 }
-\version "0.1.6";
+\version "0.1.7";
 
 
 
index f580b6eb99eae1c285dd115d4e5ae525a2e1d407..9585e1fb7d5fb3c46100bc671586fd7f2a2642db 100644 (file)
@@ -1,23 +1,22 @@
 % remark: still temporarily broken. 
-%{MudelaHeader
 
- filename: coriolan-alto.ly
- title:Ouverture zu Collins Trauerspiel "Coriolan" Opus 62
- description:  a 5 bar fragment of the alto part
- composer(s): Ludwig van Beethoven (1770-1792)
- entered-by: JCN
- copyright: public domain
+\header{
+filename =      "coriolan-alto.ly";
+title =         "Ouverture zu Collins Trauerspiel "Coriolan" Opus 62";
+description =   "a 5 bar fragment of the alto part";
+composer =      "Ludwig van Beethoven (1770-1792)";
+enteredby =     "JCN";
+copyright =     "public domain";
 
- Tested Features:
-EndMudelaHeader
-%}
+TestedFeatures:
+}
 
 %
 % when lily can handle this, i-ll type the other 304 bars 
 % (maybe even sooner :-)
 %
 
-\version "0.1.6";
+\version "0.1.7";
 
 alto1 = \melodic{
        \meter 4/4; 
index 4a29d2c8d19ebea8bec07249dad0cf3da24d3662..3822fcfa4cb41365bc2bd33bb221f23bdda04c79 100644 (file)
@@ -1,25 +1,25 @@
 \header{
-enteredby      jcn
-copyright      PD
-TestedFeatures  This file tests the Feta music-font
-       (Feta definitively is not an abbreviation of Font-En-TjA)
+enteredby =     "jcn";
+copyright =     "PD";
+TestedFeatures =        "This file tests the Feta music-font"
+        "(Feta definitively is not an abbreviation of Font-En-TjA)";
 }
 
-\version "0.1.6";
+\version "0.1.7";
 
 \score{
        \melodic{ 
                \octave c';
                \meter 4/4;
-               \multi 2  < { \stemup g'\longa a'\breve | }
+               \multi 2  < { \stemup e'\longa a\breve | }
                { \stemdown
                c1 g c' a'
-               c2 g } >
+               c2 g c' a'
+               } >
                \stemboth
-               c' a'
                c4 g c' a' |
                a\ppp-\upbow a\pp-\downbow a\p^\turn a\mp^\fermata |
-               a\mf_\fermata a\f-\stopped a\ff-\open a\fff|
+               a\mf_\fermata a\f-\stopped a\ff-\open a\fff^\trill|
                a\fp a4.\sf a4.\sfz | % a\fz a\rf
                [c8 c] [a' a']
                [c a'] [a' c] |
@@ -30,8 +30,8 @@ TestedFeatures  This file tests the Feta music-font
                \multi 2 < { \stemup c1 } {\stemdown r1}>               
                \stemboth
                
-               c8_. c''8-> c4^^ c4_^ 
-               c4 _| c4^|
+               c8_. c''8-> c16^^ c16_^ 
+               c32 _| c32^| g''32-\ltoe g''32-\lheel
                }
        \paper{ 
            gourlay_maxmeasures =5.;
index 2d110e4a79409005d6fb6818a6e826a0b83439ac..fed49445bb4bd3f57dd0fe1b448dd1105043b820 100644 (file)
@@ -1,11 +1,11 @@
 \header{
-title  La Gallina a 2 violini
-date   1637
-source the manuscript of Canzoni overo Sonate Concertate 
-       libro terzo, opera duodecima 
-composer        Tarquinio Merula (1594/95-1665)
-enteredby       Mats Bengtsson
-copyright       Public Domain 
+title =         "La Gallina a 2 violini";
+date =  "1637";
+source =        "the manuscript of Canzoni overo Sonate Concertate "
+        "libro terzo, opera duodecima ";
+composer =      "Tarquinio Merula (1594/95-1665)";
+enteredby =     "Mats Bengtsson";
+copyright =     "Public Domain ";
 }
 
 
@@ -30,12 +30,15 @@ either.
 
 Tested Features: Note placement, multipart score, figured base, \breve
 
-note: the sharp signs hoovering over the bass part are no mistake, but
-part of the basso continuo
 %}
+%{
+
+note: the sharp signs hoovering over the bass part are no mistake, but
+part of the basso continuo --HWN
+
+%} 
 
-\version "0.1.6";
+\version "0.1.7";
 
 vi1=\melodic{
   \meter 4/4;
index 0a07d6d53372e23aa148acbb99e660989bb7c8ce..fb8e268d0105fbdcd9fe87519d81f5a00e3ba71e 100644 (file)
@@ -1,14 +1,18 @@
 \header{
-enteredby      jcn
-copyright      PD
-TestedFeatures  This file tests some nasty Gourlay spacings
+enteredby =     "jcn";
+copyright =     "PD";
+TestedFeatures =        "This file tests some nasty Gourlay spacings";
 }
 
-\version "0.1.6";
+\version "0.1.7";
+
+%{
+
+This is taken from [Gourlay]'s paper on breaking lines
+
+%}
 
 \score{
-% huh?
-%      \multi 2 \melodic < \octave c'';
        \melodic \multi 2 < \octave c'';
                { \stemup; d2 d     | d d | d4 d2. | }
                \octave c';
index da9286456c0987e33645ba2c508be8ff9e70834b..05ec062c27b545543883bab011c377a22fcc261e 100644 (file)
@@ -1,16 +1,4 @@
-%{MudelaHeader
-
- filename: keys.ly
- title:
- description: 
- composers:
- entered-by:
- copyright:
-
- Tested Features: local key, key, forced accidentals
-EndMudelaHeader
-%}
-\version "0.1.6";
+\version "0.1.7";
 
 
 blah = \melodic{
index fb1eec4e062ea95ef1039fecd551f055c4bb0405..86713c4995271160a710c49e8017cd2c6644c3fe 100644 (file)
@@ -1,17 +1,17 @@
 
 \header{
-filename               kortjakje.ly
-title          Ah,  vous dirais-je, maman (variations)
-description             bare bones version. (written down from memory :-)
-composers              Mozart, KV 265
-enteredby              HWN
-copyright              public domain
+filename =      "kortjakje.ly";
+title =         "Ah,  vous dirais-je, maman (variations)";
+description =   "bare bones version. (written down from memory :-)";
+composers =     "Mozart, KV 265";
+enteredby =     "HWN";
+copyright =     "public domain";
 }
 %{
 Tested Features: example file with comments
 
 %}
-\version "0.1.6";
+\version "0.1.7";
 
 
 % the % is a comment.
index 0ee5fb140572615b643a8dc532bb0f78b1a303d5..d63ddb0ab52c41b5f74fe8d6dbee3b1abe437349 100644 (file)
@@ -1,8 +1,8 @@
 \header{
-filename       multi.ly
-description    stupid testfile for pl68 features.
-enteredby      HWN
-copyright      public domain
+filename =      "multi.ly";
+description =   "stupid testfile for pl68 features.";
+enteredby =     "HWN";
+copyright =     "public domain";
 }
 %{
 Tested Features: \multi
@@ -10,7 +10,7 @@ Tested Features: \multi
 %}
 
 
-\version "0.1.6";
+\version "0.1.7";
 
 \score{
        \melodic 
index cb22bd22d980c0f3106ed60fddbb10ec3e13f7e2..33c736c3e835d69249ee931d634b37953f9b3b6c 100644 (file)
@@ -24,7 +24,7 @@
 % \lbheel \lbheel \lfheel \lftoe
 % \rbheel \rbtoe \rfheel \rftoe
 
-\version "0.1.6";
+\version "0.1.7";
 
 \score{
                \melodic {
index cc1511bf167e6902cdf82985fedecfacdc3b3c79..897770ad637aa3ff6e47ea99170f2d59857f323c 100644 (file)
@@ -1,13 +1,13 @@
 \header{
-filename       rhythm.ly
-enteredby      HWN
-copyright      public domain
-TestedFeatures  multiple meters, beaming, unsynced bars, userdefd engravers
+filename =      "rhythm.ly";
+enteredby =     "HWN";
+copyright =     "public domain";
+TestedFeatures =        "multiple meters, beaming, unsynced bars, userdefd engravers";
 }
 
 
 
-\version "0.1.6";
+\version "0.1.7";
 
 ritme = \melodic{ %\octave ;
        \partial 8;
index e1736b9f7710f59558175419e34dc5553b1258c2..a6b2b48367fdf7408b682684488e28de32c79703 100644 (file)
@@ -1,18 +1,18 @@
 \header{
-filename       scales.ly
-enteredby      HWN
-copyright      public domain
+filename =      "scales.ly";
+enteredby =     "HWN";
+copyright =     "public domain";
 }
+
 %{
  Tested Features: scripts, beams, transposition, 
-EndMudelaHeader
 %}
 
 %
 % scales with accents.
 %
 
-\version "0.1.6";
+\version "0.1.7";
 blah =         \melodic {
                \meter 6/8;     
                \octave  'c ;
index 120902812719aff631a34e55a8054422e4593718..ad6503efb70c53ef8bc9d8d6bc5ca676ddc9f727 100644 (file)
@@ -1,16 +1,5 @@
-%{MudelaHeader
-
- filename: scripts.ly
- title:
- description: 
- composers:
- entered-by:HWN, MB
- copyright:
-
- Tested Features: scripts, text.
-EndMudelaHeader
-%}
-\version "0.1.6";
+       
+\version "0.1.7";
 
 
 blah =         \melodic {
index a2cb6fb0bd906a042e943380f92a38348938fb66..c4c94498cc5cdd5b6e557caf950d9201924bb35d 100644 (file)
@@ -1,19 +1,19 @@
 \header{
-filename       scsii-menuetto.ly
-title          Solo Cello Suites, Suite II part V, Menuetto I
-description    Cello suite transcribed for Viola
-source         ?
-opus           BWV 1008 no. 5
-composers      Johann Sebastian Bach (1685-1750)
-enteredby      JCN
-copyright      public domain
+filename =      "scsii-menuetto.ly";
+title =         "Solo Cello Suites, Suite II part V, Menuetto I";
+description =   "Cello suite transcribed for Viola";
+source =        "?";
+opus =  "BWV 1008 no. 5";
+composers =     "Johann Sebastian Bach (1685-1750)";
+enteredby =     "JCN";
+copyright =     "public domain";
 }
 
 %{
  Tested Features:breaking algorithm, chords, multivoice, accents
 %}
 
-\version "0.1.6";
+\version "0.1.7";
 
 %% Stuff from MPP version
 % \lefttitle{Menuetto}
index e7ddad01eed140c24273724749845fc723918e9b..26ff241da3835b1ef0a30d2c9938ff3df2d4901d 100644 (file)
@@ -1,17 +1,5 @@
-%{MudelaHeader
 
- filename: slurs.ly
- title: 
- description: 
- composer(s): HWN
- entered-by: HWN
- copyright: PD
-
- Tested Features: test slurs and ties
-EndMudelaHeader
-%}
-
-\version "0.1.6";
+\version "0.1.7";
 
 \score{
        \melodic{\octave c';
index 67c461f127462a990157dd7517bb5bf9a48c1993..bb250a98fdf3e6147222f062fd7df14d8f70c6c6 100644 (file)
@@ -1,14 +1,13 @@
 \header{
-filename       standchen.ly
-title          St\"andchen (Serenade) "Leise flehen meine Lieder"
-opus           D. 957 No. 4
-composers      Franz Schubert (1797-1828)
-               Text by Ludwig Rellstab (1799-1860)
-enteredby      JCN
-copyright      public domain
-
+filename =      "standchen.ly";
+title =         "St\"andchen (Serenade) \"Leise flehen meine Lieder\"";
+opus =  "D. 957 No. 4";
+composers =     "Franz Schubert (1797-1828)"
+        "Text by Ludwig Rellstab (1799-1860)";
+enteredby =     "JCN";
+copyright =     "public domain";
 } 
 
+\version "0.1.7";
 
-% just a silly file to satisfy the make-website script
 \include "standchen.ly"
index 41246d19af689ccd81a4ddd94b234a8735afb125..1a13f3fc11e5d72219b7c8e005ce9b760d1bf1ab 100644 (file)
@@ -1,12 +1,13 @@
 \header{
-filename       standchen.ly
-title          St\"andchen (Serenade) "Leise flehen meine Lieder"
-opus           D. 957 No. 4
-composers      Franz Schubert (1797-1828)
-               Text by Ludwig Rellstab (1799-1860)
-enteredby      JCN
-copyright      public domain
+filename =      "standchen.ly";
+title =         "St\"andchen (Serenade) Leise flehen meine Lieder\"";
+opus =  "D. 957 No. 4";
+composers =     "Franz Schubert (1797-1828)"
+        "Text by Ludwig Rellstab (1799-1860)";
+enteredby =     "JCN";
+copyright =     "public domain";
 } 
+\version "0.1.7";
 
-% just a silly file to satisfy the make-website script
-% this should  be run after standchen-16
+% fool make-website
+% \include "standchen.ly";
index c8edb901404474d2b586e6837154563c7bee363b..8f70db6ba6d93d3679cc6dd961c2a98d371ee4ee 100644 (file)
@@ -1,11 +1,11 @@
 \header{
-filename       standchen.ly
-title          St\"andchen (Serenade) "Leise flehen meine Lieder"
-opus           D. 957 No. 4
-composers      Franz Schubert (1797-1828)
-               Text by Ludwig Rellstab (1799-1860)
-enteredby      JCN
-copyright      public domain
+filename =      "standchen.ly";
+title =         "St\"andchen (Serenade) \"Leise flehen meine Lieder\"";
+opus =  "D. 957 No. 4";
+composers =     "Franz Schubert (1797-1828)"
+        "Text by Ludwig Rellstab (1799-1860)";
+enteredby =     "JCN";
+copyright =     "public domain";
 } 
 
 %{
@@ -13,7 +13,7 @@ copyright     public domain
 multiple \paper{}s in one \score 
 %}
 
-\version "0.1.6";
+\version "0.1.7";
 
 commands = \melodic{
        \skip 2.*4;
index 091aa71c118e59e9b36106b3b82319f97ec275f9..7a14e64255d93cebfd169682412f3d56bea17d20 100644 (file)
@@ -1,13 +1,13 @@
 \header{
-filename       toccata-fuga-E.ly
-title  toccata and fuga in E-major 
-opus   BWV 566
-       toccata         3 bar excerpt
-       2nd fuga        transposed subject --- 4 bar excerpt
+filename =      "toccata-fuga-E.ly";
+title =         "toccata and fuga in E-major ";
+opus =  "BWV 566"
+        "toccata               3 bar excerpt"
+        "2nd fuga      transposed subject --- 4 bar excerpt";
 
-composers      Johann Sebastian Bach (1685-1750)
-enteredby      JCN
-copyright      public domain
+composers =     "Johann Sebastian Bach (1685-1750)";
+enteredby =     "JCN";
+copyright =     "public domain";
 
 }
 
@@ -20,7 +20,7 @@ copyright     public domain
 %}
 
 
-\version "0.1.6";
+\version "0.1.7";
 
 toccata_commands = \melodic{
        \meter 4/4;
index d6aa38a153535148b7d98e5a8acb6d54c6a8704b..2132cf3cb8f6d97d2c08ee7f857f72fb48a2b0ed 100644 (file)
@@ -1,18 +1,18 @@
 \header{
-filename               twinkle.ly
-title          Ah, vous dirais-je, maman 
-description            twinkle twinkle in pop-song-settings
-composers              traditional
+filename =      "twinkle.ly";
+title =         "Ah, vous dirais-je, maman ";
+description =   "twinkle twinkle in pop-song-settings";
+composers =     "traditional";
 
-enteredby              HWN, chords by Johan Vromans
-copyright              public domain
+enteredby =     "HWN, chords by Johan Vromans";
+copyright =     "public domain";
 }
 
 %{
 Tested Features                lyrics and chords
 %}
 
-\version "0.1.6";
+\version "0.1.7";
 
 melodie = \melodic {
         \clef"violin";
index 2ec9b40ee0f2b3d69cb87af620cdb82d2c08236a..6d5c243fd1cf6e4ddb3ce1e532d91698c6402f18 100644 (file)
@@ -1,20 +1,20 @@
 \header{
-filename        twinkle.ly
-title  twinkle twinkle little star
-description    traditional song in various languages.
-        "Ah, vous dirais-je, maman" 
-        "Altijd is Kortjakje ziek"
-        "Twinkle twinkle little star"
-
-composers      Traditional
-enteredby      HWN & JCN
-copyright      public domain
+filename =      "twinkle.ly";
+title =         "twinkle twinkle little star";
+description =   "traditional song in various languages."
+  "Ah, vous dirais-je, maman" 
+  "Altijd is Kortjakje ziek"
+  "Twinkle twinkle little star";
+
+composers =     "Traditional";
+enteredby =     "HWN & JCN";
+copyright =     "public domain";
 }
 %{
 Tested Features: lyrics
 
 %}
-\version "0.1.6";
+\version "0.1.7";
 
 melody = \melodic{
        \clef violin;
@@ -54,11 +54,11 @@ global = \melodic {
 
 tekst = \lyric{ 
        Al-4 tijd is Kort- jak- je ziek,2
-       midden4 in_de week maar s'_zon- dags niet.2
-       s'_Zon-4 dags gaat ze naar de kerk,2
+       midden4 in_de week maar 's_zon- dags niet.2
+       's_Zon-4 dags gaat ze naar de kerk,2
        met4 een boek vol zil- ver werk.2
        Al-4 tijd is Kort- jak- je ziek,2
-       midden4 in_de week maar s'_zon- dags niet.2
+       midden4 in_de week maar 's_zon- dags niet.2
 }
 
 %{
@@ -70,7 +70,7 @@ tekst. Mogen wij ook af en toe ergens op afgeven?
 hegedraagjetekst = \lyric{ 
        Al-4 tijd zuigt Bill Gates mijn piek,2
        "\TeX"4 is slecht- ser dan mu- ziek.2
-       s'_Zon-4 dags gaat het door een raam,2
+       's_Zon-4 dags gaat het door een raam,2
        Weet4 dat ik me er- voor schaam.2
        Al-4 tijd zuigt Bill Gates mijn piek,2
        "\TeX"4 is slecht- ser dan mu- ziek.2
index 62a25c5338eb4832776797e6d26a422e801ab4a2..646c75ff3043c26ffe6ed5fcc701fc7cf6f5cffe 100644 (file)
@@ -1,17 +1,17 @@
 \header{
-filename               fugue1.ly
-title          Fuga a 4
-description            Das Wohltemperierte Clavier I, Fuga I (c-major)
-opus           BWV 846
-composer               Johann Sebastian Bach (1685-1750)
-enteredby              Shay Rojansky
-copyright              Public Domain
+filename =      "fugue1.ly";
+title =                 "Fuga a 4";
+description =   "Das Wohltemperierte Clavier I, Fuga I (c-major)";
+opus =           "BWV 846";
+composer =      "Johann Sebastian Bach (1685-1750)";
+enteredby =     "Shay Rojansky";
+copyright =     "Public Domain";
 }
 
 %{
        
 %}
-\version "0.1.6";
+\version "0.1.7";
 
 
 global = 
index 608ec4b8735aa39a3316aae8c4a8f3baad8ed50f..ea304e7a8e3c7da19113052e0008676a900d7ae8 100644 (file)
@@ -1,18 +1,18 @@
 \header{
-filename               wohltemperirt.ly
-title          Fuga a 3
-description            Das Wohltemperierte Clavier I, Fuga II (c-minor)
-opus           BWV 847-Fuga
-source         Henle's Urtext
-composer               Johann Sebastian Bach (1685-1750)
-enteredby              HWN and Werner Lemberg
-copyright              Public Domain
+filename =      "wohltemperirt.ly";
+title =         "Fuga a 3";
+description =   "Das Wohltemperierte Clavier I, Fuga II (c-minor)";
+opus =  "BWV 847-Fuga";
+source =        "Henle's Urtext";
+composer =      "Johann Sebastian Bach (1685-1750)";
+enteredby =     "HWN and Werner Lemberg";
+copyright =     "Public Domain";
 }
 %{
  Tested Features: stem direction, multivoice, forced accidentals.
 %}
 
-\version "0.1.6";
+\version "0.1.7";
 
                                     % should add \need{dutch.ini} for
                                     % correct parsing of note names
index 060b5866a5526f42414e73241bf76cc0f5eaf209..5ed120b09da92f05807a21fcc84a9e016533c909 100644 (file)
@@ -1,14 +1,14 @@
 \header{
-filename               prelude1.ly
-title                  Preludium
-description            Das Wohltemperierte Clavier I, Prelude I (c-major)
-opus                   BWV 846
-composer               Johann Sebastian Bach (1685-1750)
-enteredby              Shay Rojansky
-copyright              Public Domain
+filename =      "prelude1.ly";
+title =         "Preludium";
+description =   "Das Wohltemperierte Clavier I, Prelude I (c-major)";
+opus =  "BWV 846";
+composer =      "Johann Sebastian Bach (1685-1750)";
+enteredby =     "Shay Rojansky";
+copyright =     "Public Domain";
 }
 
-\version "0.1.6";
+\version "0.1.7";
 
 global = 
     \melodic {
index 9214c7fb0b9013ef444c1ebfa804c96a4a5051b6..6aebc2b0a511304e50ce841b85d8ef87c1e2233e 100644 (file)
@@ -1,7 +1,7 @@
 
 
 # a hack to keep exec size under control.
-stablecc=  offset.cc meter.cc boxes.cc \
+stablecc=meter.cc boxes.cc \
        keyword.cc leastsquares.cc \
        lookup.cc meter.cc\
        parser.cc notename-table.cc lexer.cc\
index 9b9967a6f26e6d0cd0b118e0e5579ea78fae7b09..c767ffade7c1e7304dee0476f8bccfb767e705ed 100644 (file)
@@ -1,6 +1,6 @@
 MAJOR_VERSION = 0
 MINOR_VERSION = 1
-PATCH_LEVEL = 21
+PATCH_LEVEL = 22
 # use to send patches, always empty for released version:
 # include separator: ".postfix", "-pl" makes rpm barf
 
index 309337dffb893dd7795fbae9a84cb367e72a73a6..ac36ae99d026d8caae9e17f6632475a5e7cebed4 100644 (file)
@@ -54,7 +54,7 @@ Abbreviation_beam::brew_molecule_p () const
       sb.translate (Offset (x, (x * slope  + left_pos)* inter_f));
       mol_p->add (sb);
     }
-  mol_p->translate (x0 - spanned_drul_[LEFT]->absolute_coordinate (X_AXIS), X_AXIS);
+  mol_p->translate_axis (x0 - spanned_drul_[LEFT]->absolute_coordinate (X_AXIS), X_AXIS);
   return mol_p;
 #endif
 }
index 423181603dc1c5141de2c1473581019a5d25c082..870c6bece91c6b8fdc9da8884c84366b7dc40083 100644 (file)
@@ -18,6 +18,12 @@ Atom::print() const
 {
 #ifndef NPRINT
   DOUT << "texstring: " <<tex_<<"\n";    
+  
+  DOUT << "dim:";
+    for (Axis i=X_AXIS; i < NO_AXES; incr(i))
+      DOUT << axis_name_str(i) << " = " << dim_[i].str();
+
+  DOUT << "\noffset: " << off_.str ();
 #endif
 }
 
@@ -77,7 +83,7 @@ Atom::TeX_string() const
 }
 
 void
-Atom::translate (Real r, Axis a)
+Atom::translate_axis (Real r, Axis a)
 {
   off_[a] += r; 
 }
index d98d745b4c57347aef35b78390767ddba401664c..8689e1c1fe67e4ac7dbf2a0781cf0f3f49335d71 100644 (file)
@@ -6,6 +6,8 @@
   (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
 */
 
+#include <assert.h>
+
 #include "axes.hh"
 #include "string.hh"
 
@@ -14,3 +16,24 @@ axis_name_str (Axis a)
 {
   return String (a + 'x');
 }
+
+/*
+  TODO inline these.
+ */
+Axis
+post_incr(Axis &a)
+{
+  assert(a < NO_AXES);
+  Axis b= a;
+  a = Axis(int(a) + 1);
+  return b;
+}
+
+Axis
+incr(Axis &a)
+{
+  assert(a < NO_AXES);
+  a = Axis(int(a) + 1);
+  return a;
+}
+
index 05a855714861d389d68f24b6ad50eff4f3e5f31a..8fb57283149262ae25f7aa659d971c612371e91e 100644 (file)
@@ -35,7 +35,9 @@ Bar::brew_molecule_p() const
 {    
   Paper_def *p = paper();
   Atom s = p->lookup_l()->bar (type_str_, 
-                                p->get_var ("bar_size"));
+                              p->get_var ("bar_size"));
+   s.translate_axis (-s.extent()[Y_AXIS].center (), Y_AXIS);
+  
   Molecule*output = new Molecule (Atom (s));
   return output;
 }
diff --git a/lily/beam-swallow-trans.cc b/lily/beam-swallow-trans.cc
new file mode 100644 (file)
index 0000000..cf23d55
--- /dev/null
@@ -0,0 +1,15 @@
+/*   
+  beam-swallow-trans.cc -- instantiate Beam_swallow_translator 
+  
+  source file of the GNU LilyPond music typesetter
+  
+  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  
+ */
+
+#include "type-swallow-trans.hh"
+#include "musical-request.hh"
+
+
+
+DECLARE_REQUEST_SWALLOWER(Beam_req);
index d2b5e1e3c620a3d07a7460be9b052f0433c8a50b..b1dae43061988fcd80c9b5e6f295c327356e2008 100644 (file)
@@ -71,7 +71,7 @@ Beam::brew_molecule_p() const
       sb.translate (Offset (x, (x * slope  + left_pos)* inter_f));
       mol_p->add (sb);
     }
-  mol_p->translate (x0 - spanned_drul_[LEFT]->absolute_coordinate(X_AXIS), X_AXIS);
+  mol_p->translate_axis (x0 - spanned_drul_[LEFT]->absolute_coordinate(X_AXIS), X_AXIS);
   return mol_p;
 }
 
@@ -311,7 +311,7 @@ Beam::stem_beams (Stem *here, Stem *next, Stem *prev) const
       for (int j = 0; j  < lhalfs; j++) 
        {
          Atom b (a);
-         b.translate (-dir_ * dy * (lwholebeams+j), Y_AXIS);
+         b.translate_axis (-dir_ * dy * (lwholebeams+j), Y_AXIS);
          leftbeams.add (b);
        }
     }
@@ -332,7 +332,7 @@ Beam::stem_beams (Stem *here, Stem *next, Stem *prev) const
          for (; j  < nogap; j++) 
            {
              Atom b (a);
-             b.translate (-dir_ * dy * j, Y_AXIS);
+             b.translate_axis (-dir_ * dy * j, Y_AXIS);
              rightbeams.add (b); 
            }
          // TODO: notehead widths differ for different types
@@ -355,7 +355,7 @@ Beam::stem_beams (Stem *here, Stem *next, Stem *prev) const
       for (; j  < rwholebeams + rhalfs; j++) 
        {
          Atom b (a);
-         b.translate (-dir_ * dy * j, Y_AXIS);
+         b.translate_axis (-dir_ * dy * j, Y_AXIS);
          rightbeams.add (b); 
        }
        
index 28fdeade839e61ce7147d12e7feee082b970972b..1529c7074915798270cde15212c9054caceeafd7 100644 (file)
 void
 Box::translate (Offset o)
 {
-  x().translate (o.x ());
-  y().translate (o.y ());
+  for (Axis i=X_AXIS; i < NO_AXES; incr(i))
+    interval_a_[i] += o[i];
 }
 
 void
 Box::unite (Box b)
 {
-  x().unite (b.x ());
-  y().unite (b.y ());
+  for (Axis i=X_AXIS; i < NO_AXES; incr(i))
+    interval_a_[i].unite (b[i]);
 }
 
+/**
+  Initialize to empty.
+ */
 Box::Box()
 {        
-
 }
 
 Box::Box (Interval ix, Interval iy)
index fc70af6a0edc79d0f3bcc1c99590a02c67fcdae2..a8837f2cc19357f0dff9c565d71a803c0b5ee3d3 100644 (file)
@@ -28,19 +28,19 @@ Clef_engraver::set_type (String s)
   clef_type_str_  = s;
   if (clef_type_str_ == "violin") 
     {
-      c0_position_i_= -2;
+      c0_position_i_= -6;
     }
   else if (clef_type_str_ == "alto") 
     {
-      c0_position_i_= 4;
+      c0_position_i_= 0;
     }
   else if (clef_type_str_ == "tenor") 
     {
-      c0_position_i_= 6;
+      c0_position_i_= 2;
     }
   else if (clef_type_str_ == "bass") 
     {
-      c0_position_i_= 10;
+      c0_position_i_= 6;
     }
   else 
     return false;
index a0ca99bcc5b90d9fc987da43cf2435b2be25558c..d6c02e542cfda9d0c369eb821dd8017fc9a9eb5b 100644 (file)
@@ -39,13 +39,13 @@ Clef_item::read (String t)
 {
   type_= t;
   if (type_ == "violin")
-    y_off = 2;
+    y_position_i_ = -2;
   if (type_ == "alto")
-    y_off = 4;
+    y_position_i_ = 0;
   if (type_ == "tenor")
-    y_off = 6;
+    y_position_i_ = 2;
   if (type_ == "bass")
-    y_off = 6;
+    y_position_i_ = 2;
 }
 void
 Clef_item::read (Clef_engraver const &k)
@@ -61,7 +61,7 @@ Clef_item::brew_molecule_p() const
     t += "_change";
   Atom s = paper()->lookup_l ()->clef (t);
   Molecule*output = new Molecule (Atom (s));
-  output->translate (paper()->internote_f () * y_off, Y_AXIS);
+  output->translate_axis (paper()->internote_f () * y_position_i_, Y_AXIS);
   return output;
 }
 
index 086b7c7e3e9492a9db256872c6f4ab931755a695..83c7f61fbc0296646a13f91b386dbd0dc2065ab9 100644 (file)
@@ -18,7 +18,7 @@ Colinfo::print() const
   if (fixed())
     DOUT << "fixed at " << fixed_position()<<", ";
   assert (pcol_l_);
-  DOUT << "[" << minleft() << ", " << minright () << "]";
+  DOUT << width_.str();
   DOUT <<"}\n";
 #endif
 }
@@ -29,9 +29,9 @@ Colinfo::Colinfo (Paper_column *col_l, Real const *fixed_C)
     fixpos_p_.set_l (fixed_C);
   ugh_b_ = false;
   pcol_l_ = col_l;
-  width = pcol_l_->width();
-  if (width.empty_b())
-    width = Interval(0,0);
+  width_ = pcol_l_->width();
+  if (width_.empty_b())
+    width_ = Interval(0,0);
 }
 
 
index 6da5e0bbced6c990b08e786c16ca16965a5b82c4..58a16c1ce5d0956fcc6c7ef0ddfcc937be2096fd 100644 (file)
@@ -49,7 +49,7 @@ Dot_column::do_pre_processing ()
     w.unite (head_l_arr_[i]->width ());
   
   if (!w.empty_b ())
-    translate (w[RIGHT] - width() [LEFT],X_AXIS);
+    translate_axis (w[RIGHT] - width() [LEFT],X_AXIS);
 }
 
 IMPLEMENT_IS_TYPE_B1(Dot_column, Horizontal_group_item);
index 44e06c0b23bc9336a0fd96eef051f910024738c2..8bba43afcb4c7a9872c4038238484b572eb72e31 100644 (file)
@@ -36,17 +36,17 @@ Dots::brew_molecule_p () const
   Atom fill = paper()->lookup_l ()->fill (Box(Interval(0,0),Interval(0,0)));
   out->add(fill);
 
-  Atom d = paper ()->lookup_l ()->dots (0);
+  Atom d = paper ()->lookup_l ()->dots ();
 
   Real dw = d.dim_[X_AXIS].length();
-  d.translate(-dw,X_AXIS);
+  d.translate_axis(-dw,X_AXIS);
   for (int i=no_dots_i_; i--; )
     {
-      d.translate(2*dw,X_AXIS);
+      d.translate_axis(2*dw,X_AXIS);
       out->add (d);
     }
   Real inter_f = paper ()->internote_f ();
-  out->translate (inter_f * position_i_, Y_AXIS);
+  out->translate_axis (inter_f * position_i_, Y_AXIS);
   return out;
 }
 
index 98f29f77f468bb2f5f72a228c2a2ce1e8e0b5ae4..b5c104684691d3148e102428693a88f6b84074b2 100644 (file)
@@ -67,7 +67,7 @@ Graphical_element::absolute_offset() const
 }
 
 void
-Graphical_element::translate (Real y, Axis a)
+Graphical_element::translate_axis (Real y, Axis a)
 {
   if (axis_group_l_a_[a])
     axis_group_l_a_[a]->invalidate_cache (a);
@@ -109,8 +109,8 @@ Graphical_element::common_group (Graphical_element const* s, Axis a) const
 void
 Graphical_element::translate (Offset offset)
 {
-  translate (offset[Y_AXIS], Y_AXIS);
-  translate (offset[X_AXIS], X_AXIS);
+  translate_axis (offset[Y_AXIS], Y_AXIS);
+  translate_axis (offset[X_AXIS], X_AXIS);
 }
 
 Interval
index 6e63be3daa6177a9e19226e0b76ef56d3a202100..e5fe2e8d564c67d60ad15fbf8a3ffb6871575645 100644 (file)
@@ -94,14 +94,14 @@ Horizontal_align_item::do_pre_processing()
   for (int i=0 ;  i < item_l_arr_.size(); i++) 
     {
       Real dx = where_f -dims[i][-1];
-      item_l_arr_[i]->translate (dx , X_AXIS);
+      item_l_arr_[i]->translate_axis (dx , X_AXIS);
       if (item_l_arr_[i] == center_l_)
        center_dx_f = where_f;
       where_f += dims[i].length();
     }
   if (center_dx_f && !align_i_)
     for (int i=0 ;  i < item_l_arr_.size(); i++) 
-      item_l_arr_[i]->translate (- center_dx_f , X_AXIS);
+      item_l_arr_[i]->translate_axis (- center_dx_f , X_AXIS);
   
 }
 
index 66c4a6cbba908f886575b9675c50141b2d334292..22b4cec9726bf09fa4e441a8008ed2973306ec9a 100644 (file)
@@ -24,7 +24,7 @@ struct Atom {
   Atom (String, Box);
   Atom ();
   void translate (Offset o);
-  void translate (Real r,Axis a);
+  void translate_axis (Real r,Axis a);
   /// how big is #this#?
   Box extent() const;
   void print() const;
index 812d983faa9f75cda9b56bba7454ba2fde01b3be..3e0284b68d3927a27a501f321dc85cbc9daa2b19 100644 (file)
@@ -20,4 +20,12 @@ class String;
 
 String axis_name_str (Axis);
 
+/**
+  the operator ++ for Axis. 
+ */
+Axis post_incr(Axis &);
+Axis incr(Axis &);
+//Axis operator++(Axis);
+
+
 #endif // AXES_HH
diff --git a/lily/include/beam-swallow-trans.hh b/lily/include/beam-swallow-trans.hh
new file mode 100644 (file)
index 0000000..7291fd0
--- /dev/null
@@ -0,0 +1,15 @@
+/*   
+  beam-swallow-trans.hh -- declare 
+  
+  source file of the GNU LilyPond music typesetter
+  
+  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  
+ */
+
+#ifndef BEAM_SWALLOW_TRANS_HH
+#define BEAM_SWALLOW_TRANS_HH
+
+
+#endif /* BEAM_SWALLOW_TRANS_HH */
+
index 33190aceeb214d5312fdbae3b30ce29d201b0838..311ea4f1ceed10cb21873923c59323f061d0f01f 100644 (file)
@@ -18,7 +18,7 @@ protected:
 public:
     
     String type_;
-    int y_off;
+    int y_position_i_;
 
     /// is this a change clef (smaller size)?
     bool change_b_;
index 505c11f991b2463dd9047852086eed7f72d5451e..46f6cf20c3d4f87734246c30796bf9c8bae40fb1 100644 (file)
@@ -18,7 +18,7 @@
 struct Colinfo {
     Paper_column *pcol_l_;
     P<Real> fixpos_p_;
-    Interval width;
+    Interval width_;
     int rank_i_;
     /// did some tricks to make this column come out.
     bool ugh_b_;               
@@ -29,8 +29,6 @@ struct Colinfo {
     void print() const;
     bool fixed() const { return fixpos_p_.get_C();}
     Real fixed_position() const { return *fixpos_p_; }
-    Real minright() const { return width.right; }
-    Real minleft() const { return -width.left; }
 };
 
 #endif // COL_INFO_HH
index fae403280c0bd95244e4698dff94b21ed53dd3f6..f5057a0c630428ccc13457856285c07626ba1619 100644 (file)
@@ -57,7 +57,7 @@ public:
     translate in one direction
     */
     
-  void translate (Real, Axis);
+  void translate_axis (Real, Axis);
 
   Real relative_coordinate (Axis_group_element*group, Axis) const;
   Offset absolute_offset() const;
index 96cd46e6b707186778e1407a22bd867629d4c8a3..d4f8663c35dbdda5a4091a6089cc0bfdbb4779b8 100644 (file)
@@ -24,7 +24,7 @@ struct Lookup {
     void add (String, Symtable*);
     void print() const;
 
-    Atom linestaff (int n, Real w) const;
+    Atom linestaff (int n, Real ss, Real w) const;
     Atom fill (Box b) const;
     Atom beam_element (int,int,Real=0) const;
 
@@ -49,7 +49,7 @@ struct Lookup {
     Atom clef (String) const;
     Atom bar (String, Real height) const;
     
-    Atom dots (int) const;
+    Atom dots () const;
     Atom slur (int dy, Real &dx, Direction dir) const;
     Atom half_slur (int dy, Real &dx, Direction dir, int xpart) const;
     Atom half_slur_middlepart (Real &dx, Direction dir) const;
index f83eda517b87b5fe50fe00b186181736b604c3a2..ddea093d0e455e42414caf290d1f4b041e06bd51 100644 (file)
@@ -28,7 +28,7 @@ struct Molecule {
   
   void add (Molecule const &m);
   void translate (Offset);
-  void translate (Real,Axis);
+  void translate_axis (Real,Axis);
   void add (Atom const & a) ;
   /// how big is #this#? 
   Box extent() const;
index e3272eb9cdfa2e591250ac48d2d66b9441dc624c..6b659ad7d98fcc0a27f09eba22fd2d1a6dc71bba 100644 (file)
@@ -26,37 +26,37 @@ void set_lexer();
 
 /// lexer for Mudela
 class My_lily_lexer : public Includable_lexer {
-    int lookup_keyword (String);
-    int scan_bare_word (String);
-    int scan_escaped_word (String);
+  int lookup_keyword (String);
+  int scan_bare_word (String);
+  int scan_escaped_word (String);
 
-    bool post_quotes_b_;
+  bool post_quotes_b_;
+  char escaped_char(char) const;
 public:
-    void * lexval_l;
+  void * lexval_l;
     
-    Notename_table  *note_tab_p_;
-    Dictionary<Identifier*> *identifier_p_dict_p_;
-    Keyword_table * keytable_p_;
-    int errorlevel_i_;
-
-    /* *************** */
-
-    void clear_notenames();
-    Identifier*lookup_identifier (String s);
-    Melodic_req* lookup_melodic_req_l (String s);
-  void push_header_state();
-    void push_note_state();
-    void push_lyric_state();
-    void pop_state();
-    void LexerError (char const *);
-    My_lily_lexer();
-    void set_identifier (String,Identifier*i);
-    ~My_lily_lexer();
-    int yylex();
-    void print_declarations (bool init_b) const;
-    void add_notename (String, Melodic_req*);
-    bool note_state_b() const;
-    bool lyric_state_b() const;
+  Notename_table  *note_tab_p_;
+  Dictionary<Identifier*> *identifier_p_dict_p_;
+  Keyword_table * keytable_p_;
+  int errorlevel_i_;
+
+  /* *************** */
+
+  void clear_notenames();
+  Identifier*lookup_identifier (String s);
+  Melodic_req* lookup_melodic_req_l (String s);
+  void push_note_state();
+  void push_lyric_state();
+  void pop_state();
+  void LexerError (char const *);
+  My_lily_lexer();
+  void set_identifier (String,Identifier*i);
+  ~My_lily_lexer();
+  int yylex();
+  void print_declarations (bool init_b) const;
+  void add_notename (String, Melodic_req*);
+  bool note_state_b() const;
+  bool lyric_state_b() const;
 };
 
 #endif
index 4dd094b667ffd6df76709401d9af6f27167c9dae..bf44f42cb51ffa40835a05449b47032c15801794 100644 (file)
@@ -44,8 +44,10 @@ Key_item::read (Key_engraver const & key_grav_r)
 void 
 Key_item::set_c_position (int c0)
 {
-  int octaves =(abs (c0) / 7) +1 ;
-  c_position=(c0 + 7*octaves)%7;
+  int from_bottom_pos = c0 + 4;        // ugh
+  int octaves =(abs (from_bottom_pos) / 7) +1 ;
+  from_bottom_pos =(from_bottom_pos + 7*octaves)%7;
+  c_position  = from_bottom_pos - 4;
 }
 
 
@@ -71,7 +73,7 @@ Key_item::brew_molecule_p() const
   for (int i =0; i < pitch.size(); i++) 
     {
       Atom a =paper()->lookup_l ()->accidental (acc[i]);
-      a.translate ((c_position + pitch[i]) * inter, Y_AXIS);
+      a.translate_axis ((c_position + pitch[i]) * inter, Y_AXIS);
       Molecule m (a);
       output->add_at_edge (X_AXIS, RIGHT, m);  
     }
index 453ababc7f6fcb695101c8465eb3e10457370735..96ee56b49d311635855343ea3128d7293f8f062b 100644 (file)
@@ -56,7 +56,6 @@ void strip_leading_white (String&);
 %option warn
 
 %x incl
-%x header
 %x lyrics
 %x notes
 %x quote
@@ -67,11 +66,10 @@ A           [a-zA-Z]
 AA             {A}|_
 N              [0-9]
 AN             {AA}|{N}
-PUNCT          [?!,.:;']
+PUNCT          [?!,.:']
 ACCENT         \\[`'"^]
-NATIONAL       [\241-\377]
+NATIONAL  [\001-\006\021-\027\031\036\200-\377]
 TEX            {AA}|-|{PUNCT}|{ACCENT}|{NATIONAL}
-
 WORD           {A}{AN}*
 ALPHAWORD      {A}+
 INT            -?{N}+
@@ -82,7 +80,8 @@ HORIZONTALWHITE               [ \t]
 BLACK          [^ \n\t\f]
 RESTNAME       [rs]
 NOTECOMMAND    \\{A}+
-LYRICS         ({AA}|{NATIONAL})[^0-9 \t\n\f]*
+LYRICS         ({AA}|{TEX})[^0-9 \t\n\f]*
+ESCAPED                [nt\\'"]
 
 %%
 
@@ -123,29 +122,7 @@ LYRICS             ({AA}|{NATIONAL})[^0-9 \t\n\f]*
                  yyterminate (); // can't move this, since it actually rets a YY_NULL
        }
 }
-<header>{
-       [\{\}]  {
-               return YYText ()[0];
-       }
-       ^{WORD}         {
-               String s=YYText ();
-               yylval.string = new String (s);
-               return FIELDNAME;
-       }
-       {HORIZONTALWHITE}+{BLACK}.*\n           {
-               String s=YYText ();
-               strip_leading_white (s);
-               strip_trailing_white (s);
-               yylval.string = new String (s);
-               return RECORDLINE;
-       }
-       {WHITE}*        {
-       }
 
-       .               {
-               return YYText ()[0];
-       }
-}
 
 
 <notes,INITIAL,lyrics>\\include           {
@@ -222,13 +199,10 @@ LYRICS            ({AA}|{NATIONAL})[^0-9 \t\n\f]*
        start_quote ();
 }
 <quote>{
-       \\\\    {
-               *yylval.string += '\\';
-       }
-       \\\"    {
-               *yylval.string +='\"';
+       \\{ESCAPED}     {
+               *yylval.string += escaped_char(YYText()[1]);
        }
-       [^"]+   {
+       [^\\"]+ {
                *yylval.string += YYText ();
        }
        \"      {
@@ -236,6 +210,9 @@ LYRICS              ({AA}|{NATIONAL})[^0-9 \t\n\f]*
                yy_pop_state ();
                return STRING;
        }
+       .       {
+               *yylval.string += YYText ();
+       }
 }
 
 <lyrics>{
@@ -412,13 +389,8 @@ My_lily_lexer::lyric_state_b () const
        return YY_START == lyrics;
 }
 
-void 
-My_lily_lexer::push_header_state () 
-{
-       yy_push_state (header);
-}
-
-void strip_trailing_white (String&s)
+void
+strip_trailing_white (String&s)
 {
        int i=0;
        for (;  i < s.length_i (); i++) 
@@ -427,7 +399,9 @@ void strip_trailing_white (String&s)
 
        s = s.nomid_str (0, i);
 }
-void strip_leading_white (String&s)
+
+void
+strip_leading_white (String&s)
 {
        int i=s.length_i ();    
        while (i--) 
@@ -435,5 +409,4 @@ void strip_leading_white (String&s)
                        break;
 
        s = s.left_str (i+1);
-
 }
index 2d24d07959568fa89eb61694559f1a45e28dd3dc..a2ddd1b43e848447170e96078acc06ceb8b671bb 100644 (file)
@@ -25,6 +25,8 @@ Local_key_item::Local_key_item (int i)
 void
 Local_key_item::add_support (Item*head_l)
 {
+  if (support_items_.find_l(head_l))
+    return ;
   support_items_.push (head_l);
   add_dependency (head_l);
 }
@@ -70,18 +72,17 @@ Local_key_item::brew_molecule_p() const
          if (octave_mol_p)
            {
              Real dy =lastoct*7*paper()->internote_f ();
-             octave_mol_p->translate (dy, Y_AXIS);
+             octave_mol_p->translate_axis (dy, Y_AXIS);
              output->add (*octave_mol_p);
              delete octave_mol_p;
            }
          octave_mol_p= new Molecule;
        }
       lastoct = accs[i].octave_i_;
-      
       Real dy = (accs[i].name_i_ + c0_position) * paper()->internote_f ();
       Atom a (paper()->lookup_l ()->accidental (accs[i].accidental_i_));
-      a.dim_[X_AXIS] += 1 PT; // todo
-      a.translate (dy, Y_AXIS);
+
+      a.translate_axis (dy, Y_AXIS);
       Molecule m(a);
       octave_mol_p->add_at_edge (X_AXIS, RIGHT, m);
     }
@@ -89,7 +90,7 @@ Local_key_item::brew_molecule_p() const
   if (octave_mol_p)
     {
       Real dy =lastoct*7*paper()->internote_f ();
-      octave_mol_p->translate (dy, Y_AXIS);
+      octave_mol_p->translate_axis (dy, Y_AXIS);
       output->add (*octave_mol_p);
       delete octave_mol_p;
     }
@@ -100,8 +101,22 @@ Local_key_item::brew_molecule_p() const
       Molecule m (paper()->lookup_l ()->fill (b));
       output->add_at_edge (X_AXIS, RIGHT, m);
     }
-  Interval head_width=itemlist_width (support_items_);
-  output->translate (-output->extent().x ().right + head_width.left , X_AXIS);
+
+  Interval x_int;
+  for (int i=0; i < support_items_.size(); i++) 
+    {
+      Axis_group_element *common = 
+       common_group (support_items_[i], X_AXIS);
+
+      Real x = support_items_[i]->relative_coordinate (common, X_AXIS)  
+       -relative_coordinate (common, X_AXIS);
+
+      x_int.unite (x + support_items_[i]->width());
+    }
+  if (x_int.empty_b ())
+    x_int = Interval(0,0);
+  
+  output->translate_axis (-output->extent()[X_AXIS][RIGHT] + x_int[LEFT], X_AXIS);
   
   return output;
 }
index 64153dc8e704a66ec040a171c165e97db0a1e3cb..38e31d9000f82f1ffd91453bc6ff3c2634bc4788 100644 (file)
@@ -132,7 +132,7 @@ Lookup::clef (String s) const
 }
  
 Atom
-Lookup::dots (int j) const
+Lookup::dots () const
 {
   return (*symtables_)("dots")->lookup ("dot");
 }
@@ -193,11 +193,10 @@ Lookup::hairpin (Real &wid, bool decresc) const
 }
 
 Atom
-Lookup::linestaff (int lines, Real wid) const
+Lookup::linestaff (int lines, Real interline_f, Real wid) const
 {
-  Real internote_f = paper_l_ ->internote_f();
   Atom s;
-  Real dy = (lines >0) ? (lines-1)*internote_f : 0;
+  Real dy = (lines >0) ? (lines-1)*interline_f : 0;
   s.dim_ = Box (Interval (0,wid), Interval (0,dy));
 
   Array<String> a;
@@ -207,6 +206,9 @@ Lookup::linestaff (int lines, Real wid) const
   s.tex_ = (*symtables_)("param")->lookup ("linestaf").tex_;
   s.tex_ = substitute_args (s.tex_, a);
 
+
+  s.translate_axis (-s.extent ()[Y_AXIS].center (), Y_AXIS);
+
   return s;
 }
 
index 346ade0301a1a41a13d4a2142e60898cf335ad0f..182658cd5f5fefd77d81001b954e69003928366a 100644 (file)
@@ -37,7 +37,7 @@ Lyric_engraver::do_process_requests()
     {
       lyric_item_p_ =  new Text_item (lreq_l_->tdef_p_);
 
-      lyric_item_p_->translate (paper()->note_width ()/2 , X_AXIS);
+      lyric_item_p_->translate_axis (paper()->note_width ()/2 , X_AXIS);
       lyric_item_p_->dir_ = DOWN;
       lyric_item_p_->fat_b_ = true;
       announce_element (Score_elem_info (lyric_item_p_, lreq_l_));
index 0c4d4e0ad168b13cd0a9cf891b249d3b26ac63ff..97df812358c2a56859358ca299c7aa04417e41fe 100644 (file)
@@ -14,6 +14,7 @@ Molecule*
 Meter::brew_molecule_p() const
 {
   Atom s = paper()->lookup_l ()->meter (args);
+  s.translate_axis (-s.extent()[Y_AXIS].center (), Y_AXIS);
   return new Molecule (Atom (s));
 }
 
index 4dfe7d6c1309dd0e130530e04fd7e12f26329ca8..f054a280212b2193d93751c0c6abcabe5cc20bf4 100644 (file)
@@ -40,10 +40,10 @@ Molecule::translate (Offset o)
 }
 
 void
-Molecule::translate (Real x,Axis a)
+Molecule::translate_axis (Real x,Axis a)
 {
   for (iter_top (ats,c); c.ok(); c++)
-    c->translate (x,a);
+    c->translate_axis (x,a);
 }
 
 void
@@ -66,7 +66,7 @@ Molecule::add_at_edge (Axis a, Direction d, Molecule const &m)
     }
   Real offset = extent ()[a][d] - m.extent ()[a][-d];
   Molecule toadd (m);
-  toadd.translate (offset, a);
+  toadd.translate_axis (offset, a);
   add (toadd);
 }
 
index 4c7f72e598d682e16679e9dfbd23b19006b72e11..8abc8beb465181f0db36359c30a5bfa78e3ad757 100644 (file)
@@ -164,3 +164,21 @@ My_lily_lexer::clear_notenames()
   delete note_tab_p_;
   note_tab_p_ = new Notename_table;
 }
+
+char
+My_lily_lexer::escaped_char(char c) const
+{
+  switch(c)
+    {
+    case 'n':
+      return '\n';
+    case 't':
+      return '\t';
+      
+    case '\'':
+    case '\"':
+    case '\\':
+      return c;
+    }
+  return 0;
+}
index bfa78512da7370199f6d8b9bfe8b4cdbce171402..e2dd943b3afe35423e98d37bfa340fc79beba2b5 100644 (file)
@@ -129,6 +129,7 @@ My_lily_parser::parser_error (String s)
   if (fatal_error_i_)
     exit (fatal_error_i_);
   error_level_i_ = 1;
+  exit_status_i_ = 1;
 }
 
 void
diff --git a/lily/note-head.cc b/lily/note-head.cc
new file mode 100644 (file)
index 0000000..529e28d
--- /dev/null
@@ -0,0 +1,87 @@
+/*
+  notehead.cc -- implement Note_head
+
+  source file of the GNU LilyPond music typesetter
+
+  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+*/
+
+#include "misc.hh"
+#include "dots.hh"
+#include "note-head.hh"
+#include "dimen.hh" 
+#include "debug.hh"
+#include "paper-def.hh"
+#include "lookup.hh"
+#include "molecule.hh"
+#include "musical-request.hh"
+
+
+Note_head::Note_head ()
+{
+  x_dir_ = CENTER;
+  staff_size_i_= 8;            // UGH
+  position_i_ = 0;
+  extremal_i_ = 0;
+}
+
+void
+Note_head::do_pre_processing ()
+{
+  // 8 ball looks the same as 4 ball:
+  if (balltype_i_ > 2)
+    balltype_i_ = 2;
+  if (dots_l_)                 // move into Rhythmic_head?
+    dots_l_->position_i_ = position_i_;
+}
+
+IMPLEMENT_IS_TYPE_B1(Note_head,Rhythmic_head);
+
+
+int
+Note_head::compare (Note_head *const  &a, Note_head * const &b)
+{
+  return a->position_i_ - b->position_i_;
+}
+
+Interval
+Note_head::do_width () const
+{
+  Atom a =  paper ()->lookup_l()->ball (balltype_i_);
+  Interval i = a.dim_[X_AXIS];
+  i+= x_dir_ * i.length ();
+  return i;
+}
+
+Molecule*
+Note_head::brew_molecule_p() const 
+{
+  Molecule*out = 0;
+  Paper_def *p = paper();
+  Real inter_f = p->internote_f ();
+
+  // ugh
+  int streepjes_i = abs(position_i_) < staff_size_i_/2 
+    ? 0
+    : (abs(position_i_) - staff_size_i_/2) /2;
+  
+  Atom  s = p->lookup_l()->ball (balltype_i_);
+  out = new Molecule (Atom (s));
+  out->translate_axis (x_dir_ * s.dim_[X_AXIS].length (), X_AXIS);
+
+  if (streepjes_i) 
+    {
+      int dir = sign (position_i_);
+       
+      Atom streepje = p->lookup_l()->streepjes (balltype_i_, dir* streepjes_i);
+
+      Molecule sm;
+      sm.add (streepje);
+      if (position_i_ % 2)
+       sm.translate_axis (-inter_f* dir, Y_AXIS);
+      out->add (sm);
+    }
+  
+  out->translate_axis (inter_f*position_i_, Y_AXIS);
+  return out;
+}
diff --git a/lily/notehead.cc b/lily/notehead.cc
deleted file mode 100644 (file)
index 97d69ec..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
-  notehead.cc -- implement Note_head
-
-  source file of the GNU LilyPond music typesetter
-
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
-*/
-
-#include "misc.hh"
-#include "dots.hh"
-#include "note-head.hh"
-#include "dimen.hh" 
-#include "debug.hh"
-#include "paper-def.hh"
-#include "lookup.hh"
-#include "molecule.hh"
-#include "musical-request.hh"
-
-
-Note_head::Note_head ()
-{
-  x_dir_ = CENTER;
-  staff_size_i_= 8;            // UGH
-  position_i_ = 0;
-  extremal_i_ = 0;
-}
-
-void
-Note_head::do_pre_processing ()
-{
-  // 8 ball looks the same as 4 ball:
-  if (balltype_i_ > 2)
-    balltype_i_ = 2;
-  if (dots_l_)                 // move into Rhythmic_head?
-    dots_l_->position_i_ = position_i_;
-}
-
-IMPLEMENT_IS_TYPE_B1(Note_head,Rhythmic_head);
-
-
-int
-Note_head::compare (Note_head *const  &a, Note_head * const &b)
-{
-  return a->position_i_ - b->position_i_;
-}
-
-Interval
-Note_head::do_width () const
-{
-  Atom a =  paper ()->lookup_l()->ball (balltype_i_);
-  Interval i = a.dim_[X_AXIS];
-  i+= x_dir_ * i.length ();
-  return i;
-}
-
-Molecule*
-Note_head::brew_molecule_p() const 
-{
-  Molecule*out = 0;
-  Paper_def *p = paper();
-  Real inter_f = p->internote_f ();
-
-  // ugh
-  bool streepjes_b = (position_i_<-1) || (position_i_ > staff_size_i_+1);
-  
-  Atom  s = p->lookup_l()->ball (balltype_i_);
-  out = new Molecule (Atom (s));
-  out->translate (x_dir_ * s.dim_[X_AXIS].length (), X_AXIS);
-
-  if (streepjes_b) 
-    {
-      int dir = sign (position_i_);
-      int s =(position_i_<-1) 
-       ? -((-position_i_)/2)
-       : (position_i_-staff_size_i_)/2;
-       
-      Atom str = p->lookup_l()->streepjes (balltype_i_, s);
-      Molecule sm;
-      sm.add (Atom (str));
-      if (position_i_ % 2)
-       sm.translate (-inter_f* dir, Y_AXIS);
-      out->add (sm);       
-    }
-  
-  out->translate (inter_f*position_i_, Y_AXIS);
-  return out;
-}
index c9b1dd49490cfee79228c174c40680da3b2f3811..9f02016a412aae4aef8763c5d6532a6d61bad50e 100644 (file)
@@ -12,7 +12,7 @@
 #include <iostream.h>
 
 // mmm
-#define MUDELA_VERSION "0.1.6"
+#define MUDELA_VERSION "0.1.7"
 
 #include "scalar.hh"
 #include "translation-property.hh"
@@ -183,7 +183,6 @@ yylex (YYSTYPE *s,  void * v_l)
 %token <real>  REAL
 %token <string>        DURATION RESTNAME
 %token <string>        STRING
-%token <string> FIELDNAME RECORDLINE
 %token <i>     POST_QUOTES
 %token <i>     PRE_QUOTES
 
@@ -228,9 +227,9 @@ yylex (YYSTYPE *s,  void * v_l)
 %type <symtable>       symtable symtable_body
 %type <trans>  translator_spec translator_spec_body
 %type <tempo>  tempo_request
-%type <string> header_record
+%type <string> concat_strings
 
-%expect 2
+%expect 1
 
 
 %%
@@ -281,34 +280,28 @@ mudela_header_body:
                {
                $$ = new Header;
        }
-       | mudela_header_body FIELDNAME header_record {
-               (*$$)[*$2] = *$3;
+       | mudela_header_body STRING '=' concat_strings ';' {
+               (*$$)[*$2] = *$4;
                delete $2;
-               delete $3;
+               delete $4;
        }
        ;
 
 mudela_header:
-       HEADER  {
-               THIS->lexer_p_->push_header_state ();
-       }
-
-       '{' mudela_header_body '}'      {
-               $$ = $4;
-               THIS->lexer_p_->pop_state ();
+       HEADER '{' mudela_header_body '}'       {
+               $$ = $3;
        }
        ;
 
 
-header_record:
+concat_strings:
                {
                $$ = new String;
        }
-       | header_record RECORDLINE      {
+       | concat_strings STRING {
                *$$ += *$2;
-               delete $2;
        }
-       ;
+
 
 /*
        DECLARATIONS
index 6dc7dab8584483e009377c3f8c4cec8764ee4a8d..d186608b2628766e76bf5d8cc88734cf792f3d96 100644 (file)
@@ -1,5 +1,5 @@
 /*
-  rest.cc -- implement 
+  rest.cc -- implement Rest
 
   source file of the GNU LilyPond music typesetter
 
 void
 Rest::do_add_processing ()
 {
-  if (balltype_i_ == 0)
-    position_i_ += 4;
-  else if (balltype_i_ == 1)
-    position_i_ += 4;
+  if (balltype_i_ != 0 && balltype_i_ != 1)
+    position_i_ -= 4;
+
   Rhythmic_head::do_add_processing ();
   if (dots_l_)
       dots_l_->position_i_ = position_i_;
@@ -34,14 +33,12 @@ Rest::Rest ()
 Molecule *
 Rest::brew_molecule_p () const
 {
-  int staff_size_i_ =8;
-  bool streepjes_b = (position_i_<-1) || (position_i_ > staff_size_i_+1);
-  if  (balltype_i_ < 0 || balltype_i_ > 1)
-    streepjes_b = false;
+  int staff_size_i_ = 8;
+  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));
-  m->translate (position_i_ *  paper ()->internote_f (), Y_AXIS);
+  m->translate_axis (position_i_ *  paper ()->internote_f (), Y_AXIS);
   return m;
 }
 
index 9a6438a5edc39a6bb74be2c6eab0a3b393a62a3d..4a2df191c4bbfd7e27e200aa5c43aa40479803ba 100644 (file)
@@ -73,7 +73,7 @@ Line_of_score::set_breaking (Array<Col_hpositions> const &breaking)
 
       for (int i=0; i < curline.size(); i++)
        {
-         curline[i]->translate(config[i],X_AXIS);
+         curline[i]->translate_axis (config[i],X_AXIS);
          curline[i]->line_l_ = (Line_of_score*)line_l;
        }
     }
index fa067cd3cc96b9d08d1f1ea72e248b805a13d98a..e16eed4c0933e8df31267914a4709c28ac371831 100644 (file)
@@ -75,8 +75,8 @@ Atom
 Script_def::get_atom (Paper_def *p , Direction d) const
 {
   String preidx_str ="";
-  if (invertsym_b_&& d < 0) 
-    preidx_str = "-";
+  if (invertsym_b_)
+    preidx_str = (d < 0)? "d" : "u";
 
   return p->lookup_l()->script (preidx_str + symidx_str_);
 }
index df80dabd37045b38f865d7d2b0f2425420776f21..2ac99301990edf59749788b714db94bf14aa1f69 100644 (file)
@@ -102,8 +102,8 @@ Script::brew_molecule_p() const
   Real dx = paper()->note_width()/2;
   
   Molecule*out = new Molecule (specs_l_->get_atom (paper(), dir_));
-  out->translate (dy * pos_i_, Y_AXIS);
-  out->translate (dx, X_AXIS); // FIXME! ugh
+  out->translate_axis (dy * pos_i_, Y_AXIS);
+  out->translate_axis (dx, X_AXIS);    // FIXME! ugh
   return out;
 }
 
index 6076dd7d86255a75838af5eb77523ccd5f93a291..a73c27df42de1ed3eedd4926d12607d3022eeca6 100644 (file)
@@ -110,7 +110,7 @@ Span_bar::brew_molecule_p() const
 
   Atom s = get_bar_sym (y_int.length());
   Molecule*output = new Molecule (Atom (s));
-  output->translate (y_int[-1], Y_AXIS);
+  output->translate_axis (y_int[-1], Y_AXIS);
   return output;
 }
 
index d1fb487b0050a6cc7ce2acf89e4f4e7c0bc41fd7..fc730f3965ce22d527a652c72a65e49792e68ee3 100644 (file)
@@ -160,8 +160,8 @@ Spring_spacer::check_constraints (Vector v) const
       if (!i) 
        continue;
        
-      Real mindist=cols[i-1].minright()
-       +cols[i].minleft();
+      Real mindist=cols[i-1].width_[RIGHT]
+       -cols[i].width_[LEFT];
 
       // ugh... compares
       Real dif =v (i) - v (i-1)- mindist;
@@ -196,7 +196,7 @@ Spring_spacer::try_initial_solution() const
 
          if (i > 0) 
            {
-             Real r =initsol (i-1)  + cols[i-1].minright();
+             Real r =initsol (i-1)  + cols[i-1].width_[RIGHT];
              if (initsol (i) < r) 
                {
                  warning ("overriding fixed position");
@@ -207,8 +207,8 @@ Spring_spacer::try_initial_solution() const
        }
       else 
        {
-         Real mindist=cols[i-1].minright()
-           +cols[i].minleft();
+         Real mindist=cols[i-1].width_[RIGHT]
+           - cols[i].width_[LEFT];
          if (mindist < 0.0)
            warning ("Excentric column");
          initsol (i)=initsol (i-1)+mindist;
@@ -277,8 +277,8 @@ Spring_spacer::make_constraints (Mixed_qp& lp) const
            
          c1(j)=1.0 ;
          c1(j-1)=-1.0 ;
-         lp.add_inequality_cons (c1, cols[j-1].minright() +
-                                 cols[j].minleft());
+         lp.add_inequality_cons (c1, 
+                                 cols[j-1].width_[RIGHT] - cols[j].width_[LEFT]);
        }
     }
 }
@@ -529,7 +529,7 @@ Spring_spacer::calc_idealspacing()
     {
       if (!scol_l (i)->musical_b())
        {
-         Real symbol_distance =cols[i].minright() + 2 PT;
+         Real symbol_distance =cols[i].width_[RIGHT] + 2 PT;
          Real durational_distance = 0;
 
          if (i+1 < cols.size())
@@ -542,7 +542,7 @@ Spring_spacer::calc_idealspacing()
                */
              if (delta_t)
                durational_distance =  paper_l()->duration_to_dist (delta_t,k);
-             symbol_distance += cols[i+1].minleft();
+             symbol_distance += -cols[i+1].width_[LEFT];
            }
            
          ideal_arr_[i] = symbol_distance >? durational_distance;
@@ -576,7 +576,7 @@ Spring_spacer::calc_idealspacing()
             extra space if this is not needed */
          if (!scol_l (i+1)->musical_b())
            {
-             Real minimum_dist =   cols[i+1].minleft() + 2 PT + cols[i].minright () ;
+             Real minimum_dist =  - cols[i+1].width_[LEFT] + 2 PT + cols[i].width_[RIGHT];
              if (ideal_arr_[i+1] + minimum_dist < dist)
                {
                  ideal_arr_[i] = dist - ideal_arr_[i+1];
index a58d2f2828ad3bcf84f69873af8368fddc9458ca..eba7d09a13fb852a22c0981e7e0b137439bd4ca0 100644 (file)
@@ -75,8 +75,9 @@ Staff_side::get_position_i() const
   Real inter_f = paper()-> internote_f ();
   if (!inside_staff_b_) 
     {
-      y  = (dir_ > 0 && staff_sym_l_) ? staff_sym_l_->steps_i() + 2: -2; 
+      y  = (staff_sym_l_) ? dir_ * (staff_sym_l_->steps_i() + 2) : -2;  
       y *=inter_f;
+      
       Interval v= support_height();
 
       if (dir_ > 0) 
index 6b9b288aba0e2cf1968d30350bfa69a4183bc54b..eda2e2b60847302f8a3b31d91a86bee622fd6715 100644 (file)
@@ -33,7 +33,7 @@ Staff_symbol::do_print() const
 Molecule*
 Staff_symbol::brew_molecule_p() const
 {
-  Atom a  = paper()->lookup_l ()->linestaff (no_lines_i_, width ().length ());
+  Atom a  = paper()->lookup_l ()->linestaff (no_lines_i_, paper ()->interline_f(), width ().length ());
   return new Molecule (a);
 }
 
index 462567a47e67b923ed75bd231bdb4581ff93f2c7..324624b15a7a616156f14207327f422aef6fe18e 100644 (file)
@@ -139,7 +139,7 @@ Stem::get_center_distance_from_top ()
   if (dir_)
     return (dir_ > 0) ? 0 : 1;
 
-  int staff_center = staff_size_i_ / 2;
+  int staff_center = 0;
   int max = max_head_i () - staff_center;
   return max >? 0;
 }
@@ -151,7 +151,7 @@ Stem::get_center_distance_from_bottom ()
   if (dir_)
     return (dir_ > 0) ? 1 : 0;
 
-  int staff_center = staff_size_i_ / 2;
+  int staff_center = 0;
   int min = staff_center - min_head_i ();
   return min >? 0;
 }
@@ -179,24 +179,22 @@ Stem::set_default_stemlen ()
   if (!dir_)
     set_default_dir ();
 
-  // ugh... how about non 5-line staffs?
-  bool on_ledger_line_b = ((max_head_i () < -2 && dir_ == 1)
-                          //    || (min_head_i () > staff_size_i_ && dir_ == -1));
-                          || (min_head_i () > staff_size_i_ + 3 && dir_ == -1));
-  if (on_ledger_line_b)
-    {
-      set_stemend (staff_size_i_ / 2 - 1);
-    }
-  else 
+   
+  Real dy = paper ()->interbeam_f ();
+  Real len = STEMLEN;
+  // 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_ * stem_end_f () < 0)
     {
-      Real dy = paper ()->interbeam_f ();
-      Real len = STEMLEN;
-      // 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);
+      set_stemend (0);
     }
+  
 }
 
 void
@@ -305,14 +303,14 @@ Stem::abbrev_mol () const
   a.translate (Offset(- w / 2, stem_end_f () - (w / 2 * slope)));
   // ugh
     if (!beams_i)
-      a.translate (dy + beamdy - dir_ * dy, Y_AXIS);
+      a.translate_axis (dy + beamdy - dir_ * dy, Y_AXIS);
     else
-      a.translate (2 * beamdy - dir_ * (beamdy - dy), Y_AXIS);
+      a.translate_axis (2 * beamdy - dir_ * (beamdy - dy), Y_AXIS);
   
   for (int i = 0; i < abbrev_flag_i_; i++) 
     {
       Atom b (a);
-      b.translate (-dir_ * dy * (beams_i + i), Y_AXIS);
+      b.translate_axis (-dir_ * dy * (beams_i + i), Y_AXIS);
       beams.add (b);
     }
   
@@ -350,7 +348,7 @@ Stem::brew_molecule_p () const
 
   if (head_l_arr_.size())
     {
-      mol_p->translate (note_delta_f (), X_AXIS);
+      mol_p->translate_axis (note_delta_f (), X_AXIS);
     }
   return mol_p;
 }
index 58783600f581f5cdf311904d9f33a833cb2a128e..8ea4ba4a5df9c481ea1a64a0f08c35a47fec94f6 100644 (file)
@@ -69,7 +69,7 @@ Lookup::half_slur_middlepart (Real &dx, Direction dir) const
 
   f +=String ("{") + String (idx) + "}";
   s.tex_ = f;
-  s.translate (dx/2, X_AXIS);
+  s.translate_axis (dx/2, X_AXIS);
 
   return s;
 }
@@ -206,7 +206,7 @@ Lookup::slur (int dy , Real &dx, Direction dir) const
   s.tex_ = f;
 
 
-  s.translate (dx/2, X_AXIS);
+  s.translate_axis (dx/2, X_AXIS);
   return s;    
 }
 
@@ -239,7 +239,7 @@ Lookup::big_slur (int dy , Real &dx, Direction dir) const
   mol.add_at_edge (X_AXIS, RIGHT, a);
   mol.add_at_edge (X_AXIS, RIGHT, r);
 
-  mol.translate (l_dy * internote_f, Y_AXIS);
+  mol.translate_axis (l_dy * internote_f, Y_AXIS);
   Atom s;
   s.tex_ = mol.TeX_string();
   s.dim_ = mol.extent();
index 4701f2b10983c6616c6b164e3bbeb90a31fb7665..8d62ea72896dd97d231c54e3b6ef5ff41b2dbc0f 100644 (file)
@@ -51,8 +51,8 @@ Text_item::brew_molecule_p() const
   Molecule* mol_p = new Molecule (a);
 
   if (dir_<0)          // should do something better anyway.
-    mol_p->translate (-mol_p->extent().y ().left , Y_AXIS);
-  mol_p->translate (pos_i_ * paper()->internote_f (), Y_AXIS);
+    mol_p->translate_axis (-mol_p->extent().y ().left , Y_AXIS);
+  mol_p->translate_axis (pos_i_ * paper()->internote_f (), Y_AXIS);
   
   return mol_p;
 }
index 4f83ba1b7b8539e75683339f9b01651f1453ee7f..8cc0ecfd499a09323583acb90889a91b49de6f9f 100644 (file)
@@ -22,10 +22,10 @@ Vertical_align_element::do_substitute_dependency (Score_elem*o,Score_elem*n)
 {
   int i;
   while ((i = elem_l_arr_.find_i (o))>=0) 
-       if (n) 
-           elem_l_arr_[i] = n;
-       else
-           elem_l_arr_.del (i);
+    if (n) 
+      elem_l_arr_[i] = n;
+    else
+      elem_l_arr_.del (i);
 }
 
 /**
@@ -40,18 +40,18 @@ Vertical_align_element::do_post_processing()
   Array<Interval> dims;
   for (int i=0; i < elem_l_arr_.size(); i++) 
     {
-       Interval y = elem_l_arr_[i]->height() ;
-       if (y.empty_b())
-           y = Interval (0,0);
+      Interval y = elem_l_arr_[i]->height() ;
+      if (y.empty_b())
+       y = Interval (0,0);
        
-       dims.push (y);
+      dims.push (y);
     }
 
   Real where_f=0;
   for (int i=0 ;  i < elem_l_arr_.size(); i++) 
     {
-       elem_l_arr_[i]->translate (- dims[i][1] - where_f, Y_AXIS);
-       where_f += dims[i].length();
+      elem_l_arr_[i]->translate_axis (- dims[i][1] - where_f, Y_AXIS);
+      where_f += dims[i].length();
     }
 }
 
index d84b62e30432f8b31915b137c62d0d68ab57e766..cf8390be0a253606f7705aa15f3f852162e3fefa 100644 (file)
@@ -121,9 +121,6 @@ help:
 doc:
        $(MAKE) -C $(depth)/Documentation do-doc
 
-# doc++ documentation of classes
-doc++: $(progdocs)     
-       $(docxx) $(docxx-opts) -d $(DOCDIR) $^
 
 # ugh. should generate in out/
 dist:
@@ -190,7 +187,7 @@ endif
 #
 
 $(outdir)/version.hh: VERSION
-       ./$(lily_bindir)/make-version > $@
+       sh ./$(lily_bindir)/make-version.sh > $@
 
 
 # should this be in Rules?
index c1a022fa1981a41f4f3399c1ee8644caecb2f74c..abcc2dde581c69beb8d646b664d05c3dbc6ba181 100644 (file)
@@ -200,12 +200,6 @@ STRIPDEBUG=true
 DISTFILES=$(EXTRA_DISTFILES) Makefile $(ALL_SOURCES)
 DOCDIR=$(depth)/$(outdir)
 
-# .hh should be first. Don't know why
-# take some trouble to auto ignore sources and obsolete stuff.
-progdocs=$(shell $(FIND) ./ -name '*.hh' |egrep -v '$(OUTDIR_NAME)') \
-       $(shell $(FIND) ./ -name '*.cc' |egrep -v '$(OUTDIR_NAME)') \
-
-
 pod2html=pod2html
 pod2groff=pod2man --center="LilyPond documentation" --section="0"\
        --release="LilyPond $(TOPLEVEL_MAJOR_VERSION).$(TOPLEVEL_MINOR_VERSION).$(TOPLEVEL_PATCH_LEVEL)" $< > $@
@@ -220,6 +214,3 @@ endif
 DO_STRIP=true
 
 
-docxx-opts=-S -k -p
-docxx=doc++
-
index 5c5950a0f094aa47540e5b992eb4037d6e6b2b5f..99f1bb826020377acf5e805b8d2dd864fdd09607 100644 (file)
@@ -1,6 +1,6 @@
 Begin3
 Titel: LilyPond
-Versie: 0.1.21.jcn1
+Versie: 0.1.22
 Inschrijf datum: 10OCT97
 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.21.jcn1.tar.gz 
+       395k lilypond-0.1.22.tar.gz 
 Oorspronkelijke plek: pcnov095.win.tue.nl /pub/lilypond/
-       395k lilypond-0.1.21.jcn1.tar.gz 
+       395k lilypond-0.1.22.tar.gz 
 Copi"eer politie: GPL
 End
index 3470c648c6f7887dfc0433ba0efe0ce8ba8fc81e..9077acff9c520a3d8d34d677e16b2fa370e53247 100644 (file)
@@ -1,7 +1,7 @@
 Begin3
 Title: LilyPond
-Version: 0.1.21
-Entered-date: 08OCT97
+Version: 0.1.22
+Entered-date: 10OCT97
 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
-       395k lilypond-0.1.21.tar.gz 
+       395k lilypond-0.1.22.tar.gz 
 Original-site: pcnov095.win.tue.nl /pub/lilypond/
-       395k lilypond-0.1.21.tar.gz 
+       395k lilypond-0.1.22.tar.gz 
 Copying-policy: GPL
 End
index 18049956f0737110ca3a143a90561f08f86f2b65..296e2fd7a5c14afbc845a85b17dfda3aa05a4500 100644 (file)
@@ -1,9 +1,9 @@
 Name: lilypond
-Version: 0.1.21
+Version: 0.1.22
 Release: 1
 Copyright: GPL
 Group: Applications/Publishing
-Source0: pcnov095.win.tue.nl:/pub/lilypond/lilypond-0.1.21.tar.gz
+Source0: pcnov095.win.tue.nl:/pub/lilypond/lilypond-0.1.22.tar.gz
 Summary: A preprocessor to make TeX typeset music.
 URL: http://www.stack.nl/~hanwen/lilypond
 Packager: Han-Wen Nienhuys <hanwen@stack.nl>
@@ -29,7 +29,7 @@ make -C Documentation gifs
 make prefix="$RPM_BUILD_ROOT/usr" install
 %files
 %doc Documentation/out/AUTHORS.text Documentation/out/CodingStyle.text Documentation/out/INSTALL.text Documentation/out/MANIFESTO.text Documentation/out/convert-mudela.text Documentation/out/faq.text Documentation/out/gnu-music.text Documentation/out/index.text Documentation/out/internals.text Documentation/out/language.text Documentation/out/lilypond.text Documentation/out/links.text Documentation/out/literature.text Documentation/out/mi2mu.text Documentation/out/mudela-book.text Documentation/out/mutopia.text Documentation/out/other-packages.text BUGS TODO NEWS DEDICATION ANNOUNCE README
-%doc input/abbrev.ly input/beams.ly input/cadenza.ly input/collisions.ly input/coriolan-alto.ly input/font.ly input/gallina.ly input/gallina.tex input/header.ly input/keys.ly input/kortjakje.ly input/multi.ly input/pedal.ly input/rhythm.ly input/scales.ly input/scripts.ly input/scsii-menuetto.ly input/scsii-menuetto.tex input/slurs.ly input/standchen-16.ly input/standchen-16.tex input/standchen-20.ly input/standchen-20.tex input/standchen.ly input/toccata-fuga-E.ly input/twinkle-pop.ly input/twinkle.ly input/wtk1-fugue1.ly input/wtk1-fugue2.ly input/wtk1-prelude1.ly Documentation/mudela-course.doc Documentation/mudela-man.doc 
+%doc input/abbrev.ly input/beams.ly input/cadenza.ly input/collisions.ly input/coriolan-alto.ly input/font.ly input/gallina.ly input/gallina.tex input/gourlay.ly input/header.ly input/keys.ly input/kortjakje.ly input/multi.ly input/pedal.ly input/rhythm.ly input/scales.ly input/scripts.ly input/scsii-menuetto.ly input/scsii-menuetto.tex input/slurs.ly input/standchen-16.ly input/standchen-16.tex input/standchen-20.ly input/standchen-20.tex input/standchen.ly input/toccata-fuga-E.ly input/twinkle-pop.ly input/twinkle.ly input/wtk1-fugue1.ly input/wtk1-fugue2.ly input/wtk1-prelude1.ly Documentation/mudela-course.doc Documentation/mudela-man.doc 
 %doc Documentation/out/lelie_logo.gif
 /usr/bin/convert-mudela
 /usr/bin/mudela-book
@@ -41,6 +41,7 @@ make prefix="$RPM_BUILD_ROOT/usr" install
 /usr/man/man1/mudela-book.1
 /usr/man/man1/convert-mudela.1
 /usr/lib/texmf/texmf/tex/lilypond/
+/usr/lib/texmf/texmf/fonts/source/lilypond
 /usr/share/lilypond/
 %post
 
index 7a871bacb413c371463ee249fb563ce60a8ba96c..a984487a74aa23eaec1ddeb201b5859db16f4861 100644 (file)
@@ -41,6 +41,7 @@ make prefix="$RPM_BUILD_ROOT/usr" install
 /usr/man/man1/mudela-book.1
 /usr/man/man1/convert-mudela.1
 /usr/lib/texmf/texmf/tex/lilypond/
+/usr/lib/texmf/texmf/fonts/source/lilypond
 /usr/share/lilypond/
 %post
 
index 30a6654f79540bc2470b00748cea70c0142caa75..64f8dc72649b1e3c0587f51190a230b042296ccd 100644 (file)
@@ -41,7 +41,7 @@ $(outdir)/%.log: %.mf
        rm $(basename $< ).*gf
 
 $(lyout)/%.ly $(texout)/%.tex: $(outdir)/%.log
-       mf-to-table --ly $(lyout)/$(<F:.log=.ly) --tex $(texout)/$(<F:.log=.tex) $<
+       $(depth)/bin/$(outdir)/mf-to-table --ly $(lyout)/$(<F:.log=.ly) --tex $(texout)/$(<F:.log=.tex) $<
 
 localinstall:
        $(INSTALL) -d $(MFDIR)/lilypond
diff --git a/mf/TODO b/mf/TODO
index 212eefa4f299df2c26f11192ac42da8e5123c2fe..1c9189e7d21604d71b9975b05394fd854b5e9e71 100644 (file)
--- a/mf/TODO
+++ b/mf/TODO
@@ -5,7 +5,6 @@
          * flags
          * clefs
          * some scripts:
-           - toe/heel
            - piano pedals,
          * braces.
          * trills
@@ -18,6 +17,6 @@
        - 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.)
+       - hack up GS or the mf-gray font to do round pixels
+iso. square pixels.  (Printers don't do square pixels.)
 
index cd924a3aab9412d644e4869020c1c067df0f84d9..8cddab9100f8b38487443ab44d03dfae2628c4cd 100644 (file)
 def fet_beginfont(expr name,size) =
        font_identifier:=name&decimal size;
        font_size size;
-       message "@{font:"&name&":"&decimal size&"@}";
+       message "@{font@:"&name&"@:"&decimal size&"@}";
        message "";
        enddef;
 
 def fet_endfont(expr name) =
-       message "@{tnof:"&name&"@}";
+       message "@{tnof@:"&name&"@}";
        message "";
        enddef;
 
 % group or table?
 def fet_begingroup(expr name) =
-       message "@{group:"&name&"@}";
+       message "@{group@:"&name&"@}";
        message "";
        begingroup
 enddef;
 
 def fet_endgroup(expr name) =
        endgroup;
-       message "@{puorg:"&name&"@}";
+       message "@{puorg@:"&name&"@}";
        message "";
 enddef;
 
 def autometric_output_char=
-       message "@{char:"&charnamestr&":"&decimal charcode&":"&decimal charbp&":"&decimal charwd&":"&decimal chardp&":"&decimal charht&":"&idstr&":"&texstr&"@}";
+       message "@{char@:"&charnamestr&"@:"&decimal charcode&"@:"&decimal charbp&"@:"&decimal charwd&"@:"&decimal chardp&"@:"&decimal charht&"@:"&idstr&"@:"&texstr&"@}";
 enddef;
 
 
@@ -108,7 +108,7 @@ enddef;
 def breapth_endchar =
        scantokens extra_endchar;
        if proofing > 0: makebox_with_breapth(proofrule); fi
-       chardx := w + b;
+       chardx := 10*(w + b);
        shipit;
        endgroup
 enddef;
index 9d809332d7096dc4566243b1bbe5b8ec771758c5..44c59a4ef491f193789a62c5ffed205945865acc 100644 (file)
@@ -2,6 +2,7 @@
 % A tex file to help determine dims.
 %
 
+\font\black=black
 \font\taupin=musix16
 \font\fet=font-en-tja16
 \font\vet=vette-beams16
index f845fac0cc55d3656b7677c1142a3ce5da2dfea1..5dad6a8216dc80f4a0dcc79476053b06657cb820 100644 (file)
@@ -10,12 +10,12 @@ save foot_thickness, foot_depth, foot_width;
 
 flag_angle = 32;
 
-hip_thickness# = stafflinethickness#;
+hip_thickness# = 1.2 stafflinethickness#;
 foot_thickness# = blot_diameter#;
 flare# = 1.0 interline#;
 
 hip_depth# = 15/7 interline#; 
-hip_width# = 8/7 interline# + hip_thickness# /2 + stemthickness#/2;
+hip_width# = 7/8 interline# + hip_thickness# /2 + stemthickness#/2;
 
 foot_depth# = flare# + 15/7 interline#;
 foot_width# = .885 hip_width#;
@@ -35,8 +35,6 @@ define_pixels(flare,
 % page 119
 %
 def draw_eight_flag =
-
-
        penpos0(stemthickness, 0);
        penpos1(flare, 90);
        penpos2(hip_thickness, 0);
index cef05909039b0774cc31b7d0bf4cd7cf19572065..f99fed2e69b6123753a7e7b3b496581579c0f3f6 100644 (file)
@@ -21,7 +21,7 @@ def draw_brevis =
 
        head_width# = 2 interline#;
        holeheight = 3 stafflinethickness;
-       stem_width = 1.2 stafflinethickness;
+       stem_width = 1.4 stafflinethickness;
 
 
        define_pixels(head_width);
@@ -66,8 +66,8 @@ fet_beginchar("Longa notehead", "-2", "longaball");
        z7 = z5;
        z6 - z7 = (-stem_width/2, -interline);
        theta = angle(z6-z7)+ 90;
-       penpos7(stafflinethickness, theta);
-       penpos6(stem_width, theta);
+       penpos7(stem_width, theta);
+       penpos6(1.2 stem_width, theta);
        
        fill z7r .. z6r{z6-z7} .. {z7-z6} z6l -- z7l -- cycle;
        penlabels(6,7);
index 7fa8ffd6b743d0e755996a69a4a972c6aa4c4a45..47c8223f984f0bbd3b3aa6fd97a910eb771992f0 100644 (file)
@@ -1,4 +1,14 @@
 
+
+test:=0;
+
+if test = -1:
+       mode := smoke;
+fi
+
+mode_setup;
+
+
 input feta-macros;
 
 make_pen_stack;
@@ -6,7 +16,7 @@ make_picture_stack;
 input feta-params;
 
 
-test:= 0;
+
 
 if test = 0: 
        input feta-eindelijk;
@@ -16,5 +26,6 @@ if test = 0:
        input feta-schrift;
        input feta-banier;
 else:
-       input foo;
+
+       input feta-schrift;
 fi
index 7666427515eee69edce84055b4a0dac9fc6c4024..e50ef987811ac5b6e81dc863c325fbf893c7fcd7 100644 (file)
@@ -25,6 +25,20 @@ def scaledabout(expr point, scale) =
        shifted -point scaled scale shifted point
 enddef;
 
+
+%
+% make a local (restored after endgroup) copy of t_var 
+%
+def local_copy(text type, t_var)=
+       save copy_temp;
+       type copy_temp; 
+       copy_temp := t_var;
+       save t_var;
+       type t_var;
+       t_var := copy_temp;
+enddef;
+
+
 %
 % Urgh! Want to do parametric types
 %
index de1786b86052f052843119d74e4cd00ce5f186f8..05202ee22999d50fed23e01a7069764bffcf34fe 100644 (file)
@@ -3,7 +3,7 @@
 %
 
 
-fet_begingroup("foobars")
+fet_begingroup("scripts")
 
 
 def draw_fermata =
@@ -13,7 +13,7 @@ def draw_fermata =
        % suggest ca 80 degrees iso half-circle
        alpha := 10;
 
-       radius# = 1.5 interline#;
+       radius# = 1.25 interline#;
        crook_thinness# = 1.5stafflinethickness#;
        crook_fatness# = 4 stafflinethickness#;
 
@@ -59,7 +59,7 @@ fet_endchar;
 % FIXME: rounded endings
 %
 % `\accent' is TeX reserved.
-fet_beginchar("> accent", "accent", "sforzatoaccent")
+fet_beginchar("> accent", "sforzato", "sforzatoaccent")
        set_char_box(.9 interline#, .9 interline#, .5 interline#, .5 interline#);
        save thickness, diminish;
 
@@ -89,7 +89,7 @@ fet_endchar;
 
 fet_beginchar("staccato dot", "staccato", "staccato")
        save radius;
-       radius# = 1.25 stafflinethickness#;
+       radius# = 1.5 stafflinethickness#;
        define_pixels(radius);
        pickup pencircle scaled 2 radius;
        draw (0,0);
@@ -176,19 +176,19 @@ fet_endchar;
 fet_beginchar("open (unstopped)", "open", "ouvert")
        save thin, height, width, thick;
        height# = 5/4 width#;
-       height# = 7/8 interline#;
+       height# = interline#;
        thin = 1.2 stafflinethickness;
        thick =  1.4 thin;
-       set_char_box(width#/2, width#/2, 0, height#);
+       set_char_box(width#/2, width#/2, height#/2, height#/2);
        
        penpos1(thick, 0);
        penpos2(thin, 90);
-       z1r = (w,h/2);
+       z1r = (w, 0);
        z2r = (0, h);
        penlabels(1,2);
        penstroke z1e{up} .. {left}z2e;
        addto currentpicture also currentpicture xscaled -1;
-       addto currentpicture also currentpicture reflectedabout((w,h/2), (0,h/2));
+       addto currentpicture also currentpicture yscaled -1;
 fet_endchar;
 
 
@@ -237,10 +237,10 @@ fet_beginchar("Downbow", "downbow", "downbow")
        save wd;
        define_pixels(wd)
 
-       wd# = 3/2 interline#;
+       wd# = 1.5 interline#;
        stemthick = 1.2 stafflinethickness;
 
-       set_char_box(wd#/2, wd#/2, 0, 4/3interline#);
+       set_char_box(wd#/2, wd#/2, 0, 4/3 interline#);
 
        beamheight = 4/10 h;
 
@@ -271,7 +271,6 @@ fet_endchar;
 %
 % 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 +279,7 @@ fet_beginchar("Turn","turn","turn")
 
        wd# = 35/16 interline#;
        ht# = 18/17 interline#;
-       darkness = 1.25 stafflinethickness;
+       darkness = 1.20 stafflinethickness;
 
        set_char_box(wd#/2, wd#/2, ht#/2, ht#/2);
 
@@ -346,23 +345,41 @@ def draw_bulb(expr zl, zr, center_factor, radius_factor)=
        endgroup
 enddef;
 
-fet_beginchar("Trill (`tr')","utrill","utrill")
+%
+% Inspired by a (by now) PD edition of Durand & C'ie edition of 
+% Saint-Saens' Celloconcerto no. 1 
+%
+% FIXME take out hardcoded vars.
+% FIXME the two loops on the `t' should be smoother (and the left one bigger).
+% FIXME generic macros for serifs: top of the t and bottom of r
+%
+% 
+
+fet_beginchar("Trill (`tr')","trill","trill")
        
        save start_angle,  ascender_extra, ex, hair_thick, fatness,
-         slant_angle, slant, t_fatness, r_fatness, kerning;
+         slant_angle, slant, t_fatness, r_fatness, kerning, t_overshoot, 
+         uitschieter, bulb_size;
+       ;
        pair slant_vec;
 
-       define_pixels(ex, ascender_extra, ascender);
        ascender_extra# = 1/2 ex#;
        ascender# = ascender_extra# + ex#;
-       ex# = interline#;
+       ex# = 1.5 interline#;
+       kerning# = .75 ex#;
 
+       define_pixels(ex, ascender_extra, ascender, kerning);
+       t_overshoot = 0.03 ex;
        fatness = 12/40 ex;
        t_fatness = 8/10 fatness;
-       r_fatness = 8/10 fatness;
-
-       hair_thick = 2/3 blot_diameter;
+       r_fatness = .75 fatness;
+       uitschieter = 21/40 ex;
+       hair_thick =  blot_diameter;
+       bulb_size = 0.47;
+       slant = .15;
 
+       local_copy(transform)(currenttransform);
+       currenttransform := currenttransform slanted slant;
 
        y1 = ascender;
        x1l = 0;
@@ -372,21 +389,22 @@ fet_beginchar("Trill (`tr')","utrill","utrill")
        z2 = (x1, 7/18 ex);
        penpos2(start_nib_wid, 25);
 
-       z3l = (11/10 t_fatness, 0);
+       z3l = (11/10 t_fatness, - t_overshoot);
 
-       z4l = (13/6 t_fatness, 3/8 ex);
+       z4l = (13/6 t_fatness, 5/16 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} 
+       t_p := z1l -- z2l{down} .. tension (1 + .5 slant)
+               .. z3l{right} 
+               
+               .. z4l{up} -- z4r{down} 
                .. z3r{left} .. z2r{up} .. z1r -- cycle;
        fill t_p ;
 
@@ -396,28 +414,33 @@ fet_beginchar("Trill (`tr')","utrill","utrill")
 
        z5 = (t_fatness/2, 2/3 ex);
        
-       lft x6 = -18/40 ex;
+       lft x6 = - uitschieter;
        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);
+       z7 = z5 + whatever*dir krul_ang;
+       up_angle = krul_ang;
+       % angle (z7-z5)
+       x7 = 5/10 kerning + x5;
+       
+       penpos7(hair_thick, up_angle + 90);
 
-       z8l = (2 t_fatness + 2 hair_thick, ex);
-       penpos8(2 hair_thick, 35);
+       
+       x8l = .7 [x9r, x7r];
+       y8l = y7l;
+       penpos8(2 hair_thick, (up_angle +90)/2);
 
        y9 = 3/4 ex;
-       x9l = 2.8 t_fatness;
+       x9 = x1 + kerning;
        penpos9(r_fatness, 0);
 
        x10 = x9;
        y10 = 0;
        penpos10(r_fatness, 0);
 
+       krul_p := z4{up} .. tension 1.1  .. z5 
+               .. tension 1 and .75 .. {down}z6
+               .. tension .85 and 1.1 .. z5 --- z7;
+       draw krul_p;
        r_p := z7l{z7-z5} .. z8l{right} .. z9l{down} --- z10l -- z10r
                --- z9r{up} 
                ..  z8r{left} ..  z7r{z5-z7} -- cycle;
@@ -428,12 +451,62 @@ fet_beginchar("Trill (`tr')","utrill","utrill")
        penpos11(1/4 r_fatness, -20);
        z11r = z9r;
        
-       z13 = (x9 + 2 r_fatness, y11 + 1/16 ex);
+       z13 = (x9 + 2 r_fatness, y11 );
        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);
+       draw_bulb(z13r, z13l, bulb_size, 1.5);
 fet_endchar;
 
-fet_endgroup("foobars");
+fet_beginchar("organ-heel", "pedalheel", "pedalheel")
+       save radius, thickness, wall;
+
+       radius# := .5 interline#;
+
+       define_pixels(radius);
+       set_char_box(radius#, radius#, radius#, 2/3 interline#);
+
+       thickness := 1.5 stafflinethickness;    
+       pickup pencircle scaled thickness;
+       rt x1 = b;
+       top y1 = h;
+       
+       x2 =x1;
+       y2 = 0;
+
+       x3 = 0;
+       bot y3 = -d;
+
+       draw z1{down} .. z2{down} .. z3{left};
+       addto currentpicture also currentpicture xscaled -1;
+       labels(1,2,3);
+fet_endchar;
+
+fet_beginchar("organ-toe", "pedaltoe", "pedaltoe")
+       save ht,wd;
+
+       thickness := 1.5 stafflinethickness;
+       ht# := 1.5 interline#;
+       wd# := 1/3 ht#;
+       define_pixels(ht,wd);
+
+
+       set_char_box(wd#, wd#, 0, ht#);
+       
+       pickup pencircle scaled thickness;
+       lft x1 = -b;
+       bot y1 = 0;
+       x2 =0;
+       top y2 = h;
+       z3 = z1 xscaled -1;
+
+
+       draw z1 -- z2 -- z3;
+       labels(1,2,3);
+fet_endchar;
+
+
+
+
+fet_endgroup("scripts");
index a0865df28d58cc8964c62721da74e6c4e5254665..69ef0a73157cffbc6645f9c1a5e7d8543b14b5cf 100644 (file)
@@ -171,8 +171,8 @@ fet_beginchar("Double sharp", "2", "sharpsharp")
        set_char_box(0, interline#, .5 interline#, .5 interline#);
        save klaverblad, klaversteel;
 
-       klaversteel = 1/12 interline;
-       klaverblad = 1/3 interline;
+       klaversteel = 1/15 interline;
+       klaverblad = .35 interline;
 
        z1 = (klaversteel, 0);
        z2 = (w/2 - klaverblad / 10, h - klaverblad);
@@ -180,7 +180,7 @@ fet_beginchar("Double sharp", "2", "sharpsharp")
        z4 = z2 reflectedabout((0,0), (1,1));
        z5 = z1 reflectedabout((0,0), (1,1));
 
-%      labels(1,2,3,4,5);
+       labels(1,2,3,4,5);
        draw_rounded_path(  
                z1{dir 45} .. {right}z2 -- z3 -- z4{down} .. {dir 225}z5 .. cycle,
        1/20 interline);
index 2749d8d55771f4055859cb1cb21ef02959de7bc9..8cd1246313983f73b62acb7e808be5df0bd46ef5 100644 (file)
@@ -6,9 +6,6 @@
 
 input autometric;
 fet_beginfont("font-en-tja", 16);
-
-mode_setup;
-
 staffsize#:=16pt#;
 
 input feta-generic;
index 7255d9f87287145eac8a5d22789c099e26c83ef0..d1f600ff46d0aee629f20067c87d86a83c8a5305 100644 (file)
@@ -1,12 +1,11 @@
 % font-en-tja20.mf
 % part of LilyPond's pretty-but-neat music font
 
-mode_setup;
+staffsize#:=20pt#;
 
 input autometric;
 fet_beginfont("font-en-tja", 20);
 
-staffsize#:=20pt#;
 
 input feta-generic;
 
diff --git a/mf/foo.mf b/mf/foo.mf
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/mf/mfbug.mf b/mf/mfbug.mf
deleted file mode 100644 (file)
index 5837988..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-% is this OK? Or is it a bug;
-% changing the order of z1l and z1r in reflectedabout 
-% stops mf from complaining
-fet_beginchar("open (unstopped)", "open", "ouvert")
-       save thin, height, width, thick;
-       height# = 5/4 width#;
-       height# = 2/3 interline#;
-       thin = .9 stafflinethickness;
-       thick =  1.4 thin;
-       set_char_box(width#/2, width#/2, 0, height#);
-       
-       penpos1(thick, 0);
-       penpos2(thin, 90);
-       z1r = (w,h/2);
-       z2r = (0, h);
-       penlabels(1,2);
-       penstroke z1e{up} .. {left}z2e;
-       addto currentpicture also currentpicture xscaled -1;
-       addto currentpicture also currentpicture reflectedabout(z1l, z1r);
-fet_endchar;
-fet_endgroup("foobars");
index 4163d8c26064dff49084b68884071bf150c8fe0f..e6809e22533e4f2dccba3fdf13921ef166ea1213 100644 (file)
@@ -1,7 +1,6 @@
-% generated automatically by mf-to-table.py version 0.3
-% on Thu Oct  9 20:24:25 1997
+% generated automatically by mf-to-table.py version 0.4
+% on Fri Oct 10 21:22:38 1997
 % Do not edit
-
 % input from out/font-en-tja16.log
 % name
 % rests
@@ -33,7 +32,7 @@
 \fetdef\halfball{19}
 \fetdef\quartball{20}
 
-% foobars
+% scripts
 \fetdef\ufermata{21}
 \fetdef\dfermata{22}
 \fetdef\sforzatoaccent{23}
 \fetdef\upbow{32}
 \fetdef\downbow{33}
 \fetdef\turn{34}
-\fetdef\utrill{35}
+\fetdef\trill{35}
+\fetdef\pedalheel{36}
+\fetdef\pedaltoe{37}
 
 % floogbars
-\fetdef\eighthflag{36}
-\fetdef\deighthflag{37}
+\fetdef\eighthflag{38}
+\fetdef\deighthflag{39}
 
index 28a218fc45bd8c2ffde2e2856c8c39ad851758d0..1791d0ebad895ab43e891b95560e2ea8d8899c60 100644 (file)
@@ -1,7 +1,6 @@
-% generated automatically by mf-to-table.py version 0.3
-% on Thu Oct  9 20:24:27 1997
+% generated automatically by mf-to-table.py version 0.4
+% on Fri Oct 10 21:22:44 1997
 % Do not edit
-
 % input from out/font-en-tja20.log
 % name
 % rests
@@ -33,7 +32,7 @@
 \fetdef\halfball{19}
 \fetdef\quartball{20}
 
-% foobars
+% scripts
 \fetdef\ufermata{21}
 \fetdef\dfermata{22}
 \fetdef\sforzatoaccent{23}
 \fetdef\upbow{32}
 \fetdef\downbow{33}
 \fetdef\turn{34}
-\fetdef\utrill{35}
+\fetdef\trill{35}
+\fetdef\pedalheel{36}
+\fetdef\pedaltoe{37}
 
 % floogbars
-\fetdef\eighthflag{36}
-\fetdef\deighthflag{37}
+\fetdef\eighthflag{38}
+\fetdef\deighthflag{39}
 
index 2854a35417ded9ec4f746bc86e21854bdb6a3b34..add2284b62b4939c64ccb8302cc82708db66214c 100644 (file)
 \def\startrepeat{\repeatstartbar}
 \def\repeatbarstartrepeat{\repeatstopstart}
 
+\def\vruler#1{{%
+        \def\wid{\dimen0}%
+        \def\inc{\dimen1}%
+        \wid=#1pt
+        \inc=\wid
+        \divide\inc by #1
+        \divide\wid by 2
+        \here=-\wid
+        \loop\ifdim\here<\wid\advance\here by\inc
+                \hbox to0pt{\vbox to0pt{\vss\hrule width2pt height 0.05pt\kern\here}\hss}%
+        \repeat%
+}}
+\def\hruler#1#2{\hbox{%
+        \def\wid{\dimen0}%
+        \def\here{\dimen3}%
+        \wid=#1pt
+        \divide\wid by 2
+        \here=-\wid
+        \loop\ifdim\here<\wid\advance\here by #2
+                \hbox to0pt{\kern\here\vrule width0.05pt height 1pt depth 1pt\hss}%
+        \repeat%
+}}
 
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
         }\else{foo\hfil\the\pageno\hfil}\fi}}
 \fi
 
+
+% debugging stuff:
+% \vbox to 0pt{\vskip .5cm \hruler{48}{3pt}\vss}
diff --git a/tex/vette-beams16.tex b/tex/vette-beams16.tex
deleted file mode 100644 (file)
index 55fc848..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-% generated at Fri Sep 26 15:26:29 1997 from out/vette-beams16.log
-% changes will be lost
-
diff --git a/tex/vette-beams20.tex b/tex/vette-beams20.tex
deleted file mode 100644 (file)
index 438f27e..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-% generated at Fri Sep 26 15:26:46 1997 from out/vette-beams20.log
-% changes will be lost
-