Generated with 

	make_patch 0.1.6 0.1.7 lilypond

usage 

	cd lilypond-source-dir; patch -E -p0 < patch-0.1.7
	
Patches do not contain automatically generated files, 
i.e. you should rerun configure
diff -urN ../lilypond-0.1.6/.dstreamrc ./.dstreamrc
--- ../lilypond-0.1.6/.dstreamrc	Tue Aug 12 14:05:01 1997
+++ ./.dstreamrc	Thu Aug 14 13:47:59 1997
@@ -15,7 +15,7 @@
 
 
 # flower lib
-File_path		1
+File_path		0
 
 Atom			0
 Bar			0
diff -urN ../lilypond-0.1.6/BUGS ./BUGS
--- ../lilypond-0.1.6/BUGS	Thu Aug  7 12:33:18 1997
+++ ./BUGS	Thu Aug 14 13:45:49 1997
@@ -1,3 +1,11 @@
 Document reintroduced deficiencies.
 
 * placement of bar-numbers
+
+*
+
+hw:~/musix/spacer/Documentation/out$ LILYINCLUDE=../../input lilypond -o wohltemperirt ../../input/wohltemperirt.ly
+
+GNU LilyPond 0.1.7 #10/FlowerLib 1.1.26 #1
+Parsing ... [/home/hw/share/lilypond/init//symbol.ly[/home/hw/share/lilypond/init//dynamic.ly][/home/hw/share/lilypond/init//dutch.ly][/home/hw/share/lilypond/init//script.ly][/home/hw/share/lilypond/init//paper16.ly[/home/hw/share/lilypond/init//table16.ly^[[B][/home/hw/share/lilypond/init//engraver.ly]][/home/hw/share/lilypond/init//midi.lySegmentation fault (core dumped)
+hw:~/musix/spacer/Documentation/out$ 
diff -urN ../lilypond-0.1.6/Documentation/Rules.make ./Documentation/Rules.make
--- ../lilypond-0.1.6/Documentation/Rules.make	Thu Aug  7 12:28:59 1997
+++ ./Documentation/Rules.make	Thu Aug 14 15:43:55 1997
@@ -28,7 +28,7 @@
 # do this for perl 5.004
 #	 $ make do_pod2html='$(pod2html) --infile $< --outfile=$@' html
 #
-$(outdir)/%.html: %.pod
+$(outdir)/%.html: %.pod $(depth)/VERSION
 	$(do_pod2html) 
 	mv $(notdir $@) $(outdir)/
 
@@ -41,15 +41,19 @@
 $(outdir)/%.gz: $(outdir)/%
 	gzip -c9 $< > $@
 
+name-stem= $(notdir $(basename $<))
 $(outdir)/%.dvi: $(depth)/input/%.ly 
-	(cd $(outdir); lilypond ../$< ;\
+	(cd $(outdir); \
+	rm lelie.midi ; \
+	lilypond -o  $(name-stem)  ../$< )
+	(cd $(outdir); \
 	if [ -f ../$(basename $< ).tex ]; \
 	then \
 		latex ../$(basename $< ) ;\
 	else \
-		tex '\nonstopmode \input lelie' ;\
-		mv lelie.dvi ../$@ ; \
+		tex $(name-stem) ;\
 	fi)
+
 
 # generate the pixmap at twice the size, then rescale (for antialiasing)
 $(outdir)/%.gif: $(outdir)/%.ps
diff -urN ../lilypond-0.1.6/Documentation/index.pod ./Documentation/index.pod
--- ../lilypond-0.1.6/Documentation/index.pod	Tue Aug 12 15:13:32 1997
+++ ./Documentation/index.pod	Wed Aug 13 23:40:57 1997
@@ -110,6 +110,14 @@
 >
 
 =item *
+<a href=mutopia.html
+>
+Mutopia -- Music To the People
+</a
+>
+
+
+=item *
 <a href=ANNOUNCE.txt
 >
 The announce of 0.1
diff -urN ../lilypond-0.1.6/Documentation/mutopia.pod ./Documentation/mutopia.pod
--- ../lilypond-0.1.6/Documentation/mutopia.pod	Mon Aug 11 02:55:00 1997
+++ ./Documentation/mutopia.pod	Thu Aug 14 15:49:03 1997
@@ -5,6 +5,7 @@
 =head1 DESCRIPTION
 
 Random ranting about the Mutopia project, aka "Music To the People." 
+[Not yet finished, so this is unpolished]
 
 =head1 WHY
 
@@ -15,21 +16,20 @@
 diversity (keeping lots of stock is expensive), and to encourage new
 work being composed.
 
-This is bad. The composers have long died, and not having their music
-available only discourages people from experimenting with them.  The
-public deserves to get public domain music for free (zero cents)
+This is bad. Storing a Mudela file takes almost no space at all, and
+if sheet music could be had for free, then it would be much easier
+obtain less famous music.  These composers have died long ago, and not
+having their music available only discourages people from
+experimenting with it.  You deserve to get public domain music for
+free (zero cents)
 
 =head1 WHAT 
 
-The solution:
+For literature, the project Gutenberg has an archive of public domain
+literary works. For music, this does not exist yet.
 
-An internet archive. For literature, the project Gutenberg does this.
-
-We also need an archive of PD sheet music: The complete works by Bach,
-Beethoven, and any other ancient composer should be electronically
-retrievable. 
-
-This project shall be called The Mutopia Project.
+We also need an archive of public domain sheet music; this is what we
+call The Mutopia Project.
 
 
 
diff -urN ../lilypond-0.1.6/NEWS ./NEWS
--- ../lilypond-0.1.6/NEWS	Wed Aug 13 01:12:36 1997
+++ ./NEWS	Thu Aug 14 02:41:33 1997
@@ -1,3 +1,13 @@
+pl 7
+	- Audio_element as base for Audio_item and Audio_staff. fixes
+midi-lyric segfault
+	- added "Gallina a due violini"
+	- make MIDI files on website.
+	- Collision now also is an Element_group.
+	- bf: announce Collision when created
+
+********
+aug 13
 pl 6
 	- bf: 13 shift/reduce in parser fixed
 	- bf: plets in parser
diff -urN ../lilypond-0.1.6/TODO ./TODO
--- ../lilypond-0.1.6/TODO	Tue Aug 12 23:36:44 1997
+++ ./TODO	Thu Aug 14 13:27:36 1997
@@ -5,6 +5,7 @@
 
 Most of the items are marked in the code as well, with full explanation. 
 grep for TODO and ugh/ugr
+	* Generate TeX titles from MudelaHeader
 
 	* integrate midi-elts from mi2mu and lily
 
@@ -22,7 +23,7 @@
 	* generate stuff in out/default, out/sun5-irix etc iso out/ 
 	and out-sun5/
 
-	* derive Dstream, texstream from ostream?
+	* derive lily_stream, Dstream, texstream from ostream?
 
 	* check libtool, automake
 
@@ -48,7 +49,7 @@
 
 	* use position 0 for center of staff iso bottom.
 
-	* Klavarskribo
+	* Klavarskribo?
 
 	* return status on exit
 
diff -urN ../lilypond-0.1.6/VERSION ./VERSION
--- ../lilypond-0.1.6/VERSION	Tue Aug 12 16:24:39 1997
+++ ./VERSION	Wed Aug 13 16:29:20 1997
@@ -1,6 +1,6 @@
 TOPLEVEL_MAJOR_VERSION = 0
 TOPLEVEL_MINOR_VERSION = 1
-TOPLEVEL_PATCH_LEVEL = 6
+TOPLEVEL_PATCH_LEVEL = 7
 
 # use to send patches, always empty for released version:
 TOPLEVEL_MY_PATCH_LEVEL = 
diff -urN ../lilypond-0.1.6/bin/make-website.in ./bin/make-website.in
--- ../lilypond-0.1.6/bin/make-website.in	Wed Aug 13 02:13:28 1997
+++ ./bin/make-website.in	Thu Aug 14 16:16:36 1997
@@ -40,12 +40,11 @@
     my $username=$pw[6];
 
     $footstr = 
-	"\n<hr>Please take me <a href=index.html>back to the index</a>\n<hr>
+	"\n<hr>Please take me <a href=index.html>back to the LilyPond index</a>\n<hr>
 <font size=-1>
-This page was generated by <code>" . $id_str . "</code> from lilypond-$lily_version by
+This page was built using <code>" . $id_str . "</code> from lilypond-$lily_version by
 <p>
 <address><br>$username <a href=mailto:$MAILADRESS>&lt<!bla>$MAILADRESS</a>&gt</address>
-<p>" . `date` . "
 <p></font>";
 }
     
@@ -239,8 +238,10 @@
 
 sub docxx_update
 {
-    open BANNER "/tmp/lilybanner.html";
-    print BANNER "BANNER";
+    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.
@@ -289,8 +290,8 @@
     if (! $opt_noexamples) {
 	gen_examples;
 	gen_list;
+	gen_manuals;
     }
-    gen_manuals;
     set_images;
 
     edit_html;
diff -urN ../lilypond-0.1.6/flower/path.cc ./flower/path.cc
--- ../lilypond-0.1.6/flower/path.cc	Mon May 26 12:21:31 1997
+++ ./flower/path.cc	Thu Aug 14 13:41:05 1997
@@ -66,7 +66,7 @@
 	 path+= String(path.length_i()? "/":"")+nm;
 
 	 fdebug << path << "? ";
-	 FILE *f = fopen(path, "r"); // ugh!
+	 FILE *f = fopen(path.ch_C(), "r"); // ugh!
 	 if (f) {
 	     fdebug << "found\n";
 	     fclose(f);
diff -urN ../lilypond-0.1.6/init/script.ly ./init/script.ly
--- ../lilypond-0.1.6/init/script.ly	Mon Jul 28 22:09:37 1997
+++ ./init/script.ly	Thu Aug 14 15:03:33 1997
@@ -25,6 +25,8 @@
 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 }
+
 %
 % left toe:      right heel:
 %
diff -urN ../lilypond-0.1.6/init/table16.ly ./init/table16.ly
--- ../lilypond-0.1.6/init/table16.ly	Mon Jul 28 22:40:23 1997
+++ ./init/table16.ly	Thu Aug 14 15:09:05 1997
@@ -36,6 +36,7 @@
 	    "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 {
diff -urN ../lilypond-0.1.6/input/cadenza.ly ./input/cadenza.ly
--- ../lilypond-0.1.6/input/cadenza.ly	Sun Aug 10 17:13:27 1997
+++ ./input/cadenza.ly	Thu Aug 14 15:13:28 1997
@@ -1,8 +1,9 @@
 %{MudelaHeader
- title:
- description:Cadenza to Mozart Horn concerto 3
- composer(s):unknown
- entered-by:HWN
+ filename: cadenza.ly
+ title: Cadenza ad libitum
+ description: Cadenza to Mozart Horn concerto 3
+ composer(s): unknown
+ entered-by: HWN
  copyright: public domain
 
  Tested Features: cadenza mode
@@ -42,7 +43,7 @@
 	r8 'a ['b cis]
 	\duration 16;	[d cis d e]
 	f4~ [f e d c]
-	'b4
+	'b4-\turn
 	\octave c'; [2/3 d'8 c'8 a8]1/1
 	g2
 		\bar "" ;
@@ -58,7 +59,7 @@
 	\melodic { \cad }
 	\paper {
 	
-		unitspace= 14.0\mm;
+		unitspace= 16.0\mm;
 		geometric= 1.4;
 	}
 	\midi { \tempo 4 = 90; }
diff -urN ../lilypond-0.1.6/input/gallina.ly ./input/gallina.ly
--- ../lilypond-0.1.6/input/gallina.ly	Thu Jan  1 01:00:00 1970
+++ ./input/gallina.ly	Thu Aug 14 14:45:17 1997
@@ -0,0 +1,232 @@
+%{
+From mats.bengtsson@s3.kth.seThu Aug 14 02:11:19 1997
+Date: Wed, 13 Aug 1997 18:24:53 +0200
+From: Mats Bengtsson <mats.bengtsson@s3.kth.se>
+To: Han-Wen Nienhuys <hanwen@stack.nl>
+Subject: Re: brevis? 
+
+[snip]
+
+Here comes a sample score where I've tried to fiddle around with different
+spacing parameters to get a decent layout, but it still looks quite strange.
+For example is the second half of the bar more spread out than the first
+half in many cases. 
+Hopefully it could be useful input to future improvements. I've entered the
+music directly from the 1637 manuscript and intend to publish it public
+domain on for example ftp.gmd.de when finished. You could include it as an
+example in the distribution, but in that case I could add a LaTeX title file.
+There were no beams in the manuscript so I didn't use them in this edition 
+either.
+
+      /Mats
+
+--------------------------------------------------
+%}
+%{
+ title: La Gallina a 2 violini
+ date: 1637
+ source: the manuscript of Canzoni overo Sonate Concertate 
+   libro terzo, opera duodecima 
+ composer(s): Tarquinio Merula (?-?)
+ entered-by: Mats Bengtsson
+ copyright: Public Domain 
+ 
+
+ Tested Features: Note placement, multipart score, figured base
+
+%}
+
+vi1=\melodic{
+  \meter 4/4;
+  \octave c'';
+
+  d8 d d d d4 A16 B c A |
+  B8 G G G16 A B8 G G G16 A | 
+  B8 G G A16 B c4 B |
+  A8 D G4. Fis16 E Fis4 |
+  G2 r2 |
+  r1 |
+  d8 d d d d4 A16 B c A |
+  B8 G G G16 A B8 G G G16 A | 
+  B8 G G A16 B c8 e d c |
+  B G c2 B4 |
+  c2 r |
+  r1 |
+  g8 g g g g4 d16 e f d |
+  e8 c c c16 d e8 c c c16 d |
+  e8 c c d16 e f4 e |
+  d8 G c2 B4 |
+  c8 G G G16 A B4 G |
+  r8 G G G16 A B4 G |
+  r8 E16 Fis G8 G  Fis G G Fis|
+  G2 r |
+  r1 |
+  r16 d c B A G Fis E D8 d d d16 c |
+  B8 d d d16 c B8 d d d16 e |
+  fis4 g2 fis4 |
+  r16 g f e d c B A G8 g g g16 f |
+  e8 g g g16 f e8 g g g16 a |
+  b4 c'2 b4 |
+  c'8 g g g16 f e4 d |
+  r8 g g g16 f e4 d |
+  r8 d16 A B8 B16 c A2 |
+  B1 |
+  \meter 3/2;
+  r4 d d d d d |
+  e1. |
+  r4 c c c c c |
+  d1. |
+  r4 d8 c B4 c8 d G4 A8 B |
+  E1. |
+  r4 e8 d cis4 d8 e A4 B8 cis |
+  Fis1. |
+  r4 d d d d d |
+  e e8 d c4 d8 e A4 B8 c |
+  Fis4 fis8 e d4 e8 fis B4 c8 d |
+  G4 g g g g g |
+  a4 c'8 b a4 b8 c' f4 g8 a |
+  d4 g g g g g |
+  a d8 c B4 c8 d A2 |
+  \meter 4/4;
+  B1 |
+  d8 d d d d4 A16 B c A |
+  B8 G G G16 A B8 G G G16 A | 
+  B8 G  c2 B4 |
+  c2 r |
+  g8 g g g g4 d16 e f d |
+  e8 G G G16 A B8 d d d16 e |
+  fis4 g2 fis4 |
+  r16 g f e d c B A G8 g g g16 f |
+  e2 r8 d d d16 e |
+  fis a g fis e d c B A8 d d d16 e |
+  fis4 g2 fis4 |
+  g1
+  \bar "|.";
+}
+
+vi2=\melodic{
+  \meter 4/4;
+  \octave c'';
+
+  r1 | r | r | 
+  d8 d d d d4 A16 B c A |
+  B8 G G G16 A B8 G G G16 A | 
+  B8 G G A16 B c4 B |
+  A8 D G4. Fis16 E Fis4 |
+  G2 r2 |
+  r1 |
+  g8 g g g g4 d16 e f d |
+  e8 c c c16 d e8 c c c16 d |
+  e8 c c d16 e f4 e |
+  d8 G c2 B4 |
+  c2 r |
+  r1 |
+  g8 g g g g4 d16 e f d |
+  e2 r8 G G G16 A |
+  B4 G r8 G G A16 B 
+  c4 B A2 |
+  G r16 d c B A G Fis E |
+  D8 d d d16 c B8 d d d16 e |
+  fis4 g g4. fis8 |
+  g2 r |
+  r16 d c B A G Fis E D8 d d d16 c |
+  B4 c2 B4 |
+  c d G2 |
+  r16 g f e d c B A G8 g g g16 f |
+  e4 d r8 g g g16 f |
+  e4 d r8 c16 G B8 B16 c |
+  A4 G2 Fis4 |
+  G1 |
+  \meter 3/2;
+  r1. |
+  r4 g8 f e4 f8 g c4 d8 e |
+  A1. |
+  r4 a8 g fis4 g8 a d4 e8 fis |
+  B1. |
+  r4 g g g g g |
+  a1. |
+  r4 a a a a a |
+  b d8 c B4 c8 d G4 A8 B |
+  E4 g8 f e4 f8 g c4 d8 e |
+  A4 a8 g fis4 g8 a d4 e8 fis |
+  B4 b8 a g4 a8 b e4 fis8 g |
+  c4 A A A A A |
+  B d8 c B4 c8 d D4 E |
+  Fis2 G Fis |
+  \meter 4/4;
+  G1 |
+  r1 | r1 |
+  g8 g g g g4 d16 e f d |
+  e8 c c c16 d e8 G G G16 A |
+  B8 G c2 B4 |
+  c2 r |
+  r16 d c B A G Fis E D8 d d d16 c |
+  B4 c2 B4 |
+  c8 G G G16 A B d c B A G Fis E |
+  D8 d d d16 e fis16 a g fis e d c B |
+  A d c B A G Fis E D4 d |
+  B1
+  \bar "|.";
+}
+
+bc=\melodic{
+  \clef "bass";
+  \meter 4/4;
+  \octave c;
+
+  G2 d^"4 3" | G1 |
+  g2 c4 G | d1^"3 4 3" |
+  G1 | g2 c4 G |
+  d1^"3 4 3" | G |
+  g2 c4 d | G1^"3 4 3" |
+  c1 | c2 F4 c | 
+  G1^"3 4 3" | c |
+  c2 F4 c | G1^"3 4 3" |
+  c2 G | g G |
+  c4 G d2^"3 4 3" | G g |
+  fis g | d1^"3 4 3" |
+  G2 B | d1^"3 4 3" |
+  G^"3 4 3" | c4 B c2 |
+  G1^"3 4 3" | c4 B c g |
+  c B c G | d1^"3 4 3" |
+  G1 |
+  \meter 3/2;
+  g1. | c |
+  f | d^"\sharp" |
+  g | c |
+  A | d^"\sharp" |
+  G | c |
+  d^"\sharp" | e |
+  f | g1 B2 |
+  d1.^"3 4 3" |
+  \meter 4/4;
+  G1 |
+  g2 fis | g G |
+  g1^"3 4 3" | c |
+  G^"3 4 3" | c2 G |
+  d1^"3 4 3" | G^"3 4 3" |
+  c2 G | d1^"\sharp" ( |
+  ) d^"3 4 3" | G |
+  \bar "|.";
+}
+
+\score{
+  < \multi 3;
+    \vi1
+    \vi2
+    \bc
+  >
+  \paper{
+    geometric=1.2;
+    unitspace=8.\mm;
+    linewidth=18.\cm;
+    gourlay_maxmeasures=4.;
+    gourlay_energybound = 70000.;
+	basicspace = 2.8\pt;
+  }
+}
+
+
+
+
+
diff -urN ../lilypond-0.1.6/input/header.ly ./input/header.ly
--- ../lilypond-0.1.6/input/header.ly	Sun Aug 10 17:13:28 1997
+++ ./input/header.ly	Thu Aug 14 14:44:53 1997
@@ -2,12 +2,16 @@
 
  filename:
  title:
+ date:
  description: 
+ opus:
+ source:
  composers:
  entered-by:
  copyright:
-
+ remarks:
  Tested Features:
+
 EndMudelaHeader
 %}
 \version "0.1.1";
diff -urN ../lilypond-0.1.6/input/scsii-menuetto.ly ./input/scsii-menuetto.ly
--- ../lilypond-0.1.6/input/scsii-menuetto.ly	Sun Aug 10 17:13:29 1997
+++ ./input/scsii-menuetto.ly	Thu Aug 14 14:41:51 1997
@@ -3,6 +3,8 @@
  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)
  entered-by: JCN
  copyright: public domain
diff -urN ../lilypond-0.1.6/input/standchen.ly ./input/standchen.ly
--- ../lilypond-0.1.6/input/standchen.ly	Tue Aug 12 14:38:00 1997
+++ ./input/standchen.ly	Thu Aug 14 14:43:42 1997
@@ -2,11 +2,11 @@
 
  filename: standchen.ly
  title: St\"andchen (Serenade) "Leise flehen meine Lieder"
- description:  D.957 No.4
+ opus:  D. 957 No. 4
  composers: Franz Schubert (1797-1828)
 	 Text by Ludwig Rellstab (1799-1860)
  entered-by:JCN
- copyright:
+ copyright: public domain
 
  Tested Features: multivoice, accents, lyrics, chords, piano music
 
diff -urN ../lilypond-0.1.6/input/toccata-fuga-E.ly ./input/toccata-fuga-E.ly
--- ../lilypond-0.1.6/input/toccata-fuga-E.ly	Sun Aug 10 17:13:30 1997
+++ ./input/toccata-fuga-E.ly	Thu Aug 14 14:48:41 1997
@@ -1,14 +1,14 @@
 %{MudelaHeader
 
  filename: toccata-fuga-E.ly
- title: toccata and fuga in E-major bwv 566
- description:  
+ 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)
  entered-by: JCN
- copyright:
+ copyright: public domain
 
  Tested Features:
  purpose of this file is testing: 
@@ -72,6 +72,7 @@
 
 fuga2_right = \melodic{
 	\$fuga2_commands  
+	\clef violin;
 	% 15
 	\octave c';
 	<\multi 2;
diff -urN ../lilypond-0.1.6/input/twinkle.ly ./input/twinkle.ly
--- ../lilypond-0.1.6/input/twinkle.ly	Tue Aug 12 14:26:57 1997
+++ ./input/twinkle.ly	Thu Aug 14 14:49:15 1997
@@ -3,6 +3,7 @@
  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"
diff -urN ../lilypond-0.1.6/input/wohltemperirt.ly ./input/wohltemperirt.ly
--- ../lilypond-0.1.6/input/wohltemperirt.ly	Mon Aug 11 02:02:41 1997
+++ ./input/wohltemperirt.ly	Thu Aug 14 14:41:18 1997
@@ -1,7 +1,10 @@
 %{
- title: Das Wohltemperirte Clavier I, Fuga II (c-minor)
- description: following Henle's Urtext
- composer(s): J.S. Bach
+ filename: wohltemperirt.ly
+ title: Fuga a 3
+ description: Das Wohltemperirte Clavier I, Fuga II (c-minor) 
+ Opus: BWV ?
+ source: Henle's Urtext
+ composer(s): Johann Sebastian Bach (1685-1750)
  entered-by: HWN and Werner Lemberg
  copyright: Public Domain 
 
diff -urN ../lilypond-0.1.6/lily/VERSION ./lily/VERSION
--- ../lilypond-0.1.6/lily/VERSION	Wed Aug 13 01:12:04 1997
+++ ./lily/VERSION	Wed Aug 13 16:34:29 1997
@@ -1,6 +1,6 @@
 MAJOR_VERSION = 0
 MINOR_VERSION = 1
-PATCH_LEVEL = 6
+PATCH_LEVEL = 7
 # use to send patches, always empty for released version:
 # include separator: ".postfix", "-pl" makes rpm barf
 
diff -urN ../lilypond-0.1.6/lily/audio-element.cc ./lily/audio-element.cc
--- ../lilypond-0.1.6/lily/audio-element.cc	Thu Jan  1 01:00:00 1970
+++ ./lily/audio-element.cc	Wed Aug 13 21:47:01 1997
@@ -0,0 +1,13 @@
+/*
+  audio-element.cc -- implement Audio_element
+
+  source file of the GNU LilyPond music typesetter
+
+  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+*/
+
+#include "audio-element.hh"
+ 
+IMPLEMENT_IS_TYPE_B(Audio_element);
+Audio_element::~Audio_element()
+{}
diff -urN ../lilypond-0.1.6/lily/audio-item.cc ./lily/audio-item.cc
--- ../lilypond-0.1.6/lily/audio-item.cc	Fri Aug  8 13:52:54 1997
+++ ./lily/audio-item.cc	Wed Aug 13 21:47:30 1997
@@ -86,3 +86,5 @@
     return new Midi_text( this );
 }
 
+
+IMPLEMENT_IS_TYPE_B1(Audio_item, Audio_element);
diff -urN ../lilypond-0.1.6/lily/audio-score.cc ./lily/audio-score.cc
--- ../lilypond-0.1.6/lily/audio-score.cc	Fri Aug  8 13:52:54 1997
+++ ./lily/audio-score.cc	Wed Aug 13 22:25:51 1997
@@ -34,13 +34,13 @@
 void
 Audio_score::output( Midi_stream& midi_stream_r )
 {
-    int tracks_i = audio_staff_p_list_.size() + 1;
+    int tracks_i = audio_staff_l_list_.size() + 1;
     // ugh
     int clocks_per_4_i = 384;
     midi_stream_r << Midi_header( 1, tracks_i, clocks_per_4_i );
     output_header_track( midi_stream_r );
     int n = 1;
-    for ( PCursor<Audio_staff*> i( audio_staff_p_list_ ); i.ok(); i++ )
+    for ( PCursor<Audio_staff*> i( audio_staff_l_list_ ); i.ok(); i++ )
 	i->output( midi_stream_r, n++ );
 }
 
@@ -81,9 +81,15 @@
 }
 
 void
-Audio_score::play( Audio_staff* p )
+Audio_score::add_staff( Audio_staff* l )
 {
-    audio_staff_p_list_.bottom().add( p );
+    audio_staff_l_list_.bottom().add( l );
+}
+
+void
+Audio_score::add(Audio_element *p)
+{
+    audio_elem_p_list_.bottom().add( p);
 }
 
 void
@@ -102,15 +108,5 @@
 void
 Audio_score::process()
 {
-#if 0
-    clean_cols();
-    print();
-    *mlog << "Preprocessing elements... " <<flush;
-    preprocess();
-    *mlog << "\nCalculating column positions ... " <<flush;
-    calc_breaking();
-    *mlog << "\nPostprocessing elements..." << endl;
-    postprocess();
-#endif
 }
 
diff -urN ../lilypond-0.1.6/lily/audio-staff.cc ./lily/audio-staff.cc
--- ../lilypond-0.1.6/lily/audio-staff.cc	Fri Aug  8 13:52:54 1997
+++ ./lily/audio-staff.cc	Wed Aug 13 21:47:46 1997
@@ -13,9 +13,9 @@
 #include "midi-walker.hh"
 
 void
-Audio_staff::add( Audio_item* p )
+Audio_staff::add( Audio_item* l )
 {
-    audio_item_p_list_.bottom().add( p );
+    audio_item_l_list_.bottom().add( l );
 }
 
 void
@@ -27,3 +27,5 @@
 	i.process();
     midi_stream_r << midi_track;
 }
+
+IMPLEMENT_IS_TYPE_B1(Audio_staff, Audio_element);
diff -urN ../lilypond-0.1.6/lily/axis-group.cc ./lily/axis-group.cc
--- ../lilypond-0.1.6/lily/axis-group.cc	Tue Aug 12 21:06:42 1997
+++ ./lily/axis-group.cc	Wed Aug 13 23:20:04 1997
@@ -62,7 +62,7 @@
 	e->axis_group_l_a_[a1] = 0;
 	e->axis_group_l_a_[a2] = 0;  
     }
-    elem_l_arr_.set_size(0);
+    elem_l_arr_.clear();
 }
 
 
diff -urN ../lilypond-0.1.6/lily/bar-column-grav.cc ./lily/bar-column-grav.cc
--- ../lilypond-0.1.6/lily/bar-column-grav.cc	Fri Aug  8 02:02:46 1997
+++ ./lily/bar-column-grav.cc	Wed Aug 13 23:20:04 1997
@@ -45,7 +45,7 @@
 	    script_l_arr_[i]->breakable_b_ = true;
 	    barcol_p_->add(script_l_arr_[i]);
 	}
-	script_l_arr_.set_size(0);
+	script_l_arr_.clear();
     }
 }
 
@@ -61,7 +61,7 @@
 void
 Bar_column_engraver::do_post_move_processing()
 {
-    script_l_arr_.set_size(0);
+    script_l_arr_.clear();
     bar_l_ =0;
 }
 
diff -urN ../lilypond-0.1.6/lily/collision-grav.cc ./lily/collision-grav.cc
--- ../lilypond-0.1.6/lily/collision-grav.cc	Mon Jul 28 23:56:54 1997
+++ ./lily/collision-grav.cc	Wed Aug 13 17:00:05 1997
@@ -16,9 +16,10 @@
     if (!(i.elem_l_->name() == Note_column::static_name()))
 	return;
 
-    if (!col_p_)
+    if (!col_p_) {
 	col_p_ = new Collision;
-    
+	announce_element(Score_elem_info(col_p_,0));
+    }
     col_p_->add((Note_column*)i.elem_l_->item());
 }
 
diff -urN ../lilypond-0.1.6/lily/collision.cc ./lily/collision.cc
--- ../lilypond-0.1.6/lily/collision.cc	Wed Aug  6 17:26:06 1997
+++ ./lily/collision.cc	Wed Aug 13 23:20:04 1997
@@ -20,6 +20,7 @@
 Collision::add(Note_column* ncol_l)
 {
     clash_l_arr_.push(ncol_l);
+    add_element( ncol_l );
     add_dependency(ncol_l);
 }
 /**
@@ -76,7 +77,7 @@
     do {
 	if (!clash_group_arr_a[idx(d, false)].size()){
 	    clash_group_arr_a[idx(d,  false)] = clash_group_arr_a[idx(d, true)];
-	    clash_group_arr_a[idx(d, true)].set_size(0);
+	    clash_group_arr_a[idx(d, true)].clear();
 	}
     } while ((d *= -1) != 1);
 				  
diff -urN ../lilypond-0.1.6/lily/dynamic-grav.cc ./lily/dynamic-grav.cc
--- ../lilypond-0.1.6/lily/dynamic-grav.cc	Mon Jul 28 23:56:54 1997
+++ ./lily/dynamic-grav.cc	Wed Aug 13 23:20:04 1997
@@ -28,7 +28,7 @@
 void
 Dynamic_engraver::do_post_move_processing()
 {
-    dynamic_req_l_arr_.set_size(0);
+    dynamic_req_l_arr_.clear();
 }
 
 bool    
diff -urN ../lilypond-0.1.6/lily/engraver-group.cc ./lily/engraver-group.cc
--- ../lilypond-0.1.6/lily/engraver-group.cc	Tue Aug 12 14:00:18 1997
+++ ./lily/engraver-group.cc	Wed Aug 13 23:20:04 1997
@@ -273,7 +273,7 @@
 	       nongroup_l_arr_[i]->acknowledge_element(info);
        }
     }
-    announce_info_arr_.set_size(0);
+    announce_info_arr_.clear();
 }
 
 
diff -urN ../lilypond-0.1.6/lily/grouping.cc ./lily/grouping.cc
--- ../lilypond-0.1.6/lily/grouping.cc	Sat Aug  2 14:49:14 1997
+++ ./lily/grouping.cc	Wed Aug 13 23:20:04 1997
@@ -14,7 +14,7 @@
 Rhythmic_grouping::init()
 {
     interval_ = 0;
-    children.set_size(0);     
+    children.clear();     
 }
 
 void
diff -urN ../lilypond-0.1.6/lily/horizontal-align-item.cc ./lily/horizontal-align-item.cc
--- ../lilypond-0.1.6/lily/horizontal-align-item.cc	Tue Aug 12 23:22:13 1997
+++ ./lily/horizontal-align-item.cc	Wed Aug 13 23:20:04 1997
@@ -69,8 +69,8 @@
 		Horizontal_align_item_content(
 		    item_l_arr_[i], priority_i_arr_[i]));
 	content.sort(Horizontal_align_item_content::compare);
-	item_l_arr_.set_size(0);
-	priority_i_arr_.set_size(0);
+	item_l_arr_.clear();
+	priority_i_arr_.clear();
 	for  (int i =0; i < content.size(); i++) {
 	    item_l_arr_.push( content[i].item_l_ );
 	    priority_i_arr_.push( content[i].priority_i_);
diff -urN ../lilypond-0.1.6/lily/include/audio-element.hh ./lily/include/audio-element.hh
--- ../lilypond-0.1.6/lily/include/audio-element.hh	Thu Jan  1 01:00:00 1970
+++ ./lily/include/audio-element.hh	Wed Aug 13 21:51:57 1997
@@ -0,0 +1,19 @@
+/*
+  audio-element.hh -- declare Audio_element
+
+  source file of the GNU LilyPond music typesetter
+
+  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+*/
+
+
+#ifndef AUDIO_ELEMENT_HH
+#define AUDIO_ELEMENT_HH
+
+#include "virtual-methods.hh"
+
+struct Audio_element {
+    virtual ~Audio_element();
+    DECLARE_MY_RUNTIME_TYPEINFO;
+};
+#endif // AUDIO_ELEMENT_HH
diff -urN ../lilypond-0.1.6/lily/include/audio-item.hh ./lily/include/audio-item.hh
--- ../lilypond-0.1.6/lily/include/audio-item.hh	Fri Aug  8 13:52:54 1997
+++ ./lily/include/audio-item.hh	Wed Aug 13 21:49:44 1997
@@ -9,29 +9,30 @@
 
 #include "lily-proto.hh"
 #include "string.hh"
+#include "audio-element.hh"
 
 /**
   Any piece of audio information.
   We need virtual constructors, 
   let's try decentralised factory for specific audio implemenations.
+
+  TODO:
+
+  virtual Niff_item* niff_item_p() = 0;
+  
+  virtual CSound_item* score_item_p() = 0;
  */
-struct Audio_item {
+struct Audio_item : public Audio_element {
     Audio_item( Request* req_l );
 
     /// Create a midi-item from myself.
     virtual Midi_item* midi_item_p() = 0;
 
-#if 0
-    /// Not implemented. Anyone?
-    virtual Niff_item* niff_item_p() = 0;
-
-    /// Not implemented. Anyone?
-    virtual Cscore_item* score_item_p() = 0;
-#endif
-    
     Audio_column* audio_column_l_;
     Request* req_l_;
 
+    DECLARE_MY_RUNTIME_TYPEINFO;
+    
 private:
     Audio_item( Audio_item const& );
     Audio_item& operator=( Audio_item const& );
diff -urN ../lilypond-0.1.6/lily/include/audio-score.hh ./lily/include/audio-score.hh
--- ../lilypond-0.1.6/lily/include/audio-score.hh	Fri Aug  8 13:52:54 1997
+++ ./lily/include/audio-score.hh	Wed Aug 13 21:57:42 1997
@@ -7,7 +7,7 @@
 #ifndef AUDIO_SCORE_HH
 #define AUDIO_SCORE_HH
 
-#include "proto.hh"
+#include "lily-proto.hh"
 #include "plist.hh"
 
 /** all stuff which goes onto midi. notes, signs, symbols in a score
@@ -20,16 +20,19 @@
     Audio_score( Score* l );
 
     void add( Audio_column* );
+    void add_staff( Audio_staff* l );
+    void add(Audio_element*p);
 
+    
     void output( Midi_stream& midi_stream_r );
     void output_header_track( Midi_stream& midi_stream_r );
 
-    void play( Audio_staff* p );
     void print() const;
     void process();
 
     Pointer_list<Audio_column*> audio_column_p_list_;
-    Pointer_list<Audio_staff*> audio_staff_p_list_;
+    Link_list<Audio_staff*> audio_staff_l_list_;
+    Pointer_list<Audio_element*> audio_elem_p_list_;
     Score* score_l_;
 };
 
diff -urN ../lilypond-0.1.6/lily/include/audio-staff.hh ./lily/include/audio-staff.hh
--- ../lilypond-0.1.6/lily/include/audio-staff.hh	Fri Aug  8 13:52:54 1997
+++ ./lily/include/audio-staff.hh	Wed Aug 13 21:46:18 1997
@@ -10,12 +10,14 @@
 #include "proto.hh"
 #include "plist.hh"
 #include "lily-proto.hh"
+#include "audio-element.hh"
 
-struct Audio_staff {
-    void add( Audio_item* p );
+struct Audio_staff : public Audio_element {
+    void add( Audio_item*  l);
     void output( Midi_stream& midi_stream_r, int track_i );
 
-    Pointer_list<Audio_item*> audio_item_p_list_;
+    Link_list<Audio_item*> audio_item_l_list_;
+    DECLARE_MY_RUNTIME_TYPEINFO;
 };
 
 #endif // AUDIO_STAFF_HH
diff -urN ../lilypond-0.1.6/lily/include/collision.hh ./lily/include/collision.hh
--- ../lilypond-0.1.6/lily/include/collision.hh	Tue Aug 12 21:31:21 1997
+++ ./lily/include/collision.hh	Wed Aug 13 16:36:00 1997
@@ -10,7 +10,7 @@
 #ifndef COLLISION_HH
 #define COLLISION_HH
 #include "lily-proto.hh"
-#include "item.hh"
+#include "elem-group-item.hh"
 
 /**
   Resolve conflicts between various Note_columns (chords).
@@ -20,7 +20,7 @@
   multistaff support (see Chlapik: equal noteheads should be on the
   same hpos.)  
 */
-class Collision : public Item {
+class Collision : public Horizontal_vertical_group_item {
 protected:
     virtual void do_substitute_dependency(Score_elem*,Score_elem*);
     virtual void do_pre_processing();
@@ -29,6 +29,5 @@
     DECLARE_MY_RUNTIME_TYPEINFO;
     void add (Note_column*ncol_l);
     Collision();
-    
 };
 #endif // COLLISION_HH
diff -urN ../lilypond-0.1.6/lily/include/item.hh ./lily/include/item.hh
--- ../lilypond-0.1.6/lily/include/item.hh	Tue Aug 12 21:31:47 1997
+++ ./lily/include/item.hh	Wed Aug 13 17:04:16 1997
@@ -32,6 +32,7 @@
 
     /// should be put in a breakable col.
     bool breakable_b_;
+    int break_status_i_;
     /// nobreak = 0, pre = -1, post = 1
     int break_status_i()const;
     Item * find_prebroken_piece(PCol*)const;
diff -urN ../lilypond-0.1.6/lily/include/lily-proto.hh ./lily/include/lily-proto.hh
--- ../lilypond-0.1.6/lily/include/lily-proto.hh	Wed Jan  1 00:00:00 1997
+++ ./lily/include/lily-proto.hh	Wed Jan  1 00:00:00 1997
@@ -15,6 +15,7 @@
 struct Axis_group_element;
 struct Axis_group;
 struct Translator;
+struct Audio_element;
 struct Audio_column;
 struct Audio_item;
 struct Audio_key;
diff -urN ../lilypond-0.1.6/lily/include/p-col.hh ./lily/include/p-col.hh
--- ../lilypond-0.1.6/lily/include/p-col.hh	Tue Aug 12 21:28:14 1997
+++ ./lily/include/p-col.hh	Wed Aug 13 20:56:46 1997
@@ -79,7 +79,7 @@
     void set_rank(int);
 
     void OK() const;
- void set_breakable();
+    void set_breakable();
     virtual void do_set_breakable();
     void print()const;
 private:
diff -urN ../lilypond-0.1.6/lily/include/p-score.hh ./lily/include/p-score.hh
--- ../lilypond-0.1.6/lily/include/p-score.hh	Fri Aug  8 09:39:35 1997
+++ ./lily/include/p-score.hh	Wed Aug 13 17:29:17 1997
@@ -49,9 +49,9 @@
        add the item in specified containers. If breakstatus is set
        properly, add it to the {pre,post}break of the pcol.
        */
-    void typeset_item(Item *item_p,  PCol *pcol_l,int breakstatus=0);
+    void typeset_item(Item *item_p,  PCol *pcol_l);
 
-    ///    add to bottom of pcols
+    /// add to bottom of pcols
     void add(PCol*);
 
     /**
diff -urN ../lilypond-0.1.6/lily/include/performer.hh ./lily/include/performer.hh
--- ../lilypond-0.1.6/lily/include/performer.hh	Fri Aug  8 13:52:55 1997
+++ ./lily/include/performer.hh	Wed Aug 13 21:34:27 1997
@@ -40,8 +40,7 @@
     virtual bool do_try_request(Request*);
     virtual int get_tempo_i() const;
     virtual void do_print() const;
-    virtual void play( Audio_item* p );
-    virtual void play( Audio_staff* p );
+    virtual void play( Audio_element * elem_p  );
 };
 
 #include "global-performers.hh"
diff -urN ../lilypond-0.1.6/lily/include/score-grav.hh ./lily/include/score-grav.hh
--- ../lilypond-0.1.6/lily/include/score-grav.hh	Tue Aug  5 21:13:49 1997
+++ ./lily/include/score-grav.hh	Thu Aug 14 14:28:04 1997
@@ -31,7 +31,7 @@
     Score_column* musical_column_l_;
     
     friend class Score;
-    void set_cols(Score_column*,Score_column*);
+    void set_columns(Score_column*,Score_column*);
     void typeset_all();
     
 public:
diff -urN ../lilypond-0.1.6/lily/include/score-performer.hh ./lily/include/score-performer.hh
--- ../lilypond-0.1.6/lily/include/score-performer.hh	Fri Aug  8 13:52:55 1997
+++ ./lily/include/score-performer.hh	Wed Aug 13 22:26:23 1997
@@ -23,17 +23,16 @@
     ~Score_performer();
 
 protected:
-    virtual Translator* ancestor_l( int l );
+    virtual Translator* ancestor_l(int l);
     virtual int depth_i() const;
 
     virtual void finish();
-    virtual void prepare( Moment mom );
+    virtual void prepare(Moment mom);
     virtual void process();
-    virtual void set_score( Score* score_l );
+    virtual void set_score(Score* score_l);
     virtual void start();
     virtual int get_tempo_i() const;
-    virtual void play( Audio_item* p );
-    virtual void play( Audio_staff* p );
+    virtual void play(Audio_element* p);
 
 private:
     void header(Midi_stream&);
diff -urN ../lilypond-0.1.6/lily/include/staff-performer.hh ./lily/include/staff-performer.hh
--- ../lilypond-0.1.6/lily/include/staff-performer.hh	Fri Aug  8 13:52:55 1997
+++ ./lily/include/staff-performer.hh	Wed Aug 13 21:35:19 1997
@@ -21,7 +21,7 @@
     String instrument_str();
 
 protected:
-    virtual void play( Audio_item* p );
+    virtual void play( Audio_element* p );
     virtual void do_removal_processing();
     virtual void do_creation_processing();
 
diff -urN ../lilypond-0.1.6/lily/item.cc ./lily/item.cc
--- ../lilypond-0.1.6/lily/item.cc	Wed Aug 13 00:40:44 1997
+++ ./lily/item.cc	Wed Aug 13 18:02:38 1997
@@ -15,6 +15,7 @@
 Item::Item()
 {
     breakable_b_ = false;
+    break_status_i_ = 0;
     pcol_l_ = 0;
     broken_to_a_[0] = broken_to_a_[1]=0;
 }
@@ -45,15 +46,7 @@
 int
 Item::break_status_i() const
 {
-    PCol * c = pcol_l_;
-    if (c->breakable_b())
-	return 0;
-    else if (!c->daddy_l_) 
-	return 0; 
-    else if (c == c->daddy_l_->prebreak_p_)
-	return -1;
-    else 
-	return 1;
+    return break_status_i_;
 }
 
 void
@@ -66,8 +59,8 @@
 	Item * item_p = clone()->item();
 	item_p->copy_dependencies(*this);
 	
-
-	pscore_l_->typeset_item(item_p, pcol_l_, -1+ 2*i);
+	item_p->break_status_i_ =  -1+ 2*i;
+	pscore_l_->typeset_item(item_p, pcol_l_);
 	item_p->handle_prebroken_dependencies();
 	new_copies[i] =item_p;
     }
@@ -77,7 +70,7 @@
 void
 Item::do_breakable_col_processing()
 {
-    if (!breakable_b_ || !pcol_l_->breakable_b() )
+    if (!breakable_b_ || !pcol_l_->breakable_b())
 	return;
 
     copy_breakable_items();
diff -urN ../lilypond-0.1.6/lily/key-grav.cc ./lily/key-grav.cc
--- ../lilypond-0.1.6/lily/key-grav.cc	Fri Aug  8 10:15:46 1997
+++ ./lily/key-grav.cc	Wed Aug 13 23:20:04 1997
@@ -94,7 +94,7 @@
 Key_engraver::read_req(Key_change_req * r)
 {
     key_.multi_octave_b_ = r->multi_octave_b_;
-    accidental_idx_arr_.set_size(0);
+    accidental_idx_arr_.clear();
     for (int i = 0; i < r->melodic_p_arr_.size(); i ++) {
 	Melodic_req *  m_l =r->melodic_p_arr_[i];
 	int n_i =m_l->notename_i_;
diff -urN ../lilypond-0.1.6/lily/local-key-grav.cc ./lily/local-key-grav.cc
--- ../lilypond-0.1.6/lily/local-key-grav.cc	Fri Aug  8 10:20:44 1997
+++ ./lily/local-key-grav.cc	Wed Aug 13 23:20:04 1997
@@ -64,10 +64,10 @@
 	typeset_element(key_item_p);
     }
     
-    mel_l_arr_.set_size(0);
-    tied_l_arr_.set_size(0);
-    support_l_arr_.set_size(0);
-    forced_l_arr_.set_size(0);	
+    mel_l_arr_.clear();
+    tied_l_arr_.clear();
+    support_l_arr_.clear();
+    forced_l_arr_.clear();	
 }
 /*
   whoah .. this looks hairy!
diff -urN ../lilypond-0.1.6/lily/midi-def.cc ./lily/midi-def.cc
--- ../lilypond-0.1.6/lily/midi-def.cc	Tue Aug  5 23:37:00 1997
+++ ./lily/midi-def.cc	Wed Aug 13 23:25:20 1997
@@ -29,7 +29,7 @@
 
 Midi_def::Midi_def()
 {
-    outfile_str_ = "lelie.midi"; 
+    outfile_str_ = ""; 
     itrans_p_ = 0;
     // ugh
     set_tempo( Moment( 1, 4 ), 60 );
diff -urN ../lilypond-0.1.6/lily/midi-walker.cc ./lily/midi-walker.cc
--- ../lilypond-0.1.6/lily/midi-walker.cc	Fri Aug  8 13:52:55 1997
+++ ./lily/midi-walker.cc	Wed Aug 13 21:41:43 1997
@@ -27,7 +27,7 @@
 }
 
 Midi_walker::Midi_walker( Audio_staff* audio_staff_l, Midi_track* track_l )
-    : PCursor<Audio_item*>( audio_staff_l->audio_item_p_list_ )
+    : PCursor<Audio_item*>( audio_staff_l->audio_item_l_list_ )
 {
     track_l_ = track_l;
     last_mom_ = 0;
diff -urN ../lilypond-0.1.6/lily/my-lily-parser.cc ./lily/my-lily-parser.cc
--- ../lilypond-0.1.6/lily/my-lily-parser.cc	Wed Aug 13 02:16:05 1997
+++ ./lily/my-lily-parser.cc	Wed Aug 13 23:20:03 1997
@@ -270,11 +270,11 @@
     for (int i = 0; i < pre_reqs.size(); i++) {
 	v->add(pre_reqs[i]);
     }
-    pre_reqs.set_size(0);
+    pre_reqs.clear();
     for (int i = 0; i <post_reqs.size(); i++) {
 	v->add(post_reqs[i]);
     }
-    post_reqs.set_size(0);
+    post_reqs.clear();
 }
 
 Input
diff -urN ../lilypond-0.1.6/lily/note-column-grav.cc ./lily/note-column-grav.cc
--- ../lilypond-0.1.6/lily/note-column-grav.cc	Tue Aug  5 18:28:31 1997
+++ ./lily/note-column-grav.cc	Wed Aug 13 23:20:03 1997
@@ -78,7 +78,7 @@
 		ncol_p_->add(script_l_arr_[i]);
 	}
     
-	script_l_arr_.set_size(0);
+	script_l_arr_.clear();
     }
 
 }
@@ -107,7 +107,7 @@
 void
 Note_column_engraver::do_post_move_processing()
 {
-    script_l_arr_.set_size(0);
+    script_l_arr_.clear();
     stem_l_ =0;
 }
 
diff -urN ../lilypond-0.1.6/lily/p-score.cc ./lily/p-score.cc
--- ../lilypond-0.1.6/lily/p-score.cc	Tue Aug 12 21:28:38 1997
+++ ./lily/p-score.cc	Wed Aug 13 17:22:37 1997
@@ -41,18 +41,15 @@
 }
 
 void
-Paper_score::typeset_item(Item *i, PCol *c, int breakstat)
+Paper_score::typeset_item(Item *i, PCol *c)
 {
     assert(c && i);
+    int breakstat = i->break_status_i_;
 
     if (breakstat == -1) {
-	typeset_item(i, c->prebreak_p_);
-	return;
-    }
-
-    if (breakstat == 1) {
-	typeset_item(i, c->postbreak_p_);
-	return;
+	c = c->prebreak_p_;
+    }else if (breakstat == 1) {
+	c = c->postbreak_p_;
     }
 
     c->add(i);
diff -urN ../lilypond-0.1.6/lily/performer.cc ./lily/performer.cc
--- ../lilypond-0.1.6/lily/performer.cc	Fri Aug  8 13:52:55 1997
+++ ./lily/performer.cc	Wed Aug 13 21:34:56 1997
@@ -30,13 +30,7 @@
 }
 
 void 
-Performer::play( Audio_item* p ) 
-{ 
-    daddy_perf_l_->play( p ); 
-}
-
-void 
-Performer::play( Audio_staff* p )
+Performer::play( Audio_element* p ) 
 { 
     daddy_perf_l_->play( p ); 
 }
@@ -81,13 +75,6 @@
 Performer::creation_processing()
 {
     if (!init_b_) { 
-#if 0
-	if ( daddy_perf_l_ ) {
-	    init_b_ = true;	// ugh. avoid recursion
-	    daddy_perf_l_->creation_processing();
-	    init_b_ = false;
-	}
-#endif	
 	do_creation_processing();
 	init_b_ = true;
     }
diff -urN ../lilypond-0.1.6/lily/rest-collision-grav.cc ./lily/rest-collision-grav.cc
--- ../lilypond-0.1.6/lily/rest-collision-grav.cc	Mon Jul 28 23:56:53 1997
+++ ./lily/rest-collision-grav.cc	Wed Aug 13 17:00:48 1997
@@ -31,8 +31,10 @@
     } 
     else if (nC == Note_column::static_name()) {
 	// what should i do, what should _engraver do?
-	if (!rest_collision_p_)
+	if (!rest_collision_p_) {
 	    rest_collision_p_ = new Rest_collision;
+	    announce_element(Score_elem_info(rest_collision_p_, 0));
+	}
 	rest_collision_p_->add((Note_column*)i.elem_l_->item());
     }
     else if (nC == Rest_column::static_name()) {
diff -urN ../lilypond-0.1.6/lily/score-grav.cc ./lily/score-grav.cc
--- ../lilypond-0.1.6/lily/score-grav.cc	Tue Aug 12 13:22:33 1997
+++ ./lily/score-grav.cc	Thu Aug 14 14:29:12 1997
@@ -40,14 +40,9 @@
 void
 Score_engraver::prepare(Moment w)
 {
-    command_column_l_ = new Score_column(w);
-    musical_column_l_ = new Score_column(w);
+    set_columns(new Score_column(w),  new Score_column(w));
     
-    command_column_l_->musical_b_ = false;
-    musical_column_l_->musical_b_ = true;
     
-    score_l_->pscore_p_->add(command_column_l_);
-    score_l_->pscore_p_->add(musical_column_l_);
     disallow_break_b_ = false;
     post_move_processing();
 }
@@ -77,6 +72,7 @@
     scoreline_l_->right_col_l_ = get_staff_info().command_pcol_l();
     scoreline_l_->right_col_l_ ->set_breakable();
     typeset_all();
+    set_columns(0,0);
 }
 
 void
@@ -138,12 +134,12 @@
     Paper_score *ps_l = score_l_->pscore_p_;
 
     for  (int i =0; i < nobreak_item_p_arr_.size(); i++) {
-	ps_l->typeset_item(nobreak_item_p_arr_[i], c, 0);
+	ps_l->typeset_item(nobreak_item_p_arr_[i], c);
 
 	// should get rid of this.. .
 	scoreline_l_->add_dependency(nobreak_item_p_arr_[i]);
     }
-    nobreak_item_p_arr_.set_size(0);
+    nobreak_item_p_arr_.clear();
     
     for (int i=0; i < musical_item_p_arr_.size(); i++) {
 	PCol* m = get_staff_info().musical_pcol_l();
@@ -153,11 +149,11 @@
 	if (elem_p->spanner()) {
 	    ps_l->typeset_unbroken_spanner(elem_p->spanner());
 	} else if (elem_p->item()) {
-	    ps_l->typeset_item(elem_p->item(), m, 0);
+	    ps_l->typeset_item(elem_p->item(), m);
 	} else
 	    assert(false);
     }
-    musical_item_p_arr_.set_size(0);
+    musical_item_p_arr_.clear();
 }
 
 
@@ -174,6 +170,33 @@
     Engraver_group_engraver::do_pre_move_processing();
     
     typeset_all();
+}
+
+void
+Score_engraver::set_columns(Score_column *new_command_l, 
+			    Score_column *new_musical_l)
+{
+    if ( command_column_l_ && command_column_l_->used_b() )
+	score_l_->pscore_p_->add(command_column_l_);
+    else {
+	delete command_column_l_ ;
+	command_column_l_ =0;
+    }
+    if (new_command_l) {
+	command_column_l_ = new_command_l;
+	command_column_l_->musical_b_ = false;
+    }
+    if ( musical_column_l_ && musical_column_l_->used_b())
+	score_l_->pscore_p_->add (musical_column_l_);
+    else {
+	delete musical_column_l_;
+	musical_column_l_ = 0;
+    }
+    
+    if (new_musical_l) {
+	musical_column_l_ = new_musical_l;
+	musical_column_l_->musical_b_ = true;
+    }
 }
 
 
diff -urN ../lilypond-0.1.6/lily/score-performer.cc ./lily/score-performer.cc
--- ../lilypond-0.1.6/lily/score-performer.cc	Fri Aug  8 13:52:56 1997
+++ ./lily/score-performer.cc	Wed Aug 13 22:26:23 1997
@@ -2,7 +2,7 @@
   score-performer.cc -- implement Score_performer
 
   source file of the GNU LilyPond music typesetter
-  
+
   (c) 1996, 1997 Jan Nieuwenhuizen <jan@digicash.com>
  */
 
@@ -18,77 +18,87 @@
 #include "score.hh"
 #include "source-file.hh"
 #include "source.hh"
+#include "audio-staff.hh"
 
 IMPLEMENT_IS_TYPE_B1(Score_performer,Performer_group_performer);
+
 ADD_THIS_PERFORMER(Score_performer);
 
+
 Score_performer::Score_performer()
 {
 }
 
+
 Score_performer::~Score_performer()
 {
 }
 
+
 Translator* 
-Score_performer::ancestor_l( int l ) 
+Score_performer::ancestor_l(int l) 
 { 
-    return Global_translator::ancestor_l( l );
+    return Global_translator::ancestor_l(l);
 }
 
+
 int 
 Score_performer::depth_i() const 
 { 
     return Global_translator::depth_i();
 }
 
+
 void
 Score_performer::finish()
 {
     Performer_group_performer::do_removal_processing();
 }
 
-void
-Score_performer::play( Audio_item* l )
-{
-    l->audio_column_l_ = audio_column_l_;
-    audio_column_l_->add( l );
-}
 
 void
-Score_performer::play( Audio_staff* p )
+Score_performer::play(Audio_element * p)
 {
-    score_l_->audio_score_p_->play( p );
+    if  (p->is_type_b(Audio_item::static_name())) {
+	audio_column_l_->add( (Audio_item*)p);
+    } else if (p->is_type_b(Audio_staff::static_name())) {
+	score_l_->audio_score_p_->add_staff( (Audio_staff*)p );
+    }
+    score_l_->audio_score_p_->add(p);
 }
 
+
 void 
-Score_performer::prepare( Moment m )
+Score_performer::prepare(Moment m)
 {
     now_mom_ = m;
-    audio_column_l_ = new Audio_column( m );
-    
-    score_l_->audio_score_p_->add( audio_column_l_ );
+    audio_column_l_ = new Audio_column(m);
+    score_l_->audio_score_p_->add(audio_column_l_);
 }
 
+
 void 
 Score_performer::process()
 {
     process_requests();
 }
 
+
 void
-Score_performer::set_score(Score* score_l )
+Score_performer::set_score(Score* score_l)
 {
-    Global_translator::set_score( score_l );
+    Global_translator::set_score(score_l);
 }
 
+
 void
 Score_performer::start()
 {
 }
 
+
 int
 Score_performer::get_tempo_i()const
 {
-    return score_l_->midi_p_->get_tempo_i(Moment( 1, 4 ));
+    return score_l_->midi_p_->get_tempo_i(Moment(1, 4));
 }
diff -urN ../lilypond-0.1.6/lily/score.cc ./lily/score.cc
--- ../lilypond-0.1.6/lily/score.cc	Tue Aug 12 13:47:44 1997
+++ ./lily/score.cc	Wed Aug 13 23:26:46 1997
@@ -136,7 +136,6 @@
 //	return;
     }
     
-    // debugging
     *mlog << endl;
     pscore_p_->process();
 
diff -urN ../lilypond-0.1.6/lily/scoreline.cc ./lily/scoreline.cc
--- ../lilypond-0.1.6/lily/scoreline.cc	Wed Aug 13 00:28:18 1997
+++ ./lily/scoreline.cc	Wed Aug 13 22:16:36 1997
@@ -32,7 +32,7 @@
 	 PCol* col_l= cols[i];
 	 // all items in the current line & staff.
 	 String chunk_str;
-	 Real delta  = col_l->hpos_f_ - lastpos;
+
 	    
 	 Link_array<Score_elem> elems;
 	    
diff -urN ../lilypond-0.1.6/lily/scores.cc ./lily/scores.cc
--- ../lilypond-0.1.6/lily/scores.cc	Sun Aug 10 18:03:54 1997
+++ ./lily/scores.cc	Wed Aug 13 23:20:03 1997
@@ -37,7 +37,7 @@
 	is_p =0;
 
     }
-    score_array_global.set_size(0);
+    score_array_global.clear();
 }
 
 void
diff -urN ../lilypond-0.1.6/lily/script-grav.cc ./lily/script-grav.cc
--- ../lilypond-0.1.6/lily/script-grav.cc	Mon Aug 11 23:47:50 1997
+++ ./lily/script-grav.cc	Wed Aug 13 23:20:03 1997
@@ -53,13 +53,13 @@
 	script_p->set_staffsym( s_l);
 	typeset_element(script_p);
     }
-    script_p_arr_.set_size(0);
+    script_p_arr_.clear();
 }
 
 void
 Script_engraver::do_post_move_processing()
 {
-    script_req_l_arr_.set_size(0);
+    script_req_l_arr_.clear();
 }
 
 
diff -urN ../lilypond-0.1.6/lily/slur-grav.cc ./lily/slur-grav.cc
--- ../lilypond-0.1.6/lily/slur-grav.cc	Mon Jul 28 23:56:53 1997
+++ ./lily/slur-grav.cc	Wed Aug 13 23:20:03 1997
@@ -85,13 +85,13 @@
 	    end_slur_l_arr_[i]->dir_i_ = dir_i_;
 	typeset_element(end_slur_l_arr_[i]);
     }
-    end_slur_l_arr_.set_size(0);
+    end_slur_l_arr_.clear();
 }
 
 void
 Slur_engraver::do_post_move_processing()
 {
-    new_slur_req_l_arr_.set_size(0);
+    new_slur_req_l_arr_.clear();
 }
 Slur_engraver::~Slur_engraver()
 {
diff -urN ../lilypond-0.1.6/lily/staff-performer.cc ./lily/staff-performer.cc
--- ../lilypond-0.1.6/lily/staff-performer.cc	Fri Aug  8 13:52:56 1997
+++ ./lily/staff-performer.cc	Wed Aug 13 22:24:55 1997
@@ -33,16 +33,16 @@
     audio_staff_p_ = new Audio_staff;
 
     // staff name
-    play( new Audio_text( Audio_text::TRACK_NAME, instrument_str() ) );
+    play(new Audio_text( Audio_text::TRACK_NAME, instrument_str()));
 
     // instrument description
-    play( new Audio_text( Audio_text::INSTRUMENT_NAME, instrument_str() ) );
+    play(new Audio_text( Audio_text::INSTRUMENT_NAME, instrument_str()));
 
     // tempo
-    play( new Audio_tempo( get_tempo_i() ) );
+    play(new Audio_tempo(get_tempo_i()));
 
     // instrument
-    play( new Audio_instrument( instrument_str() ) );
+    play(new Audio_instrument(instrument_str()));
 }
 
 void
@@ -59,9 +59,11 @@
 }
 
 void 
-Staff_performer::play( Audio_item* p )
+Staff_performer::play( Audio_element* p )
 {
-    audio_staff_p_->add( p );
-    Performer::play( p );
+    if (p->is_type_b(Audio_item::static_name())) {
+	audio_staff_p_->add((Audio_item*)p);
+    }
+    Performer::play(p);
 }
 
diff -urN ../lilypond-0.1.6/lily/template8.cc ./lily/template8.cc
--- ../lilypond-0.1.6/lily/template8.cc	Fri Aug  8 13:52:56 1997
+++ ./lily/template8.cc	Wed Aug 13 23:17:02 1997
@@ -15,7 +15,7 @@
 #include "plist.tcc"
 
 
-IPL_instantiate(Audio_item);
+IPL_instantiate(Audio_element);
 IPL_instantiate(Audio_column);
-IPL_instantiate(Audio_staff);
+
 
diff -urN ../lilypond-0.1.6/make/Variables.make ./make/Variables.make
--- ../lilypond-0.1.6/make/Variables.make	Wed Aug 13 02:11:39 1997
+++ ./make/Variables.make	Thu Aug 14 15:34:16 1997
@@ -221,5 +221,5 @@
 
 
 docxx-opts=-S -k -p
-ocxx=doc++
+docxx=doc++
 
diff -urN ../lilypond-0.1.6/tex/dimen.tex ./tex/dimen.tex
--- ../lilypond-0.1.6/tex/dimen.tex	Wed Jul 30 20:54:18 1997
+++ ./tex/dimen.tex	Fri Jul 25 15:01:46 1997
@@ -2,12 +2,11 @@
 % A tex file to help determine dims.
 %
 
-\font\musicfont=musixsps
-\font\slurfont=xhslu16
+\font\musicfont=musix16
+\font\slurfont=xslu16
 \font\specfont=musixspx
-% \def\thefont{\musicfont}
+\def\thefont{\musicfont}
 %\def\thefont{\specfont}
-\def\thefont{\slurfont}
 
 \def\mb#1{{\thefont\char#1}}
 
@@ -21,7 +20,7 @@
         \divide\wid by 2
         \here=-\wid
         \loop\ifdim\here<\wid\advance\here by\inc
-                \hbox to0pt{\kern\here\vrule width0.05pt height 4pt\hss}%
+                \hbox to0pt{\kern\here\vrule width0.05pt height 1pt depth 1pt\hss}%
         \repeat%
 }
 
@@ -32,18 +31,20 @@
         \divide\wid by 2
         \here=-\wid
         \loop\ifdim\here<\wid\advance\here by\inc
-                \vbox to0pt{\vskip\here\vrule width2pt height 0.05pt\vss}%
+                \hbox to0pt{\vbox to0pt{\vss\hrule width2pt height 0.05pt\kern\here}\hss}%
         \repeat%
 }
-\def\twhrul{\hbox to 0pt{\hbox{\hruler{20}\vrule
-        width0.1pt height 3ptdepth 1pt}}}
-\def\twvrul{\hbox{\vbox to 20pt{\vruler{20}\vrule
-        width3pt height 0.1pt}}}
+\def\twhrul{\hbox to 0pt{\hbox{\hruler{20}%
+	\vrule width0.1pt height 2pt depth 2pt}}}
+\def\twvrul{\vbox to0pt{\vss\hbox to0pt{\hss\vruler{12}}\vss}%
+	\kern-1pt\vrule width4pt height 0.1pt}%
+	
  
 \def\doitem#1{
-        #1 %
-         %\twvrul%doesn't work
-        \hbox to 50pt{\qquad\twhrul\mb{#1}\hss}\setbox0=\hbox{\mb{#1}} width \the\wd0\ depth \the\dp0 \ height \the\ht0}
+        #1%
+        \vbox to12pt{\vfill\hbox to0pt{\qquad\kern-1pt\twvrul\hss}}%
+        \hbox to50pt{\qquad\twhrul\mb{#1}\hss}%
+	\setbox0=\hbox{\mb{#1}} width \the\wd0\ depth \the\dp0 \ height \the\ht0}
 
 \newcount\n
 \def\charn{\n=-1
diff -urN ../lilypond-0.1.6/tex/taupindefs.tex ./tex/taupindefs.tex
--- ../lilypond-0.1.6/tex/taupindefs.tex	Thu Aug  7 12:36:51 1997
+++ ./tex/taupindefs.tex	Thu Aug 14 15:11:53 1997
@@ -97,6 +97,7 @@
 \def\ldoubledot{\kern-\notewidth\doubledot}
 \def\ltripledot{\kern-\notewidth\tripledot}
 
+\mdef\turn{67}
 \maccentdef\sforzato{30}{-3/2}
 \maccentdef\marcato{20}{-1/1}
 \maccentdef\imarcato{21}{1/1}
