]> git.donarmstrong.com Git - lilypond.git/commitdiff
release: 1.1.55 release/1.1.55
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Fri, 9 Jul 1999 12:54:17 +0000 (14:54 +0200)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Fri, 9 Jul 1999 12:54:17 +0000 (14:54 +0200)
125 files changed:
Documentation/BLURB.in
Documentation/GNUmakefile
Documentation/bibliography/GNUmakefile [new file with mode: 0644]
Documentation/bibliography/colorado.bib [new file with mode: 0644]
Documentation/bibliography/computer-notation.bib [new file with mode: 0644]
Documentation/bibliography/engraving.bib [new file with mode: 0644]
Documentation/index.yo
Documentation/man/mi2mu.yo [deleted file]
Documentation/man/midi2ly.yo [new file with mode: 0644]
Documentation/man/out/mi2mu.1 [deleted file]
Documentation/man/out/midi2ly.1 [new file with mode: 0644]
Documentation/metadoc/GNUmakefile [new file with mode: 0644]
Documentation/metadoc/fonts.doc [new file with mode: 0644]
Documentation/metadoc/lilypond-overview.doc [new file with mode: 0644]
Documentation/metadoc/musicnotes.sty [new file with mode: 0644]
Documentation/ntweb/index.yo
Documentation/tex/GNUmakefile
Documentation/tex/colorado.bib [deleted file]
Documentation/tex/computer-notation.bib [deleted file]
Documentation/tex/engraving.bib [deleted file]
Documentation/tex/feta20.sty [deleted file]
Documentation/tex/fonts.doc [deleted file]
Documentation/tex/glossary-forms.el [deleted file]
Documentation/tex/lilypond-overview.doc [deleted file]
Documentation/tex/musicnotes.sty [deleted file]
Documentation/tex/other-packages.bib [deleted file]
Documentation/tex/reference-manual.yo [new file with mode: 0644]
Documentation/tex/refman.yo [deleted file]
Documentation/tex/testje.fly
Documentation/tex/tutorial.yo
NEWS
TODO
VERSION
aclocal.m4
debian/GNUmakefile
debian/README.Debian
debian/changelog
debian/control
debian/control.foka
debian/copyright
debian/doc-base [new file with mode: 0644]
debian/out/control
debian/postinst
debian/postrm
debian/preinst
debian/prerm [new file with mode: 0644]
debian/rules
input/bugs/Overture.ly [deleted file]
input/bugs/partial.ly [deleted file]
input/bugs/rcol.fly [deleted file]
input/bugs/semirepeat.ly [deleted file]
input/bugs/slur-over-rest.ly [deleted file]
input/bugs/spacing.ly
input/test/font-body.ly
input/twinkle.ly
lily/bow.cc
lily/crescendo.cc
lily/include/lookup.hh
lily/lookup.cc
lily/repeat-engraver.cc
lily/slur.cc
lily/stem-info.cc
ly/paper16.ly
ly/paper20.ly
ly/params.ly
ly/script.ly
make/lilypond.spec.in
make/out/lelievijver.lsm
make/out/lilypond.lsm
make/out/lilypond.spec
make/toplevel.make.in
mf/feta-schrift.mf
mi2mu/GNUmakefile [deleted file]
mi2mu/TODO [deleted file]
mi2mu/include/GNUmakefile [deleted file]
mi2mu/include/dummy.icc [deleted file]
mi2mu/include/dummy.tcc [deleted file]
mi2mu/include/mi2mu-proto.hh [deleted file]
mi2mu/version.cc [deleted file]
midi2ly/GNUmakefile [new file with mode: 0644]
midi2ly/TODO [new file with mode: 0644]
midi2ly/include/GNUmakefile [new file with mode: 0644]
midi2ly/include/dummy.icc [new file with mode: 0644]
midi2ly/include/dummy.tcc [new file with mode: 0644]
midi2ly/include/mi2mu-proto.hh [new file with mode: 0644]
midi2ly/version.cc [new file with mode: 0644]
mutopia/J.S.Bach/Duette/GNUmakefile [new file with mode: 0644]
mutopia/J.S.Bach/Duette/global-i.ly [new file with mode: 0644]
mutopia/J.S.Bach/Duette/global-ii.ly [new file with mode: 0644]
mutopia/J.S.Bach/Duette/viola-i.ly [new file with mode: 0644]
mutopia/J.S.Bach/Duette/viola-ii.ly [new file with mode: 0644]
mutopia/J.S.Bach/Duette/viola-part.ly [new file with mode: 0644]
mutopia/J.S.Bach/Duette/violino-i.ly [new file with mode: 0644]
mutopia/J.S.Bach/Duette/violino-ii.ly [new file with mode: 0644]
mutopia/J.S.Bach/Duette/violino-part.ly [new file with mode: 0644]
mutopia/J.S.Bach/Duette/violino-viola.ly [new file with mode: 0644]
mutopia/J.S.Bach/Duette/violino-violoncello.ly [new file with mode: 0644]
mutopia/J.S.Bach/Duette/violoncello-i.ly [new file with mode: 0644]
mutopia/J.S.Bach/Duette/violoncello-ii.ly [new file with mode: 0644]
mutopia/J.S.Bach/Duette/violoncello-part.ly [new file with mode: 0644]
mutopia/J.S.Bach/GNUmakefile
mutopia/J.S.Bach/global-i.ly [deleted file]
mutopia/J.S.Bach/viola-i.ly [deleted file]
mutopia/J.S.Bach/viola-part.ly [deleted file]
mutopia/J.S.Bach/violino-i.ly [deleted file]
mutopia/J.S.Bach/violino-part.ly [deleted file]
mutopia/J.S.Bach/violino-viola.ly [deleted file]
mutopia/J.S.Bach/violino-violoncello.ly [deleted file]
mutopia/J.S.Bach/violoncello-i.ly [deleted file]
mutopia/J.S.Bach/violoncello-part.ly [deleted file]
ps/lily.ps
ps/lilyponddefs.ps
scm/lily.scm
scm/script.scm
scripts/convert-mudela.py
scripts/ly2dvi.py
stepmake/aclocal.m4
stepmake/bin/release.py
stepmake/stepmake/toplevel-targets.make
tex/dyndefs.tex [deleted file]
tex/fetdefs.tex
tex/lily-mf-defs.tex [deleted file]
tex/lily-ps-defs.tex
tex/lilyponddefs.tex
tex/titledefs.tex

index a861e52e334a4a81fdba5818860e6d45c0f2c6eb..0833dd214e4c8c47bbef990b2a4c922282f95836 100644 (file)
@@ -1,6 +1,4 @@
-LilyPond is the GNU Project music typesetter.  This program can print
-beautiful sheet music from a music definition file.  It can also play
-mechanical performances to a MIDI file.  Features include multiple
-staffs, meters, clefs, keys, lyrics, versatile input language, cadenzas,
-beams, slurs, triplets, named chords, transposing, formatting scores, 
-part extraction.  It includes a nice font of musical symbols.
+
+LilyPond is the GNU Project music typesetter. It transforms a musical
+description file into beautiful sheet music.
+
index c7dbe8373f69ff5439f3f80eac6ca36966c0ffd2..395991e53a377f2c3c3a0df81b012f2eb13baec6 100644 (file)
@@ -3,7 +3,7 @@
 depth = ..
 
 NAME = documentation
-SUBDIRS=man tex pictures topdocs ntweb
+SUBDIRS=man tex metadoc bibliography pictures topdocs ntweb
 STEPMAKE_TEMPLATES=documentation 
 README_TOP_FILES=NEWS DEDICATION TODO ANNOUNCE-0.1 AIMS
 INFO_FILES = $(wildcard $(outdir)/$(package).info*)
diff --git a/Documentation/bibliography/GNUmakefile b/Documentation/bibliography/GNUmakefile
new file mode 100644 (file)
index 0000000..6e8a382
--- /dev/null
@@ -0,0 +1,75 @@
+# Documentation/tex/Makefile
+
+depth=../..
+
+DATA_FILES = $(wildcard *.data)
+datafiles = $(addprefix $(outdir)/,$(DATA_FILES:.data=.html))
+TEX_FILES = $(wildcard *.tex)
+DOC_FILES = $(wildcard *.doc)
+DVI_FILES = $(addprefix $(outdir)/,$(DOC_FILES:.doc=.dvi) $(YO_FILES:.yo=.dvi))
+OUT_BIB_FILES = $(addprefix $(outdir)/, $(BIB_FILES))
+
+# just include me
+YO_URG_FILES = $(wildcard *.yo-urg)
+
+OUTTEX_FILES = $(addprefix $(outdir)/, $(TEX_FILES))
+OUTDOC_FILES = $(addprefix $(outdir)/, $(DOC_FILES))
+EL_FILES = $(wildcard *.el)
+BIB_FILES= $(wildcard *.bib)
+EXTRA_DIST_FILES= $(BIB_FILES) $(DOC_FILES) $(DATA_FILES) $(EL_FILES) $(YO_URG_FILES) $(TEX_FILES) $(wildcard *.sty) 
+HTML_FILES = $(addprefix $(outdir)/, $(YO_FILES:.yo=.html))
+PS_FILES = $(DVI_FILES:.dvi=.ps)
+
+STEPMAKE_TEMPLATES=tex documentation
+LOCALSTEPMAKE_TEMPLATES=lilypond mudela
+
+export BIBINPUTS:=$(shell pwd)//$(PATHSEP)$(BIBINPUTS)
+include $(depth)/make/stepmake.make 
+
+
+
+
+
+
+dvi: $(OUT_BIB_FILES) $(DVI_FILES)
+
+ps: $(PS_FILES)
+
+# urg
+default:
+
+GENHTMLS = engraving colorado  computer-notation
+OUTGENHTMLS = $(addprefix $(outdir)/, $(GENHTMLS:%=%.html))
+
+#urg should generalise and move Lilypond -> StepMake
+# URG.  Lilypond specific. Move out. 
+$(outdir)/%.html: %.data $(depth)/VERSION
+       $(PYTHON) $(step-bindir)/table-to-html.py --columns=7 --linesep='\r' --package=$(topdir) -o $@ $<
+       $(PYTHON) $(step-bindir)/add-html-footer.py --package=$(topdir) $@
+
+$(outdir)/%.tex: %.data $(depth)/VERSION
+       $(PYTHON) $(step-bindir)/table-to-html.py --columns=7 --linesep='\r' --package=$(topdir) -o $@ --latex $<
+
+
+
+local-WWW: $(HTML_FILES) $(OUTTEX_FILES:.tex=.ps.gz) $(OUTYO_FILES:.yo=.latex) $(OUTYO_FILES:.yo=.ps.gz) $(addprefix $(outdir)/, $(BIB_FILES:.bib=.html)) $(datafiles)
+       $(PYTHON) $(step-bindir)/ls-latex.py --package=$(topdir) --title 'LaTeX documents about design and implementation of LilyPond' \
+         $(YO_FILES) $(OUTYO_FILES:.yo=.latex) $(BIB_FILES) $(DOC_FILES) $(TEX_FILES)\
+         | sed "s!$(outdir)/!!g" > $(outdir)/index.html
+         $(PYTHON) $(step-bindir)/add-html-footer.py --package=$(topdir) $(outdir)/index.html
+
+$(outdir)/%.bib: %.bib
+       ln -f $< $@
+
+# ignore result since bib2html is nonstandard. Errors would halt the RPM build.j  
+$(outdir)/%.html: %.bib
+       -bib2html $< $@
+
+# Yeah right: 
+# make -k out/mudela.dvi => cp -f out/vocabulary.tex out/mudela.dvi
+
+#out/%: $(outdir)/%
+#      cp -f $< $@
+
+locamlclean:
+       rm -f fonts.aux fonts.log feta*.tfm feta*.*pk
diff --git a/Documentation/bibliography/colorado.bib b/Documentation/bibliography/colorado.bib
new file mode 100644 (file)
index 0000000..6d7cf51
--- /dev/null
@@ -0,0 +1,529 @@
+%
+% TITLE=University of Colorado Engraving music bibliography
+% AUTHOR=Alyssa Lamb (edited & converted to bibtex by HWN)
+%
+
+
+% TODO: fix the labelling.  
+
+@Book {6,
+       author ={Jacob, Archibald},
+       year={1947},
+       title = {Musical handwriting : or, How to put music on paper : A handbook for all musicians, professional and amateur},
+       address ={London},
+       publisher ={Oxford University Press}, 
+       note = {subject: Musical notation},
+}
+
+@Book {15,
+       author ={Carl Brandt and Clinton Roemer},
+       title = {Standardized Chord Symbol Notation},
+       address={Sherman Oaks, CA},
+       publisher={Roerick Music Co.},
+       note ={subject: musical notation},
+}
+
+@Book {22,
+       author = {Johnson, Harold M},
+       year = {1946},
+       title = {How to write music manuscript an exercise-method handbook for the  music student, copyist, arranger, composer, teacher},
+       publisher={Carl Fischer, Inc.},
+       address= {New York},
+       note = {subject: Musical notation --Handbooks, manuals},
+}
+
+@Book {31,
+       title = {Music Printing & Publishing},
+       author ={Donald W. Krummel \& Stanley Sadie},
+       year = {1990},
+       publisher= {Macmillan Press},
+       note ={subject: musical notation},
+}
+
+%series={The Norton/Grove Handbooks in Music.},
+% publisher={W.W. Norton},
+
+@Book {40,
+       author={Foss, Hubert},
+       title = {Music Printing},
+       series = {Practical Printing and Binding},
+       address={London},
+       publisher={Oldhams Press Ltd., Long Acre},
+       note ={subject: musical notation},
+}
+
+@Book {48,
+       author = {Steele, Robert},
+       year = {1903},
+       title = {The Earliest English Music Printing},
+       address={London},
+       note= {subject: history of music printing and engraving},
+}
+
+@Book {54,
+       author={Austin, Ernest},
+       title = {The Story of Music Printing},
+       address={London},
+       publisher={Lowe and Brydone Printers, Ltd.},
+       note= {subject: history of music printing and engraving},
+
+}
+
+
+
+@Book {63,
+       author={?},
+       title = {Pictoral History of Music Printing},
+       address={Elhardt, Indiana},
+       publisher={H. and A. Selmer, Inc.},
+       note= {subject: history of music printing and engraving},
+
+}
+
+@Book {77,
+       author = {Wintermitz, Emmanuel},
+       year = {1955},
+       title = {Musical Autographs from Monteverdi to Hindemith},
+       address={Princeton},
+       publisher={Princeton University Press},
+       note= {subject: history of music printing and engraving},
+
+}
+
+
+@Book {92,
+
+       author = {Novello, A},
+       year = {1847},
+       title = {Some Account of the Methods of Musick Printing, with Specimens of the Various Sizes of Moveable Types and of Other Matters},
+       address={London},
+       note={ subject: history of music printing and engraving},
+}
+
+@Book {100,
+       author={Chrsander, F.},
+       year={18??},
+       title={A Sketch of the HIstory of Music printing, from the 15th to the 16th century},
+       note={ subject: history of music printing and engraving},
+}
+
+@Article {squire1897,
+       author = {Squire, W},
+       year = {1897},
+       title = {Notes on Early Music Printing},
+       journal = {Bibliographica},
+       volume={iii},
+       number={99},
+       note={ subject: history of music printing and engraving},
+
+}
+
+@Article{113,
+       author = {Meyer, K. and O'Meara, J},
+       year = {1935},
+       title = {The Printing of Music, 1473-1934},
+       journal = {The Dolphin},
+       volume={ ii},
+       pages={ 171--207},
+       note={ subject: history of music printing and engraving},
+
+}
+%% 4th ver.,
+@Article {120,
+       author = {Pattison, B},
+       year = {1939},
+       title = {Notes on Early Music Printing},
+       journal = {The Library},
+       note={subject: history of music printing and engraving},
+       volume={xix},
+       pages={389-421}, 
+}
+
+@Book {136,
+       author = {King, H},
+       year = {1964},
+       title = {Four Hundred Years of Music Printing},
+       address={London},
+       note={ subject: history of music printing and engraving},
+}
+
+
+%(Rev.1961).
+@Book{150,
+       author={Deutsch, O.F.},
+       year ={1946},
+       title = {Music Publishers' Numbers},
+       address={London},
+       note={ subject: history of music printing and engraving},
+}
+
+@Book {151,
+       author = {Marco, G.A},
+       year = {1962},
+       title = {The Earliest Music Printers of Continental Europe: a Checklist of Facsimiles Illustrating Their Work},
+       address={Charlottesville, Virginia},
+       note={ subject: history of music printing and engraving},
+}
+
+@Article {158,
+       author = {Kinkeldey, O},
+       year = {1932},
+       title = {Music And Music Printing in Incunabula},
+       journal = {Papers of the Bibliographical Society of America},
+       volume={ xxvi},
+       pages={89-118},
+       note={ subject: history of music printing and engraving},
+}
+
+@Book {166,
+       author = {Oldman, C.B},
+       year = {1934},
+       title = {Collecting Musical First Editions},
+       address={London},
+       note={ subject: history of music printing and engraving},
+}
+
+@Book{170,
+       author={Carter, J},
+       year={1934},
+       title = {New Paths in Book Collecting},
+       address={London},
+       note={ subject: history of music printing and engraving},
+}
+
+@Book {179,
+       author={Krummel, D.W.},
+       year={1958},
+       month={9},
+       title = {Graphic Analysis in Application to Early American Engraved Music},
+       journal = {Notes},
+       volume={xvi},
+       pages={213},
+       note={ subject: history of music printing and engraving},
+}
+
+@Book {189,
+       author = {Krummel, D.W},
+       year = {1971},
+       title = {Oblong Format in Early Music Books},
+       journal = {The Library},
+       volume={5th ser., xxvi},
+       pages={312},
+       note={ subject: history of music printing and engraving},
+}
+
+@Book {198,
+       author = {King, A.H},
+       year = {1973},
+       title = {The 50th Anniversary of Music Printing},
+}
+
+@Book {204,
+       author={Rastall, Richard},
+       year={1982},
+ title = {The notation of Western music : an introduction},
+       address={New York, N.Y.},
+       publisher={St. Martin's Press},
+       note = {Musical notation},
+
+
+}
+
+@Book {215,
+       author = {Tappolet, Willy},
+       year = {1947},
+       title = {La Notation Musicale},
+       address={Paris},
+       note={subject: general notation},
+       publisher={Neuch\^atel},
+}
+
+@Book {223,
+       author = {Williams, C.F. Abdy},
+       year = {1903},
+       title = {The Story of Notation},
+       address={New York},
+       publisher={Charles Scribner's Sons},
+       note={subject: general notation},
+}
+
+@Book {239,
+       author={Apel, Willi},
+       year={1953},
+       title = {The notation of polyphonic music, 900-1600},
+       address={Cambridge, Mass},
+       institution={Mediaeval Academy of America},
+       note = {Musical notation},
+}
+
+@Book {248,
+       author={Berger, Anna Maria Busse},
+       year={1993},
+       title = {Mensuration and proportion signs : origins and evolution},
+       address={Oxford, England},
+       publisher={Clarendon Press},
+       scnd_address={New York},
+       scnd_publisher={Oxford University Press },
+       note={subject: early notation},
+}
+
+@Book {258,
+       author={Parrish, Carl},
+       year={1957},
+ title = {The notation of medieval music},
+       address={New York},
+       publisher={Norton},
+       note = {Musical notation},
+
+
+}
+
+@Book {269,
+       author = {Parrish, Carl},
+       year = {1946},
+       title = {The Notation of Medieval Music},
+       address={New York},
+       publisher={Carl Fischer, Inc.},
+       note={subject: early notation},
+}
+
+@Book {277,
+       author = {Patch, Harry},
+       year = {1949},
+       title = {Genesis of a Music},
+       address={Madison},
+       publisher={University of Wisconsin Press},
+       note={subject: early notation},
+}
+
+@Book {285,
+       author={Cage, John},
+       year={1969},
+  title = {Notations},
+       address={New York},
+       publisher={Something Else Press},
+       note = {Music, Manuscripts, Facsimiles.
+
+       Facsimiles of holographs from the Foundation for Contemporary
+       Performance Arts, with text by 269 composers, but rearranged using
+       chance operations.,V)} },
+
+@Book {295,
+       author = {Gaburo, Virginia},
+       year = {1977},
+       title = {Notation},
+       address={publisher= {Lingua Press},
+       publisher={La Jolla, California}},
+       note = {A Lecture about notation, new ideas about},
+}
+
+@Book {306,
+       author = {Risatti, Howard},
+       year = {1975},
+       title = {New Music Vocabulary},
+       address={Urbana, Illinois},
+       publisher={University of Illinois Press},
+       note = {A Guide to Notational Signs for Contemporary Music},
+}
+
+
+
+@Book {325,
+       author = {Cowell, Henry},
+       year = {1930},
+       title = {New Musical Resources},
+       address={New York},
+       publisher={Alfred A. Knopf, Inc.},
+       note={subject: 20th century notation},
+}
+
+@Article {333,
+       author = {Cowell, Henry},
+       year = {1927},
+       title = {Our Inadequate Notation},
+       journal = {Modern Music},
+       volume={4},
+       number={3},
+       note={subject: 20th century notation},
+
+}
+
+@Book {342,
+       author = {Bowers, Roger},
+       year = {1992},
+       title = {Music & Letters},
+       volume={73},
+       number={3},
+       month={August},
+       pages={347(52)},
+       note={Some reflection upon notation and proportion in Monteverdi's mass and vespers},
+}
+
+@Book {353,
+       author = {Brainard, Paul},
+       year = {1992},
+       title = {Current Musicology},
+       number={50},
+       month={July-Dec},
+       pages={21(26)},
+       note={Proportional notation in the music of Schutz and his contemporaries in the 17th Century},
+}
+
+@Book {362,
+       author = {Monelle, Raymond},
+       year = {1989},
+       title = {Comparative Literature},
+       volume={41}, number={3}, 
+       month={Summer},
+       pages={252(18)},
+
+       note={Music notation and the poetic foot},
+}
+
+@Book {373,
+       author = {Pinegar, Sandra},
+       year = {1993},
+       title = {Current Musicology},
+       number={53},
+       month={July},
+       pages={99(10)},
+       note={The seeds of notation and music paleography.},
+}
+
+@Book {382,
+       author = {Smith, Norman E},
+       year = {1990},
+       title = {Current Musicology},
+       number={45-47},
+       month={Jan-Dec},
+       pages={283(22)},
+       note={The notation of fractio modi.},
+}
+
+@Book {392,
+       author = {Treitler, Leo},
+       year = {1992},
+       title = {The Journal of Musicology},
+       volume={10},
+       number={2},
+       month={Spring},
+       pages={131(61)},
+
+       note={ The unwritten and written transmission, of medieval chant
+       and the start-up of musical notation.
+
+       Notational practice developed in medieval music to address the written tradition for chant which interacted with the unwritten vocal tradition.},
+}
+
+@Book {407,
+       author = {West, M.L},
+       year = {1994},
+       title = {Music & Letters},
+       volume={75},
+       number={2},
+       month={May},
+       pages={161(19)},
+       note={The Babylonian musical notation and the Hurrian melodic texts. 
+
+       A new way of deciphering the ancient Babylonian musical notation. 
+}
+}
+
+@Book {418,
+       author = {Brown, Earle},
+       year = {1986},
+       title = {Musical Quarterly},
+       volume={72},
+       month={Spring},
+       pages={180(22)},
+       note={The notation and performance of new music.},
+}
+
+@Book {426,
+       author = {Eggleston, Suzanne},
+       year = {1994},
+       title = {Notes},
+       volume={51},
+       number={2},
+       month={Dec},
+       pages={657(7)}, 
+       journal={New periodicals},
+       note={A list of new music periodicals covering the period
+       Jun.-Dec. 1994. Includes aims, formats and a description of the
+       contents of each listed periodical. Includes Music Notation News},
+
+}
+
+@Book {441,
+
+       author = {Fuller, David},
+       year = {1989},
+       title = {The Journal of Musicology},
+       volume={7},
+       number={1},
+       month={Winter},
+       pages={21(8)},
+       note={
+       Notes and inegales unjoined: defending a definition. (written-out inequalities in music notation).        
+}},
+
+@Book {454,
+
+       author = {Jones, David Evan},
+       year = {1990},
+       title = {Perspectives of New Music},
+       note={Speech extrapolated. (includes notation)}
+}
+
+@Book {464,
+       author = {Lependorf, Jeffrey},
+       year = {1989},
+       journal={Perspectives of New Music},
+       volume={27},
+ number={2},
+       month={Summer},
+       pages={232(20)},
+       note={
+       Contemporary notation for the shakuhachi: a primer for composers. (Tradition and Renewal in the Music of Japan) },
+
+}
+
+@Book {478,
+       author = {Rastall, Richard},
+       year = {1993},
+       title = {Music & Letters},
+       volume={74}, number={4},
+       month={November},
+       pages={639(2)},
+
+       note={Equal Temperament Music Notation: The Ailler-Brennink
+       Chromatic Notation. Results and Conclusions of the Music Notation
+       Refor by the Chroma Foundation (book reviews).  },
+}
+
+@Article {Francois92,
+       author={Francois, Jean-Charles},
+       journal = {Perspectives of New Music},
+       volume={30},
+       number={1}, month={Winter},
+       pages={6(15)},
+       year={1992},
+
+       note={subject: Modern music has outgrown notation. While the
+            computer is used to write down music with accuracy never
+            before achieved, the range of modern sounds has surpassed
+            the relevance of the computer...},
+       title={Writing without representation, and unreadable notation.},
+}
+
+@Book {501,
+       author = {Hamel, Keith A},
+       year = {1989},
+       journal = {Perspectives of New Music},
+       volume={27},
+       number={1},
+       month={Winter},
+       pages={70(14)},
+       title={A design for music editing and printing software based on notational syntax},
+}
+
diff --git a/Documentation/bibliography/computer-notation.bib b/Documentation/bibliography/computer-notation.bib
new file mode 100644 (file)
index 0000000..faf176c
--- /dev/null
@@ -0,0 +1,656 @@
+%
+% TITLE=The music notation with computer bibliography
+% AUTHOR=Han-Wen Nienhuys
+%
+
+@String{CitH = {Computing and the Humanities}}
+@String{CMJ = {Computer Music Journal}}
+
+@TechRep=ort{roush88,
+  note  = {Rules on formatting music formulated for use in computers. Mainly distilled from [Ross] HWN},
+  year = {1988},
+  title = {Music Formatting Guidelines},
+  author = {D. Roush},
+  number = {OSU-CISRC-3/88-TR10}, 
+  institution = {Department of Computer and Information Science, The Ohio State University},
+}
+
+
+
+@InProceedings{assayaag86,
+  author =      {G. Assayaag and D. Timis},
+  title =       {A Toolbox for music notation},
+  booktitle =   {Proceedings of the 1986 International Computer Music Conference},
+  year =       1986
+}
+
+% byrd
+@PhdThesis {byrd85,
+  year =  {1985},
+  title = {Music Notation by Computer},
+  author = {Donald Byrd},
+  school = {Indiana University},
+}
+
+@Article {byrd74,
+  year =  {1974},
+  title = {A System for Music Printing by Computer},
+  author = {Donald Byrd},
+  journal = {Computers and the Humanities},
+  volume ={8},
+  pages ={161-72},
+}
+
+@Article{byrd94,
+  author =      {Donald Byrd},
+  title =       {Music Notation Software and Intelligence},
+  journal =     {Computer Music Journal},
+year = 1994,
+pages = {17--20},
+  volume =      18,
+  number =      1,
+
+  note = {Byrd (author of Nightinggale) shows four problematic
+fragments of notation, and rants about notation programs that try to
+exhibit intelligent behaviour. HWN}
+}
+
+
+
+@Article{ericson75,
+  author =      {R. F. Ericson},
+  title =       {The DARMS Project: A status report},
+  journal =     {Computing in the humanities},
+  year =        1975,
+  volume =      9,
+  number =      6,
+  pages =       {291--298},
+  note = {Gourlay\cite{gourlay86} writes: A discussion of the design
+  and potential uses of the DARMS music-description language.}
+}
+
+
+@Article{field-richards93,
+  author =      {H.S. Field-Richards},
+  title =       {Cadenza: A Music Description Language},
+  journal =     CMJ,
+  year =        1993,
+  volume =      17,
+  number =      4,
+
+  note = {A description through examples of a music entry language.
+Apparently it has no formal semantics.  There is also no
+implementation of notation convertor. HWN}
+}
+
+
+
+@Article{bielawa93,
+  author =      {Herbert Bielawa},
+  title =       {Review of Sibelius 7},
+  journal =     CMJ,
+  year =        {1993?},
+
+  note = {A raving review/tutorial of Sibelius 7 for Acorn.  (And did
+they seriously program a RISC chip in ... assembler ?!) HWN}
+
+
+}
+
+@Article{sloan93,
+  author =      {Donald Sloan},
+  title =       {Aspects of Music Representation in HyTime/SMDL},
+  journal =     CMJ,
+  year =        1993,
+  volume =      17,
+  number =      4,
+
+note = {An introduction into HyTime and its score description variant
+SMDL.  With a short  example that is quite  lengthy in SMDL}
+}
+
+@Article{wiggins93,
+  author =      {Geraint Wiggins and Eduardo Miranda and Alaaaan Smaill and Mitch Harris},
+  title =       {A Framework for the evaluation of music representation systems},
+  journal =     CMJ,
+  year =        1993,
+  volume =      17,
+  number =      3,
+
+  note = {A categorisation of music representation systems (languages,
+OO systems etc) splitted into high level and low level expressiveness.
+The discussion of Charm and parallel processing for music
+representation is rather vague. HWN}
+
+}
+
+
+
+@Article{dannenberg93,
+  author =      {Roger B. Dannenberg},
+  title =       {Music Representation: Issues, Techniques, and Systems},
+  journal =     CMJ,
+  year =        1993,
+  volume =      17,
+  number =      3,
+
+  note = {The title says it all.  This article does not make any
+statements, it points to some problems and solutions with music
+representation. HWN},
+
+}
+
+@Article{rothstein93,
+  author =      {Joseph Rothstein},
+  title =       {Review of Passport Designs' Encore Music Notation Software},
+  journal =     CMJ,
+  year =        {?},
+
+note = {A no-science-here review of Encore. HWN}
+
+}
+
+
+
+@Article{belkin94,
+  author =      {Alan Belkin},
+  title =       {Macintosh Notation Software: Present and Future},
+  journal =     CMJ,
+  year =        1994,
+  volume =      18,
+  number =      1,
+
+  note = {Some music notation systems are analysed for ease of use, MIDI
+  handling.  No rocket science here.  The article ends with a plea for a
+  standard notation format. HWN},
+
+}
+
+@Book {smith73,
+  year =  {1973},
+  title = {Editing and Printing Music by Computer},
+  author = {Leland Smith},
+  totalentry = {Journal of Music Theory},
+  volume={17},
+  pages ={292-309},
+  note = {Gourlay\cite{gourlay86} writes: A discussion of Smith's music-printing system}
+}
+
+
+@InProceedings{montel97,
+  author =      {Dominique Montel},
+  title =       {La gravure de la musique, lisibilit\'e esth\'etique, respect de l'oevre},
+  booktitle =   {Musique \& Notations},
+  year =        1997,
+  address={Lyon},
+  editors ={Genevois \& Orlarey}
+}
+
+
+% Gomberg
+@PhdThesis {gomber75,
+  year =  {1975},
+  title = {A Computer-Oriented System for Music Printing},
+  author = {David A Gomberg},
+  school = {Washington University},
+}
+
+@Book {gomberg,
+  title = {A Computer-oriented System for Music Printing},
+  author = {David A.  Gomberg},
+  journal  = CitH,
+  volume={11},
+  month = {march},
+  year = {1977},
+  pages = {63-80},
+  note = {Gourlay \cite{gourlay86} writes: "A discussion of the
+  problems of representing the conventions of musical notation in
+  computer algorithms."}
+
+}
+
+
+
+@Book {CASR,
+  note = {Annual editions since 1985, many containing surveys of music typesetting technology. SP},
+  title = {Directory of Computer Assisted Research in Musicology},
+  author = {Walter B Hewlett and Eleanor Selfridge-Field},
+  totalentry = {Menlo Park, CA: Center for Computer Assisted Research in the Humanities},
+}
+
+
+
+% LIME
+@Article {haken93,
+  note = {A description of Lime internals (which resemble older (before 0.0.68pre) LilyPond data structures) HWN},
+  year =  {1993},
+  title = {The Tilia Music Representation: Extensibility, Abstraction, and Notation Contexts for the Lime Music Editor},
+  author = {Lippold Haken and Dorothea Blostein},
+  journal = {Computer Music Journal},
+  volume= {17},
+  number={3},
+  pages = {43--58},
+}
+
+@InProceedings{haken95,
+  year =  {1995},
+  title = {A New Algorithm for Horizontal Spacing of Printed Music},
+  author = {Lippold Haken and Dorothea Blostein},
+  booktitle = {International Computer Music Conference},
+  address={Banff},
+  month={Sept},
+  pages = {118-119},
+  note = {This describes an algorithm which uses springs between adjacent columns. This algorithm is a "subclass" of the LilyPond algorithm. HWN},
+}
+
+@Article {blostein91,
+  note = {This paper provides a shallow overview of the algorithm used in LIME for spacing individual lines. HWN},
+  year =  {1991},
+  title = {Justification of Printed Music},
+  author = {Dorothea Blostein and Lippold Haken},
+  journal   = {Communications of the ACM},
+  volume= {J34},
+  number= {3},
+  month= {March},
+  pages = {88-99},
+}
+
+
+@Article{blostein94,
+  author =      {Dorothea Blostein and Lippold Haken},
+  title =       {The Lime Music Editor: A Diagram Editor Involving Complex
+  Translations},
+  journal =     {Software Practice and Experience},
+  year =        {1994},
+  volume =      {24},
+  number =      {3},
+  month =       {march},
+  pages =       {289--306},
+  note = {A description of various conversions, 
+decisions and issues relating to this interactive editor HWN},
+}
+
+@InProceedings{bouzaiene98:_une,
+  author =      {Nabil Bouzaiene and Lo\"ic Le Gall and Emmanuel Saint-James},
+  title =       {Une biblioth\`eque pour la notation  musicale baroque},
+  booktitle =   {EP '98},
+  year =        1998,
+  series =      {LNCS},
+
+  note = {Describes ATYS, an extension to Berlioz, that can mimick
+  handwritten baroque style beams}
+}
+
+
+
+@MastersThesis{gall97:_creat,
+  author =      {Lo\"ic Le Gall},
+  title =       {Cr\'eation d'une police adapt\'ee \`a la notation musicale baroque},
+school = {\'Ecole Estienne},
+year = 1997,
+}
+
+@InProceedings{balaban88,
+  author =      {M. Balaban},
+  title =       {A Music Workstation Based on Multiple Hierarchical Views of Music},
+  booktitle =   {Proceedings of the 1988 International Computer Music Conference},
+  year =        1988,
+  address =     {San Francisco},
+  organization = {International Computer Music Association}
+}
+
+%
+% MusiCopy
+%
+@TechReport {gourlay87-spacing,
+  note = {Algorithm for generating spacing in one line of (polyphonic) music, tailored for use with MusiCopy. LilyPond uses a variant of it (as of pl 76) HWN},
+  year =  {1987},
+  title = {Spacing a Line of Music,},
+  author = {John S. Gourlay},
+  number = {OSU-CISRC-10/87-TR35},
+  institution ={Department of Computer and Information Science, The Ohio State University},
+}
+
+
+@TechReport {parish87,
+  note = {A brief overview of {MusiCopy} HWN},
+  year =  {1987},
+  title = {{MusiCopy}: An automated Music Formatting System},
+  author = {Allen Parish and Wael A. Hegazy and John S. Gourlay and Dean K. Roush and F. Javier Sola},
+  totalentry = {OSU-CISRC-10/87-TR29},
+  institution ={Department of Computer and Information Science, The Ohio State University},
+}
+
+
+@TechReport {gourlay87-formatting,
+note = {This paper discusses the development of algorithms for the
+formatting of musical scores (from abstract). It also appeared at
+PROTEXT III, Ireland 1986},
+  year =  {1987},
+  title = {Computer Formatting of Music},
+  author = {John S. Gourlay and A. Parrish
+and D. Roush and F. Sola and Y. Tien},
+  number = {OSU-CISRC-2/87-TR3},
+  institution ={Department of Computer and Information Science,
+The Ohio State University},
+}
+
+
+@TechReport {hegazy87,
+  year =  {1987},
+  title = {On the Implementation of the {MusiCopy} Language Processor,},
+  author = {Wael A. Hegazy},
+  number = {OSU-CISRC-10/87-TR34},
+  institution={Department of Computer and Information Science, The Ohio State University},
+
+  note = {Describes the "parser" which converts {MusiCopy} MDL to
+  MusiCopy Simultaneities and columns.
+
+MDL is short for Music Description Language\cite{gourlay86}. It
+accepts music descriptions that are organised into measures filled
+with voices, those filled notes. The measures can be arranged
+simultaneously or sequentially.  To address the 2-dimensionality,
+almost all constructs in MDL must be labeled.
+
+MDL uses begin/end markers for attribute values and spanners.
+Rightfully the author concludes that MusiCopy must administrate a
+"state" variable containing both properties and current spanning symbols.
+
+MusiCopy attaches graphic information to the objects constructed in
+the input: the elements of the input are partially complete graphic
+objects.
+
+Since the design goals of both LilyPond and MusiCopy were roughly the
+same, both systems have superficial similarities: the details of the
+input format, the notation of "musical state".  However, LilyPond
+stresses extensibility, modularity and separation between content and
+presentation much more, and this shows: LilyPond is more flexible.  To
+be fair: development of MusiCopy was abandoned in 1987, so it is not
+surprising that LilyPond is more mature.
+},
+
+}
+
+
+@TechReport {hegazy87-breaking,
+  note = {This generalizes \TeX's breaking algorithm to music. It also appeared in Document Manipulation and Typography, J.C. van Vliet (ed) 1988. HWN},
+  year =  {1987},
+  title = {Optimal line breaking in music},
+  author = {Wael A. Hegazy and John S. Gourlay},
+  number = {OSU-CISRC-8/87-TR33},
+  institution={Department of Computer and Information Science, The Ohio State University,},
+}
+
+
+@TechReport {roush87,
+  note = {User manual of MusiCopy. Includes an impressive example piece.  HWN},
+  year =  {1987},
+  title = {Using {MusiCopy}},
+  author = {Dean K. Roush},
+  number = {OSU-CISRC-18/87-TR31},
+  institution={Department of Computer and Information Science, The Ohio State University},
+}
+
+
+@TechReport {parrish87-simultaneities,
+  note = {Placement of balls, stems, dots which occur at the same moment ("Simultaneity") HWN},
+  year =  {1987},
+  title = {Computer Formatting of Musical Simultaneities,},
+  author = {A. Parrish and John S. Gourlay},
+  institution={Department of Computer and Information Science, The Ohio State University},
+  number = {OSU-CISRC-10/87-TR28},
+}
+
+
+@TechReport {sola87,
+  note = {Overview of a procedure for generating slurs HWN},
+  year =  {1987},
+  title = {Computer Design of Musical Slurs, Ties and Phrase Marks,},
+  author = {F. Sola},
+  institution={Department of Computer and Information Science, The Ohio State University},
+  number = {OSU-CISRC-10/87-TR32},
+}
+
+
+@TechReport {sola87-beams,
+  institution={Department of Computer and Information Science, The Ohio State University},
+  note = {Calculating beam slopes HWN},
+  year =  {1987},
+  title = {Design of Musical Beams,},
+  author = {F. Sola and D. Roush},
+  number = {OSU-CISRC-10/87-TR30},
+}
+
+
+@Article {gourlay86,
+  note = {This paper describes the {MusiCopy} musicsetting system and an input language to go with it. HWN},
+  year =  {1986},
+  title = {A language for music printing},
+  author = {John. S. Gourlay},
+  journal = {Communications of the ACM},
+   volume= {29},
+  number ={5},
+  pages = {388--401},
+}
+
+
+
+@Article {rader96,
+  note = {Describes a system called MusicEase, and explains that it uses "constraints" (which go unexplained) to automatically position various elements. HWN},
+  year =  {1996},
+  title = {Creating Printed Music Automatically},
+  author = {Gary M. Rader},
+  journal = {Computer},
+  volume={29},
+  number={6},
+  month={June},
+  pages = {61--69},
+}
+
+
+
+
+@PhdThesis {page88,
+  note = {Don't ask Stephen for a copy. Write to the Bodleian Library, Oxford, or to the British Library, instead. SP},
+  year =  {1988},
+  title = {Computer Tools for Music Information Retrieval},
+  author = {Stephen Dowland Page},
+  school ={Dissertation University of Oxford},
+}
+
+@MastersThesis{roelofs91,
+  note = {This dutch thesis describes a simplistic (monophonic) typesetting system, and focuses on the breaking algorithm, which is taken from Hegazy & Gourlay HWN},
+  year =  {1991},
+  title = {Een Geautomatiseerd Systeem voor het Afdrukken van Muziek},
+  author = {Ren\'e Roelofs},
+  school={Erasmus Universiteit Rotterdam},
+  number={45327},
+  translation = {``An automated system for printing music'' Master's Thesis Managerial Computer Science.},
+}
+
+
+@Article {filgueiras93,
+  year =  {1993},
+  title = {Representation and manipulation of music documents in SceX},
+  author = {Miguel Filgueiras and Jos\'e Paulo Leal},
+  journal= {Electronic Publishing},
+  volume={6},
+  number={4}, pages = {507--518},
+
+}
+
+
+@Article {foxley87,
+  note = {A paper on a TROFF preprocessor to typeset music. The output shown is not very sophisticated, and contains some typographical atrocities HWN},
+  year =  {1987},
+  title = {Music --- A language for typesetting music scores},
+  author = {Eric Foxley},
+  journal = {Software --- Practice and Experience},
+  volume = {17},
+  number = {8},
+  pages = {485-502},
+}
+
+
+@Book {filgueiras96,
+  year = {1996},
+  title = {Implementing a Symbolic Music Processing System},
+  author = {Miguel Filgueiras},
+  totalentry = {LIACC, Universidade do Porto, 1996; submitted},
+}
+
+@Book {filgueiras?,
+  title = {Some Music Typesetting Algorithms},
+  author = {Miguel Filgueiras},
+  totalentry = {Miguel Filgueiras. ``Some Music Typesetting Algorithms''. LIACC, Universidade do Porto, forthcoming},
+}
+
+
+@Article {colorado-web,
+  author ={Alyssa Lamb},
+  note = {Webpages about engraving (designed with finale users in mind) (sic) HWN},
+  institution = {The University of Colorado},
+  title ={The University of Colorado Music Engraving page.},
+  HTML={http://www.cc.colorado.edu/Dept/MU/Musicpress/},
+  year={1996}
+}
+
+
+
+
+@Article {Langston90,
+  note = {This paper deals with some command-line
+  tools for music editing and playback. It doesn't mention notation
+  issues, but does come with the grand idea (not) of using music to
+  monitor complex systems. Imagine your nuclear plant supervisor to
+  use AC/DC for checking the reactor HWN},
+
+  year =  {1990},
+  title = {Unix music tools at Bellcore},
+  author = {Peter S. Langston},
+  journal={Software --- Practice and Experience},
+  volume={20},
+  number={S1},
+  pages={47--61},
+}
+
+
+
+@Article {tablature-web,
+  note = {FAQ (with answers) about TAB, the ASCII variant of Tablature. HWN},
+  title = {how to read and write tab: a guide to tab notation},
+  author = {Howard Wright},
+  email={Howard.Wright@ed.ac.uk},
+  HTML={http://wabakimi.carleton.ca/~phacket2/guitar/tabfaq.html},
+}
+
+
+@Article {niff-web,
+  note = {Specs for NIFF, a reasonably comprehensive but binary (yuk) format for notation HWN},
+
+  year =  {1995},
+  title = {NIFF6a Notation Interchange File Format},
+  author = {Cindy Grande},
+  publisher={Grande Software Inc.},
+  HTML= {http://www.jtauber.com/music/encoding/niff/},
+  ftp = {ftp://blackbox.cartah.washington.edu}
+}
+
+
+@Article {smdl-web,
+  author={unknown},
+  title = {SMDL, Standard Musical Description Language},
+  pdf= {ftp://ftp.ornl.gov/pub/sgml/wg8/smdl/10743.pdf},
+  note={ISO/IEC DIS 10743
+
+SGML instance for describing music.  Very comprehensive in music
+definition, but no support for notation / performance whatsoever (They
+basically say: "You can embed a NIFF or MIDI file") HWN}
+
+},
+}
+
+@TechReport{Ornstein83,
+  author={Ornstein, Severo M. and John Turner Maxwell III},
+  title={Mockingbird: A Composer's Amanuensis},
+  institution={Xerox Palo Alto Research Center},
+  address={3333 Coyote Hill Road, Palo Alto, CA, 94304},
+  number={CSL-83-2},
+  month={January},
+  year={1983}
+}
+
+
+
+@Article{Ornstein84,
+  author={Ornstein, Severo M. and John Turner Maxwell III},
+  title={Mockingbird: A Composer's Amanuensis},
+  journal= {Byte},
+  volume= 9,
+  month = {January},
+  year= { 1984},
+  note={A discussion of an interactive and graphical computer system for
+music composition}
+
+}
+
+@PhdThesis{mueller90:_inter_bearb_musik,
+  author =      {Giovanni M\"uller},
+  title =       {Interaktive Bearbeitung konventioneller Musiknotation},
+  school =      {Eidgen\"ossischen Technischen Hochschule Z\"urich},
+  year =        1990,
+
+note = {This is about engraver-quality typesetting with computers.  It
+accepts the axiom that notation is too difficult to generate
+automatically.  The result is that a notation program should be a
+WYSIWYG editor that allows one to tweak everything.
+
+The implementation therefore is quite "weak".  The introductory
+chapters on engraving and notation are well structured and clear,
+though.}
+}
+
+
+%
+% three part study by John Gr/over
+@TechReport{grover89-symbols,
+  author =      {John Gr\/over},
+  title =       {A computer-oriented description of Music Notation.  Part I. The Symbol Inventory},
+  institution =  {Department of informatics, University of Oslo},
+  year =        1989,
+  number =      133,
+
+note = {The goal of this series of reports is a full description of
+music formatting.  As these largely depend on parameters of fonts, it
+starts with a verbose description of music symbols.
+
+ The subject is treated backwards: from general rules of typesetting
+the author tries to extract dimensions for characters, whereas the
+rules of typesetting (in a particular font) follow from the dimensions
+of the symbols.  His symbols do not match (the stringent) constraints
+formulated by eg. \cite{wanske}} }
+
+@TechReport{grover89-twovoices,
+  author =      {John Gr\/over},
+  title =       {A computer-oriented description of Music Notation. Part II: Two Voice Sharing a Staff, Leger Line Rules, Dot Positioning},
+
+  institution =  {Department of informatics, University of Oslo},
+  year =        1989,
+  number =      134,
+
+  note = {A lot rules for what is in the title are formulated.  The
+descriptions are long and verbose.  The verbosity shows that
+formulating specific rules is not the proper way to approach the
+problem.  Instead, the formulated rules should follow from more
+general rules, similar to\cite{parrish87-simultaneities}},
+}
+
+@TechReport{grover89-accidentals,
+  author =      {John Gr\/over},
+  title =       {A computer-oriented description of Music Notation. Part III: Accidental Positioning},
+  institution =  {Department of informatics, University of Oslo},
+  year =        1989,
+  number =      135,
+
+note = {Placement of accidentals crystallised in an enormous set of
+rules.  Same remarks as for \cite{grover89-twovoices} applies} }
diff --git a/Documentation/bibliography/engraving.bib b/Documentation/bibliography/engraving.bib
new file mode 100644 (file)
index 0000000..bfa6523
--- /dev/null
@@ -0,0 +1,306 @@
+%
+% TITLE=The engraving bibliography
+% AUTHOR=Han-Wen Nienhuys
+%
+
+
+@Book{banter,
+  author =     {Harald Banter},
+  title =      {Akkord Lexikon},
+  publisher =  {Schott's S\"ohne},
+  year =       {1987},
+  isbn =       {ISBN 3-7957-2095-8},
+  note =       {Comprehensive overview of commonly used
+  chords.  Suggests (and uses) a unification for all different kinds
+  of chord names.},
+  address =    {Mainz, Germany},
+}
+
+@Book{rastall,
+  author =      {Richard Rastall},
+  ALTeditor =   {},
+  title =       {The Notation of Western Music: an
+  Introduction},
+  publisher =   {J. M. Dent \& Sons London},
+  year =        {1983},
+  note = {Interesting account of the evolution and origin of common notation starting from neumes, and ending with modern innovations HWN},
+}
+
+@Book{ross,
+  author =      {Ted Ross},
+  title =       {Teach yourself the art of music engraving and processing},
+  publisher =   {Hansen House},
+  year =        1987,
+  note =        {This is about engraving, i.e.  professional typesetting.  It contains
+  directions on good typesetting, but the sections on reproduction
+  technicalities, how to use pens and history are interesting.
+  Especially the section on Music Typewriters is amusing HWN},
+  address =     {Miami, Florida},
+}
+
+
+
+@Book {read78,
+  note = {Sound (boring) review of the various hairy rhythmic notations used by avant-garde composers HWN},
+  year =  {1978},
+  title = {Modern Rhythmic Notation},
+  author = {Gardner Read},
+  publisher = {Indiana University Press},
+}
+
+
+@Book {read-notation,
+  note = {(Out of print) This is as close to the ``standard'' reference
+work for music notation issues as one is likely to get. MB},
+  title = {Music Notation: a Manual of Modern Practice},
+  author = {Gardner Read},
+  totalentry = {(2nd edition)},
+  publisher ={Taplinger Publishing},
+  address ={New York},
+}
+
+@Book {weaner93,
+  year =  {1993},
+  title = {Standard Music Notation Practice},
+  author = {Maxwell Weaner and Walter Boelke},
+  totalentry = {revised edition by Arnold Broido and Daniel Dorff.},
+  publisher = {Music Publisher's Association of the United States Inc},
+  address = {New York}
+}
+
+
+@Book {wanske,
+  note = {I. A very thorough overview of engraving practices of various craftsmen. It includes detailed specs of characters, dimensions etc. II. a thorough overview of a anonymous (by now antiquated) automated system. EDV Means e(lektronischen) D(aten)v(erarbeitung), electronic data processing HWN},
+  year =  {1988},
+  title = {Musiknotation --- Von der Syntax des Notenstichs zum EDV-gesteuerten Notensatz},
+  author = {Helene Wanske},
+  publisher = {Schott-Verlag},
+  address = {Mainz},
+  isbn = {ISBN 3-7957-2886-x},
+}
+
+{willemze,
+  note = {A comprehensive overview of music theory;
+the (Dutch) authority on general music theory},
+  year =  {1964-1993},
+  title = {Algemene muziekleer},
+  author = {Theo Willemze},
+  publisher = {Aula, Het Spectrum},
+  address = {Utrecht},
+  isbn = {ISBN 90-274-1817-9},
+}
+
+
+@Book {hader48,
+  year =  {1948},
+  title = {Aus der Werkstatt eines Notenstechers},
+  author = {Karl Hader},
+  publisher = {Waldheim--Eberle Verlag},
+  address ={Vienna},
+
+  note = {Hader was the chief-engraver of the Waldheim-Eberle music
+  publishers.  This beautiful booklet was intended as an introduction
+  for laymen on the art of engraving.  It contains a step by step,
+  in-depth explanation of how to cut and stamp music into zinc plates.
+  It also contains   a few compactly formulated rules on musical
+  orthography. Out of print. }
+}
+
+@Book{gamble23:_music_engrav,
+  author =      {William Gamble},
+  title =       {Music Engraving and printing.  Historical and Technical Treatise},
+  publisher =   {Sir Isaac Pitman & Sons, ltd.},
+  year =        1923,
+  note = {This pattriotic book was an attempt to promote and help
+  British music engravers.  It is somewhat similar to Hader's
+  book\cite{hader48} in scope and style, but Gamble focuses more on
+  technical details (Which French punch cutters are worth buying from,
+  etc.), and does not treat typographical details, such as optical
+  illusions.  It is available as reprint from Da Capo Press, New York
+  (1971).}
+}
+
+
+@Booklet {mpa96,
+  note = {Pamphlet explaining a few  fine points in music font design HWN},
+  year =  {1996},
+  title = {Standard music notation specifications for computer programming.},
+  month =  {December},
+  author ={mpa},
+  publisher = {MPA},
+}
+
+
+@Book {donato63,
+  year =  {1963},
+  author = {Anthony Donato},
+  title ={Preparing Music Manuscript},
+  address ={Englewood Cliffs, NJ},
+  publisher={Prentice-Hall},
+}
+
+
+@Book {Karkoshka72,
+  year =  {1972},
+  title = {Notation in New Music; a critical guide to interpretation and realisation},
+  author = {Erdhard Karkoshka},
+  translator={Ruth Koenig},
+  publisher={Praeger Publishers},
+  address={New York},
+  note ={(Out of print)},
+}
+
+
+@Book {Roemer84,
+  year =  {1984},
+  title = {The Art of Music Copying},
+  author = {Clinton Roemer},
+  publisher={Roerick music co.},
+  address= {Sherman Oaks (CA)},
+
+  note ={Out of print. Heussenstamm writes: an instructional manual
+    which specializes in methods used in the commercial field. },
+  edition={2nd},
+}
+
+
+@Book {Rosecrans79,
+  year =  {1979},
+  title = {Music Notation Primer},
+  author = {Glen Rosecrans},
+  publisher={Passantino},
+  address={New York},
+  note={Heussenstamm writes: Limited in scope, similar to \cite{Roemer84}}
+}
+
+@Book {donemes1900,
+  year =  {1900},
+  title = {Uitgeven van muziek},
+  author = {Donemus},
+  publisher= {Donemus Amsterdam},
+}
+
+
+@Book{vinci,
+author={Vinci, Albert C.},
+title={Fundamentals of Traditional Music Notation},
+publisher={Kent State University Press},
+year={1989}
+}
+
+@Book{schirmer90,
+  author={G. Schirmer, Inc.},
+  title={The G. Schirmer Manual of Style and Usage},
+  address={New York},
+  publisher={The G. Schirmer Publications Department},
+  year={1990}
+}
+
+
+@Book {Stone80,
+  year =  {1980},
+  title = {Music Notation in the Twentieth Century},
+  author = {Kurt Stone},
+  publisher= {Norton},
+  address={New York},
+  note ={Out of print. Heussenstamm writes: The most important book on notation in recent years. },
+
+}
+@Book {Heussenstamm87,
+  year =  {1987},
+  title = {The Norton Manual of Music Notation},
+  author = {George Heussenstamm},
+  address= {New York},
+  publisher={Norton},
+  note={Hands-on instruction book for copying (ie. handwriting) music.  Fairly complete. HWN}
+}
+
+
+
+@Book{unknown69:_music_notat,
+  author =      {--},
+  title =       {Music Notation},
+  publisher =   {Crescendo books},
+  year =        1969,
+  note =        {Heussenstamm writes: An extremely thorough exploration of musical notation [..]}
+}
+
+
+@Book {gerou96,
+  note = {A concise, alphabetically ordered list of typesetting and music (notation) issues with a rather simplistic attitude but in most  cases "good-enough" answers JCN},
+  year =  {1996},
+  title = {Essential Dictionary of Music Notation},
+  author = {Tom Gerou and Linda Lusk},
+  publisher = {Alfred Publishing},
+  address ={Van Nuys CA},
+  isbn ={ISBN 0-88284-768-6},
+}
+
+
+@Book {chlapik87,
+  note = {An clearly written book for the casually interested reader. It shows some of the conventions and difficulties in printing music HWN},
+  year =  {1987},
+  title = {Die Praxis des Notengraphikers},
+  author = {Herbert Chlapik},
+  publisher = {Doblinger},
+  isbn ={ISBN 3-9000 035-96-2},
+}
+
+
+
+@Book {barksdale57,
+       author = {Barksdale, A},
+       year = {1957},
+       title = {The Printed Note: 500 Years of Music Printing and Engraving},
+       address={Toledo, Ohio},
+       month = {January},
+       note={`The exhibition "The Printed Note" attempts to show the various processes used since the second of the 15th century for reproducing music mechanically ... '. The illustration mostly feature ancient music},
+       publisher={The Toledo Museum of Art},
+}
+
+
+@Book {wolf19,
+       author = {Wolf, Johannes},
+       year = {1919},
+       title = {Handbuch der Notationskunde},
+       address={Leipzig},
+       publisher={Breitkopf & Hartel},
+       note= {Very thorough treatment (in two volumes) of the history musical notation},
+}
+
+@Book {rosenthal67,
+       author = {Rosenthal, Carl A},
+       year = {1967},
+       title = {A Practical Guide to Music Notation},
+       address={New York},
+       publisher={MCA Music},
+       note={Heussenstamm writes: Informative in terms of traditional notation.  Does not concern score preparation}
+}
+
+
+@Book {Boehm61,
+       author = {Boehm, Laszlo},
+       year = {1961},
+       title={Modern Music Notation},
+       address={New York},
+       publisher={G. Schirmer, Inc.},
+       note ={Heussenstamm writes: A handy compact reference book in basic notation. }
+}
+@Book{button20:_system_music_notat,
+  author =      {Button, H. Elliot},
+  title =       {System in Musical Notation},
+  publisher =   {Novello and co.},
+  year =        1920,
+  address =     {London}
+}
+
+@Book{johnson46:_how,
+  author =      {Johnson, Harold},
+  title =       {How to write music manuscript},
+  publisher =   {Carl Fischer, Inc.},
+  year =        1946,
+  address =     {New York}
+}
+
+
+
index 6f11bcad7cbc9ed666ef3c5123a13bcd2c2aa369..ca106c5d6eaa6400fc9b6496fb1dbca86863bab3 100644 (file)
@@ -41,8 +41,10 @@ nsubsect(Documentation: manuals)
 
 itemize(
 it()url(Mudela)(../tex/DOEXPAND(outdir)/tutorial.html)
-it()url(TeX documents about LilyPond)(../tex/DOEXPAND(outdir)/index.html)
+it()url(User documentation)(../tex/DOEXPAND(outdir)/index.html)
+it()url(Hacker documentation)(../metadoc/DOEXPAND(outdir)/index.html)
 it()url(Manual pages)(../man/DOEXPAND(outdir)/index.html)
+it()url(Bibliography)(../bibliography/DOEXPAND(outdir)/vocabulary.html)
 it()url(Musical vocabulary)(../tex/DOEXPAND(outdir)/vocabulary.html)
 )
 
diff --git a/Documentation/man/mi2mu.yo b/Documentation/man/mi2mu.yo
deleted file mode 100644 (file)
index 7a0abb6..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-
-mailto(janneke@gnu.org)
-COMMENT(
-       (PIPETHROUGH(echo -n `date '+%d/%b/%y'|tr '[a-z]' '[A-Z]'`)())
-)
-manpage(LilyPond)
-       (1)
-       (1998)
-       (Mi2mu)
-       (The LilyPond package)
-
-metalC(Automatically generated by yodl(1) from mi2mu.yo.)
-
-manpagename(Mi2mu)(convert MIDI to bf(mudela)(5))
-
-manpagedescription()
-Mi2mu translates a MIDI input file to Mudela (GNU LilyPond source
-format).  Mi2mu is part of the GNU LilyPond music typesetting package.
-
-manpagessynopsis()
-
-       mi2mu [options] midi-file
-
-manpageoptions()
-
-description(
-dit(-b, --no-quantify,)
-    Write exact durations, e.g.: `a4*385/384'.
-dit(-D, --debug,)
-    Print lots of debugging stuff.
-dit(-h, --help,)
-    Show a summary of usage.
-dit(-I, --include=file(DIR),)
-    Add DIR to search path.
-dit(-k, --key=ACC[:MINOR],)
-    Set default key.  ACC > 0 sets number of sharps; ACC < 0 sets number 
-    of flats.  A minor key is indicated by ":1".
-dit(-n, --no-silly,)
-    Assume no plets or double dots, assume smallest (reciprocal) duration 16.
-dit(-o, --output=file(FILE),)
-    Set file(FILE) as default output.
-dit(-p, --no-plets,)
-    Assume no plets.
-dit(-q, --quiet,)
-    Be quiet.
-dit(-s, --smallest=N,)
-    Assume no shorter (reciprocal) durations than N.
-dit(-v, --verbose,)
-    Be verbose.
-dit(-w, --warranty,)
-    Show the warranty with which mi2mu comes. (It comes with bf(NO WARRANTY)!)
-dit(-x, --no-double-dots,)
-    Assume no double dotted notes.
-)
-
-manpagesection(DISCLAIMER)
-
-Mi2mu is copyright 1996, 1997 by its authors. Mi2mu is distributed 
-as part of GNU LilyPond, under the terms of the GNU General Public
-License.  Mi2mu is provided without any warranty what so ever.
-Mi2mu may be freely distributed.  For further information consult
-the GNU General Public License, from the file file(COPYING).
-
-manpageseealso()
-
-description(
-dit(bf(lilypond)(1))
-    The GNU LilyPond music typesetter.
-dit(mudela-man)
-    On the input format. This is a LilyPond-enhanced LaTeX document.
-)
-
-manpageauthor()
-
-Please consult the documentation file file(AUTHORS) for more detailed
-information, and small contributions. 
-
-nemail(Jan Nieuwenhuizen)(janneke@gnu.org), lurl(http://www.xs4all.nl/~jantien)
-
diff --git a/Documentation/man/midi2ly.yo b/Documentation/man/midi2ly.yo
new file mode 100644 (file)
index 0000000..11ee01c
--- /dev/null
@@ -0,0 +1,79 @@
+
+mailto(janneke@gnu.org)
+COMMENT(
+       (PIPETHROUGH(echo -n `date '+%d/%b/%y'|tr '[a-z]' '[A-Z]'`)())
+)
+manpage(LilyPond)
+       (1)
+       (1998)
+       (midi2ly)
+       (The LilyPond package)
+
+metalC(Automatically generated by yodl(1) from midi2ly.yo.)
+
+manpagename(midi2ly)(convert MIDI to bf(mudela)(5))
+
+manpagedescription()
+midi2ly translates a MIDI input file to Mudela (GNU LilyPond source
+format).  midi2ly is part of the GNU LilyPond music typesetting package.
+
+manpagessynopsis()
+
+       midi2ly [options] midi-file
+
+manpageoptions()
+
+description(
+dit(-b, --no-quantify,)
+    Write exact durations, e.g.: `a4*385/384'.
+dit(-D, --debug,)
+    Print lots of debugging stuff.
+dit(-h, --help,)
+    Show a summary of usage.
+dit(-I, --include=file(DIR),)
+    Add DIR to search path.
+dit(-k, --key=ACC[:MINOR],)
+    Set default key.  ACC > 0 sets number of sharps; ACC < 0 sets number 
+    of flats.  A minor key is indicated by ":1".
+dit(-n, --no-silly,)
+    Assume no plets or double dots, assume smallest (reciprocal) duration 16.
+dit(-o, --output=file(FILE),)
+    Set file(FILE) as default output.
+dit(-p, --no-plets,)
+    Assume no plets.
+dit(-q, --quiet,)
+    Be quiet.
+dit(-s, --smallest=N,)
+    Assume no shorter (reciprocal) durations than N.
+dit(-v, --verbose,)
+    Be verbose.
+dit(-w, --warranty,)
+    Show the warranty with which midi2ly comes. (It comes with bf(NO WARRANTY)!)
+dit(-x, --no-double-dots,)
+    Assume no double dotted notes.
+)
+
+manpagesection(DISCLAIMER)
+
+midi2ly is copyright 1996, 1997 by its authors. midi2ly is distributed 
+as part of GNU LilyPond, under the terms of the GNU General Public
+License.  midi2ly is provided without any warranty what so ever.
+midi2ly may be freely distributed.  For further information consult
+the GNU General Public License, from the file file(COPYING).
+
+manpageseealso()
+
+description(
+dit(bf(lilypond)(1))
+    The GNU LilyPond music typesetter.
+dit(mudela-man)
+    On the input format. This is a LilyPond-enhanced LaTeX document.
+)
+
+manpageauthor()
+
+Please consult the documentation file file(AUTHORS) for more detailed
+information, and small contributions. 
+
+nemail(Jan Nieuwenhuizen)(janneke@gnu.org), lurl(http://www.xs4all.nl/~jantien)
+
diff --git a/Documentation/man/out/mi2mu.1 b/Documentation/man/out/mi2mu.1
deleted file mode 100644 (file)
index 12c08fd..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-.TH "LilyPond" "1" "1998" "Mi2mu" "The LilyPond package" 
-.PP 
-.PP 
-.SH "NAME" 
-Mi2mu \- convert MIDI to \fBmudela\fP(5)
-.PP 
-.SH "DESCRIPTION" 
-Mi2mu translates a MIDI input file to Mudela (GNU LilyPond source
-format)\&.  Mi2mu is part of the GNU LilyPond music typesetting package\&.
-.PP 
-manpagessynopsis()
-.PP 
-mi2mu [options] midi-file
-.PP 
-.SH "OPTIONS" 
-.PP 
-.IP "-b, --no-quantify," 
-Write exact durations, e\&.g\&.: `a4*385/384\'\&.
-.IP "-D, --debug," 
-Print lots of debugging stuff\&.
-.IP "-h, --help," 
-Show a summary of usage\&.
-.IP "-I, --include=\fBDIR\fP," 
-Add DIR to search path\&.
-.IP "-k, --key=ACC[:MINOR]," 
-Set default key\&.  ACC > 0 sets number of sharps; ACC < 0 sets number 
-of flats\&.  A minor key is indicated by ":1"\&.
-.IP "-n, --no-silly," 
-Assume no plets or double dots, assume smallest (reciprocal) duration 16\&.
-.IP "-o, --output=\fBFILE\fP," 
-Set \fBFILE\fP as default output\&.
-.IP "-p, --no-plets," 
-Assume no plets\&.
-.IP "-q, --quiet," 
-Be quiet\&.
-.IP "-s, --smallest=N," 
-Assume no shorter (reciprocal) durations than N\&.
-.IP "-v, --verbose," 
-Be verbose\&.
-.IP "-w, --warranty," 
-Show the warranty with which mi2mu comes\&. (It comes with \fBNO WARRANTY\fP!)
-.IP "-x, --no-double-dots," 
-Assume no double dotted notes\&.
-.PP 
-.SH "DISCLAIMER" 
-.PP 
-Mi2mu is copyright 1996, 1997 by its authors\&. Mi2mu is distributed 
-as part of GNU LilyPond, under the terms of the GNU General Public
-License\&.  Mi2mu is provided without any warranty what so ever\&.
-Mi2mu may be freely distributed\&.  For further information consult
-the GNU General Public License, from the file \fBCOPYING\fP\&.
-.PP 
-.SH "SEE ALSO" 
-.PP 
-.IP "\fBlilypond\fP(1)" 
-The GNU LilyPond music typesetter\&.
-.IP "mudela-man" 
-On the input format\&. This is a LilyPond-enhanced LaTeX document\&.
-.PP 
-.SH "AUTHOR" 
-.PP 
-Please consult the documentation file \fBAUTHORS\fP for more detailed
-information, and small contributions\&. 
-.PP 
-Jan Nieuwenhuizen <janneke@gnu\&.org>, http://www\&.xs4all\&.nl/~jantien
-.PP 
diff --git a/Documentation/man/out/midi2ly.1 b/Documentation/man/out/midi2ly.1
new file mode 100644 (file)
index 0000000..e875fd6
--- /dev/null
@@ -0,0 +1,66 @@
+.TH "LilyPond" "1" "1998" "midi2ly" "The LilyPond package" 
+.PP 
+.PP 
+.SH "NAME" 
+midi2ly \- convert MIDI to \fBmudela\fP(5)
+.PP 
+.SH "DESCRIPTION" 
+midi2ly translates a MIDI input file to Mudela (GNU LilyPond source
+format)\&.  midi2ly is part of the GNU LilyPond music typesetting package\&.
+.PP 
+manpagessynopsis()
+.PP 
+midi2ly [options] midi-file
+.PP 
+.SH "OPTIONS" 
+.PP 
+.IP "-b, --no-quantify," 
+Write exact durations, e\&.g\&.: `a4*385/384\'\&.
+.IP "-D, --debug," 
+Print lots of debugging stuff\&.
+.IP "-h, --help," 
+Show a summary of usage\&.
+.IP "-I, --include=\fBDIR\fP," 
+Add DIR to search path\&.
+.IP "-k, --key=ACC[:MINOR]," 
+Set default key\&.  ACC > 0 sets number of sharps; ACC < 0 sets number 
+of flats\&.  A minor key is indicated by ":1"\&.
+.IP "-n, --no-silly," 
+Assume no plets or double dots, assume smallest (reciprocal) duration 16\&.
+.IP "-o, --output=\fBFILE\fP," 
+Set \fBFILE\fP as default output\&.
+.IP "-p, --no-plets," 
+Assume no plets\&.
+.IP "-q, --quiet," 
+Be quiet\&.
+.IP "-s, --smallest=N," 
+Assume no shorter (reciprocal) durations than N\&.
+.IP "-v, --verbose," 
+Be verbose\&.
+.IP "-w, --warranty," 
+Show the warranty with which midi2ly comes\&. (It comes with \fBNO WARRANTY\fP!)
+.IP "-x, --no-double-dots," 
+Assume no double dotted notes\&.
+.PP 
+.SH "DISCLAIMER" 
+.PP 
+midi2ly is copyright 1996, 1997 by its authors\&. midi2ly is distributed 
+as part of GNU LilyPond, under the terms of the GNU General Public
+License\&.  midi2ly is provided without any warranty what so ever\&.
+midi2ly may be freely distributed\&.  For further information consult
+the GNU General Public License, from the file \fBCOPYING\fP\&.
+.PP 
+.SH "SEE ALSO" 
+.PP 
+.IP "\fBlilypond\fP(1)" 
+The GNU LilyPond music typesetter\&.
+.IP "mudela-man" 
+On the input format\&. This is a LilyPond-enhanced LaTeX document\&.
+.PP 
+.SH "AUTHOR" 
+.PP 
+Please consult the documentation file \fBAUTHORS\fP for more detailed
+information, and small contributions\&. 
+.PP 
+Jan Nieuwenhuizen <janneke@gnu\&.org>, http://www\&.xs4all\&.nl/~jantien
+.PP 
diff --git a/Documentation/metadoc/GNUmakefile b/Documentation/metadoc/GNUmakefile
new file mode 100644 (file)
index 0000000..6e8a382
--- /dev/null
@@ -0,0 +1,75 @@
+# Documentation/tex/Makefile
+
+depth=../..
+
+DATA_FILES = $(wildcard *.data)
+datafiles = $(addprefix $(outdir)/,$(DATA_FILES:.data=.html))
+TEX_FILES = $(wildcard *.tex)
+DOC_FILES = $(wildcard *.doc)
+DVI_FILES = $(addprefix $(outdir)/,$(DOC_FILES:.doc=.dvi) $(YO_FILES:.yo=.dvi))
+OUT_BIB_FILES = $(addprefix $(outdir)/, $(BIB_FILES))
+
+# just include me
+YO_URG_FILES = $(wildcard *.yo-urg)
+
+OUTTEX_FILES = $(addprefix $(outdir)/, $(TEX_FILES))
+OUTDOC_FILES = $(addprefix $(outdir)/, $(DOC_FILES))
+EL_FILES = $(wildcard *.el)
+BIB_FILES= $(wildcard *.bib)
+EXTRA_DIST_FILES= $(BIB_FILES) $(DOC_FILES) $(DATA_FILES) $(EL_FILES) $(YO_URG_FILES) $(TEX_FILES) $(wildcard *.sty) 
+HTML_FILES = $(addprefix $(outdir)/, $(YO_FILES:.yo=.html))
+PS_FILES = $(DVI_FILES:.dvi=.ps)
+
+STEPMAKE_TEMPLATES=tex documentation
+LOCALSTEPMAKE_TEMPLATES=lilypond mudela
+
+export BIBINPUTS:=$(shell pwd)//$(PATHSEP)$(BIBINPUTS)
+include $(depth)/make/stepmake.make 
+
+
+
+
+
+
+dvi: $(OUT_BIB_FILES) $(DVI_FILES)
+
+ps: $(PS_FILES)
+
+# urg
+default:
+
+GENHTMLS = engraving colorado  computer-notation
+OUTGENHTMLS = $(addprefix $(outdir)/, $(GENHTMLS:%=%.html))
+
+#urg should generalise and move Lilypond -> StepMake
+# URG.  Lilypond specific. Move out. 
+$(outdir)/%.html: %.data $(depth)/VERSION
+       $(PYTHON) $(step-bindir)/table-to-html.py --columns=7 --linesep='\r' --package=$(topdir) -o $@ $<
+       $(PYTHON) $(step-bindir)/add-html-footer.py --package=$(topdir) $@
+
+$(outdir)/%.tex: %.data $(depth)/VERSION
+       $(PYTHON) $(step-bindir)/table-to-html.py --columns=7 --linesep='\r' --package=$(topdir) -o $@ --latex $<
+
+
+
+local-WWW: $(HTML_FILES) $(OUTTEX_FILES:.tex=.ps.gz) $(OUTYO_FILES:.yo=.latex) $(OUTYO_FILES:.yo=.ps.gz) $(addprefix $(outdir)/, $(BIB_FILES:.bib=.html)) $(datafiles)
+       $(PYTHON) $(step-bindir)/ls-latex.py --package=$(topdir) --title 'LaTeX documents about design and implementation of LilyPond' \
+         $(YO_FILES) $(OUTYO_FILES:.yo=.latex) $(BIB_FILES) $(DOC_FILES) $(TEX_FILES)\
+         | sed "s!$(outdir)/!!g" > $(outdir)/index.html
+         $(PYTHON) $(step-bindir)/add-html-footer.py --package=$(topdir) $(outdir)/index.html
+
+$(outdir)/%.bib: %.bib
+       ln -f $< $@
+
+# ignore result since bib2html is nonstandard. Errors would halt the RPM build.j  
+$(outdir)/%.html: %.bib
+       -bib2html $< $@
+
+# Yeah right: 
+# make -k out/mudela.dvi => cp -f out/vocabulary.tex out/mudela.dvi
+
+#out/%: $(outdir)/%
+#      cp -f $< $@
+
+locamlclean:
+       rm -f fonts.aux fonts.log feta*.tfm feta*.*pk
diff --git a/Documentation/metadoc/fonts.doc b/Documentation/metadoc/fonts.doc
new file mode 100644 (file)
index 0000000..287dde4
--- /dev/null
@@ -0,0 +1,330 @@
+
+                                % -*-LaTeX-*-
+
+\documentclass{article}
+\def\kdots{,\ldots,}
+\title{Not the Font-En-Tja font}
+\author{HWN \& JCN} 
+\def\preMudelaExample{}
+\def\postMudelaExample{}
+\begin{document}
+\maketitle
+
+
+\section{Introduction}
+
+This document are some design notes of the Feta font, and other
+symbols related to LilyPond.  Feta (not an abbreviation of
+Font-En-Tja) is a font of music symbols.  All MetaFont sources are
+original.  The symbols are modelled after various editions of music,
+notably \begin{itemize} \item B\"arenreiter \item Hofmeister \item
+Breitkopf \item Durand \& C'ie \end{itemize}
+
+The best references on Music engraving are Wanske\cite{wanske} and
+Ross\cite{ross} some of their insights were used.  Although it is a
+matter of taste, I'd say that B\"arenreiter has the finest typography
+of all.
+
+
+\section{Bezier curves for slurs}
+
+Objective:  slurs in music are curved objects designating that notes
+should fluently bound.  They are drawn as smooth curves, with their
+center thicker and the endings tapered.
+
+There are some variants: the simplest slur shape only has the width as
+parameter.  Then we give some suggestions for tuning the shapes.  The
+simple slur algorithm is used for drawing ties as well.
+
+
+
+\subsection{Simple slurs}
+
+Long slurs are flat, whereas short slurs look like small circle arcs.
+Details are given in Wanske\cite{ross} and Ross\cite{wanske}.  The
+shape of a slur can be given as a Bezier curve with four control
+points:
+
+\begin{eqnarray*}
+  B(t) &=& (1-t)^3c_1 +3(1-t)^2tc_2 + 3(1-t)t^2c_3 + t^3c_4.
+\end{eqnarray*}
+
+We will assume that the slur connects two notes of the same
+pitch.  Different slurs can be created by rotating the derived shape.
+We will also assume that the slur has a vertical axis of symmetry
+through its center.  The left point will be the origin.     So we have
+the following equations for the control points $c_1\kdots c_4$.
+
+\begin{eqnarray*}
+c_1&=& (0,0)\\
+c_2&=& (i, h)\\
+c_3&=& (b-i, h)\\
+c_4&=& (b, 0)
+\end{eqnarray*}
+
+The quantity $b$ is given, it is the width of the slur.  The
+conditions on the shape of the slur for small and large $b$ transform
+to
+\begin{eqnarray*}
+ h \to h_{\infty} , &&\quad b \to \infty\\
+ h \approx r_{0} b, &&\quad b \to 0.
+\end{eqnarray*}
+To tackle  this, we  will  assume that $h   = F(b)$, for  some kind of
+$F(\cdot)$.  One function that satisfies the above conditions is
+$$
+F(b) = h_{\infty} \frac{2}{\pi} \arctan \left( \frac{\pi r_0}{2
+h_{\infty}} b \right).
+$$
+
+For satisfying results we choose $h_{\infty} = 2\cdot \texttt{interline}$
+and $r_0 = \frac 13$.
+
+\subsection{Height correction}
+
+Aside from being a smooth curve, slurs should avoid crossing
+enclosed notes and their stems.
+
+An easy way to achieve this is to extend the slur's height,
+so that the slur will curve just above any disturbing notes.
+
+The parameter $i$ determines the flatness of the curve.  Satisfying
+results have been obtained with $i = h$.
+
+The formula can be generalised to allow for corrections in the shape, 
+\begin{eqnarray*}
+c_1&=& (0,0)\\
+c_2&=& (i', h')\\
+c_3&=& (b-i', h')\\
+c_4&=& (b, 0)
+\end{eqnarray*}
+Where
+$$
+i' = h(b) (1 + i_{corr}), \quad h' = h(b) (1 + h_{corr}).
+$$
+
+The default values for these corrections are $0$.  A $h_{corr}$ that is
+negative, makes the curve flatter in the center.  A $h_{corr}$ that is
+positive make the curve higher. 
+
+At every encompassed note's x position the difference $\delta _y$ 
+between the slur's height and the note is calculated.  The greatest 
+$\delta _y$ is used to calculate $h_{corr}$ is by lineair extrapolation.
+
+However, this simple method produces satisfactory results only for 
+small and symmetric disturbances.
+
+
+\subsection{Tangent method correction}
+
+A somewhat more elaborate\footnote{While staying in the realm 
+of empiric computer science} way of having a slur avoid 
+disturbing notes is by first defining the slur's ideal shape 
+and then using the height correction.  The ideal shape of a 
+slur can be guessed by calculating the tangents of the disturbing 
+notes:
+% a picture wouldn't hurt...
+\begin{eqnarray*}
+  y_{disturb,l} &=& \rm{rc}_l x\\
+  y_{disturb,r} &=& \rm{rc}_r + c_{3,x},
+\end{eqnarray*}
+where
+\begin{eqnarray*}
+  \rm{rc}_l &=& \frac{y_{disturb,l} - y_{encompass,1}}
+    {x_{disturb,l} - x_{encompass,1}}\dot x\\
+  \rm{rc}_r &=& \frac{y_{encompass,n} - y_{disturb,r}}
+    {x_{encompass,n} - x_{disturb,r}} \dot x + c_{3,x}.
+\end{eqnarray*}
+
+We assume that having the control points $c_2$ and $c_3$ located 
+on tangent$_1$ and tangent$_2$ resp. 
+% t: tangent
+\begin{eqnarray*}
+  y_{tangent,l} &=& \alpha \rm{rc}_l x\\
+  y_{tangent,r} &=& \alpha \rm{rc}_r + c_{3,x}.
+\end{eqnarray*}
+
+Beautiful slurs have rather strong curvature at the extreme
+control points.  That's why we'll have $\alpha > 1$.
+Satisfactory resulsts have been obtained with
+$$
+  \alpha \approx 2.4.
+$$
+
+The positions of control points $c_2$ and $c_3$ are obtained
+by solving with the height-line
+\begin{eqnarray*}
+  y_h &=& \rm{rc}_h + c_h.
+\end{eqnarray*}
+
+The top-line runs through the points disturb$_{left}$ and
+disturb$_{right}$.  In the case that 
+$$
+z_{disturb,l} = z_{disturb,r},
+$$
+we'll have 
+$$
+  \angle(y_{tangent,l},y_h) = \angle(y_{tangent,r},y_h).
+$$
+
+
+
+\section{Sizes}
+
+Traditional engraving uses a set of 9 standardised sizes for Staffs
+(running from 0 to 8).  
+
+We have tried to measure these (helped by a magnifying glass), and
+found the staffsizes in  table~\ref{fonts:staff-size}.  One should note that
+these are estimates, so I think there could be a measuring error of ~
+.5 pt.  Moreover [Ross] states that not all engravers use exactly
+those sizes.
+
+\begin{table}[h]
+  \begin{center}
+    \begin{tabular}{lll}
+Staffsize       &Numbers                &Name\\
+\hline\\
+26.2pt  &No. 0\\
+22.6pt  &No. 1          &Giant/English\\
+21.3pt  &No. 2          &Giant/English\\
+19.9pt  &No. 3          &Regular, Ordinary, Common\\
+19.1pt  &No. 4          &Peter\\
+17.1pt  &No. 5          &Large middle\\
+15.9pt  &No. 6          &Small middle\\
+13.7pt  &No. 7          &Cadenza\\
+11.1pt  &No. 8          &Pearl\\
+    \end{tabular}
+    \caption{Foo}
+    \label{fonts:staff-size}
+  \end{center}
+\end{table}
+
+
+
+
+\section{Beams}
+
+\subsection{Slope}
+
+Traditionally, beam slopes are computed by following a large and hairy
+set of rules.  Some of these are talked-about in Wanske, a more
+recipy-like description can be found in Ross.
+
+There are some problems when trying to follow these rules:
+\begin{itemize}
+
+\item the set is not complete
+
+\item they are not formulated as a general rule with exceptions, but
+rather as a huge case of individual rules\cite{ross}
+
+\item in some cases, the result is wrong or ugly (or both)
+
+\item they try to solve a couple of problems at a time (e.g. Ross
+handles ideal slope and slope-quantisation as a paired problem)
+\end{itemize}
+Reading Ross it is clear that the rules presented there are certainly
+not the ultimate idea of what beam(slope)s should look like, but
+rather a (very much) simplified hands-on recipy for a human engraver.
+
+There are good reasons not to follow those rules:
+
+\begin{itemize}
+\item One cannot expect a human engraver to solve least-squares
+problems for every beam
+  
+\item A human engravers will allways trust themselves in judging the
+outcome of the applied recipy.  If, in a complicated case, the result
+"doesn't look good", they will ignore the rules and draw their own
+beams, based on experience.
+
+\item The exact rules probably don't "really exist" but in the minds
+  of good engravers, in the form of experience
+\end{itemize}
+
+We'll propose to do a least-squares solve.  This seems to be the best
+way to calculate the slope for a computerised engraver such as Lily.
+
+It would be nice to have some rules to catch and handle "ugly" cases,
+though.  In general, the slope of the beam should mirror the pitches
+of the notes.  If this can't be done because there simply is no
+uniform trend, it would probably be best to set the slope to zero.
+
+
+\subsection{Quantising}
+
+The beams should be prevented to conflict with the stafflines,
+especially at small slopes.  Traditionally, poor printing techniques
+imposed rather strict rules for quantisation.  In modern (post 1955)
+music printing we see that quality has improved substantially and
+obsoleted the technical justification for following some of these
+strict rules, notably the avoiding of so-called wedges.
+
+
+\subsection{Thickness and spacing}
+
+The spacing of double and triple beams (sixteenth and thirtysecond beams)
+is the same, quadruple and quintuple (thirtyfourth and hundredtwentyeighth
+beams) is wider.
+All beams are equally thick.  Using the layout of triple beams and the 
+beam-thickness $bt$ we can calculate the inter-beam spacing $ib$.
+
+Three beams span two interlines, including stafflines:
+\begin{eqnarray*}
+ 2 ib + bt &=& 2 il\\
+ ib &=& (2 il - bt) / 2
+\end{eqnarray*}
+
+We choose
+\begin{eqnarray*}
+  bt &=& 0.48(il - st)
+\end{eqnarray*}
+
+\subsubsection{Quadruple beams}
+
+If we have more than three beams they must open-up
+in order to not collide with staff lines.  The only valid
+position that remains is for the upper beam to hang.
+
+\begin{eqnarray*}
+ 3 ib_{4+} + bt &=& 3 il\\
+ ib_{4+} &=& (3 il - bt) / 3
+\end{eqnarray*}
+
+
+\section{Layout of the source files}
+
+The main font (with the fixed size music glyphs) uses a the \TeX\
+logfile as a communication device.  Use the specialised macros to
+create and export glyphs.
+
+\bibliographystyle{plain}
+\bibliography{engraving}
+
+
+
+\end{document}
+
+\begin{verbatim}
+Paul Terry <paul@musonix.demon.co.uk> writes:
+
+Ross states that the dies (the stamps to make the symbols) come in
+12 different sizes.
+
+>Can you tell me how big rastrals are?
+
+According to the Score manual:
+
+   Rastral Size     Height in millimetres
+
+   0                9   mm
+   1                8   mm
+   2                7.5 mm
+   3                7   mm
+   4                6.5 mm
+   5                6   mm
+   6                5.5 mm
+
+I must say, despite having been a music setter for many years, I had to
+look these up - none of the publishers I work for deal in Rastral sizes
+these days (they all use millimetres).
diff --git a/Documentation/metadoc/lilypond-overview.doc b/Documentation/metadoc/lilypond-overview.doc
new file mode 100644 (file)
index 0000000..4aa1e75
--- /dev/null
@@ -0,0 +1,743 @@
+%-*-LaTeX-*-
+
+\documentclass{article}
+\usepackage{a4}
+\def\postMudelaExample{\setlength{\parindent}{1em}}
+\title{LilyPond, a Music Typesetter}
+\author{HWN}
+\usepackage{musicnotes}
+\usepackage{graphics}
+
+
+\begin{document}
+\maketitle
+
+[THIS IS WORK IN PROGRESS.  THIS PAPER IS NOT FINISHED]
+
+% -*-LaTeX-*-
+\section{Introduction}
+
+The Internet has become a popular medium for collaborative work on
+information.  Its success is partly due to its use of simple, text-based
+formats.  Examples of these formats are HTML and \LaTeX.  Anyone can
+produce or modify such files using nothing but a text editor, they are
+easily processed with run-of-the-mill text tools, and they can be
+integrated into other text-based formats.
+
+Software for processing this information and presenting these formats
+in an elegant form is available freely (Netscape, \LaTeX, etc.).
+Ubiquitousness of the software and simplicity of the formats have
+revolutionised the way people publish text-based information
+nowadays.
+
+In the field of performed music, where the presentation takes the form
+of sheet music, such a revolution has not started yet.  Let us review
+some alternatives that have been available for transmitting sheet
+music until now:
+\begin{itemize}
+\item MIDI\cite{midi}.  This format was designed for interchanging performances
+  of music; one should think of it as a glorified tape recorder
+  format.  It needs dedicated editors, since it is binary.  It does
+  not provide enough information for producing musical scores: some of
+  the abstract musical content of what is performed is thrown away.
+  
+\item PostScript\cite{Postscript}. This format is a printer control
+  language.  Printed musical scores can be transmitted in PostScript,
+  but once a score is converted to PostScript, it is virtually
+  impossible to modify the score in a meaningful way.
+  
+\item Formats for various notation programs.  Notation programs either
+  work with binary  formats (e.g., NIFF\cite{niff-web}), need specific
+  platforms   (e.g.,  Sibelius\cite{sibelius}),  are   proprietary  or
+  non-portable  tools  themselves  (idem), produce  inadequate  output
+  (e.g.,  MUP\cite{mup}),  are   based  on  graphical  content  (e.g.,
+  MusixTeX\cite{musixtex1}),  limit themselves to  specific subdomains
+  (e.g.,  ABC\cite{abc2mtex}),  or   require  considerable  skill  and
+  knowledge to use (e.g., SCORE\cite{score})
+  
+\item SMDL\cite{smdl-web}.  This is a very rich ASCII format, that is
+  designed for storing many types of music.  Unfortunately, there is
+  no implementation of a program to print music from SMDL available.
+  Moreover, SMDL is so verbose, that it is not suitable for human
+  production.
+  
+\item TAB\cite{tablature-web}.  Tab (short for tablature) is a popular
+  format, for interchanging music over e-mail, but it can only be used
+  for guitar music.
+\end{itemize}
+
+In summary, sheet music is not published and edited on a wide scale
+across the internet  because no format for music
+interchange exists that is:
+\begin{itemize}
+\item open, i.e., with publically available specifications.
+\item based on ASCII, and therefore suitable for human consumption and
+  production.
+\item rich enough for producing publication quality sheet music from
+  it.
+\item based on musical content (unlike, for example, PostScript), and
+  therefore suitable for making modifications.
+\item accompanied by tools for processing it that are freely available
+  across multiple platforms.
+\end{itemize}
+
+
+With the creation of LilyPond, we have tried to create both a
+convenient format for storing sheet music, and a portable,
+high-quality implementation of a compiler, that compiles the input
+into a printable score.  You can find a small example of LilyPond
+input along with output in Figure~\ref{fig:intro-fig}.
+%
+\begin{figure}[htbp]
+  \begin{center}
+\begin{mudela}[verbatim]
+      \score {
+        \notes
+          \context GrandStaff <
+             \transpose c'' { c4 c4 g4 g4 a4 a4 g2 }
+             { \clef "bass"; c4 c'4
+               \context Staff <e'2 {\stemdown c'4 c'4}> f'4 c'4 e'4 c'4 }
+           >
+           \paper { 
+             linewidth = -1.0\cm ;
+           }
+        }      
+\end{mudela}
+    \caption{A small example of LilyPond input}
+    \label{fig:intro-fig}
+  \end{center}
+\end{figure}
+%
+
+The input language encodes musical events (such as notes and rests) on
+the basis of their time-ordering.  For example, the grammar includes
+constructs that specify that notes start simultaneous and that notes
+are to be played in sequence.  In this encoding some context that is
+present in sheet music is lost.
+
+The compiler reconstructs the notation from the encoded music.  Its
+operation comprises four different steps (see
+Figure~\ref{fig:intro-steps}).
+
+\begin{description}
+\item[Parsing] During parsing, the input is converted in a syntax tree.
+  
+\item[Interpreting] In the \emph{interpreting} step, it is determined
+  which symbols have to be printed.  Objects that correspond to
+  notation (\emph{Graphical objects}) are created from the syntax tree
+  in this phase. Generally speaking, for every symbol printed there is
+  one graphical object.  These objects are incomplete: their position
+  and their final shape is unknown.
+  
+  The context that was lost by encoding the input in a language is
+  reconstructed during this conversion.
+\item[Formatting] The next step is determing where symbols are to be
+  placed, this is called \emph{formatting}.
+\item[Outputting]   
+  Finally, all Graphical objects are outputted as PostScript or \TeX\ code.
+\end{description}
+
+\def\staffsym{\vbox to 16pt{
+    \hbox{\vrule width 1cm depth .2pt height .2pt}\nointerlineskip
+    \vfil
+    \hbox{\vrule width 1cm depth .2pt height .2pt}\nointerlineskip
+    \vfil
+    \hbox{\vrule width 1cm depth .2pt height .2pt}\nointerlineskip
+    \vfil
+    \hbox{\vrule width 1cm depth .2pt height .2pt}\nointerlineskip
+    \vfil
+    \hbox{\vrule width 1cm depth .2pt height .2pt}\nointerlineskip
+}}
+
+\def\vspacer{\vbox to 20pt{\vss}}
+\begin{figure}[h]
+\def\spacedhbox#1{\hbox{\ #1\ }}
+\begin{eqnarray*}
+  {\spacedhbox{Input}\atop \hbox{\texttt{\{c8 c8\}}}} {\spacedhbox{Parsing}\atop\longrightarrow}
+  {\spacedhbox{Syntax tree}\atop\spacedhbox{\textsf{Sequential(Note,Note)}}}
+  {\spacedhbox{Interpreting}\atop\longrightarrow}\\
+  \vspacer\\
+  {\spacedhbox{Graphic objects}\atop\spacedhbox{\texttrebleclef \textquarterhead\texteighthflag\textquarterhead\texteighthflag \staffsym }}
+  {\spacedhbox{Formatting}\atop\longrightarrow}
+  {\spacedhbox{Formatted objects}\atop\hbox{
+    \mudela{c''8 c''8}
+    }}\\
+\vspacer\\
+  {\spacedhbox{Outputting}\atop\longrightarrow}
+  {\spacedhbox{PostScript code}\atop\hbox{\texttt{\%!PS-Adobe}\ldots}}
+\end{eqnarray*}
+  \caption{Parsing, Interpreting, Formatting and Outputting}
+    \label{fig:intro-steps}
+\end{figure}
+
+
+The second step, the interpretation phase of the compiler, can be
+manipulated as a separate entity: the interpretation process is
+composed of many separate modules, and the behaviour of the modules is
+parameterised.  By recombining these interpretation modules,
+and changing parameter settings, the same piece of music can be
+printed differently, as is shown in Figure~\ref{fig:intro-interpret}.
+
+This makes it easy to extend the program. Moreover, this enables the
+same music to be printed in different versions, e.g., in a conductors
+score and in extracted parts.
+
+
+\begin{figure}[h]
+  \begin{center}
+    \begin{mudela}
+      \score {
+        \notes
+          \context GrandStaff <
+             \transpose c'' { c4 c4 g4 g4 a4 a4 g2 }
+             { \clef "bass"; c4 c'4
+               \context Staff <e'2 {\stemdown c'4 c'4}> f'4 c'4 e'4 c'4 }
+           >
+           \paper { 
+             linewidth = -1.0\cm ;
+             \translator {  
+                \VoiceContext
+                \remove "Stem_engraver";
+             }
+           \translator {
+             \StaffContext
+               numberOfStaffLines = 3;
+           }
+          }
+        }
+    \end{mudela}
+    \caption{The interpretation phase can be manipulated: the same
+      music as in Figure~\ref{fig:intro-fig} is interpreted
+      differently: three staff lines and no stems.}
+    \label{fig:intro-interpret}
+  \end{center}
+\end{figure}
+
+
+
+\section{Preliminaries}
+
+To understand the rest of the article, it is necessary to know
+something about music notation and music typography.  Since both
+communicate music, we will explain some characteristics of instruments
+and western music that motivate some notational constructs.
+
+\subsection{Music}
+
+Music notation is meant to be read by human performers.  They sing or
+play instruments that can produce sounds of different pitches.  These
+sounds are called \emph{notes}. Additionally, the sounds can be
+articulated in differents ways, e.g., staccato (short and separated)
+or legato (fluently bound together).  The loudness of the notes can
+also be varied.  Changes in loudness are called \emph{dynamics}.
+
+Silence is also an element of music.  The musical terminology for
+silence within music is \emph{rest}.
+
+The basic unit of pitch is the \emph{octave}.  The octave corresponds
+to a frequency ratio of 1:2. For example the pitch denoted by a'
+(frequency: 440 hertz) is one octave lower than a'' (frequency: 880
+hertz).  Various instruments have a limited \emph{pitch range}, for
+example, a trumpet has a range of about 2.5 octaves.  Not all
+instruments have ranges in the same register: a tuba also has a range
+of 2.5 octaves, but the range of the tuba is much lower.
+
+Musicology has a confusing mix of relative and absolute measures for
+pitches: the term `octave' refers to both a difference between two
+pitches (the frequency ratio of 1:2), and to a range of pitches.  For
+example, the term `[eengestreept] octave' refers to the pitch range
+between 261.6 Hz and 523.3 Hz.
+
+
+The octave is divided into smaller pitch steps.  In modern western
+music, every octave is divided into twelve approximately equidistant
+pitch steps, and each step is called a \emph{semitone}.  Usually, the
+pitches in a musical piece come from a smaller subset of these twelve
+possible pitches.  This smaller subset along with the musical
+functions fo the pitches is called the
+\emph{tonality}\footnote{Tonality also refers to the relations between
+  and functions of certain pitches.  Since these do not have any
+  impact on notation, we ignore this} of the piece.
+
+
+The standard tonality that forms the basis of music notation 
+(the key of C major) is a set of seven pitches within every octave.
+Each of these seven is denoted by a name. In English, these are names
+are (in rising pitch) denoted by c, d, e, f, g, a and b.  Pitches that
+are a semitone higher or lower than one of these seven can be
+represented by suffixing the name with `sharp' or `flat'
+respectively (this is called an \emph{chromatic alteration}).
+
+A pitch therefore can be fully specified by a combination of the
+octave number, the note name and a chromatic alteration.
+Figure~\ref{fig:intro-pitches} shows the relation between names and
+frequencies.
+
+
+
+
+\begin{figure}[h]
+  \begin{center}
+    [te doen]
+  \end{center}
+  \caption{Pitches in western music.  The octave number is denoted
+    by a superscript.}
+  \label{fig:intro-pitches}
+\end{figure}
+
+
+Many instruments can produce more than one note at the same time, e.g.
+pianos and guitars.  When more notes are played simultaneously, they
+form a so-called \emph{chord}.
+
+The unit of duration is the \emph{beat}. When playing, the tempo is
+determined by setting the number of beats per minute.  In western
+music, beats are often stressed in a regular pattern: for example
+Waltzes have a stress pattern that is strong-weak-weak, i.e. every
+note that starts on a `strong' beat is louder and has more pronounced
+articulation.  This stress pattern is called \emph{meter}.
+
+\subsection{Music notation}
+
+Music notation is a system that tries to represent musical ideas
+through printed symbols.  Music notation has no precise definition,
+but most conventions have described in reference manuals on music
+notation\cite{read-notation}.
+
+In music notation, sounds and silences are represented by symbols that
+are called note and rest respectively.\footnote{These names serve a
+  double purpose: the same terms are used to denote the musical
+  concepts.}  The shape of notes and rests indicates their duration
+(See figure~\ref{noteshapes}) relative to the whole note.
+
+
+\begin{figure}[h]
+  \begin{center}
+\begin{mudela}
+  \score {
+    \notes \transpose c''{ c\longa*1/4 c\breve*1/2 c1 c2 c4 c8 c16 c32 c64 }
+    \paper {
+     \translator {
+       \StaffContext
+       \remove "Staff_symbol_engraver";
+        \remove "Time_signature_engraver";
+%        \remove "Bar_engraver";
+        \remove "Clef_engraver";
+ }
+linewidth = -1.;
+    }
+}
+\end{mudela}
+\begin{mudela}
+  \score {
+    \notes \transpose c''\context Staff { r\longa*1/4 r\breve*1/2 r1 r2 r4 r8 r16 r32 r64 }
+    \paper {
+      \translator {
+        \StaffContext
+        \remove "Staff_symbol_engraver";
+        \remove "Time_signature_engraver";
+%        \remove "Bar_engraver";
+        \remove "Clef_engraver";
+        }
+      linewidth = -1.;
+    }
+}
+\end{mudela}
+    \caption{Note and rest shapes encode the length.  At the top notes
+      are shown, at the bottom rests.  From left to right a quadruple
+      note (\emph{longa}), double (\emph{breve}), whole, half,
+      quarter, eigth, sixteenth, thirtysecond and sixtyfourth. Each
+      note has half of the duration of its predecessor.}
+    \label{fig:noteshapes}
+\end{center}
+\end{figure}
+
+
+Notes are printed in a grid of horizontal lines called \emph{staff} to
+denote their pitch: each line represents the pitch of from the
+standard scale (c, d, e, f, g, a, b).  The reference point is the
+\emph{clef}, eg., the treble clef marks the location of the $g^1$
+pitch.  The notes are printed in their time order, from left to right.
+
+
+\begin{figure}[h]
+  \begin{center}
+    \begin{mudela}
+      \score { \notes {
+      a4 b c d e f g a \clef bass;
+      a4 b c d e f g a \clef alto;
+      a4 b c d e f g a \clef treble;
+      }
+      \paper { linewidth = 15.\cm; }
+      }
+    \end{mudela}
+    \caption{Pitches ranging from $a, b, c',\ldots a'$, in different
+      clefs.  From left right the bass, alto and treble clef are
+      featured.}
+    \label{fig:pitches}
+  \end{center}
+\end{figure}
+
+The chromatic alterations are indicated by printing a flat sign or a
+sharp sign in front of the note head.  If these chromatic alterations
+occur systematically (if they are part of the tonality of the piece),
+then this indicated with a \emph{key signature}.  This is a list of
+sharp/flat signs which is printed next to the clef.
+
+Articulation is notated by marking the note shapes wedges, hats and
+dots all indicate specific articulations.  If the notes are to be
+bound fluently (legato), the note shapes are encompassed by a smooth
+curve called \emph{slur},
+
+\begin{figure}[h]
+  \begin{center}
+    \begin{mudela}
+      c'4-> c'4-. g'4 ( b'4  ) g''4
+    \end{mudela}
+    \caption{Some articulations.  From left to right: extra stress
+      (\emph{marcato}), short (staccato), slurred notes (legato).}
+    \label{fig:articulation}
+  \end{center}
+\end{figure}
+
+
+
+Dynamics are notated in two ways: absolute dynamics are indicated by
+letters: \textbf{f} (from Italian ``forte'') stands for loud,
+\textbf{p} (from Italian ``piano'') means soft.  Gradual changes in
+loudness are notated by (de)crescendos.  These are hairpin like shapes
+below the staff.
+
+\begin{figure}[h]
+  \begin{center}
+    \begin{mudela}
+      g'4\pp \<  g'4 \! g'4 \ff \> g'4 g' \! g'\ppp
+    \end{mudela}
+    \caption{Dynamics: start very soft (pp), grow to loud (ff) and
+      decrease to extremely soft (ppp)}
+    \label{fig:dynamics}
+  \end{center}
+\end{figure}
+
+
+The meter is indicated by barlines: every start of the stress pattern
+is preceded by a vertical line, the \emph{bar line}.  The space
+between two bar lines is called measure.  It is therefore the unit of
+the rhythmic pattern.
+
+The time signature also indicates what kind of rhythmic pattern is
+desired.  The time signature takes the form of two numbers stacked
+vertically. The top number is the number of beats in one measure, the
+bottom number is the duration (relative to the whole note) of the note
+that takes  one beat.  Example: 2/4  time signature means ``two beats
+per measure, and a quarter note takes one beat''
+
+Chords are written by attaching multiple note heads to one stem.  When
+the composer wants to emphasize the horizontal relationships between
+notes, the simultaneous notes can be written as voices (where every
+note head has its own stem).  A small example is given in
+Figure~\ref{fig:simultaneous}.
+
+\begin{figure}[h]
+  \begin{center}
+    \begin{mudela}
+      \relative c'' {\time 2/4;  <c4 e> <d f>
+                \context Staff < \context Voice = VA{
+                  \stemdown
+                  c4 d
+                  b16 b b b b b b b }
+                \context Voice = VB {
+                  \stemup e4 f g8 g4 g8 } >
+          }
+    \end{mudela}
+    \caption{Notes sounding together.  Chord notation (left, before
+      the bar line) emphasizes vertical relations, voice notation
+      emphasizes horizontal relations. Separate voices needn't have
+      synchronous rhythms (third measure). 
+      }
+    \label{fig:simultaneous}
+  \end{center}
+\end{figure}
+
+Separate voices do not have to share one rhythmic pattern---this is
+also demonstrated in Figure~\ref{fig:simultaneous}--- they are in a sense%vaag
+independent.  A different way to express this in notation, is by
+printing each voice on a different staff.  This is customary when
+writing for piano (both left and right hand have a staff of their own)
+and for ensemble (every instrument has a staff of its own).
+
+
+
+\subsection{Music typography}
+
+Music typography is the art of placing symbols in esthetically
+pleasing configuration.  Little is explicitly known about music
+typography.  There are only a few reference works
+available\cite{ross,wanske}.  Most of the knowledge of this art has
+been transmitted verbally, and was subsequently lost.
+
+The motivation behind choices in typography is to represent the idea
+as clearly as possible. Among others, this results in the following
+guidelines:
+\begin{itemize}
+\item The printed score should use visual hints to accentuate the
+  musical content
+\item The printed score should not contain distracting elements, such
+  as large empty regions or blotted regions.
+\end{itemize}
+
+An example of the first guideline in action is the horizontal spacing.
+The amount of space following a note should reflect the duration of
+that note: short notes get a small amount of space, long notes larger
+amounts.  Such spacing constraints can be  subtle, for the
+``amount of space'' is only the impression that should be conveyed; there
+has to be some correction for optical illusions.  See
+Figure~\ref{fig:spacing}.
+
+\begin{figure}[h]
+  \begin{center}
+    \begin{mudela}
+      \relative c'' { \time 3/4; c16 c c c c8 c8 | f4 f, f'  }
+    \end{mudela}
+    \caption{Spacing conveys information about duration. Sixteenth
+      notes at the left get less space than quarter notes in the
+      middle. Spacing is ``visual'', there should be more space
+      after  the first note of the last measure, and  less after second. }
+    \label{fig:spacing}
+  \end{center}
+\end{figure}
+
+Another example of music typography is clearly visible in collisions.
+When chords or separate voices are printed, the notes that start at
+the same time should be printed aligned (ie., with the same $x$
+position).  If the pitches are close to each other, the note heads
+would collide. To prevent this, some notes (or note heads) have to be
+shifted horizontally.  An example of this is given in
+Figure~\ref{fig:collision}.
+\begin{figure}[h]
+  \begin{center}
+    [todo]
+    \caption{Collisions}
+    \label{fig:collision}
+  \end{center}
+\end{figure}
+
+\bibliographystyle{hw-plain}
+\bibliography{engraving,boeken,colorado,computer-notation,other-packages}
+
+\section{Requirements}
+
+
+\section{Approach}
+
+\subsection{Input}
+
+The input format consists of combining a symbolic representation of
+music with style sheet that describes how the symbolic presentation
+can converted to notation.  The symbolic representation is based on a
+context free language called \textsf{music}.  Music is a recursively
+defined construction in the input language.  It can be constructed by
+combining lists of \textsf{music} sequentially or parallel or from
+terminals like notes or lyrics.
+
+The grammar for \textsf{music} is listed below.  It has been edited to
+leave out the syntactic and ergonomic details.
+
+\begin{center}
+    \begin{tabular}{ll}
+Music:  & SimpleMusic\\
+        & $|$ REPEATED int Music ALTERNATIVE MusicList\\
+        & $|$ SIMULTANEOUS MusicList\\
+        & $|$ SEQUENTIAL MusicList\\
+        & $|$ CONTEXT STRING '=' STRING Music\\
+        & $|$ TIMES int int Music     \\
+        & $|$ TRANSPOSE PITCH Music \\
+SimpleMusic: & $|$ Note\\
+        & $|$ Lyric\\
+        & $|$ Rest\\
+        & $|$ Chord\\
+        & $|$ Command\\
+Command: & METERCHANGE\\
+        & $|$ CLEFCHANGE\\
+        &$|$ PROPERTY STRING '=' STRING\\
+Chord: &PitchList DURATION\\
+Rest: &REST DURATION\\
+Lyric: &STRING DURATION\\
+Note: &PITCH DURATION\\
+\end{tabular}
+\end{center}
+  
+The terminals are both purely musical concepts that have a duration,
+and take a non-zero amount of musical time, like notes and lyrics, and
+commands that behave as if they have no duration.\footnote{The
+  PROPERTY command is a generic mechanism for controlling the
+  interpretation, i.e. the musical style sheets. See [forward ref]}
+
+The nonterminal productions can
+\begin{itemize}
+\item Some productions combine multiple elements: one can specify that
+  element are to be played in sequence, simultaneously or repetitively.
+\item There are productions for transposing music, and for dilating
+  durations of music: the TIMES production can be used to encode a
+  triplet.\footnote{A triplet is a group of three notes marked by a
+    bracket, that are played 3/2 times faster.}
+\item
+  There are productions that give directions to the interpretation
+  engine (the CONTEXT production)
+\end{itemize}
+
+
+\section{Context in notation} 
+
+Music notation relies heavily on context.  Notational symbols do not
+have meaning if they are not surrounded by other context elements.  In
+this section we give some examples how the reader uses this context do
+derive meaning of a piece of notation.   We will focus on the prime
+example of context: the staff. 
+
+A staff is the grid of five horizontal lines, but it contains more components :
+\begin{itemize}
+\item A staff can have a key signature (printed at the left)
+\item A staff can have a time signature (printed at the left)
+\item A staff has bar lines
+\item A staff has a clef (printed at the left)
+\end{itemize}
+
+It is still possible to print notes without these components, but one
+cannot determine the meaning of the notes.
+\begin{mudela}
+\score{
+\notes \relative c' {  \time 2/4; g'4 c,4 a'4 f4 e c d2 }
+\paper { 
+  linewidth = -1.;
+  \translator {
+  \StaffContext
+  \remove "Time_signature_engraver";
+%  \remove "Bar_engraver";
+  \remove "Staff_symbol_engraver";
+  \remove "Clef_engraver";
+  \remove "Key_engraver";
+  }
+ }
+}
+\end{mudela}
+
+As you can see, you can still make out the general form of the melody
+and the rhythm that is to be played, but the notation is difficult to
+read and the musical information is not complete.  The stress
+pattern in the notes can't be deduced from this output.  For this, we
+need a time signature.  Adding barlines helps with finding the strong
+and weak beats.
+\begin{mudela}
+\score {
+  \notes \relative c' {  \time 2/4; g'4 c,4 a'4 f4 e c d2 }
+  \paper{
+  linewidth = -1.;
+\translator{
+  \StaffContext
+  \remove "Staff_symbol_engraver";
+  \remove "Clef_engraver";
+  \remove "Key_engraver";}
+  }
+ }
+\end{mudela}
+
+It is impossible to deduce the exact pitch of the notes.  One needs a
+clef to do so.  Staff lines help the eye in determining the vertical
+position of a note wrt. to the clef.
+\begin{mudela}
+\score {
+  \notes \relative c' {\clef alto;  \time 2/4; g'4 c,4 a'4 f4 e c d2 }
+  \paper {
+    linewidth = -1.;
+  }
+}  
+\end{mudela}
+
+Now you know the pitch of the notes: you look at the start of the line
+and see a clef, and with this clef, you can determine the notated pitches.
+You have found the em(context) in which the notation is to be
+interpreted!
+
+
+\section{Interpretation context}
+
+Context (clef, time signature etc.) determines the relationship
+between musical and its notation in notes.  Because LilyPond writes
+notation, context works the other way around for LilyPond: with
+context a piece of music can be converted to notation.
+
+A reader remembers this context while reading the notation from left
+to right.  By analogy, LilyPond constructs this context while
+constructing notes from left to right.  This is what happens in the
+``Interpretation'' phase from~\ref{fig:intro-fig}.  In LilyPond, the
+state of this context is a set of variables with their values; A staff
+context contains variables like
+
+\begin{itemize}
+\item current clef
+\item current time signature
+\item current key
+\end{itemize}
+
+These variables determine when and how clefs, time signatures, bar
+lines and accidentals are printed.
+
+
+Staff is not the only form of context in notation.  In polyphonic
+music, the stem direction shows which notes form a voice: all notes of
+the same voice have stems pointing in the same direction.  The value
+of this variable determines the appearance of the printed stems.
+
+In LilyPond ``Notation context'' is abstracted to a data structure
+that is used, constructed and modified during the interpretation
+phase.  It contains context properties, and is responsible for
+creating notational elements: the staff context creates symbols for
+clefs, time signatures and key signatures.  The Voice context creates
+stems, note heads.
+
+For the fragment of polyphonic music below,
+\begin{mudela}
+  \context Staff { c'4 < { \stemup c'4 } \context Voice = VB { \stemdown a4 } > }
+\end{mudela}
+A staff context is created.  Within this staff context (which printed
+the clef), a Voice context is created, which prints the first note.
+Then, a second Voice context is created, with stem direction set to
+``up'', and the direction for the other is set to down. Both Voice
+contexts  are  still part of the same Staff context.
+
+In the same way, multiple staff scores are created: within the score
+context, multiple staff contexts are created.  Every staff context
+creates the notation associated with a staff.  
+
+\section{Discussion}
+
+
+
+\end{document}
+
+The complexity of  music notation was tackled by adopting a modular
+design: both the formatting system (which encodes the esthetic rules of
+notation), and the interpretation system (which encodes the semantic
+rules) are highly modular.
+
+
+The difficulty in creating a format for music notation is rooted in
+the fact that music is multi dimensional: each sound has its own
+duration, pitch, loudness and articulation. Additionally, multiple
+sounds may be played simultaneously.  Because of this, there is no
+obvious way to ``flatten'' music into a context-free language.
+
+The difficulty in creating a printing engine is rooted in the fact
+that music notation complicated: it is very large graphical
+``language'' with many arbitrary esthetic and semantic conventions.
+Building a system that formats full fledged musical notation is a
+challenge in itself, regardless of whether it is part of a compiler or
+an editor.
+
+The fact that music and its notation are of a different nature,
+implies that the conversion between input notation is non-trivial.
+
+In LilyPond we solved the above problem in the following way:
+
diff --git a/Documentation/metadoc/musicnotes.sty b/Documentation/metadoc/musicnotes.sty
new file mode 100644 (file)
index 0000000..bc4a69f
--- /dev/null
@@ -0,0 +1,42 @@
+
+\input lilyponddefs
+
+\def\fetdef#1#2{%
+  \def#1{\hbox{\char#2}}}
+
+\input feta20.sty
+
+\font\fetasixteenfont=feta16
+\font\fetaelevenfont=feta11
+\def\fetafont{\fetasixteenfont}
+
+\newdimen\ild
+\ild=4pt
+\newdimen\stemthick
+\stemthick=0.4pt
+
+\def\eighthstem{{\fetafont\vrule height 3.5ex width \stemthick depth0pt\raise
+  3.5ex\hbox{\eighthflag}}}
+\def\texteighthflag{{\fetafont\raise 0ex\hbox{\fetafont\eighthflag}}}
+\def\textdeighthflag{{\fetafont\raise 0ex\hbox{\deighthflag}}}
+
+\def\texteighthnote{{\hbox{\hbox{\fetafont\quartball}\kern
+      -0.5\stemthick\eighthstem}}}
+\def\quarterstem{{\fetafont\vrule height 3.5ex width \stemthick depth0pt}}
+\def\textquarterstem{\quarterstem}
+\def\textchord{{\hbox{\fetafont\lower.5ex\hbox to
+      0pt{\textquarterhead}\raise.5ex\hbox{\textquarterhead}\kern
+      -0.5\stemthick\eighthstem}}}
+\def\textbassclef{\hbox{\fetafont\bassclef}}
+\def\texttrebleclef{\hbox{\fetafont\trebleclef}}
+\def\textslur{\embeddedps{9.378744 -3.171539 3.923099 -3.171539 0.000000 0.000000 12.800000 0.000000 3.672177 -3.672177 9.127823 -3.672177 12.800000 0.000000 0.000000 0.000000  draw_slur}}
+
+\def\textmarcato{{\fetafont\raise 1ex\hbox{\hskip 1ex\sforzatoaccent}}}
+
+
+\def\textquarterhead{\hbox{\fetafont\raise 2.5pt\hbox{\quartball}}}
+\def\texteighthstem{\hbox{\lower 5pt\hbox{\eighthstem}}}
+\def\texthalfnote{{\hbox{\hbox{\fetafont\halfball}\kern -0.5\stemthick\quarterstem}}}
+\def\textquarternote{{\hbox{\hbox{\fetafont\quartball}\kern -0.5\stemthick\quarterstem}}}
+\def\textflat{{\fetafont\raise 1ex\hbox{\flat}}}
+\def\textsharp{{\fetafont\raise1ex\hbox{\sharp}}}
index 855b4aef8aa3cef9a0b5297b8c7c744d7d220690..1c7f252385b7a76d1a63b588e3698f4cc40b358e 100644 (file)
@@ -18,12 +18,67 @@ clearpage()
 
 subsect(NEWS) label(news)
 
-I have made my first attempt at distributing lilypond as a self
-extracting executable for Windows NT 4.0 and Windows 95.  The
-executable will extract the distribution in the directory specified by
-the user and create em(lilypond-@TOPLEVEL_VERSION@\lily.bat).  This
-batch file initializes the LilyPond environment and fires up a Command
-Prompt.  From this Command Prompt you may run:
+The FAT16, FAT32, and NTFS file system problems have been corrected.
+I have tested various installations that are known to be operational.
+The following configurations that have been tested. 
+
+description(
+ dit(Windows NT)
+ description(
+  dit(Installed on NTFS)
+  itemize(
+    it()Runs from NTFS partion
+    it()Runs from FAT16 partion
+  )
+  dit(Installed on FAT16)
+  itemize(
+    it()Runs from NTFS partion
+    it()Runs from FAT16 partion
+  )
+ )
+)
+
+description(
+ dit(Windows 95)
+ description(
+  dit(Installed on FAT16)
+  itemize(
+    it()Runs from FAT16 partion
+    it()Runs from FAT32 partion
+  )
+  dit(Installed on FAT32)
+  itemize(
+    it()Runs from FAT16 partion
+    it()Runs from FAT32 partion
+  )
+ )
+)
+  
+The installer was created with
+url(CreateInstall)(http://www.gentee.com/).  This is a shareware
+application that has capabilities close to the high dollar installers
+bf(InstallShield), bf(Install Vise), and bf(WiseInstaller).
+bf(CreateInstall) does cost $38 to register which is probably going to
+be frowned upon, but I was unable to find a freeware install builder
+that was suitable.  The self extracting distribution currently:
+
+itemize(
+ it() Installs the lilypond distribution on any valid file system.
+ it() Optionally creates a em(Lilypond) shortcut group on your start
+      menu with the following shortcuts.
+  itemize(
+   it() bf(lilyshell)
+   it() bf(uninstall)
+  )
+ it() Allows unistall through the Add/Remove Program interface on the
+      control panel.
+ it() The bf(lilyshell) uses the /E and /K switches to extend the
+      environment size and initialize the shell environment.
+ it() It has the look and feel of a real Windows installer
+)
+
+The bf(lilyshell) shortcut initializes the environment so you can
+generate music from a MSDOS prompt with commands like:
 
 itemize(
     it()ly2dvi
@@ -33,6 +88,13 @@ itemize(
     it()mi2mu
 )
 
+If you are upgrading from a previous version of lilypond you will most
+likely need to flush your font cache.  I generally just toss
+file(D:\localtexmf\fonts\tfm\public\ehrhardt) and
+file(D:\localtexmf\fonts\pk\ljfour\public\ehrhardt) in the Recyle
+Bin. Your local font directory may be different, please refer to your
+local installation of code(TeX).
+
 I have also converted the Manual Pages for the above tools to HTML for
 easy browsing.  This release has been tested on Windows NT 4.0sp3 and
 Windows 95 and found to be operational.  If you have any troubles and
@@ -77,7 +139,10 @@ clearpage()
 subsect(Download) label(download)
 
 itemize(
-    it()url(lilypond-@TOPLEVEL_VERSION@)(lily1123jbr1.exe)
+    it()Windows 95
+        url(lilypond-@TOPLEVEL_VERSION@-95)(lilypond-@TOPLEVEL_VERSION@-95.exe)
+    it()Windows NT 4.0
+        url(lilypond-@TOPLEVEL_VERSION@-nt)(lilypond-@TOPLEVEL_VERSION@-nt.exe)
 )
 
 link(Back to top)(contents)
@@ -127,11 +192,7 @@ subsect(Running LilyPond) label(running)
 itemize(
   it()Take a look at url(angels.ly)(angels.ly)
   it()Save angels.ly to your local disk
-  it()Execute lilypond-@TOPLEVEL_VERSION@\lily.bat nl()
-NOTE: If you get an em(out of environment memory error), simply increase
-the environment memory by selecting
-em(lilypond-@TOPLEVEL_VERSION@\lily.bat) Properties/Memory and increase
-the available environment memory to 1024.
+  it()Select the bf(lilyshell) shortcut from the em(Lilypond) group nl()
   it() From a LilyPond Command Prompt run: nl()
   bf(ly2dvi angels.ly) nl()
   bf(dvips angels.dvi) nl()
index 496c0b7571d5de826f49a8537801a22e02557253..ce19dc689c35c15840c971a6c4d2c7cc6f1f128d 100644 (file)
@@ -7,23 +7,20 @@ datafiles = $(addprefix $(outdir)/,$(DATA_FILES:.data=.html))
 TEX_FILES = $(wildcard *.tex)
 DOC_FILES = $(wildcard *.doc)
 DVI_FILES = $(addprefix $(outdir)/,$(DOC_FILES:.doc=.dvi) $(YO_FILES:.yo=.dvi))
-OUT_BIB_FILES = $(addprefix $(outdir)/, $(BIB_FILES))
 
 # just include me
 YO_URG_FILES = $(wildcard *.yo-urg)
 
 OUTTEX_FILES = $(addprefix $(outdir)/, $(TEX_FILES))
 OUTDOC_FILES = $(addprefix $(outdir)/, $(DOC_FILES))
-EL_FILES = $(wildcard *.el)
-BIB_FILES= $(wildcard *.bib)
-EXTRA_DIST_FILES= $(BIB_FILES) $(DOC_FILES) $(DATA_FILES) $(EL_FILES) $(YO_URG_FILES) $(TEX_FILES) $(wildcard *.sty) testje.fly
+
+EXTRA_DIST_FILES= $(DOC_FILES) $(DATA_FILES) $(EL_FILES) $(YO_URG_FILES) $(TEX_FILES) testje.fly
 HTML_FILES = $(addprefix $(outdir)/, $(YO_FILES:.yo=.html))
 PS_FILES = $(DVI_FILES:.dvi=.ps)
 
 STEPMAKE_TEMPLATES=tex documentation
 LOCALSTEPMAKE_TEMPLATES=lilypond mudela
 
-export BIBINPUTS:=$(shell pwd)//$(PATHSEP)$(BIBINPUTS)
 include $(depth)/make/stepmake.make 
 
 
@@ -31,7 +28,7 @@ include $(depth)/make/stepmake.make
 
 
 
-dvi: $(OUT_BIB_FILES) $(DVI_FILES)
+dvi: $(DVI_FILES)
 
 ps: $(PS_FILES)
 
@@ -55,7 +52,7 @@ $(outdir)/glossary.dvi: $(outdir)/glossary-table.tex
 $(outdir)/glossary.html: $(outdir)/glossary-table.html
 
 
-local-WWW: $(HTML_FILES) $(OUTDOC_FILES:.doc=.ps.gz) $(OUTTEX_FILES:.tex=.ps.gz) $(OUTYO_FILES:.yo=.latex) $(OUTYO_FILES:.yo=.ps.gz) $(addprefix $(outdir)/, $(BIB_FILES:.bib=.html)) $(datafiles)
+local-WWW: $(HTML_FILES) $(OUTDOC_FILES:.doc=.ps.gz) $(OUTTEX_FILES:.tex=.ps.gz) $(OUTYO_FILES:.yo=.latex) $(OUTYO_FILES:.yo=.ps.gz)  $(datafiles)
        $(PYTHON) $(step-bindir)/ls-latex.py --package=$(topdir) --title 'LaTeX documents about LilyPond' \
          $(YO_FILES) $(OUTYO_FILES:.yo=.latex) $(BIB_FILES) $(DOC_FILES) $(TEX_FILES)\
          | sed "s!$(outdir)/!!g" > $(outdir)/index.html
@@ -64,10 +61,6 @@ local-WWW: $(HTML_FILES) $(OUTDOC_FILES:.doc=.ps.gz) $(OUTTEX_FILES:.tex=.ps.gz)
 $(outdir)/%.bib: %.bib
        ln -f $< $@
 
-# ignore result since bib2html is nonstandard. Errors would halt the RPM build.j  
-$(outdir)/%.html: %.bib
-       -bib2html $< $@
-
 # Yeah right: 
 # make -k out/mudela.dvi => cp -f out/vocabulary.tex out/mudela.dvi
 
diff --git a/Documentation/tex/colorado.bib b/Documentation/tex/colorado.bib
deleted file mode 100644 (file)
index 6d7cf51..0000000
+++ /dev/null
@@ -1,529 +0,0 @@
-%
-% TITLE=University of Colorado Engraving music bibliography
-% AUTHOR=Alyssa Lamb (edited & converted to bibtex by HWN)
-%
-
-
-% TODO: fix the labelling.  
-
-@Book {6,
-       author ={Jacob, Archibald},
-       year={1947},
-       title = {Musical handwriting : or, How to put music on paper : A handbook for all musicians, professional and amateur},
-       address ={London},
-       publisher ={Oxford University Press}, 
-       note = {subject: Musical notation},
-}
-
-@Book {15,
-       author ={Carl Brandt and Clinton Roemer},
-       title = {Standardized Chord Symbol Notation},
-       address={Sherman Oaks, CA},
-       publisher={Roerick Music Co.},
-       note ={subject: musical notation},
-}
-
-@Book {22,
-       author = {Johnson, Harold M},
-       year = {1946},
-       title = {How to write music manuscript an exercise-method handbook for the  music student, copyist, arranger, composer, teacher},
-       publisher={Carl Fischer, Inc.},
-       address= {New York},
-       note = {subject: Musical notation --Handbooks, manuals},
-}
-
-@Book {31,
-       title = {Music Printing & Publishing},
-       author ={Donald W. Krummel \& Stanley Sadie},
-       year = {1990},
-       publisher= {Macmillan Press},
-       note ={subject: musical notation},
-}
-
-%series={The Norton/Grove Handbooks in Music.},
-% publisher={W.W. Norton},
-
-@Book {40,
-       author={Foss, Hubert},
-       title = {Music Printing},
-       series = {Practical Printing and Binding},
-       address={London},
-       publisher={Oldhams Press Ltd., Long Acre},
-       note ={subject: musical notation},
-}
-
-@Book {48,
-       author = {Steele, Robert},
-       year = {1903},
-       title = {The Earliest English Music Printing},
-       address={London},
-       note= {subject: history of music printing and engraving},
-}
-
-@Book {54,
-       author={Austin, Ernest},
-       title = {The Story of Music Printing},
-       address={London},
-       publisher={Lowe and Brydone Printers, Ltd.},
-       note= {subject: history of music printing and engraving},
-
-}
-
-
-
-@Book {63,
-       author={?},
-       title = {Pictoral History of Music Printing},
-       address={Elhardt, Indiana},
-       publisher={H. and A. Selmer, Inc.},
-       note= {subject: history of music printing and engraving},
-
-}
-
-@Book {77,
-       author = {Wintermitz, Emmanuel},
-       year = {1955},
-       title = {Musical Autographs from Monteverdi to Hindemith},
-       address={Princeton},
-       publisher={Princeton University Press},
-       note= {subject: history of music printing and engraving},
-
-}
-
-
-@Book {92,
-
-       author = {Novello, A},
-       year = {1847},
-       title = {Some Account of the Methods of Musick Printing, with Specimens of the Various Sizes of Moveable Types and of Other Matters},
-       address={London},
-       note={ subject: history of music printing and engraving},
-}
-
-@Book {100,
-       author={Chrsander, F.},
-       year={18??},
-       title={A Sketch of the HIstory of Music printing, from the 15th to the 16th century},
-       note={ subject: history of music printing and engraving},
-}
-
-@Article {squire1897,
-       author = {Squire, W},
-       year = {1897},
-       title = {Notes on Early Music Printing},
-       journal = {Bibliographica},
-       volume={iii},
-       number={99},
-       note={ subject: history of music printing and engraving},
-
-}
-
-@Article{113,
-       author = {Meyer, K. and O'Meara, J},
-       year = {1935},
-       title = {The Printing of Music, 1473-1934},
-       journal = {The Dolphin},
-       volume={ ii},
-       pages={ 171--207},
-       note={ subject: history of music printing and engraving},
-
-}
-%% 4th ver.,
-@Article {120,
-       author = {Pattison, B},
-       year = {1939},
-       title = {Notes on Early Music Printing},
-       journal = {The Library},
-       note={subject: history of music printing and engraving},
-       volume={xix},
-       pages={389-421}, 
-}
-
-@Book {136,
-       author = {King, H},
-       year = {1964},
-       title = {Four Hundred Years of Music Printing},
-       address={London},
-       note={ subject: history of music printing and engraving},
-}
-
-
-%(Rev.1961).
-@Book{150,
-       author={Deutsch, O.F.},
-       year ={1946},
-       title = {Music Publishers' Numbers},
-       address={London},
-       note={ subject: history of music printing and engraving},
-}
-
-@Book {151,
-       author = {Marco, G.A},
-       year = {1962},
-       title = {The Earliest Music Printers of Continental Europe: a Checklist of Facsimiles Illustrating Their Work},
-       address={Charlottesville, Virginia},
-       note={ subject: history of music printing and engraving},
-}
-
-@Article {158,
-       author = {Kinkeldey, O},
-       year = {1932},
-       title = {Music And Music Printing in Incunabula},
-       journal = {Papers of the Bibliographical Society of America},
-       volume={ xxvi},
-       pages={89-118},
-       note={ subject: history of music printing and engraving},
-}
-
-@Book {166,
-       author = {Oldman, C.B},
-       year = {1934},
-       title = {Collecting Musical First Editions},
-       address={London},
-       note={ subject: history of music printing and engraving},
-}
-
-@Book{170,
-       author={Carter, J},
-       year={1934},
-       title = {New Paths in Book Collecting},
-       address={London},
-       note={ subject: history of music printing and engraving},
-}
-
-@Book {179,
-       author={Krummel, D.W.},
-       year={1958},
-       month={9},
-       title = {Graphic Analysis in Application to Early American Engraved Music},
-       journal = {Notes},
-       volume={xvi},
-       pages={213},
-       note={ subject: history of music printing and engraving},
-}
-
-@Book {189,
-       author = {Krummel, D.W},
-       year = {1971},
-       title = {Oblong Format in Early Music Books},
-       journal = {The Library},
-       volume={5th ser., xxvi},
-       pages={312},
-       note={ subject: history of music printing and engraving},
-}
-
-@Book {198,
-       author = {King, A.H},
-       year = {1973},
-       title = {The 50th Anniversary of Music Printing},
-}
-
-@Book {204,
-       author={Rastall, Richard},
-       year={1982},
- title = {The notation of Western music : an introduction},
-       address={New York, N.Y.},
-       publisher={St. Martin's Press},
-       note = {Musical notation},
-
-
-}
-
-@Book {215,
-       author = {Tappolet, Willy},
-       year = {1947},
-       title = {La Notation Musicale},
-       address={Paris},
-       note={subject: general notation},
-       publisher={Neuch\^atel},
-}
-
-@Book {223,
-       author = {Williams, C.F. Abdy},
-       year = {1903},
-       title = {The Story of Notation},
-       address={New York},
-       publisher={Charles Scribner's Sons},
-       note={subject: general notation},
-}
-
-@Book {239,
-       author={Apel, Willi},
-       year={1953},
-       title = {The notation of polyphonic music, 900-1600},
-       address={Cambridge, Mass},
-       institution={Mediaeval Academy of America},
-       note = {Musical notation},
-}
-
-@Book {248,
-       author={Berger, Anna Maria Busse},
-       year={1993},
-       title = {Mensuration and proportion signs : origins and evolution},
-       address={Oxford, England},
-       publisher={Clarendon Press},
-       scnd_address={New York},
-       scnd_publisher={Oxford University Press },
-       note={subject: early notation},
-}
-
-@Book {258,
-       author={Parrish, Carl},
-       year={1957},
- title = {The notation of medieval music},
-       address={New York},
-       publisher={Norton},
-       note = {Musical notation},
-
-
-}
-
-@Book {269,
-       author = {Parrish, Carl},
-       year = {1946},
-       title = {The Notation of Medieval Music},
-       address={New York},
-       publisher={Carl Fischer, Inc.},
-       note={subject: early notation},
-}
-
-@Book {277,
-       author = {Patch, Harry},
-       year = {1949},
-       title = {Genesis of a Music},
-       address={Madison},
-       publisher={University of Wisconsin Press},
-       note={subject: early notation},
-}
-
-@Book {285,
-       author={Cage, John},
-       year={1969},
-  title = {Notations},
-       address={New York},
-       publisher={Something Else Press},
-       note = {Music, Manuscripts, Facsimiles.
-
-       Facsimiles of holographs from the Foundation for Contemporary
-       Performance Arts, with text by 269 composers, but rearranged using
-       chance operations.,V)} },
-
-@Book {295,
-       author = {Gaburo, Virginia},
-       year = {1977},
-       title = {Notation},
-       address={publisher= {Lingua Press},
-       publisher={La Jolla, California}},
-       note = {A Lecture about notation, new ideas about},
-}
-
-@Book {306,
-       author = {Risatti, Howard},
-       year = {1975},
-       title = {New Music Vocabulary},
-       address={Urbana, Illinois},
-       publisher={University of Illinois Press},
-       note = {A Guide to Notational Signs for Contemporary Music},
-}
-
-
-
-@Book {325,
-       author = {Cowell, Henry},
-       year = {1930},
-       title = {New Musical Resources},
-       address={New York},
-       publisher={Alfred A. Knopf, Inc.},
-       note={subject: 20th century notation},
-}
-
-@Article {333,
-       author = {Cowell, Henry},
-       year = {1927},
-       title = {Our Inadequate Notation},
-       journal = {Modern Music},
-       volume={4},
-       number={3},
-       note={subject: 20th century notation},
-
-}
-
-@Book {342,
-       author = {Bowers, Roger},
-       year = {1992},
-       title = {Music & Letters},
-       volume={73},
-       number={3},
-       month={August},
-       pages={347(52)},
-       note={Some reflection upon notation and proportion in Monteverdi's mass and vespers},
-}
-
-@Book {353,
-       author = {Brainard, Paul},
-       year = {1992},
-       title = {Current Musicology},
-       number={50},
-       month={July-Dec},
-       pages={21(26)},
-       note={Proportional notation in the music of Schutz and his contemporaries in the 17th Century},
-}
-
-@Book {362,
-       author = {Monelle, Raymond},
-       year = {1989},
-       title = {Comparative Literature},
-       volume={41}, number={3}, 
-       month={Summer},
-       pages={252(18)},
-
-       note={Music notation and the poetic foot},
-}
-
-@Book {373,
-       author = {Pinegar, Sandra},
-       year = {1993},
-       title = {Current Musicology},
-       number={53},
-       month={July},
-       pages={99(10)},
-       note={The seeds of notation and music paleography.},
-}
-
-@Book {382,
-       author = {Smith, Norman E},
-       year = {1990},
-       title = {Current Musicology},
-       number={45-47},
-       month={Jan-Dec},
-       pages={283(22)},
-       note={The notation of fractio modi.},
-}
-
-@Book {392,
-       author = {Treitler, Leo},
-       year = {1992},
-       title = {The Journal of Musicology},
-       volume={10},
-       number={2},
-       month={Spring},
-       pages={131(61)},
-
-       note={ The unwritten and written transmission, of medieval chant
-       and the start-up of musical notation.
-
-       Notational practice developed in medieval music to address the written tradition for chant which interacted with the unwritten vocal tradition.},
-}
-
-@Book {407,
-       author = {West, M.L},
-       year = {1994},
-       title = {Music & Letters},
-       volume={75},
-       number={2},
-       month={May},
-       pages={161(19)},
-       note={The Babylonian musical notation and the Hurrian melodic texts. 
-
-       A new way of deciphering the ancient Babylonian musical notation. 
-}
-}
-
-@Book {418,
-       author = {Brown, Earle},
-       year = {1986},
-       title = {Musical Quarterly},
-       volume={72},
-       month={Spring},
-       pages={180(22)},
-       note={The notation and performance of new music.},
-}
-
-@Book {426,
-       author = {Eggleston, Suzanne},
-       year = {1994},
-       title = {Notes},
-       volume={51},
-       number={2},
-       month={Dec},
-       pages={657(7)}, 
-       journal={New periodicals},
-       note={A list of new music periodicals covering the period
-       Jun.-Dec. 1994. Includes aims, formats and a description of the
-       contents of each listed periodical. Includes Music Notation News},
-
-}
-
-@Book {441,
-
-       author = {Fuller, David},
-       year = {1989},
-       title = {The Journal of Musicology},
-       volume={7},
-       number={1},
-       month={Winter},
-       pages={21(8)},
-       note={
-       Notes and inegales unjoined: defending a definition. (written-out inequalities in music notation).        
-}},
-
-@Book {454,
-
-       author = {Jones, David Evan},
-       year = {1990},
-       title = {Perspectives of New Music},
-       note={Speech extrapolated. (includes notation)}
-}
-
-@Book {464,
-       author = {Lependorf, Jeffrey},
-       year = {1989},
-       journal={Perspectives of New Music},
-       volume={27},
- number={2},
-       month={Summer},
-       pages={232(20)},
-       note={
-       Contemporary notation for the shakuhachi: a primer for composers. (Tradition and Renewal in the Music of Japan) },
-
-}
-
-@Book {478,
-       author = {Rastall, Richard},
-       year = {1993},
-       title = {Music & Letters},
-       volume={74}, number={4},
-       month={November},
-       pages={639(2)},
-
-       note={Equal Temperament Music Notation: The Ailler-Brennink
-       Chromatic Notation. Results and Conclusions of the Music Notation
-       Refor by the Chroma Foundation (book reviews).  },
-}
-
-@Article {Francois92,
-       author={Francois, Jean-Charles},
-       journal = {Perspectives of New Music},
-       volume={30},
-       number={1}, month={Winter},
-       pages={6(15)},
-       year={1992},
-
-       note={subject: Modern music has outgrown notation. While the
-            computer is used to write down music with accuracy never
-            before achieved, the range of modern sounds has surpassed
-            the relevance of the computer...},
-       title={Writing without representation, and unreadable notation.},
-}
-
-@Book {501,
-       author = {Hamel, Keith A},
-       year = {1989},
-       journal = {Perspectives of New Music},
-       volume={27},
-       number={1},
-       month={Winter},
-       pages={70(14)},
-       title={A design for music editing and printing software based on notational syntax},
-}
-
diff --git a/Documentation/tex/computer-notation.bib b/Documentation/tex/computer-notation.bib
deleted file mode 100644 (file)
index dc91216..0000000
+++ /dev/null
@@ -1,656 +0,0 @@
-%
-% TITLE=The music notation with computer bibliography
-% AUTHOR=Han-Wen Nienhuys
-%
-
-@String{CitH = {Computing and the Humanities}}
-@String{CMJ = {Computer Music Journal}}
-
-@TechRep=ort{roush88,
-  note  = {Rules on formatting music formulated for use in computers. Mainly distilled from [Ross] HWN},
-  year = {1988},
-  title = {Music Formatting Guidelines},
-  author = {D. Roush},
-  number = {OSU-CISRC-3/88-TR10}, 
-  institution = {Department of Computer and Information Science, The Ohio State University},
-}
-
-
-
-@InProceedings{assayaag86,
-  author =      {G. Assayaag and D. Timis},
-  title =       {A Toolbox for music notation},
-  booktitle =   {Proceedings of the 1986 International Computer Music Conference},
-  year =       1986
-}
-
-% byrd
-@PhdThesis {byrd85,
-  year =  {1985},
-  title = {Music Notation by Computer},
-  author = {Donald Byrd},
-  school = {Indiana University},
-}
-
-@Article {byrd74,
-  year =  {1974},
-  title = {A System for Music Printing by Computer},
-  author = {Donald Byrd},
-  journal = {Computers and the Humanities},
-  volume ={8},
-  pages ={161-72},
-}
-
-@Article{byrd94,
-  author =      {Donald Byrd},
-  title =       {Music Notation Software and Intelligence},
-  journal =     {Computer Music Journal},
-year = 1994,
-pages = {17--20},
-  volume =      18,
-  number =      1,
-
-  note = {Byrd (author of Nightinggale) shows four problematic
-fragments of notation, and rants about notation programs that try to
-exhibit intelligent behaviour. HWN}
-}
-
-
-
-@Article{ericson75,
-  author =      {R. F. Ericson},
-  title =       {The DARMS Project: A status report},
-  journal =     {Computing in the humanities},
-  year =        1975,
-  volume =      9,
-  number =      6,
-  pages =       {291--298},
-  note = {Gourlay\cite{gourlay86} writes: A discussion of the design
-  and potential uses of the DARMS music-description language.}
-}
-
-
-@Article{field-richards93,
-  author =      {H.S. Field-Richards},
-  title =       {Cadenza: A Music Description Language},
-  journal =     CMJ,
-  year =        1993,
-  volume =      17,
-  number =      4,
-
-  note = {A description through examples of a music entry language.
-Apparently it has no formal semantics.  There is also no
-implementation of notation convertor. HWN}
-}
-
-
-
-@Article{bielawa93,
-  author =      {Herbert Bielawa},
-  title =       {Review of Sibelius 7},
-  journal =     CMJ,
-  year =        {1993?},
-
-  note = {A raving review/tutorial of Sibelius 7 for Acorn.  (And did
-they seriously program a RISC chip in ... assembler ?!) HWN}
-
-
-}
-
-@Article{sloan93,
-  author =      {Donald Sloan},
-  title =       {Aspects of Music Representation in HyTime/SMDL},
-  journal =     CMJ,
-  year =        1993,
-  volume =      17,
-  number =      4,
-
-note = {An introduction into HyTime and its score description variant
-SMDL.  With a short  example that is quite  lengthy in SMDL}
-}
-
-@Article{wiggins93,
-  author =      {Geraint Wiggins and Eduardo Miranda and Alaaaan Smaill and Mitch Harris},
-  title =       {A Framework for the evaluation of music representation systems},
-  journal =     CMJ,
-  year =        1993,
-  volume =      17,
-  number =      3,
-
-  note = {A categorisation of music representation systems (languages,
-OO systems etc) splitted into high level and low level expressiveness.
-The discussion of Charm and parallel processing for music
-representation is rather vague. HWN}
-
-}
-
-
-
-@Article{dannenberg93,
-  author =      {Roger B. Dannenberg},
-  title =       {Music Representation: Issues, Techniques, and Systems},
-  journal =     CMJ,
-  year =        1993,
-  volume =      17,
-  number =      3,
-
-  note = {The title says it all.  This article does not make any
-statements, it points to some problems and solutions with music
-representation. HWN},
-
-}
-
-@Article{rothstein93,
-  author =      {Joseph Rothstein},
-  title =       {Review of Passport Designs' Encore Music Notation Software},
-  journal =     CMJ,
-  year =        {?},
-
-note = {A no-science-here review of Encore. HWN}
-
-}
-
-
-
-@Article{belkin94,
-  author =      {Alan Belkin},
-  title =       {Macintosh Notation Software: Present and Future},
-  journal =     CMJ,
-  year =        1994,
-  volume =      18,
-  number =      1,
-
-  note = {Some music notation systems are analysed for ease of use, MIDI
-  handling.  No rocket science here.  The article ends with a plea for a
-  standard notation format. HWN},
-
-}
-
-@Book {smith73,
-  year =  {1973},
-  title = {Editing and Printing Music by Computer},
-  author = {Leland Smith},
-  totalentry = {Journal of Music Theory},
-  volume={17},
-  pages ={292-309},
-  note = {Gourlay\cite{gourlay86} writes: A discussion of Smith's music-printing system}
-}
-
-
-@InProceedings{montel97,
-  author =      {Dominique Montel},
-  title =       {La gravure de la musique, lisibilit\'e esth\'etique, respect de l'oevre},
-  booktitle =   {Musique \& Notations},
-  year =        1997,
-  address={Lyon},
-  editors ={Genevois \& Orlarey}
-}
-
-
-% Gomberg
-@PhdThesis {gomber75,
-  year =  {1975},
-  title = {A Computer-Oriented System for Music Printing},
-  author = {David A Gomberg},
-  school = {Washington University},
-}
-
-@Book {gomberg,
-  title = {A Computer-oriented System for Music Printing},
-  author = {David A.  Gomberg},
-  journal  = CitH,
-  volume={11},
-  month = {march},
-  year = {1977},
-  pages = {63-80},
-  note = {Gourlay \cite{gourlay86} writes: "A discussion of the
-  problems of representing the conventions of musical notation in
-  computer algorithms."}
-
-}
-
-
-
-@Book {CASR,
-  note = {Annual editions since 1985, many containing surveys of music typesetting technology. SP},
-  title = {Directory of Computer Assisted Research in Musicology},
-  author = {Walter B Hewlett and Eleanor Selfridge-Field},
-  totalentry = {Menlo Park, CA: Center for Computer Assisted Research in the Humanities},
-}
-
-
-
-% LIME
-@Article {haken93,
-  note = {A description of Lime internals (which resemble older (before 0.0.68pre) LilyPond data structures) HWN},
-  year =  {1993},
-  title = {The Tilia Music Representation: Extensibility, Abstraction, and Notation Contexts for the Lime Music Editor},
-  author = {Lippold Haken and Dorothea Blostein},
-  journal = {Computer Music Journal},
-  volume= {17},
-  number={3},
-  pages = {43--58},
-}
-
-@InProceedings{haken95,
-  year =  {1995},
-  title = {A New Algorithm for Horizontal Spacing of Printed Music},
-  author = {Lippold Haken and Dorothea Blostein},
-  booktitle = {International Computer Music Conference},
-  address={Banff},
-  month={Sept},
-  pages = {118-119},
-  note = {This describes an algorithm which uses springs between adjacent columns. This algorithm is a "subclass" of the LilyPond algorithm. HWN},
-}
-
-@Article {blostein91,
-  note = {This paper provides a shallow overview of the algorithm used in LIME for spacing individual lines. HWN},
-  year =  {1991},
-  title = {Justification of Printed Music},
-  author = {Dorothea Blostein and Lippold Haken},
-  journal   = {Communications of the ACM},
-  volume= {J34},
-  number= {3},
-  month= {March},
-  pages = {88-99},
-}
-
-
-@Article{blostein94,
-  author =      {Dorothea Blostein and Lippold Haken},
-  title =       {The Lime Music Editor: A Diagram Editor Involving Complex
-  Translations},
-  journal =     {Software Practice and Experience},
-  year =        {1994},
-  volume =      {24},
-  number =      {3},
-  month =       {march},
-  pages =       {289--306},
-  note = {A description of various conversions, 
-decisions and issues relating to this interactive editor HWN},
-}
-
-@InProceedings{bouzaiene98:_une,
-  author =      {Nabil Bouzaiene and Lo\"ic Le Gall and Emmanuel Saint-James},
-  title =       {Une biblioth\`eque pour la notation  musicale baroque},
-  booktitle =   {EP '98},
-  year =        1998,
-  series =      {LNCS},
-
-  note = {Describes ATYS, an extension to Berlioz, that can mimick
-  handwritten baroque style beams}
-}
-
-
-
-@MastersThesis{gall97:_creat,
-  author =      {Lo\"ic Le Gall},
-  title =       {Cr\'eation d'une police adapt\'ee \`a la notation musicale baroque},
-school = {\'Ecole Estienne},
-year = 1997,
-}
-
-@InProceedings{balaban88,
-  author =      {M. Balaban},
-  title =       {A Music Workstation Based on Multiple Hierarchical Views of Music},
-  booktitle =   {Proceedings of the 1988 International Computer Music Conference},
-  year =        1988,
-  address =     {San Francisco},
-  organization = {International Computer Music Association}
-}
-
-%
-% MusiCopy
-%
-@TechReport {gourlay87-spacing,
-  note = {Algorithm for generating spacing in one line of (polyphonic) music, tailored for use with MusiCopy. LilyPond uses a variant of it (as of pl 76) HWN},
-  year =  {1987},
-  title = {Spacing a Line of Music,},
-  author = {John S. Gourlay},
-  number = {OSU-CISRC-10/87-TR35},
-  institution ={Department of Computer and Information Science, The Ohio State University},
-}
-
-
-@TechReport {parish87,
-  note = {A brief overview of {MusiCopy} HWN},
-  year =  {1987},
-  title = {{MusiCopy}: An automated Music Formatting System},
-  author = {Allen Parish and Wael A. Hegazy and John S. Gourlay and Dean K. Roush and F. Javier Sola},
-  totalentry = {OSU-CISRC-10/87-TR29},
-  institution ={Department of Computer and Information Science, The Ohio State University},
-}
-
-
-@TechReport {gourlay87-formatting,
-note = {This paper discusses the development of algorithms for the
-formatting of musical scores (from abstract). It also appeared at
-PROTEXT III, Ireland 1986},
-  year =  {1987},
-  title = {Computer Formatting of Music},
-  author = {John S. Gourlay and A. Parrish
-and D. Roush and F. Sola and Y. Tien},
-  number = {OSU-CISRC-2/87-TR3},
-  institution ={Department of Computer and Information Science,
-The Ohio State University},
-}
-
-
-@TechReport {hegazy87,
-  year =  {1987},
-  title = {On the Implementation of the {MusiCopy} Language Processor,},
-  author = {Wael A. Hegazy},
-  number = {OSU-CISRC-10/87-TR34},
-  institution={Department of Computer and Information Science, The Ohio State University},
-
-  note = {Describes the "parser" which converts {MusiCopy} MDL to
-  MusiCopy Simultaneities and columns.
-
-MDL is short for Music Description Language\cite{gourlay86}. It
-accepts music descriptions that are organised into measures filled
-with voices, those filled notes. The measures can be arranged
-simultaneously or sequentially.  To address the 2-dimensionality,
-almost all constructs in MDL must be labeled.
-
-MDL uses begin/end markers for attribute values and spanners.
-Rightfully the author concludes that MusiCopy must administrate a
-"state" variable containing both properties and current spanning symbols.
-
-MusiCopy attaches graphic information to the objects constructed in
-the input: the elements of the input are partially complete graphic
-objects.
-
-Since the design goals of both LilyPond and MusiCopy were roughly the
-same, both systems have superficial similarities: the details of the
-input format, the notation of "musical state".  However, LilyPond
-stresses extensibility, modularity and separation between content and
-presentation much more, and this shows: LilyPond is more flexible.  To
-be fair: development of MusiCopy was abandoned in 1987, so it is not
-surprising that LilyPond is more mature.
-},
-
-}
-
-
-@TechReport {hegazy87-breaking,
-  note = {This generalizes \TeX's breaking algorithm to music. It also appeared in Document Manipulation and Typography, J.C. van Vliet (ed) 1988. HWN},
-  year =  {1987},
-  title = {Optimal line breaking in music},
-  author = {Wael A. Hegazy and John S. Gourlay},
-  number = {OSU-CISRC-8/87-TR33},
-  institution={Department of Computer and Information Science, The Ohio State University,},
-}
-
-
-@TechReport {roush87,
-  note = {User manual of MusiCopy. Includes an impressive example piece.  HWN},
-  year =  {1987},
-  title = {Using {MusiCopy}},
-  author = {Dean K. Roush},
-  number = {OSU-CISRC-18/87-TR31},
-  institution={Department of Computer and Information Science, The Ohio State University},
-}
-
-
-@TechReport {parrish87-simultaneities,
-  note = {Placement of balls, stems, dots which occur at the same moment ("Simultaneity") HWN},
-  year =  {1987},
-  title = {Computer Formatting of Musical Simultaneities,},
-  author = {A. Parrish and John S. Gourlay},
-  institution={Department of Computer and Information Science, The Ohio State University},
-  number = {OSU-CISRC-10/87-TR28},
-}
-
-
-@TechReport {sola87,
-  note = {Overview of a procedure for generating slurs HWN},
-  year =  {1987},
-  title = {Computer Design of Musical Slurs, Ties and Phrase Marks,},
-  author = {F. Sola},
-  institution={Department of Computer and Information Science, The Ohio State University},
-  number = {OSU-CISRC-10/87-TR32},
-}
-
-
-@TechReport {sola87-beams,
-  institution={Department of Computer and Information Science, The Ohio State University},
-  note = {Calculating beam slopes HWN},
-  year =  {1987},
-  title = {Design of Musical Beams,},
-  author = {F. Sola and D. Roush},
-  number = {OSU-CISRC-10/87-TR30},
-}
-
-
-@Article {gourlay86,
-  note = {This paper describes the {MusiCopy} musicsetting system and an input language to go with it. HWN},
-  year =  {1986},
-  title = {A language for music printing},
-  author = {John. S. Gourlay},
-  journal = {Communications of the ACM},
-   volume= {29},
-  number ={5},
-  pages = {388--401},
-}
-
-
-
-@Article {rader96,
-  note = {Describes a system called MusicEase, and explains that it uses "constraints" (which go unexplained) to automatically position various elements. HWN},
-  year =  {1996},
-  title = {Creating Printed Music Automatically},
-  author = {Gary M. Rader},
-  journal = {Computer},
-  volume={29},
-  number={6},
-  month={June},
-  pages = {61--69},
-}
-
-
-
-
-@PhdThesis {page88,
-  note = {Don't ask Stephen for a copy. Write to the Bodleian Library, Oxford, or to the British Library, instead. SP},
-  year =  {1988},
-  title = {Computer Tools for Music Information Retrieval},
-  author = {Stephen Dowland Page},
-  school ={Dissertation University of Oxford},
-}
-
-@MastersThesis{roelofs91,
-  note = {This dutch thesis describes a simplistic (monophonic) typesetting system, and focuses on the breaking algorithm, which is taken from Hegazy & Gourlay HWN},
-  year =  {1991},
-  title = {Een Geautomatiseerd Systeem voor het Afdrukken van Muziek},
-  author = {Ren\'e Roelofs},
-  school={Erasmus Universiteit Rotterdam},
-  number={45327},
-  translation = {``An automated system for printing music'' Master's Thesis Managerial Computer Science.},
-}
-
-
-@Article {filgueiras93,
-  year =  {1993},
-  title = {Representation and manipulation of music documents in SceX},
-  author = {Miguel Filgueiras and Jos\'e Paulo Leal},
-  journal= {Electronic Publishing},
-  volume={6},
-  number={4}, pages = {507--518},
-
-}
-
-
-@Article {foxley87,
-  note = {A paper on a TROFF preprocessor to typeset music. The output shown is not very sophisticated, and contains some typographical atrocities HWN},
-  year =  {1987},
-  title = {Music --- A language for typesetting music scores},
-  author = {Eric Foxley},
-  journal = {Software --- Practice and Experience},
-  volume = {17},
-  number = {8},
-  pages = {485-502},
-}
-
-
-@Book {filgueiras96,
-  year = {1996},
-  title = {Implementing a Symbolic Music Processing System},
-  author = {Miguel Filgueiras},
-  totalentry = {LIACC, Universidade do Porto, 1996; submitted},
-}
-
-@Book {filgueiras?,
-  title = {Some Music Typesetting Algorithms},
-  author = {Miguel Filgueiras},
-  totalentry = {Miguel Filgueiras. ``Some Music Typesetting Algorithms''. LIACC, Universidade do Porto, forthcoming},
-}
-
-
-@Article {colorado-web,
-  author ={Alyssa Lamb},
-  note = {Webpages about engraving (designed with finale users in mind) (sic) HWN},
-  institution = {The University of Colorado},
-  title ={The University of Colorado Music Engraving page.},
-  HTML={http://obenamots.cc.colorado.edu/Musicpress/engraving.html},
-  year={1996}
-}
-
-
-
-
-@Article {Langston90,
-  note = {This paper deals with some command-line
-  tools for music editing and playback. It doesn't mention notation
-  issues, but does come with the grand idea (not) of using music to
-  monitor complex systems. Imagine your nuclear plant supervisor to
-  use AC/DC for checking the reactor HWN},
-
-  year =  {1990},
-  title = {Unix music tools at Bellcore},
-  author = {Peter S. Langston},
-  journal={Software --- Practice and Experience},
-  volume={20},
-  number={S1},
-  pages={47--61},
-}
-
-
-
-@Article {tablature-web,
-  note = {FAQ (with answers) about TAB, the ASCII variant of Tablature. HWN},
-  title = {how to read and write tab: a guide to tab notation},
-  author = {Howard Wright},
-  email={Howard.Wright@ed.ac.uk},
-  HTML={http://wabakimi.carleton.ca/~phacket2/guitar/tabfaq.html},
-}
-
-
-@Article {niff-web,
-  note = {Specs for NIFF, a reasonably comprehensive but binary (yuk) format for notation HWN},
-
-  year =  {1995},
-  title = {NIFF6a Notation Interchange File Format},
-  author = {Cindy Grande},
-  publisher={Grande Software Inc.},
-  HTML= {http://www.jtauber.com/music/encoding/niff/},
-  ftp = {ftp://blackbox.cartah.washington.edu}
-}
-
-
-@Article {smdl-web,
-  author={unknown},
-  title = {SMDL, Standard Musical Description Language},
-  pdf= {ftp://ftp.ornl.gov/pub/sgml/wg8/smdl/10743.pdf},
-  note={ISO/IEC DIS 10743
-
-SGML instance for describing music.  Very comprehensive in music
-definition, but no support for notation / performance whatsoever (They
-basically say: "You can embed a NIFF or MIDI file") HWN}
-
-},
-}
-
-@TechReport{Ornstein83,
-  author={Ornstein, Severo M. and John Turner Maxwell III},
-  title={Mockingbird: A Composer's Amanuensis},
-  institution={Xerox Palo Alto Research Center},
-  address={3333 Coyote Hill Road, Palo Alto, CA, 94304},
-  number={CSL-83-2},
-  month={January},
-  year={1983}
-}
-
-
-
-@Article{Ornstein84,
-  author={Ornstein, Severo M. and John Turner Maxwell III},
-  title={Mockingbird: A Composer's Amanuensis},
-  journal= {Byte},
-  volume= 9,
-  month = {January},
-  year= { 1984},
-  note={A discussion of an interactive and graphical computer system for
-music composition}
-
-}
-
-@PhdThesis{mueller90:_inter_bearb_musik,
-  author =      {Giovanni M\"uller},
-  title =       {Interaktive Bearbeitung konventioneller Musiknotation},
-  school =      {Eidgen\"ossischen Technischen Hochschule Z\"urich},
-  year =        1990,
-
-note = {This is about engraver-quality typesetting with computers.  It
-accepts the axiom that notation is too difficult to generate
-automatically.  The result is that a notation program should be a
-WYSIWYG editor that allows one to tweak everything.
-
-The implementation therefore is quite "weak".  The introductory
-chapters on engraving and notation are well structured and clear,
-though.}
-}
-
-
-%
-% three part study by John Gr/over
-@TechReport{grover89-symbols,
-  author =      {John Gr\/over},
-  title =       {A computer-oriented description of Music Notation.  Part I. The Symbol Inventory},
-  institution =  {Department of informatics, University of Oslo},
-  year =        1989,
-  number =      133,
-
-note = {The goal of this series of reports is a full description of
-music formatting.  As these largely depend on parameters of fonts, it
-starts with a verbose description of music symbols.
-
- The subject is treated backwards: from general rules of typesetting
-the author tries to extract dimensions for characters, whereas the
-rules of typesetting (in a particular font) follow from the dimensions
-of the symbols.  His symbols do not match (the stringent) constraints
-formulated by eg. \cite{wanske}} }
-
-@TechReport{grover89-twovoices,
-  author =      {John Gr\/over},
-  title =       {A computer-oriented description of Music Notation. Part II: Two Voice Sharing a Staff, Leger Line Rules, Dot Positioning},
-
-  institution =  {Department of informatics, University of Oslo},
-  year =        1989,
-  number =      134,
-
-  note = {A lot rules for what is in the title are formulated.  The
-descriptions are long and verbose.  The verbosity shows that
-formulating specific rules is not the proper way to approach the
-problem.  Instead, the formulated rules should follow from more
-general rules, similar to\cite{parrish87-simultaneities}},
-}
-
-@TechReport{grover89-accidentals,
-  author =      {John Gr\/over},
-  title =       {A computer-oriented description of Music Notation. Part III: Accidental Positioning},
-  institution =  {Department of informatics, University of Oslo},
-  year =        1989,
-  number =      135,
-
-note = {Placement of accidentals crystallised in an enormous set of
-rules.  Same remarks as for \cite{grover89-twovoices} applies} }
diff --git a/Documentation/tex/engraving.bib b/Documentation/tex/engraving.bib
deleted file mode 100644 (file)
index bfa6523..0000000
+++ /dev/null
@@ -1,306 +0,0 @@
-%
-% TITLE=The engraving bibliography
-% AUTHOR=Han-Wen Nienhuys
-%
-
-
-@Book{banter,
-  author =     {Harald Banter},
-  title =      {Akkord Lexikon},
-  publisher =  {Schott's S\"ohne},
-  year =       {1987},
-  isbn =       {ISBN 3-7957-2095-8},
-  note =       {Comprehensive overview of commonly used
-  chords.  Suggests (and uses) a unification for all different kinds
-  of chord names.},
-  address =    {Mainz, Germany},
-}
-
-@Book{rastall,
-  author =      {Richard Rastall},
-  ALTeditor =   {},
-  title =       {The Notation of Western Music: an
-  Introduction},
-  publisher =   {J. M. Dent \& Sons London},
-  year =        {1983},
-  note = {Interesting account of the evolution and origin of common notation starting from neumes, and ending with modern innovations HWN},
-}
-
-@Book{ross,
-  author =      {Ted Ross},
-  title =       {Teach yourself the art of music engraving and processing},
-  publisher =   {Hansen House},
-  year =        1987,
-  note =        {This is about engraving, i.e.  professional typesetting.  It contains
-  directions on good typesetting, but the sections on reproduction
-  technicalities, how to use pens and history are interesting.
-  Especially the section on Music Typewriters is amusing HWN},
-  address =     {Miami, Florida},
-}
-
-
-
-@Book {read78,
-  note = {Sound (boring) review of the various hairy rhythmic notations used by avant-garde composers HWN},
-  year =  {1978},
-  title = {Modern Rhythmic Notation},
-  author = {Gardner Read},
-  publisher = {Indiana University Press},
-}
-
-
-@Book {read-notation,
-  note = {(Out of print) This is as close to the ``standard'' reference
-work for music notation issues as one is likely to get. MB},
-  title = {Music Notation: a Manual of Modern Practice},
-  author = {Gardner Read},
-  totalentry = {(2nd edition)},
-  publisher ={Taplinger Publishing},
-  address ={New York},
-}
-
-@Book {weaner93,
-  year =  {1993},
-  title = {Standard Music Notation Practice},
-  author = {Maxwell Weaner and Walter Boelke},
-  totalentry = {revised edition by Arnold Broido and Daniel Dorff.},
-  publisher = {Music Publisher's Association of the United States Inc},
-  address = {New York}
-}
-
-
-@Book {wanske,
-  note = {I. A very thorough overview of engraving practices of various craftsmen. It includes detailed specs of characters, dimensions etc. II. a thorough overview of a anonymous (by now antiquated) automated system. EDV Means e(lektronischen) D(aten)v(erarbeitung), electronic data processing HWN},
-  year =  {1988},
-  title = {Musiknotation --- Von der Syntax des Notenstichs zum EDV-gesteuerten Notensatz},
-  author = {Helene Wanske},
-  publisher = {Schott-Verlag},
-  address = {Mainz},
-  isbn = {ISBN 3-7957-2886-x},
-}
-
-{willemze,
-  note = {A comprehensive overview of music theory;
-the (Dutch) authority on general music theory},
-  year =  {1964-1993},
-  title = {Algemene muziekleer},
-  author = {Theo Willemze},
-  publisher = {Aula, Het Spectrum},
-  address = {Utrecht},
-  isbn = {ISBN 90-274-1817-9},
-}
-
-
-@Book {hader48,
-  year =  {1948},
-  title = {Aus der Werkstatt eines Notenstechers},
-  author = {Karl Hader},
-  publisher = {Waldheim--Eberle Verlag},
-  address ={Vienna},
-
-  note = {Hader was the chief-engraver of the Waldheim-Eberle music
-  publishers.  This beautiful booklet was intended as an introduction
-  for laymen on the art of engraving.  It contains a step by step,
-  in-depth explanation of how to cut and stamp music into zinc plates.
-  It also contains   a few compactly formulated rules on musical
-  orthography. Out of print. }
-}
-
-@Book{gamble23:_music_engrav,
-  author =      {William Gamble},
-  title =       {Music Engraving and printing.  Historical and Technical Treatise},
-  publisher =   {Sir Isaac Pitman & Sons, ltd.},
-  year =        1923,
-  note = {This pattriotic book was an attempt to promote and help
-  British music engravers.  It is somewhat similar to Hader's
-  book\cite{hader48} in scope and style, but Gamble focuses more on
-  technical details (Which French punch cutters are worth buying from,
-  etc.), and does not treat typographical details, such as optical
-  illusions.  It is available as reprint from Da Capo Press, New York
-  (1971).}
-}
-
-
-@Booklet {mpa96,
-  note = {Pamphlet explaining a few  fine points in music font design HWN},
-  year =  {1996},
-  title = {Standard music notation specifications for computer programming.},
-  month =  {December},
-  author ={mpa},
-  publisher = {MPA},
-}
-
-
-@Book {donato63,
-  year =  {1963},
-  author = {Anthony Donato},
-  title ={Preparing Music Manuscript},
-  address ={Englewood Cliffs, NJ},
-  publisher={Prentice-Hall},
-}
-
-
-@Book {Karkoshka72,
-  year =  {1972},
-  title = {Notation in New Music; a critical guide to interpretation and realisation},
-  author = {Erdhard Karkoshka},
-  translator={Ruth Koenig},
-  publisher={Praeger Publishers},
-  address={New York},
-  note ={(Out of print)},
-}
-
-
-@Book {Roemer84,
-  year =  {1984},
-  title = {The Art of Music Copying},
-  author = {Clinton Roemer},
-  publisher={Roerick music co.},
-  address= {Sherman Oaks (CA)},
-
-  note ={Out of print. Heussenstamm writes: an instructional manual
-    which specializes in methods used in the commercial field. },
-  edition={2nd},
-}
-
-
-@Book {Rosecrans79,
-  year =  {1979},
-  title = {Music Notation Primer},
-  author = {Glen Rosecrans},
-  publisher={Passantino},
-  address={New York},
-  note={Heussenstamm writes: Limited in scope, similar to \cite{Roemer84}}
-}
-
-@Book {donemes1900,
-  year =  {1900},
-  title = {Uitgeven van muziek},
-  author = {Donemus},
-  publisher= {Donemus Amsterdam},
-}
-
-
-@Book{vinci,
-author={Vinci, Albert C.},
-title={Fundamentals of Traditional Music Notation},
-publisher={Kent State University Press},
-year={1989}
-}
-
-@Book{schirmer90,
-  author={G. Schirmer, Inc.},
-  title={The G. Schirmer Manual of Style and Usage},
-  address={New York},
-  publisher={The G. Schirmer Publications Department},
-  year={1990}
-}
-
-
-@Book {Stone80,
-  year =  {1980},
-  title = {Music Notation in the Twentieth Century},
-  author = {Kurt Stone},
-  publisher= {Norton},
-  address={New York},
-  note ={Out of print. Heussenstamm writes: The most important book on notation in recent years. },
-
-}
-@Book {Heussenstamm87,
-  year =  {1987},
-  title = {The Norton Manual of Music Notation},
-  author = {George Heussenstamm},
-  address= {New York},
-  publisher={Norton},
-  note={Hands-on instruction book for copying (ie. handwriting) music.  Fairly complete. HWN}
-}
-
-
-
-@Book{unknown69:_music_notat,
-  author =      {--},
-  title =       {Music Notation},
-  publisher =   {Crescendo books},
-  year =        1969,
-  note =        {Heussenstamm writes: An extremely thorough exploration of musical notation [..]}
-}
-
-
-@Book {gerou96,
-  note = {A concise, alphabetically ordered list of typesetting and music (notation) issues with a rather simplistic attitude but in most  cases "good-enough" answers JCN},
-  year =  {1996},
-  title = {Essential Dictionary of Music Notation},
-  author = {Tom Gerou and Linda Lusk},
-  publisher = {Alfred Publishing},
-  address ={Van Nuys CA},
-  isbn ={ISBN 0-88284-768-6},
-}
-
-
-@Book {chlapik87,
-  note = {An clearly written book for the casually interested reader. It shows some of the conventions and difficulties in printing music HWN},
-  year =  {1987},
-  title = {Die Praxis des Notengraphikers},
-  author = {Herbert Chlapik},
-  publisher = {Doblinger},
-  isbn ={ISBN 3-9000 035-96-2},
-}
-
-
-
-@Book {barksdale57,
-       author = {Barksdale, A},
-       year = {1957},
-       title = {The Printed Note: 500 Years of Music Printing and Engraving},
-       address={Toledo, Ohio},
-       month = {January},
-       note={`The exhibition "The Printed Note" attempts to show the various processes used since the second of the 15th century for reproducing music mechanically ... '. The illustration mostly feature ancient music},
-       publisher={The Toledo Museum of Art},
-}
-
-
-@Book {wolf19,
-       author = {Wolf, Johannes},
-       year = {1919},
-       title = {Handbuch der Notationskunde},
-       address={Leipzig},
-       publisher={Breitkopf & Hartel},
-       note= {Very thorough treatment (in two volumes) of the history musical notation},
-}
-
-@Book {rosenthal67,
-       author = {Rosenthal, Carl A},
-       year = {1967},
-       title = {A Practical Guide to Music Notation},
-       address={New York},
-       publisher={MCA Music},
-       note={Heussenstamm writes: Informative in terms of traditional notation.  Does not concern score preparation}
-}
-
-
-@Book {Boehm61,
-       author = {Boehm, Laszlo},
-       year = {1961},
-       title={Modern Music Notation},
-       address={New York},
-       publisher={G. Schirmer, Inc.},
-       note ={Heussenstamm writes: A handy compact reference book in basic notation. }
-}
-@Book{button20:_system_music_notat,
-  author =      {Button, H. Elliot},
-  title =       {System in Musical Notation},
-  publisher =   {Novello and co.},
-  year =        1920,
-  address =     {London}
-}
-
-@Book{johnson46:_how,
-  author =      {Johnson, Harold},
-  title =       {How to write music manuscript},
-  publisher =   {Carl Fischer, Inc.},
-  year =        1946,
-  address =     {New York}
-}
-
-
-
diff --git a/Documentation/tex/feta20.sty b/Documentation/tex/feta20.sty
deleted file mode 100644 (file)
index 0dbfcf9..0000000
+++ /dev/null
@@ -1,146 +0,0 @@
-% Creator: mf-to-table.py version 0.7
-% Automatically generated on
-% Do not edit
-% input from out/feta20.log
-% name
-% rests
-\fetdef\wholerest{0}
-\fetdef\halfrest{1}
-\fetdef\outsidewholerest{2}
-\fetdef\outsidehalfrest{3}
-\fetdef\breverest{4}
-\fetdef\longarest{5}
-\fetdef\multirest{6}
-\fetdef\quartrest{7}
-\fetdef\eighthrest{8}
-\fetdef\sixteenthrest{9}
-\fetdef\thirtysecondrest{10}
-\fetdef\sixtyfourthrest{11}
-\fetdef\hundredtwentyeighthrest{12}
-
-% accidentals
-\fetdef\sharp{13}
-\fetdef\natural{14}
-\fetdef\flat{15}
-\fetdef\flatflat{16}
-\fetdef\sharpsharp{17}
-\fetdef\rightparen{18}
-\fetdef\leftparen{19}
-
-% dots
-\fetdef\dot{20}
-\fetdef\repeatcolon{21}
-
-% balls
-\fetdef\brevisball{22}
-\fetdef\brevisledger{23}
-\fetdef\longaball{24}
-\fetdef\longaledger{25}
-\fetdef\wholeball{26}
-\fetdef\wholeledger{27}
-\fetdef\halfball{28}
-\fetdef\halfledger{29}
-\fetdef\quartball{30}
-\fetdef\quartledger{31}
-
-% scripts
-\fetdef\ufermata{32}
-\fetdef\dfermata{33}
-\fetdef\thumb{34}
-\fetdef\sforzatoaccent{35}
-\fetdef\staccato{36}
-\fetdef\ustaccatissimo{37}
-\fetdef\dstaccatissimo{38}
-\fetdef\tenuto{39}
-\fetdef\umarcato{40}
-\fetdef\dmarcato{41}
-\fetdef\ouvert{42}
-\fetdef\plusstop{43}
-\fetdef\upbow{44}
-\fetdef\downbow{45}
-\fetdef\reverseturn{46}
-\fetdef\turn{47}
-\fetdef\trill{48}
-\fetdef\upedalheel{49}
-\fetdef\dpedalheel{50}
-\fetdef\upedaltoe{51}
-\fetdef\dpedaltoe{52}
-\fetdef\flageolet{53}
-\fetdef\trilelement{54}
-\fetdef\prall{55}
-\fetdef\mordent{56}
-\fetdef\prallprall{57}
-\fetdef\prallmordent{58}
-\fetdef\upprall{59}
-\fetdef\downprall{60}
-\fetdef\accDiscant{61}
-\fetdef\accDiscantF{62}
-\fetdef\accDiscantEh{63}
-\fetdef\accDiscantE{64}
-\fetdef\accDiscantFE{65}
-\fetdef\accDiscantFEh{66}
-\fetdef\accDiscantEE{67}
-\fetdef\accDiscantFEE{68}
-\fetdef\accDiscantEEE{69}
-\fetdef\accDiscantFEEE{70}
-\fetdef\accDiscantS{71}
-\fetdef\accDiscantFS{72}
-\fetdef\accDiscantES{73}
-\fetdef\accDiscantEhS{74}
-\fetdef\accDiscantFES{75}
-\fetdef\accDiscantFEhS{76}
-\fetdef\accDiscantEES{77}
-\fetdef\accDiscantFEES{78}
-\fetdef\accDiscantEEES{79}
-\fetdef\accDiscantFEEES{80}
-\fetdef\accDiscantSS{81}
-\fetdef\accDiscantESS{82}
-\fetdef\accDiscantEESS{83}
-\fetdef\accDiscantEEESS{84}
-\fetdef\accFreebass{85}
-\fetdef\accFreebassF{86}
-\fetdef\accFreebassE{87}
-\fetdef\accFreebassFE{88}
-\fetdef\accStdbass{89}
-\fetdef\accStdbassM{90}
-\fetdef\accStdbassBp{91}
-\fetdef\accStdbassT{92}
-\fetdef\accStdbassTp{93}
-\fetdef\accBayanbass{94}
-\fetdef\accBayanbassT{95}
-\fetdef\accBayanbassE{96}
-\fetdef\accBayanbassTE{97}
-\fetdef\accBayanbassEE{98}
-\fetdef\accBayanbassTEE{99}
-\fetdef\accSB{100}
-\fetdef\accBB{101}
-\fetdef\accOldEE{102}
-\fetdef\accOldEES{103}
-
-% flags
-\fetdef\eighthflag{104}
-\fetdef\sixteenthflag{105}
-\fetdef\thirtysecondflag{106}
-\fetdef\sixtyfourthflag{107}
-\fetdef\deighthflag{108}
-\fetdef\dsixteenthflag{109}
-\fetdef\dthirtysecondflag{110}
-\fetdef\dsixtyfourthflag{111}
-
-% clefs
-\fetdef\altoclef{112}
-\fetdef\caltoclef{113}
-\fetdef\bassclef{114}
-\fetdef\cbassclef{115}
-\fetdef\trebleclef{116}
-\fetdef\ctrebleclef{117}
-
-% timesig
-\fetdef\fourfourmeter{118}
-\fetdef\allabreve{119}
-\fetdef\oldfourfourmeter{120}
-\fetdef\oldallabreve{121}
-\fetdef\oldthreetwometer{122}
-\fetdef\oldsixfourmeter{123}
-\fetdef\oldninefourmeter{124}
-
diff --git a/Documentation/tex/fonts.doc b/Documentation/tex/fonts.doc
deleted file mode 100644 (file)
index 287dde4..0000000
+++ /dev/null
@@ -1,330 +0,0 @@
-
-                                % -*-LaTeX-*-
-
-\documentclass{article}
-\def\kdots{,\ldots,}
-\title{Not the Font-En-Tja font}
-\author{HWN \& JCN} 
-\def\preMudelaExample{}
-\def\postMudelaExample{}
-\begin{document}
-\maketitle
-
-
-\section{Introduction}
-
-This document are some design notes of the Feta font, and other
-symbols related to LilyPond.  Feta (not an abbreviation of
-Font-En-Tja) is a font of music symbols.  All MetaFont sources are
-original.  The symbols are modelled after various editions of music,
-notably \begin{itemize} \item B\"arenreiter \item Hofmeister \item
-Breitkopf \item Durand \& C'ie \end{itemize}
-
-The best references on Music engraving are Wanske\cite{wanske} and
-Ross\cite{ross} some of their insights were used.  Although it is a
-matter of taste, I'd say that B\"arenreiter has the finest typography
-of all.
-
-
-\section{Bezier curves for slurs}
-
-Objective:  slurs in music are curved objects designating that notes
-should fluently bound.  They are drawn as smooth curves, with their
-center thicker and the endings tapered.
-
-There are some variants: the simplest slur shape only has the width as
-parameter.  Then we give some suggestions for tuning the shapes.  The
-simple slur algorithm is used for drawing ties as well.
-
-
-
-\subsection{Simple slurs}
-
-Long slurs are flat, whereas short slurs look like small circle arcs.
-Details are given in Wanske\cite{ross} and Ross\cite{wanske}.  The
-shape of a slur can be given as a Bezier curve with four control
-points:
-
-\begin{eqnarray*}
-  B(t) &=& (1-t)^3c_1 +3(1-t)^2tc_2 + 3(1-t)t^2c_3 + t^3c_4.
-\end{eqnarray*}
-
-We will assume that the slur connects two notes of the same
-pitch.  Different slurs can be created by rotating the derived shape.
-We will also assume that the slur has a vertical axis of symmetry
-through its center.  The left point will be the origin.     So we have
-the following equations for the control points $c_1\kdots c_4$.
-
-\begin{eqnarray*}
-c_1&=& (0,0)\\
-c_2&=& (i, h)\\
-c_3&=& (b-i, h)\\
-c_4&=& (b, 0)
-\end{eqnarray*}
-
-The quantity $b$ is given, it is the width of the slur.  The
-conditions on the shape of the slur for small and large $b$ transform
-to
-\begin{eqnarray*}
- h \to h_{\infty} , &&\quad b \to \infty\\
- h \approx r_{0} b, &&\quad b \to 0.
-\end{eqnarray*}
-To tackle  this, we  will  assume that $h   = F(b)$, for  some kind of
-$F(\cdot)$.  One function that satisfies the above conditions is
-$$
-F(b) = h_{\infty} \frac{2}{\pi} \arctan \left( \frac{\pi r_0}{2
-h_{\infty}} b \right).
-$$
-
-For satisfying results we choose $h_{\infty} = 2\cdot \texttt{interline}$
-and $r_0 = \frac 13$.
-
-\subsection{Height correction}
-
-Aside from being a smooth curve, slurs should avoid crossing
-enclosed notes and their stems.
-
-An easy way to achieve this is to extend the slur's height,
-so that the slur will curve just above any disturbing notes.
-
-The parameter $i$ determines the flatness of the curve.  Satisfying
-results have been obtained with $i = h$.
-
-The formula can be generalised to allow for corrections in the shape, 
-\begin{eqnarray*}
-c_1&=& (0,0)\\
-c_2&=& (i', h')\\
-c_3&=& (b-i', h')\\
-c_4&=& (b, 0)
-\end{eqnarray*}
-Where
-$$
-i' = h(b) (1 + i_{corr}), \quad h' = h(b) (1 + h_{corr}).
-$$
-
-The default values for these corrections are $0$.  A $h_{corr}$ that is
-negative, makes the curve flatter in the center.  A $h_{corr}$ that is
-positive make the curve higher. 
-
-At every encompassed note's x position the difference $\delta _y$ 
-between the slur's height and the note is calculated.  The greatest 
-$\delta _y$ is used to calculate $h_{corr}$ is by lineair extrapolation.
-
-However, this simple method produces satisfactory results only for 
-small and symmetric disturbances.
-
-
-\subsection{Tangent method correction}
-
-A somewhat more elaborate\footnote{While staying in the realm 
-of empiric computer science} way of having a slur avoid 
-disturbing notes is by first defining the slur's ideal shape 
-and then using the height correction.  The ideal shape of a 
-slur can be guessed by calculating the tangents of the disturbing 
-notes:
-% a picture wouldn't hurt...
-\begin{eqnarray*}
-  y_{disturb,l} &=& \rm{rc}_l x\\
-  y_{disturb,r} &=& \rm{rc}_r + c_{3,x},
-\end{eqnarray*}
-where
-\begin{eqnarray*}
-  \rm{rc}_l &=& \frac{y_{disturb,l} - y_{encompass,1}}
-    {x_{disturb,l} - x_{encompass,1}}\dot x\\
-  \rm{rc}_r &=& \frac{y_{encompass,n} - y_{disturb,r}}
-    {x_{encompass,n} - x_{disturb,r}} \dot x + c_{3,x}.
-\end{eqnarray*}
-
-We assume that having the control points $c_2$ and $c_3$ located 
-on tangent$_1$ and tangent$_2$ resp. 
-% t: tangent
-\begin{eqnarray*}
-  y_{tangent,l} &=& \alpha \rm{rc}_l x\\
-  y_{tangent,r} &=& \alpha \rm{rc}_r + c_{3,x}.
-\end{eqnarray*}
-
-Beautiful slurs have rather strong curvature at the extreme
-control points.  That's why we'll have $\alpha > 1$.
-Satisfactory resulsts have been obtained with
-$$
-  \alpha \approx 2.4.
-$$
-
-The positions of control points $c_2$ and $c_3$ are obtained
-by solving with the height-line
-\begin{eqnarray*}
-  y_h &=& \rm{rc}_h + c_h.
-\end{eqnarray*}
-
-The top-line runs through the points disturb$_{left}$ and
-disturb$_{right}$.  In the case that 
-$$
-z_{disturb,l} = z_{disturb,r},
-$$
-we'll have 
-$$
-  \angle(y_{tangent,l},y_h) = \angle(y_{tangent,r},y_h).
-$$
-
-
-
-\section{Sizes}
-
-Traditional engraving uses a set of 9 standardised sizes for Staffs
-(running from 0 to 8).  
-
-We have tried to measure these (helped by a magnifying glass), and
-found the staffsizes in  table~\ref{fonts:staff-size}.  One should note that
-these are estimates, so I think there could be a measuring error of ~
-.5 pt.  Moreover [Ross] states that not all engravers use exactly
-those sizes.
-
-\begin{table}[h]
-  \begin{center}
-    \begin{tabular}{lll}
-Staffsize       &Numbers                &Name\\
-\hline\\
-26.2pt  &No. 0\\
-22.6pt  &No. 1          &Giant/English\\
-21.3pt  &No. 2          &Giant/English\\
-19.9pt  &No. 3          &Regular, Ordinary, Common\\
-19.1pt  &No. 4          &Peter\\
-17.1pt  &No. 5          &Large middle\\
-15.9pt  &No. 6          &Small middle\\
-13.7pt  &No. 7          &Cadenza\\
-11.1pt  &No. 8          &Pearl\\
-    \end{tabular}
-    \caption{Foo}
-    \label{fonts:staff-size}
-  \end{center}
-\end{table}
-
-
-
-
-\section{Beams}
-
-\subsection{Slope}
-
-Traditionally, beam slopes are computed by following a large and hairy
-set of rules.  Some of these are talked-about in Wanske, a more
-recipy-like description can be found in Ross.
-
-There are some problems when trying to follow these rules:
-\begin{itemize}
-
-\item the set is not complete
-
-\item they are not formulated as a general rule with exceptions, but
-rather as a huge case of individual rules\cite{ross}
-
-\item in some cases, the result is wrong or ugly (or both)
-
-\item they try to solve a couple of problems at a time (e.g. Ross
-handles ideal slope and slope-quantisation as a paired problem)
-\end{itemize}
-Reading Ross it is clear that the rules presented there are certainly
-not the ultimate idea of what beam(slope)s should look like, but
-rather a (very much) simplified hands-on recipy for a human engraver.
-
-There are good reasons not to follow those rules:
-
-\begin{itemize}
-\item One cannot expect a human engraver to solve least-squares
-problems for every beam
-  
-\item A human engravers will allways trust themselves in judging the
-outcome of the applied recipy.  If, in a complicated case, the result
-"doesn't look good", they will ignore the rules and draw their own
-beams, based on experience.
-
-\item The exact rules probably don't "really exist" but in the minds
-  of good engravers, in the form of experience
-\end{itemize}
-
-We'll propose to do a least-squares solve.  This seems to be the best
-way to calculate the slope for a computerised engraver such as Lily.
-
-It would be nice to have some rules to catch and handle "ugly" cases,
-though.  In general, the slope of the beam should mirror the pitches
-of the notes.  If this can't be done because there simply is no
-uniform trend, it would probably be best to set the slope to zero.
-
-
-\subsection{Quantising}
-
-The beams should be prevented to conflict with the stafflines,
-especially at small slopes.  Traditionally, poor printing techniques
-imposed rather strict rules for quantisation.  In modern (post 1955)
-music printing we see that quality has improved substantially and
-obsoleted the technical justification for following some of these
-strict rules, notably the avoiding of so-called wedges.
-
-
-\subsection{Thickness and spacing}
-
-The spacing of double and triple beams (sixteenth and thirtysecond beams)
-is the same, quadruple and quintuple (thirtyfourth and hundredtwentyeighth
-beams) is wider.
-All beams are equally thick.  Using the layout of triple beams and the 
-beam-thickness $bt$ we can calculate the inter-beam spacing $ib$.
-
-Three beams span two interlines, including stafflines:
-\begin{eqnarray*}
- 2 ib + bt &=& 2 il\\
- ib &=& (2 il - bt) / 2
-\end{eqnarray*}
-
-We choose
-\begin{eqnarray*}
-  bt &=& 0.48(il - st)
-\end{eqnarray*}
-
-\subsubsection{Quadruple beams}
-
-If we have more than three beams they must open-up
-in order to not collide with staff lines.  The only valid
-position that remains is for the upper beam to hang.
-
-\begin{eqnarray*}
- 3 ib_{4+} + bt &=& 3 il\\
- ib_{4+} &=& (3 il - bt) / 3
-\end{eqnarray*}
-
-
-\section{Layout of the source files}
-
-The main font (with the fixed size music glyphs) uses a the \TeX\
-logfile as a communication device.  Use the specialised macros to
-create and export glyphs.
-
-\bibliographystyle{plain}
-\bibliography{engraving}
-
-
-
-\end{document}
-
-\begin{verbatim}
-Paul Terry <paul@musonix.demon.co.uk> writes:
-
-Ross states that the dies (the stamps to make the symbols) come in
-12 different sizes.
-
->Can you tell me how big rastrals are?
-
-According to the Score manual:
-
-   Rastral Size     Height in millimetres
-
-   0                9   mm
-   1                8   mm
-   2                7.5 mm
-   3                7   mm
-   4                6.5 mm
-   5                6   mm
-   6                5.5 mm
-
-I must say, despite having been a music setter for many years, I had to
-look these up - none of the publishers I work for deal in Rastral sizes
-these days (they all use millimetres).
diff --git a/Documentation/tex/glossary-forms.el b/Documentation/tex/glossary-forms.el
deleted file mode 100644 (file)
index 3ab4a48..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-; Music vocabularies are Copyright (C) 1993 Free Software Foundation, Inc.
-; Francois Pinard <pinard@iro.umontreal.ca>,
-; Neil Jerram <nj104@cus.cam.ac.uk>.
-; Forms by Han-Wen Nienhuys
-
-(setq forms-file "glossary-table.data")
-(setq forms-number-of-fields 7)
-(setq forms-read-only nil)                 ; to make sure
-(setq forms-field-sep "@")
-(setq forms-multi-line "\C-m")
-
-(setq forms-format-list
-      (list
-       "*** Musical vocabulary ***\n"
-       "\nItaliano:          " 6
-       "\nFrancais:          " 2
-       "\nUS English:        " 1
-       "\nDeutsch:           " 3
-       "\nBritish English:   " 4
-       "\nNederlands:        " 5
-       "\n\nExplanation\n\n" 7
-
-       ))
diff --git a/Documentation/tex/lilypond-overview.doc b/Documentation/tex/lilypond-overview.doc
deleted file mode 100644 (file)
index 4aa1e75..0000000
+++ /dev/null
@@ -1,743 +0,0 @@
-%-*-LaTeX-*-
-
-\documentclass{article}
-\usepackage{a4}
-\def\postMudelaExample{\setlength{\parindent}{1em}}
-\title{LilyPond, a Music Typesetter}
-\author{HWN}
-\usepackage{musicnotes}
-\usepackage{graphics}
-
-
-\begin{document}
-\maketitle
-
-[THIS IS WORK IN PROGRESS.  THIS PAPER IS NOT FINISHED]
-
-% -*-LaTeX-*-
-\section{Introduction}
-
-The Internet has become a popular medium for collaborative work on
-information.  Its success is partly due to its use of simple, text-based
-formats.  Examples of these formats are HTML and \LaTeX.  Anyone can
-produce or modify such files using nothing but a text editor, they are
-easily processed with run-of-the-mill text tools, and they can be
-integrated into other text-based formats.
-
-Software for processing this information and presenting these formats
-in an elegant form is available freely (Netscape, \LaTeX, etc.).
-Ubiquitousness of the software and simplicity of the formats have
-revolutionised the way people publish text-based information
-nowadays.
-
-In the field of performed music, where the presentation takes the form
-of sheet music, such a revolution has not started yet.  Let us review
-some alternatives that have been available for transmitting sheet
-music until now:
-\begin{itemize}
-\item MIDI\cite{midi}.  This format was designed for interchanging performances
-  of music; one should think of it as a glorified tape recorder
-  format.  It needs dedicated editors, since it is binary.  It does
-  not provide enough information for producing musical scores: some of
-  the abstract musical content of what is performed is thrown away.
-  
-\item PostScript\cite{Postscript}. This format is a printer control
-  language.  Printed musical scores can be transmitted in PostScript,
-  but once a score is converted to PostScript, it is virtually
-  impossible to modify the score in a meaningful way.
-  
-\item Formats for various notation programs.  Notation programs either
-  work with binary  formats (e.g., NIFF\cite{niff-web}), need specific
-  platforms   (e.g.,  Sibelius\cite{sibelius}),  are   proprietary  or
-  non-portable  tools  themselves  (idem), produce  inadequate  output
-  (e.g.,  MUP\cite{mup}),  are   based  on  graphical  content  (e.g.,
-  MusixTeX\cite{musixtex1}),  limit themselves to  specific subdomains
-  (e.g.,  ABC\cite{abc2mtex}),  or   require  considerable  skill  and
-  knowledge to use (e.g., SCORE\cite{score})
-  
-\item SMDL\cite{smdl-web}.  This is a very rich ASCII format, that is
-  designed for storing many types of music.  Unfortunately, there is
-  no implementation of a program to print music from SMDL available.
-  Moreover, SMDL is so verbose, that it is not suitable for human
-  production.
-  
-\item TAB\cite{tablature-web}.  Tab (short for tablature) is a popular
-  format, for interchanging music over e-mail, but it can only be used
-  for guitar music.
-\end{itemize}
-
-In summary, sheet music is not published and edited on a wide scale
-across the internet  because no format for music
-interchange exists that is:
-\begin{itemize}
-\item open, i.e., with publically available specifications.
-\item based on ASCII, and therefore suitable for human consumption and
-  production.
-\item rich enough for producing publication quality sheet music from
-  it.
-\item based on musical content (unlike, for example, PostScript), and
-  therefore suitable for making modifications.
-\item accompanied by tools for processing it that are freely available
-  across multiple platforms.
-\end{itemize}
-
-
-With the creation of LilyPond, we have tried to create both a
-convenient format for storing sheet music, and a portable,
-high-quality implementation of a compiler, that compiles the input
-into a printable score.  You can find a small example of LilyPond
-input along with output in Figure~\ref{fig:intro-fig}.
-%
-\begin{figure}[htbp]
-  \begin{center}
-\begin{mudela}[verbatim]
-      \score {
-        \notes
-          \context GrandStaff <
-             \transpose c'' { c4 c4 g4 g4 a4 a4 g2 }
-             { \clef "bass"; c4 c'4
-               \context Staff <e'2 {\stemdown c'4 c'4}> f'4 c'4 e'4 c'4 }
-           >
-           \paper { 
-             linewidth = -1.0\cm ;
-           }
-        }      
-\end{mudela}
-    \caption{A small example of LilyPond input}
-    \label{fig:intro-fig}
-  \end{center}
-\end{figure}
-%
-
-The input language encodes musical events (such as notes and rests) on
-the basis of their time-ordering.  For example, the grammar includes
-constructs that specify that notes start simultaneous and that notes
-are to be played in sequence.  In this encoding some context that is
-present in sheet music is lost.
-
-The compiler reconstructs the notation from the encoded music.  Its
-operation comprises four different steps (see
-Figure~\ref{fig:intro-steps}).
-
-\begin{description}
-\item[Parsing] During parsing, the input is converted in a syntax tree.
-  
-\item[Interpreting] In the \emph{interpreting} step, it is determined
-  which symbols have to be printed.  Objects that correspond to
-  notation (\emph{Graphical objects}) are created from the syntax tree
-  in this phase. Generally speaking, for every symbol printed there is
-  one graphical object.  These objects are incomplete: their position
-  and their final shape is unknown.
-  
-  The context that was lost by encoding the input in a language is
-  reconstructed during this conversion.
-\item[Formatting] The next step is determing where symbols are to be
-  placed, this is called \emph{formatting}.
-\item[Outputting]   
-  Finally, all Graphical objects are outputted as PostScript or \TeX\ code.
-\end{description}
-
-\def\staffsym{\vbox to 16pt{
-    \hbox{\vrule width 1cm depth .2pt height .2pt}\nointerlineskip
-    \vfil
-    \hbox{\vrule width 1cm depth .2pt height .2pt}\nointerlineskip
-    \vfil
-    \hbox{\vrule width 1cm depth .2pt height .2pt}\nointerlineskip
-    \vfil
-    \hbox{\vrule width 1cm depth .2pt height .2pt}\nointerlineskip
-    \vfil
-    \hbox{\vrule width 1cm depth .2pt height .2pt}\nointerlineskip
-}}
-
-\def\vspacer{\vbox to 20pt{\vss}}
-\begin{figure}[h]
-\def\spacedhbox#1{\hbox{\ #1\ }}
-\begin{eqnarray*}
-  {\spacedhbox{Input}\atop \hbox{\texttt{\{c8 c8\}}}} {\spacedhbox{Parsing}\atop\longrightarrow}
-  {\spacedhbox{Syntax tree}\atop\spacedhbox{\textsf{Sequential(Note,Note)}}}
-  {\spacedhbox{Interpreting}\atop\longrightarrow}\\
-  \vspacer\\
-  {\spacedhbox{Graphic objects}\atop\spacedhbox{\texttrebleclef \textquarterhead\texteighthflag\textquarterhead\texteighthflag \staffsym }}
-  {\spacedhbox{Formatting}\atop\longrightarrow}
-  {\spacedhbox{Formatted objects}\atop\hbox{
-    \mudela{c''8 c''8}
-    }}\\
-\vspacer\\
-  {\spacedhbox{Outputting}\atop\longrightarrow}
-  {\spacedhbox{PostScript code}\atop\hbox{\texttt{\%!PS-Adobe}\ldots}}
-\end{eqnarray*}
-  \caption{Parsing, Interpreting, Formatting and Outputting}
-    \label{fig:intro-steps}
-\end{figure}
-
-
-The second step, the interpretation phase of the compiler, can be
-manipulated as a separate entity: the interpretation process is
-composed of many separate modules, and the behaviour of the modules is
-parameterised.  By recombining these interpretation modules,
-and changing parameter settings, the same piece of music can be
-printed differently, as is shown in Figure~\ref{fig:intro-interpret}.
-
-This makes it easy to extend the program. Moreover, this enables the
-same music to be printed in different versions, e.g., in a conductors
-score and in extracted parts.
-
-
-\begin{figure}[h]
-  \begin{center}
-    \begin{mudela}
-      \score {
-        \notes
-          \context GrandStaff <
-             \transpose c'' { c4 c4 g4 g4 a4 a4 g2 }
-             { \clef "bass"; c4 c'4
-               \context Staff <e'2 {\stemdown c'4 c'4}> f'4 c'4 e'4 c'4 }
-           >
-           \paper { 
-             linewidth = -1.0\cm ;
-             \translator {  
-                \VoiceContext
-                \remove "Stem_engraver";
-             }
-           \translator {
-             \StaffContext
-               numberOfStaffLines = 3;
-           }
-          }
-        }
-    \end{mudela}
-    \caption{The interpretation phase can be manipulated: the same
-      music as in Figure~\ref{fig:intro-fig} is interpreted
-      differently: three staff lines and no stems.}
-    \label{fig:intro-interpret}
-  \end{center}
-\end{figure}
-
-
-
-\section{Preliminaries}
-
-To understand the rest of the article, it is necessary to know
-something about music notation and music typography.  Since both
-communicate music, we will explain some characteristics of instruments
-and western music that motivate some notational constructs.
-
-\subsection{Music}
-
-Music notation is meant to be read by human performers.  They sing or
-play instruments that can produce sounds of different pitches.  These
-sounds are called \emph{notes}. Additionally, the sounds can be
-articulated in differents ways, e.g., staccato (short and separated)
-or legato (fluently bound together).  The loudness of the notes can
-also be varied.  Changes in loudness are called \emph{dynamics}.
-
-Silence is also an element of music.  The musical terminology for
-silence within music is \emph{rest}.
-
-The basic unit of pitch is the \emph{octave}.  The octave corresponds
-to a frequency ratio of 1:2. For example the pitch denoted by a'
-(frequency: 440 hertz) is one octave lower than a'' (frequency: 880
-hertz).  Various instruments have a limited \emph{pitch range}, for
-example, a trumpet has a range of about 2.5 octaves.  Not all
-instruments have ranges in the same register: a tuba also has a range
-of 2.5 octaves, but the range of the tuba is much lower.
-
-Musicology has a confusing mix of relative and absolute measures for
-pitches: the term `octave' refers to both a difference between two
-pitches (the frequency ratio of 1:2), and to a range of pitches.  For
-example, the term `[eengestreept] octave' refers to the pitch range
-between 261.6 Hz and 523.3 Hz.
-
-
-The octave is divided into smaller pitch steps.  In modern western
-music, every octave is divided into twelve approximately equidistant
-pitch steps, and each step is called a \emph{semitone}.  Usually, the
-pitches in a musical piece come from a smaller subset of these twelve
-possible pitches.  This smaller subset along with the musical
-functions fo the pitches is called the
-\emph{tonality}\footnote{Tonality also refers to the relations between
-  and functions of certain pitches.  Since these do not have any
-  impact on notation, we ignore this} of the piece.
-
-
-The standard tonality that forms the basis of music notation 
-(the key of C major) is a set of seven pitches within every octave.
-Each of these seven is denoted by a name. In English, these are names
-are (in rising pitch) denoted by c, d, e, f, g, a and b.  Pitches that
-are a semitone higher or lower than one of these seven can be
-represented by suffixing the name with `sharp' or `flat'
-respectively (this is called an \emph{chromatic alteration}).
-
-A pitch therefore can be fully specified by a combination of the
-octave number, the note name and a chromatic alteration.
-Figure~\ref{fig:intro-pitches} shows the relation between names and
-frequencies.
-
-
-
-
-\begin{figure}[h]
-  \begin{center}
-    [te doen]
-  \end{center}
-  \caption{Pitches in western music.  The octave number is denoted
-    by a superscript.}
-  \label{fig:intro-pitches}
-\end{figure}
-
-
-Many instruments can produce more than one note at the same time, e.g.
-pianos and guitars.  When more notes are played simultaneously, they
-form a so-called \emph{chord}.
-
-The unit of duration is the \emph{beat}. When playing, the tempo is
-determined by setting the number of beats per minute.  In western
-music, beats are often stressed in a regular pattern: for example
-Waltzes have a stress pattern that is strong-weak-weak, i.e. every
-note that starts on a `strong' beat is louder and has more pronounced
-articulation.  This stress pattern is called \emph{meter}.
-
-\subsection{Music notation}
-
-Music notation is a system that tries to represent musical ideas
-through printed symbols.  Music notation has no precise definition,
-but most conventions have described in reference manuals on music
-notation\cite{read-notation}.
-
-In music notation, sounds and silences are represented by symbols that
-are called note and rest respectively.\footnote{These names serve a
-  double purpose: the same terms are used to denote the musical
-  concepts.}  The shape of notes and rests indicates their duration
-(See figure~\ref{noteshapes}) relative to the whole note.
-
-
-\begin{figure}[h]
-  \begin{center}
-\begin{mudela}
-  \score {
-    \notes \transpose c''{ c\longa*1/4 c\breve*1/2 c1 c2 c4 c8 c16 c32 c64 }
-    \paper {
-     \translator {
-       \StaffContext
-       \remove "Staff_symbol_engraver";
-        \remove "Time_signature_engraver";
-%        \remove "Bar_engraver";
-        \remove "Clef_engraver";
- }
-linewidth = -1.;
-    }
-}
-\end{mudela}
-\begin{mudela}
-  \score {
-    \notes \transpose c''\context Staff { r\longa*1/4 r\breve*1/2 r1 r2 r4 r8 r16 r32 r64 }
-    \paper {
-      \translator {
-        \StaffContext
-        \remove "Staff_symbol_engraver";
-        \remove "Time_signature_engraver";
-%        \remove "Bar_engraver";
-        \remove "Clef_engraver";
-        }
-      linewidth = -1.;
-    }
-}
-\end{mudela}
-    \caption{Note and rest shapes encode the length.  At the top notes
-      are shown, at the bottom rests.  From left to right a quadruple
-      note (\emph{longa}), double (\emph{breve}), whole, half,
-      quarter, eigth, sixteenth, thirtysecond and sixtyfourth. Each
-      note has half of the duration of its predecessor.}
-    \label{fig:noteshapes}
-\end{center}
-\end{figure}
-
-
-Notes are printed in a grid of horizontal lines called \emph{staff} to
-denote their pitch: each line represents the pitch of from the
-standard scale (c, d, e, f, g, a, b).  The reference point is the
-\emph{clef}, eg., the treble clef marks the location of the $g^1$
-pitch.  The notes are printed in their time order, from left to right.
-
-
-\begin{figure}[h]
-  \begin{center}
-    \begin{mudela}
-      \score { \notes {
-      a4 b c d e f g a \clef bass;
-      a4 b c d e f g a \clef alto;
-      a4 b c d e f g a \clef treble;
-      }
-      \paper { linewidth = 15.\cm; }
-      }
-    \end{mudela}
-    \caption{Pitches ranging from $a, b, c',\ldots a'$, in different
-      clefs.  From left right the bass, alto and treble clef are
-      featured.}
-    \label{fig:pitches}
-  \end{center}
-\end{figure}
-
-The chromatic alterations are indicated by printing a flat sign or a
-sharp sign in front of the note head.  If these chromatic alterations
-occur systematically (if they are part of the tonality of the piece),
-then this indicated with a \emph{key signature}.  This is a list of
-sharp/flat signs which is printed next to the clef.
-
-Articulation is notated by marking the note shapes wedges, hats and
-dots all indicate specific articulations.  If the notes are to be
-bound fluently (legato), the note shapes are encompassed by a smooth
-curve called \emph{slur},
-
-\begin{figure}[h]
-  \begin{center}
-    \begin{mudela}
-      c'4-> c'4-. g'4 ( b'4  ) g''4
-    \end{mudela}
-    \caption{Some articulations.  From left to right: extra stress
-      (\emph{marcato}), short (staccato), slurred notes (legato).}
-    \label{fig:articulation}
-  \end{center}
-\end{figure}
-
-
-
-Dynamics are notated in two ways: absolute dynamics are indicated by
-letters: \textbf{f} (from Italian ``forte'') stands for loud,
-\textbf{p} (from Italian ``piano'') means soft.  Gradual changes in
-loudness are notated by (de)crescendos.  These are hairpin like shapes
-below the staff.
-
-\begin{figure}[h]
-  \begin{center}
-    \begin{mudela}
-      g'4\pp \<  g'4 \! g'4 \ff \> g'4 g' \! g'\ppp
-    \end{mudela}
-    \caption{Dynamics: start very soft (pp), grow to loud (ff) and
-      decrease to extremely soft (ppp)}
-    \label{fig:dynamics}
-  \end{center}
-\end{figure}
-
-
-The meter is indicated by barlines: every start of the stress pattern
-is preceded by a vertical line, the \emph{bar line}.  The space
-between two bar lines is called measure.  It is therefore the unit of
-the rhythmic pattern.
-
-The time signature also indicates what kind of rhythmic pattern is
-desired.  The time signature takes the form of two numbers stacked
-vertically. The top number is the number of beats in one measure, the
-bottom number is the duration (relative to the whole note) of the note
-that takes  one beat.  Example: 2/4  time signature means ``two beats
-per measure, and a quarter note takes one beat''
-
-Chords are written by attaching multiple note heads to one stem.  When
-the composer wants to emphasize the horizontal relationships between
-notes, the simultaneous notes can be written as voices (where every
-note head has its own stem).  A small example is given in
-Figure~\ref{fig:simultaneous}.
-
-\begin{figure}[h]
-  \begin{center}
-    \begin{mudela}
-      \relative c'' {\time 2/4;  <c4 e> <d f>
-                \context Staff < \context Voice = VA{
-                  \stemdown
-                  c4 d
-                  b16 b b b b b b b }
-                \context Voice = VB {
-                  \stemup e4 f g8 g4 g8 } >
-          }
-    \end{mudela}
-    \caption{Notes sounding together.  Chord notation (left, before
-      the bar line) emphasizes vertical relations, voice notation
-      emphasizes horizontal relations. Separate voices needn't have
-      synchronous rhythms (third measure). 
-      }
-    \label{fig:simultaneous}
-  \end{center}
-\end{figure}
-
-Separate voices do not have to share one rhythmic pattern---this is
-also demonstrated in Figure~\ref{fig:simultaneous}--- they are in a sense%vaag
-independent.  A different way to express this in notation, is by
-printing each voice on a different staff.  This is customary when
-writing for piano (both left and right hand have a staff of their own)
-and for ensemble (every instrument has a staff of its own).
-
-
-
-\subsection{Music typography}
-
-Music typography is the art of placing symbols in esthetically
-pleasing configuration.  Little is explicitly known about music
-typography.  There are only a few reference works
-available\cite{ross,wanske}.  Most of the knowledge of this art has
-been transmitted verbally, and was subsequently lost.
-
-The motivation behind choices in typography is to represent the idea
-as clearly as possible. Among others, this results in the following
-guidelines:
-\begin{itemize}
-\item The printed score should use visual hints to accentuate the
-  musical content
-\item The printed score should not contain distracting elements, such
-  as large empty regions or blotted regions.
-\end{itemize}
-
-An example of the first guideline in action is the horizontal spacing.
-The amount of space following a note should reflect the duration of
-that note: short notes get a small amount of space, long notes larger
-amounts.  Such spacing constraints can be  subtle, for the
-``amount of space'' is only the impression that should be conveyed; there
-has to be some correction for optical illusions.  See
-Figure~\ref{fig:spacing}.
-
-\begin{figure}[h]
-  \begin{center}
-    \begin{mudela}
-      \relative c'' { \time 3/4; c16 c c c c8 c8 | f4 f, f'  }
-    \end{mudela}
-    \caption{Spacing conveys information about duration. Sixteenth
-      notes at the left get less space than quarter notes in the
-      middle. Spacing is ``visual'', there should be more space
-      after  the first note of the last measure, and  less after second. }
-    \label{fig:spacing}
-  \end{center}
-\end{figure}
-
-Another example of music typography is clearly visible in collisions.
-When chords or separate voices are printed, the notes that start at
-the same time should be printed aligned (ie., with the same $x$
-position).  If the pitches are close to each other, the note heads
-would collide. To prevent this, some notes (or note heads) have to be
-shifted horizontally.  An example of this is given in
-Figure~\ref{fig:collision}.
-\begin{figure}[h]
-  \begin{center}
-    [todo]
-    \caption{Collisions}
-    \label{fig:collision}
-  \end{center}
-\end{figure}
-
-\bibliographystyle{hw-plain}
-\bibliography{engraving,boeken,colorado,computer-notation,other-packages}
-
-\section{Requirements}
-
-
-\section{Approach}
-
-\subsection{Input}
-
-The input format consists of combining a symbolic representation of
-music with style sheet that describes how the symbolic presentation
-can converted to notation.  The symbolic representation is based on a
-context free language called \textsf{music}.  Music is a recursively
-defined construction in the input language.  It can be constructed by
-combining lists of \textsf{music} sequentially or parallel or from
-terminals like notes or lyrics.
-
-The grammar for \textsf{music} is listed below.  It has been edited to
-leave out the syntactic and ergonomic details.
-
-\begin{center}
-    \begin{tabular}{ll}
-Music:  & SimpleMusic\\
-        & $|$ REPEATED int Music ALTERNATIVE MusicList\\
-        & $|$ SIMULTANEOUS MusicList\\
-        & $|$ SEQUENTIAL MusicList\\
-        & $|$ CONTEXT STRING '=' STRING Music\\
-        & $|$ TIMES int int Music     \\
-        & $|$ TRANSPOSE PITCH Music \\
-SimpleMusic: & $|$ Note\\
-        & $|$ Lyric\\
-        & $|$ Rest\\
-        & $|$ Chord\\
-        & $|$ Command\\
-Command: & METERCHANGE\\
-        & $|$ CLEFCHANGE\\
-        &$|$ PROPERTY STRING '=' STRING\\
-Chord: &PitchList DURATION\\
-Rest: &REST DURATION\\
-Lyric: &STRING DURATION\\
-Note: &PITCH DURATION\\
-\end{tabular}
-\end{center}
-  
-The terminals are both purely musical concepts that have a duration,
-and take a non-zero amount of musical time, like notes and lyrics, and
-commands that behave as if they have no duration.\footnote{The
-  PROPERTY command is a generic mechanism for controlling the
-  interpretation, i.e. the musical style sheets. See [forward ref]}
-
-The nonterminal productions can
-\begin{itemize}
-\item Some productions combine multiple elements: one can specify that
-  element are to be played in sequence, simultaneously or repetitively.
-\item There are productions for transposing music, and for dilating
-  durations of music: the TIMES production can be used to encode a
-  triplet.\footnote{A triplet is a group of three notes marked by a
-    bracket, that are played 3/2 times faster.}
-\item
-  There are productions that give directions to the interpretation
-  engine (the CONTEXT production)
-\end{itemize}
-
-
-\section{Context in notation} 
-
-Music notation relies heavily on context.  Notational symbols do not
-have meaning if they are not surrounded by other context elements.  In
-this section we give some examples how the reader uses this context do
-derive meaning of a piece of notation.   We will focus on the prime
-example of context: the staff. 
-
-A staff is the grid of five horizontal lines, but it contains more components :
-\begin{itemize}
-\item A staff can have a key signature (printed at the left)
-\item A staff can have a time signature (printed at the left)
-\item A staff has bar lines
-\item A staff has a clef (printed at the left)
-\end{itemize}
-
-It is still possible to print notes without these components, but one
-cannot determine the meaning of the notes.
-\begin{mudela}
-\score{
-\notes \relative c' {  \time 2/4; g'4 c,4 a'4 f4 e c d2 }
-\paper { 
-  linewidth = -1.;
-  \translator {
-  \StaffContext
-  \remove "Time_signature_engraver";
-%  \remove "Bar_engraver";
-  \remove "Staff_symbol_engraver";
-  \remove "Clef_engraver";
-  \remove "Key_engraver";
-  }
- }
-}
-\end{mudela}
-
-As you can see, you can still make out the general form of the melody
-and the rhythm that is to be played, but the notation is difficult to
-read and the musical information is not complete.  The stress
-pattern in the notes can't be deduced from this output.  For this, we
-need a time signature.  Adding barlines helps with finding the strong
-and weak beats.
-\begin{mudela}
-\score {
-  \notes \relative c' {  \time 2/4; g'4 c,4 a'4 f4 e c d2 }
-  \paper{
-  linewidth = -1.;
-\translator{
-  \StaffContext
-  \remove "Staff_symbol_engraver";
-  \remove "Clef_engraver";
-  \remove "Key_engraver";}
-  }
- }
-\end{mudela}
-
-It is impossible to deduce the exact pitch of the notes.  One needs a
-clef to do so.  Staff lines help the eye in determining the vertical
-position of a note wrt. to the clef.
-\begin{mudela}
-\score {
-  \notes \relative c' {\clef alto;  \time 2/4; g'4 c,4 a'4 f4 e c d2 }
-  \paper {
-    linewidth = -1.;
-  }
-}  
-\end{mudela}
-
-Now you know the pitch of the notes: you look at the start of the line
-and see a clef, and with this clef, you can determine the notated pitches.
-You have found the em(context) in which the notation is to be
-interpreted!
-
-
-\section{Interpretation context}
-
-Context (clef, time signature etc.) determines the relationship
-between musical and its notation in notes.  Because LilyPond writes
-notation, context works the other way around for LilyPond: with
-context a piece of music can be converted to notation.
-
-A reader remembers this context while reading the notation from left
-to right.  By analogy, LilyPond constructs this context while
-constructing notes from left to right.  This is what happens in the
-``Interpretation'' phase from~\ref{fig:intro-fig}.  In LilyPond, the
-state of this context is a set of variables with their values; A staff
-context contains variables like
-
-\begin{itemize}
-\item current clef
-\item current time signature
-\item current key
-\end{itemize}
-
-These variables determine when and how clefs, time signatures, bar
-lines and accidentals are printed.
-
-
-Staff is not the only form of context in notation.  In polyphonic
-music, the stem direction shows which notes form a voice: all notes of
-the same voice have stems pointing in the same direction.  The value
-of this variable determines the appearance of the printed stems.
-
-In LilyPond ``Notation context'' is abstracted to a data structure
-that is used, constructed and modified during the interpretation
-phase.  It contains context properties, and is responsible for
-creating notational elements: the staff context creates symbols for
-clefs, time signatures and key signatures.  The Voice context creates
-stems, note heads.
-
-For the fragment of polyphonic music below,
-\begin{mudela}
-  \context Staff { c'4 < { \stemup c'4 } \context Voice = VB { \stemdown a4 } > }
-\end{mudela}
-A staff context is created.  Within this staff context (which printed
-the clef), a Voice context is created, which prints the first note.
-Then, a second Voice context is created, with stem direction set to
-``up'', and the direction for the other is set to down. Both Voice
-contexts  are  still part of the same Staff context.
-
-In the same way, multiple staff scores are created: within the score
-context, multiple staff contexts are created.  Every staff context
-creates the notation associated with a staff.  
-
-\section{Discussion}
-
-
-
-\end{document}
-
-The complexity of  music notation was tackled by adopting a modular
-design: both the formatting system (which encodes the esthetic rules of
-notation), and the interpretation system (which encodes the semantic
-rules) are highly modular.
-
-
-The difficulty in creating a format for music notation is rooted in
-the fact that music is multi dimensional: each sound has its own
-duration, pitch, loudness and articulation. Additionally, multiple
-sounds may be played simultaneously.  Because of this, there is no
-obvious way to ``flatten'' music into a context-free language.
-
-The difficulty in creating a printing engine is rooted in the fact
-that music notation complicated: it is very large graphical
-``language'' with many arbitrary esthetic and semantic conventions.
-Building a system that formats full fledged musical notation is a
-challenge in itself, regardless of whether it is part of a compiler or
-an editor.
-
-The fact that music and its notation are of a different nature,
-implies that the conversion between input notation is non-trivial.
-
-In LilyPond we solved the above problem in the following way:
-
diff --git a/Documentation/tex/musicnotes.sty b/Documentation/tex/musicnotes.sty
deleted file mode 100644 (file)
index bc4a69f..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-
-\input lilyponddefs
-
-\def\fetdef#1#2{%
-  \def#1{\hbox{\char#2}}}
-
-\input feta20.sty
-
-\font\fetasixteenfont=feta16
-\font\fetaelevenfont=feta11
-\def\fetafont{\fetasixteenfont}
-
-\newdimen\ild
-\ild=4pt
-\newdimen\stemthick
-\stemthick=0.4pt
-
-\def\eighthstem{{\fetafont\vrule height 3.5ex width \stemthick depth0pt\raise
-  3.5ex\hbox{\eighthflag}}}
-\def\texteighthflag{{\fetafont\raise 0ex\hbox{\fetafont\eighthflag}}}
-\def\textdeighthflag{{\fetafont\raise 0ex\hbox{\deighthflag}}}
-
-\def\texteighthnote{{\hbox{\hbox{\fetafont\quartball}\kern
-      -0.5\stemthick\eighthstem}}}
-\def\quarterstem{{\fetafont\vrule height 3.5ex width \stemthick depth0pt}}
-\def\textquarterstem{\quarterstem}
-\def\textchord{{\hbox{\fetafont\lower.5ex\hbox to
-      0pt{\textquarterhead}\raise.5ex\hbox{\textquarterhead}\kern
-      -0.5\stemthick\eighthstem}}}
-\def\textbassclef{\hbox{\fetafont\bassclef}}
-\def\texttrebleclef{\hbox{\fetafont\trebleclef}}
-\def\textslur{\embeddedps{9.378744 -3.171539 3.923099 -3.171539 0.000000 0.000000 12.800000 0.000000 3.672177 -3.672177 9.127823 -3.672177 12.800000 0.000000 0.000000 0.000000  draw_slur}}
-
-\def\textmarcato{{\fetafont\raise 1ex\hbox{\hskip 1ex\sforzatoaccent}}}
-
-
-\def\textquarterhead{\hbox{\fetafont\raise 2.5pt\hbox{\quartball}}}
-\def\texteighthstem{\hbox{\lower 5pt\hbox{\eighthstem}}}
-\def\texthalfnote{{\hbox{\hbox{\fetafont\halfball}\kern -0.5\stemthick\quarterstem}}}
-\def\textquarternote{{\hbox{\hbox{\fetafont\quartball}\kern -0.5\stemthick\quarterstem}}}
-\def\textflat{{\fetafont\raise 1ex\hbox{\flat}}}
-\def\textsharp{{\fetafont\raise1ex\hbox{\sharp}}}
diff --git a/Documentation/tex/other-packages.bib b/Documentation/tex/other-packages.bib
deleted file mode 100644 (file)
index 8ff5024..0000000
+++ /dev/null
@@ -1,426 +0,0 @@
-%
-% TITLE=Software for printing music
-% AUTHOR=HWN
-%
-  
-@string(HWN = {Han-Wen Nienhuys})
-@string(JCN = {Jan  Nieuwenhuizen})
-  
-@misc{Rosegarden,
-  title = {Rosegarden},
-  HTML={http://www.bath.ac.uk/\~masjpf/rose.html},
-  author={Chris Cannam},
-  note={A Notation editor/Sequencer for X. Also outputs musictex.},
-}
-
-
-@misc{Capella,
-html={http://www.whc.de/contents.htm},
-note={score editor for windows}
-}
-
-@misc{ConcertWare,
-html={http://www.software.jumpmusic.com/HTML/Products/cwFAQ03.html}
-}
-@Misc{moods,
-  key =                 {moods},
-  title =       {MOODS, Music Object Oriented Distributed System.},
-  html ={http://hpcn.dsi.unifi.it/~tinymoods/},
-
-note = { "With MOODS activity, the partners intend to exploit a strongly
-innovative idea: automating and managing the large information used by
-orchestras during rehearsals and public performance of concerts (e.g.,
-symphonic music), as well as for operas or ballets. "   
-} 
-
-}
-
-@Misc{mosaic,
-  title = {Mosaic},
-  note = {Macintosh DTP-notation program},
-  publisher={Mark of the Unicorn},
-  html={http://www.markoftheunicorn.com/english/software/mosaic/mosaic.html}
-}
-
-@Misc{graph_music_press,
-  title =       {Graphire Music Press},
-  
-  publisher={Graphire Corporation} ,
-  html={http://www.graphire.com/},
-}
-
-
-
-@Misc{Allin,
-  author =      {Thomas Allin},
-  title =       {ALL IN theScore},
-  year =        1998,
-  note =        {beta version of a w32 score editor},
-  html={http://www.musiker.nu/thescore/},
-}
-
-@Manual{manus_writer,
-  title = {Manuscript Writer},
-  html= {http://ban.joh.cam.ac.uk/~ssb22/mwrhome/},
-  note = {Notation editor with braille support.},
-  author={Silas S. Brown},
-}
-
-@Misc{igor,
-  title = {Igor},
-  author = {Technoligor AB},
-  note = {Commercial music notation with bigwig supporters.},
-  html={http://www.igortech.pi.se/},
-}
-
-
-@Misc{songw,
-html={http://www.ars-nova.com},
-title={Songworks},
-publisher={Ars Nova},
-address={Box 637,Kirkland, Washington 98083},
-}
-
-@Manual{byrd:_night,
-html=                {http://www.musicwareinc.com/},
-  title =       {Nightingale},
-  author =      {Donald Byrd},
-}
-
-@Misc{musys,
-  note =        {proprietary w32 package in dutch},
-  html ={http://home.wxs.nl/\~musys},
-}
-
-@Misc{bladmuziek,
-  title =       {Bladmuziek},
-  note =        {proprietary W32 package in dutch},
-  html={http://www.barsukoff.demon.nl},
-}
-
-@misc{CommonNotation,
-  title = {Common Notation},
-  HTML={http://www-ccrma.stanford.edu/CCRMA/Software/cmn/cmn.html},
-  note={A versatile lisp package. Part of the Common Music system. Input is in
-  Lisp.},
-  author={Bill Schottstaedt},
-}
-
-@misc{Vivace,
-  title = {Vivace},
-  author={Garrick Meeker},
-  HTML={http://www.calband.berkeley.edu/\~gmeeker/vivace},
-  note={A amateurish notation program for TclTk and X.},
-}
-  
-@misc{MPP,
-  title={mpp},
-  author=JCN # " and " # HWN,
-  note={A preprocessor to MusixTeX.
-  It is outdated by its successor,
-  LilyPond.  MPP is still available via the CTAN archive.},
-}
-  
-@misc{LilyPond,
-  title = {LilyPond},
-  HTML={http://www.cs.ruu.nl/people/hanwen/lilypond/index.html},
-  author=HWN # " and " # JCN,
-  note={The GNU Project music typesetter.  Designed as a batch program,
-  outputs to plain \TeX.
-  Added for completeness. You are currently reading her documentation.},
-}
-  
-@misc{Music,
-  title = {Music},
-  HTML={http://www.cs.nott.ac.uk/Department/Staff/ef/printing.html},
-  note={A TROFF preprocessor},
-  author={Eric Foxley},
-}
-  
-@misc{PMX,
-  title = {PMX},
-  HTML={http://www.gmd.de/Misc/Music/},
-  author={Don Simons},
-  note={A Preprocessor for MusiXTeX.  Developed for DOS, written in FORTRAN.
-  UNIX/C translation available.},
-}
-  
-@misc{M-Tx,
-  title = {M-Tx},
-  HTML={http://www.gmd.de/Misc/Music/},
-  author={Dirk Laurie},
-  note={A Predecessor of PMX.},
-}
-  
-@misc{Musictex,
-  title = {Musictex},
-  HTML={http://www.gmd.de/Misc/Music/},
-  author={ Daniel Taupin},
-  note={MusicTeX is a macro package for TeX to typeset polyphonic or
-  instrumental music.  It was originally written by Daniel Taupin.  
-  It includes a full-featured (but slightly unsightly) set of fonts.},
-}
-  
-@misc{musixtex1,
-  title = {MusiXTeX},
-  HTML={http://www.gmd.de/Misc/Music/},
-  author={Ross Mitchell and Andreas Egler},
-  note={A rewrite of MusicTeX.  After licensing quarrels, MusiXTeX has 
-  been split into two (both still non-GNU GPL licensed) branches.},
-}
-
-
-
-@Misc{opus,
-  title =       {opus},
-html={http://www.sincrosoft.com}
-}
-
-@misc{musixtex2,
-  title = {MusiXTeX},
-  HTML={http://www.gmd.de/Misc/Music/},
-  author={Daniel Taupin},
-  note={Daniel Taupin now maintains the branch that still carries 
-  the name MusiXTeX.},
-}
-  
-@misc{OpusTeX,
-  title = {OpusTeX},
-  author={Andreas Egler},
-  HTML={http://www.inf.ethz.ch/personal/acherman/misc.html},
-  note={Andreas Egler's branch of MusiXTeX is now called OpusTeX.},
-}
-
-@misc{ABC2MTeX,
-  title = {ABC2MTeX},
-  HTML={http://www.gre.ac.uk/\~c.walshaw/abc},
-  author={Chris Walshaw},
-  note={A preprocessor to MusixTeX for transcribing folk and
-  traditional music.},
-}
-  
-  
-@misc{MuTeX,
-  author={Angelika Schofer and Andrea Steinbach.},
-  note={A TeX macro package for typesetting single-staff music.  With some 
-  fonts.  Juicy detail: It comes without license statement and both authors
-  and copyright holders have vanished from the face of the electronic earth,
-  yet it is the predecessor to MusicTeX.},
-  HTML={http://www.gmd.de/Misc/Music/mutex},
-}
-  
-@misc{scex,
-  title = {SceX},
-  HTML={http://www.ncc.up.pt/\~mig/SceX.html},
-  author={Miguel Filgueiras},
-  note={A preprocessor to MusixTeX. Source in prolog
-  available on request. (?)},
-}
-  
-@misc{calliope,
-  title = {Calliope},
-  author={William F. Clocksin},
-  HTML={http://www.cl.cam.ac.uk/users/wfc/},
-  note={A NeXT package. Requires the Adobe Sonata font},
-}
-  
-@misc{Scribe,
-  title = {Scribe},
-  HTML={http://adu1.adu.lattrobe.edu.au/Music/Scribe.html},
-  note={A formatter for medieval scores.},
-}
-
-@misc{Mup,
-  title = {Mup},
-author = {Arkkra Enterprises},
-  HTML={http://www.arkkra.com/},
-  note={A program which creates PS from a script input. Although it
-  comes with C source code, it is shareware.},
-  address = {P. O. Box 315 Warrenville, IL 60555},
-}
-  
-@misc{MusicEase,
-  title = {MusicEase},
-  author = {Gary M. Rader},
-  HTML = {http://mesa.colorado.edu/\~grader/musicez.html },
-  note = {Described in Computer vol 29(6). Shareware},
-}
-  
-@Misc{quickscore,
-  title = {QuickScore},
-  publisher={Sion Software},
-  html={http://www.infoserve.net/quickscore/pages.html} 
-}
-
-@misc{LIME,
-  title = {LIME},
-  HTML={http://datura.cerl.uiuc.edu/},
-  author={Lippold Haken and Dorothea Blostein},
-  note={Notation editor for W95 and Mac},
-}
-  
-@misc{Sibelius,
-  title = {Sibelius},
-  author={Sibelius Software Ltd.},
-  publisher={Sibelius Software Ltd.},
-  address={Cambridge, Great Britain},
-  HTML={http://www.sibelius.com/},
-  note={Notation editor originally on Acorn, nowadays on W32 and mac as well.}
-}
-
-@misc{schott-urw,
-  title={``EDV-Notensatz''},
-  note={URW's music-engraving system described by [Wanske].  (Although URW
-  used \~DM 1.000.000 while developing this, it didn't buy them a cute name),
-}
-}
-
-@misc{Finale,
-  title={Finale},
-  publisher={Coda music technology},
-  html={http://www.codamusic.com/},
-}
-
-
-@misc{score,
-  publisher={San Andreas Press},
-  title={Score},
-  author={Leland Smith},
-  HTML={http://www.ymusic.com/Score},
-
-  note={Werner Lemberg (sx0005@sx2.hrz.uni-dortmund.de) writes: I
-  consider SCORE as the best program for typesetting classical
-  music. [..]  the price is quite high (about US\$ 1000) [..]  It has
-  a graphical interface but to get all out of the program you have to
-  learn a 400 page manual almost by heart because you'll change most
-  features by inputting parameters (up to 20 for some items) on a
-  command line. Expect three months to master SCORE :-)},
-
-}
-  
-@misc{mozart,
-  title={Mozart},
-  HTML={http://www.mozart.co.uk/},
-  note={A shareware windows package  },
-  author={David Webber},
-}
-  
-    
-@misc{WolfGang,
-  title = {WolfGang},
-  author ={Etienne Darbellay},
-  HTML={http://www.unige.ch/lettres/armus/music/wolfgang.html},
-}
-  
-@misc{Amadeus,
-  title = {Amadeus},
-  note={Jerker Elsgard (Jerker.Elsgard@abc.se) writes: professional and
-  expensive (DM 4000,  --) engraving.  Designed as a batch program (like
-  LilyPond).  It is aimed at publishers. Its history is more than
-  fifteen years and Amadeus has been running under different Unix
-  clones.  It uses MIDI-keyboard input},
-}
-  
-@misc{muse,
-  title={A-R Music Engraving},
-author ={Thomas Hall},
-  publisher={A-R Editions, inc.},
-  note={Professional engraving on
-  Sun boxen.},
-}
-  
-@misc{MusiCopy,
-  title = {MusiCopy},
-  author={John S. Gourlay and others},
-  note={A project at Ohio State university, which was discontinued in
-  1987.  The technical reports that have resulted from MusiCopy can
-  still be obtained by writing to OSU department of Computer Science.},
-}
-  
-@misc{Berlioz,
-  title = {Berlioz},
-  HTML={http://www.berlioz.tm.fr/},
-author={Dominique Montel},
-  note={ Dominique Montel (a professional engraver) is now working
-  together with computer scientists on his own software for music
-  publishing  called "Berlioz".  It is proprietary and runs on W95/NT and Mac},
-}
-  
-@misc{Sonata,
-  title = {Sonata},
-  HTML={http://www.adobe.com/type/browser/F/F_SONA.html},
-  publisher={Adobe inc.},
-  author={Cleo Huggins},
-  note={The music font by Adobe},
-}
-  
-  
-@misc{Haskore,
-  title = {Haskore},
-  HTML={http://haskell.systemsz.cs.yale.edu/haskore/onlinetutorial/index.html},
-  author={Paul Hudak},
-  note={A programming system for music, based on Haskell, a functional
-  programming language.  It outputs MIDI, CSound, NeXTStep and MusicKit},
-}
-
-% html={http://www.passportdesigns.com},
-@misc{encore,
-  title = {Encore},
-   publisher= {Passport designs},
-}
-
-
-
-@Misc{hoos:_salier,
-  author =      {Holger H. Hoos and Thomas Helbich},
-  title =       {The Salieri project},
-
-note =          {`The SALIERI System is an interactive software environment
-for structure oriented composition, manipulation and analysis of
-music.'},
-  html = {http://www.informatik.tu-darmstadt.de/AFS/CM/SALIERI/},
-}
-
-@Misc{emagic,
-  title = {emagic notator},
-  publisher={emagic, www.emagic.de},
-  html={http://www.mcc.ac.uk/\~emagic/SL/NOTATOR.HTM},
-  note = {A notation product from a company that now focuses on sequencing},
-}
-
-@Misc{mp,
-  author =      {Bernard Hill},
-  title =       {Music Publisher},
-  html={http://www.braeburn.co.uk/mp.htm},
-  publisher={Braeburn Software},
-  address={Selkirk, Scotland},
-  year = {1998},
-  note = {This is the W95 version of NoteWorthy.}
-}
-
-@misc{Noteworthy,
-  title={Noteworthy Composer},
-  HTML={http://www.ntworthy.com},
-  publisher={Noteworthy Artware inc.},
-  note = {Shareware.  Not affiliated with Braeburn Software's products.},
-  year = {1994}
-}
-
-
-@Misc{NoteWorthy-hill,
-  note = {NoteWorthy and their successors are graphical editors, that do
-not know about musical structure. Shareware. },
-  html={http://www.braeburn.co.uk/},
-  publisher={Braeburn Software},
-  address= {Selkirk, Scotland},
-  author = {Bernard Hill},
-  year = 1992,
-  title = {NoteWorthy}
-}
-
-
-@misc{Musicator,
-title={Musicator},
-html={http://www.musicator.com/welcome.htm}
-}
-
diff --git a/Documentation/tex/reference-manual.yo b/Documentation/tex/reference-manual.yo
new file mode 100644 (file)
index 0000000..e56c15d
--- /dev/null
@@ -0,0 +1,2219 @@
+mailto(gnu-music-discuss@gnu.org)
+COMMENT(-*-text-*-)
+
+redef(var)(1)(whenlatex(latexcommand({\normalfont\scshape )ARG1+latexcommand(}))\
+    whenhtml(sc(ARG1)))
+
+
+redef(code)(1)(tt(ARG1))
+
+
+COMMENT(
+
+  BUGS:
+
+    Causes segfault:
+
+    \score{
+      \notes{  \context Voice {
+         \repeat fold 2 { a b c d } {}
+     }
+     }
+    }
+    
+
+   restStyle=mensural doesn't seem to work (lots of characters not found
+     for rests.fly)
+
+TODO:
+   thread
+   paper size?
+   paper variables
+   the explanation of how lyrics mode parses words seems ridiculous.  
+      Is there a simple way to explain this, or is the behavior
+      too complicated for a reasonable explanation?
+   accordion symbols
+   interstaff beams (beam-interstaff.ly)
+   interstaff slurs (see preludes-1.ly)
+)
+
+
+COMMENT( 
+This document contains Mudela fragments.  You need at least
+Yodl-1.30.18 to convert this to tex or html.
+)
+
+htmlbodyopt(bgcolor)(white)
+htmlcommand(<font color=black>)
+
+latexlayoutcmds(
+\setlength{\topmargin}{-0.25in}
+\setlength{\textheight}{9in}
+\setlength{\textwidth}{5.875in} 
+\setlength{\oddsidemargin}{0.25in}   
+\setlength{\evensidemargin}{0.25in}
+\input mudela-book
+)
+
+whentexinfo(notableofcontents())
+
+article(Mudela 1.0.21 / LilyPond 1.1.49 Reference Manual)
+      (Adrian Mariano, Han-Wen Nienhuys and Jan Nieuwenhuizen)
+      (nop()PIPETHROUGH(date "+%B %d, %Y")()()nop())
+
+COMMENT(
+
+* The [ ] look weird
+
+* paragraphs have too much space.
+
+)
+
+
+latexcommand(\def\interexample{})
+latexcommand(\def\preexample{\par})
+latexcommand(\def\postexample{\par\medskip})
+latexcommand(\def\file#1{{code(#1)}})
+COMMENT(
+latexcommand(\def\texttt#1{\tt #1})
+latexcommand(\def\textbf#1{\bf #1})
+)
+
+COMMENT(urg, texinfo include breaks)
+whenhtml(
+includefile(html-disclaimer.yo-urg)
+)
+
+bf(This document is not up to date).  All rendered examples of course
+are current, but the rest probably isn't.  Adjusting the tutorial was
+considered more important than writing the reference manual.  We
+apologize for the inconvenience.  For a complete and up-to-date
+definition, see file(lily/parser.yy), file(lily/lexer.ll), and the
+init files.
+
+This document describes the the GNU LilyPond input format, which is an
+effective language for defining music.  We call this language (rather
+arrogantly) The Musical Definition Language or Mudela, for
+short.footnote(If anybody comes up with a better name, we'd gladly
+  take this. Gourlay already uses Musical Description Language,
+  G-Sharp Score Definition Language.  ISO standard 10743 defines a
+  Standard Music Description Language.  We're not being original here.)
+
+The first aim of Mudela is to define a piece of music, being complete
+from both from a musical typesetting, as from a musical performing
+point of view.
+
+The Musical Definition Language (Mudela), has a logical structure,
+making use of identifiers, that allows for flexible input, and
+definition reuse. See the documentation file file(MANIFESTO), included
+with the LilyPond sources for reasons and design considerations.
+
+
+sect(Running LilyPond)
+
+When invoked with a filename that has no extension, LilyPond will try adding
+a file(.fly) extension first, and a file(.ly) extension second.  
+If the filename ends with 
+file(.fly),  LilyPond processes  the file as music using
+file(init.fly).  In this case, LilyPond does something
+like:
+verb(\score {
+  \notes\relative c {
+    \input "yourfile.fly"
+  }
+  \paper{}
+  \midi{}
+})
+If you invoke LilyPond with a file file(foo.)var(ext) that doesn't
+have the file(.ly) extension then LilyPond will look for a file called
+file(init.)var(ext) and process this file.  The file
+file(init.)var(ext) must contain the code(\maininput) keyword or LilyPond
+will not read the user specified file.
+
+When LilyPond processes file(filename.ly) it will produce file(filename.tex) as
+output.  If file(filename.ly) contains a second code(\paper) keyword, then
+LilyPond will produce file(filename-1.tex) as well.  Subsequent code(\paper)
+keywords will produces sequentially numbered file names.  Several files can be
+specified; they will each be processed independently.
+
+sect(Syntax)
+
+subsect(Basic Mudela)
+
+A Mudela file consists of keywords with arguments and identifier
+assignments separated by spaces, tabs or newlines.  Semicolons are
+used by some keywords and are inconsistantly required in other
+circumstances.  A one line comment is introduced by a code(%)
+character.  Block comments are started by code(%{) and ended by
+code(%}).  They cannot be nested.
+
+Mudela supports several types:
+
+description(
+
+dit(integer) 
+Formed from an optional minus sign followed by digits.  Arithmetic
+operations cannot be done with integers, and integers cannot be mixed
+with reals.
+
+dit(real) 
+Formed from an optional minus sign and a sequence of digits followed
+by a emph(required) decimal point and an optional exponent such as
+code(-1.2e3).  Reals can be built up using the usual operations:
+code(+), code(-), code(*), and code(/), with parentheses for grouping.
+
+dit(string) 
+Begins and ends with the code(") character.  To include a code(")
+character in a string write code(\").  Various other backslash
+sequences have special interpretations as in the C language.  A string
+that contains no spaces can be written without the quotes.  See
+Section ref(modes) for details on unquoted strings; their
+interpretation varies depending on the situation.  On the right side
+of identifier assignments and within the code(\header) keyword,
+strings can be concatenated using the code(+) character.
+
+dit(dimension) Consists of a real followed by one of the dimension
+keywords: code(\mm), code(\pt), code(\in), or code(\cm).  Dimensions
+are converted immediately to a real which gives the dimension in
+points, so they can be mixed with reals, but the result is no longer
+of type dimension.  The keywords that require a dimension
+(code(\shape)).
+
+dit(pitch) 
+A pitch is a string which is the name of a pitch.  Example: code(a).
+The pitch names can be redefined with the code(\notenames) keyword.
+See Section(notelang) for pitch names in different languages.  Pitches
+can only be specified inside note mode which is specified with
+code(\notes).  Therefore, keywords which require pitch arguments must
+appear inside code(\notes).  
+
+dit(music) 
+Music is a compound type: arbitrarily complicated expressions with a
+hierarchical structure can be formed from simple building blocks.  The
+simplest expression of type music is a single note.  A note is formed
+from a pitch and an optional duration and must be specified within
+code(\notes).  See Section ref(notedesc) for details.  More
+complicated expressions of type music are formed by surrounding a
+sequence of expressions of type music with braces code({) and code(})
+or with angle brackets code(<) and code(>).  Items appearing in braces
+will be treated as serial. Items in angle brackets will be
+simultaneous.  So for example code({ c e g }) represents an arpeggio
+and code(< c e g >) represents a chord.  These items can be nested any
+way you like.  This simple example shows how three chords can be
+expressed in two different ways:
+mudela(fragment,verbatim,center)(
+\notes{
+  c
+  <a c' e'> <b  d' f'> <c' e' g'>
+  <{a b  c'}{c' d' e'}{e' f' g'}>
+})
+
+)
+
+
+
+subsect(Identifiers)
+
+Identifiers allow names to be assigned to constants, music, or other
+Mudela structures.  To assign an identifier you use
+var(name)=var(value) and to refer to an identifier, you preceed its
+name with a backslash: code(\)var(name).  It is legal to redefine an
+identifier in terms of its old value: code(foo = \foo * 2.0).
+Identifier assignments must appear at the top level in the Mudela
+file.  Note that semicolons are forbidden after assignments appearing
+at the top level but they are obligatory after assignments appearing
+elsewhere.  (Semicolons are also forbidden after code(\property) assignments.)
+
+An identifier can be created with any string for its name, but you
+will only be able to refer to identifiers whose names begin with a
+letter and are entirely alphanumeric.  It is also impossible to refer
+to an identifier whose name is the same as the name of a keyword.  The
+following words are keywords:
+verb(accepts         duration      midi          relative      textscript 
+alternative     font          mm            remove        time       
+bar                   musicalpitch  repeat        times      
+cadenza         header        name          scm           translator 
+chordmodifiers  in            notenames     scmfile       transpose  
+chords          include       notes         score         type       
+clef            key           paper         script        version
+cm              keysignature  partial       shape      
+consists        lyrics        penalty       skip       
+consistsend     maininput     property      spanrequest
+context         mark          pt            tempo)
+
+The right hand side of an identifier assignment is parsed completely
+when the assignment is made.  It therefore must have any context
+specified in the definition.  For example, you must write
+code(foo=\notes{a8 b c}) rather than code(foo={a8 b c}).  Even though
+the context is specified in the definition, you must refer to the
+identifier inside the correct context:
+verb(foo = \paper{ linewidth = 6.0\in; }
+\score{
+  \notes{ ... }
+  \paper{ \foo }
+})
+If code(\foo) is used here without the surrounding code(\paper) then
+an error will result.  Note however that the following is acceptible
+verb(foo = \notes { ... }
+\score{ \foo })  
+It is not necessary to specify code(\notes).
+
+Identifiers can be set equal to integers, reals, strings, music,
+durations (specified with code(\duration)), note ornaments (specified
+with code(\script), dynamics commands, or code(:)), note name tables
+(specified with code(\notenames), translator definitions, the
+code(\paper) block, the code(\midi) block or the code(\score) block.
+When identifiers are used for translators, the code(\paper),
+code(\midi), and code(\score) blocks, they may only be referred to as
+the first item in a block.  So code(\paper{\one \two}) is illegal
+because the identifier code(\two) is not the first thing in the block.
+Unlike other identifier definitions, translator identifier definitions
+can only appear within code(\midi) or code(\paper) blocks.  See
+Section ref(translators) for more information.
+
+
+
+subsect(Modes)
+label(modes)
+
+To simplify different aspects of music definition (entering the notes
+and manipulating them) Mudela has three different input modes which
+affect how unquoted strings are interpreted.
+In each mode, words are identified on the input.  If code("word") is
+encountered, it is treated as a string.  If code(\word) is
+encountered it is treated as a keyword or as an identifier.  The
+behavior of the modes differs in two ways: different modes treat
+unquoted words different, and different modes have different rules for
+deciding what is a word.  
+
+description(
+
+dit(Normal mode)
+At the start of parsing, Mudela is in normal mode.
+In normal mode, a word is an alphabetic character followed by
+alphanumeric characters.  If code(word) is encountered on the input it
+is treated as a string. 
+
+dit(Note mode) Note mode is introduced by the keyword
+code(\notes).  In Note mode, words can only contain alphabetic
+characters.  If code(word) is encountered, LilyPond first checks for a
+notename of code(word).  If no notename is found, then code(word) is
+treated as a string.  If you mistype a notename, the parser will most
+likely complain that you should be in code(\lyrics) mode to do lyrics. 
+
+dit(Chord mode) Chord mode is instroduced by the keyword code(\chords).
+Very similar to Note mode.  
+COMMENT(I'm not sure how it differs)
+
+dit(Lyric mode) Lyrics mode is introduced by the keyword
+code(\lyrics).  This mode is has rules that make it easy to include
+punctuation and diacritical marks in words.  A word in Lyrics mode
+begins with: an alphabetic character, code(_),
+code(?), code(!), code(:), code('), 
+the control characters code(^A) through code(^F), code(^Q) through
+code(^W), code(^Y), code(^^), any 8-bit character with ASCII code over
+127, or a two character combination of a backslash followed by one
+of code(`), code('), code(") or code(^).  
+Subsequent characters of a word can be any character that is not a
+digit and not white space.  One important consequence of this is that
+a word can end with code(}), which may be confusing if you thought the
+code(}) was going to terminate lyrics mode.  Any code(_) characters
+which appear in an unquoted word are converted to spaces, providing a
+mechanism for introducing spaces into words without using quotes.  
+Quoted words can also be used in lyrics mode to specify words that
+cannot be specified with the above rules.  Here are some examples.
+Not all of these words are printable by TeX().  
+verb(a&@&@&TSI|{[    % a word
+\'afoo}         % a word
+1THtrhortho     % not a word because it starts with a digit
+``Hello''       % not a word because it starts with `
+Leise DOEXPAND(Fl\)DOEXPAND("u\)ss{}teren meine Sapfe       % 4 words
+_ _ _ _         % 4 words, each one a space
+))
+
+It is possible to create words that break the rules by prefixing them with the
+dollar sign code($).  Regardless of the context, a word beginning with code($)
+extends until the next white space character.  Such words can contain numbers
+(even in Note mode), or other forbidden characters.  The dollar sign can be
+used to create and access identifiers that could not otherwise be used.  
+
+COMMENT(
+These modes are of a lexical nature. Normal and Note mode largely
+resemble each other, save the possibility of entering Reals, 
+meaning of code(_) and the resolution of words
+
+What's this about reals?  When can you enter them or not enter them?)
+
+
+sect(Note Description)
+label(notedesc)
+
+subsect(Basic Note Specification)
+
+A note specification has the form 
+var(pitch)[var(octavespec)][code(!)][code(?)][var(duration)].
+The pitch of the note is specified by the note's name.  
+
+LilyPond has predefined note names for various languages.  The default
+names are the Dutch note names.  The notes are specified by the
+letters code(c) through code(b), where code(c) is an octave below
+middle C and the letters span the ocatave above that C.  
+In Dutch, a sharp is formed by adding
+code(-is) to the end of a pitch name.  A flat is formed by adding code(-es).
+Double sharps and double flats are obtained by adding code(-isis) or
+code(-eses).  
+Lily has predefined sets of notenames
+for various nop(languages).  See Section ref(notelang) for details.
+Rests are specified with the note name code(r) or code(R).  
+There is also a note name code(s) which produces a nonprinting note of the
+specified duration.
+
+The optional octave specification takes the form of a series of single
+quote 
+code(') characters or a series of comma code(,) characters.  Each
+code(') raises the pitch by one octave; each code(,) lowers the pitch
+by an octave.  
+
+mudela(fragment,verbatim,center)(
+c' d' e' f' g' a' b' c''
+)
+
+mudela(fragment,verbatim,center)(
+cis' dis' eis' fis' gis' ais' bis'
+)
+
+mudela(fragment,verbatim,center)(
+ces' des' es' fes' ges' as' bes'
+)
+
+mudela(fragment,verbatim,center)(
+cisis' eisis' gisis' aisis' beses'
+)
+
+mudela(fragment,verbatim,center)(
+ceses' eses' geses' ases' beses'
+)
+
+Whenever a C-sharp is desired,  you must specify a C-sharp.  LilyPond
+will determine what accidentals to  typeset  depending on the  key and
+context.   
+A reminder accidental can be forced by
+using the  optional exclamation mark `code(!)'
+on the pitch.
+A cautionary accidental, i.e., an accidental within paranthesis
+can be obtained using the optional question mark `code(?)' on the pitch.
+mudela(fragment,verbatim,center)(
+cis' d' e' cis'  c'? d' e' c'!  
+)
+
+
+Durations are entered as their reciprocal values
+mudela(fragment,verbatim,center)(
+a'1 a'2 a'4 a a'8 a a'16 a'32 a'64
+)
+mudela(fragment,verbatim,center)(
+r1 r2 r4 r8 r16 r32
+)
+
+If the duration is omitted then it is set equal to the previous
+duration.  If there is no previous duration, then a quarter note is
+assumed.  
+The duration can be followed by a dot code(.) to obtain dotted note
+lengths.  
+mudela(fragment,verbatim,center)(
+a'4. b'4.
+)
+
+Extra long notes can be obtained using the code(\breve) and
+code(longa) durations:
+mudela(fragment,verbatim,center)(
+c'\breve gis'\longa
+)
+
+In order to get triplets and other tuplets, you must use the
+code(\times) keyword which multiplies the duration by a fraction.  The
+syntax is code(\times) var(fraction) var(music).  The length of all of
+the specified music will be multiplied by the fraction and the
+fraction's denominator will be printed over the notes.  The most
+common tuplet is the triplet in which 3 notes have the length of 2, so
+the notes are 2/3 their written length:
+mudela(fragment,verbatim,center)( b'4 \times 2/3 {c'4 c' c'} d'4 d'4 )
+If you try to use code(\times) as the first thing in your music, you
+may encounter the warning ``No one to print a tuplet start bracket''.
+This happens because the Tuplet-engraver is in Voice and no Voice has
+been created yet.  You must explicitly specify the Voice context in
+this situation 
+mudela(fragment,verbatim,center)( 
+\context Voice { \times 2/3 {c'4 d' e'}} 
+)
+
+A shorthand for code(\times) is to write code(*)var(fraction) after a
+duration.  This shorthand will not label triplets correctly, but
+it is convenient for long rests.  
+For long rests with durations equal to an integer number of whole notes,
+LilyPond produces output that indicates the duration of the rest.  If you use
+code(r) then one rest symbol will be printed and several measures left blank.
+If you use code(R) then all of the measure will be filled with whole rests.
+mudela(fragment,verbatim,center)(
+r1 r1*3 R1*3
+)
+If you set the code(Score.skipBars) property, then only one measure will be
+printed; with code(R), a number indicating the length of the rest will be
+displayed.  
+mudela(fragment,verbatim,center)(
+\property Score.skipBars=1
+r1 r1*3 R1*3
+)
+Even though the code(\times) command is not explicit, it is still
+necessary to specify a code(Voice) context if the music begins with
+rests lengthened using code(*).  
+Otherwise, the following will result:
+mudela(fragment,verbatim,center)(
+R1*3 c'1 d'
+)
+
+
+subsect(Automatic Beam Generation)
+label(autobeam)
+
+By default, Lilypond will generate beams automatically.  This feature can be
+disabled by setting the code(Voice.beamAuto) property to 0.  It can be
+overridden for specific cases by specifying explicit beams as
+described in Section ref(manualbeam).  
+
+In order to decide how to generate beams, Lilypond uses a large number
+of Voice properties, whose default values appear in
+file(auto-beam-settings.ly).  In general, beams can begin anywhere,
+but their ending location is significant.  Beams can end on a beat, or
+at durations specified by the code(Voice.beamAutoEnd) property.  To
+end beams every quarter note, for example, you could use set
+code(Voice.beamAutoEnd) equal to code("1/4").  To end beams every
+three eighth notes you would set it to code("3/8").  The same syntax
+can be used to specify beam starting points using code(Voice.beamAutoBegin).
+
+To allow different settings for different time signatures, these
+property names can start with code(time)var(N)code(_)var(M) to
+restrict the definition to var(N)code(/)code(M) time.  So for example,
+to specify beams ending only for 6/8 time you would use the property
+code(Voice.time6_8beamAutoEnd).  To allow different endings for notes
+of different durations, the duration can be tacked onto the end of the
+property.  To specify beam endings for beams that contain 32nd notes,
+you would use code(Voice.beamAutoEnd_32).
+
+
+subsect(Note Spanners: Beams, Slurs and Ties)
+label(manualbeam)
+
+A beam is specified by surrounding the beamed notes with brackets
+code([) and code(]).  
+mudela(fragment,verbatim,center)(
+[a'8 a'] [a'16 a' a' a'] 
+)
+Some more elaborate constructions:
+mudela(fragment,verbatim,center)(
+[a'16 <a' c''> c'' <a' c''>]
+\times 2/3 { [e'8 f' g'] }
+)
+
+Another type of spanner is the slur.  Slurs connects chords and try to
+avoid crossing stems.  A slur is started with code(CHAR(40)) and stopped with
+code(CHAR(41)).  The starting code(CHAR(40)) appears to the right of the first note
+in the slur.  The terminal code(CHAR(41)) apppears to the left of the first
+note in the slur.  This makes it possible to put a note in slurs from
+both sides:
+mudela(fragment,verbatim,center)(
+f'()g'()a' [a'8 b'(] a'4 g' )f'
+)
+
+A tie connects two adjacent note heads of the same pitch.  
+When used with chords, it
+connects all of the note heads whose pitches match.  
+Ties are indicated using the tilde symbol
+code(~) by analogy with TeX()'s tie which connects words.  
+Note that if you try to tie together chords which have no common
+pitches, then a warning message will appear and no tie will be created.
+(Note that ties between different pitches can be enabled using the
+property Voice.oldTieBehavior.)
+
+mudela(fragment,verbatim,center)(
+e' ~ e' <c' e' g'> ~ <c' e' g'>
+)
+
+It is possible to create beams and slurs that cross staffs by switching the
+context:
+mudela(fragment,verbatim,center)(
+\context PianoStaff <
+\context Staff=one \notes\relative c'{
+  \stemup
+  [c8 c \translator Staff=two \stemup c c]
+  \translator Staff=one
+  d4( \translator Staff=two )a4
+  }
+\context Staff=two \notes{ \clef bass; s1}
+>
+)
+
+
+
+subsect(Note Ornaments)
+
+A variety of symbols can appear above and below notes to indicate
+different characteristics of the performance.  These symbols can be
+added to a note with `var(note)code(-\)var(name)'.  Numerous symbols
+are defined in file(script.ly) and file(script.scm).  Symbols can be
+forced to appear above the note by writing
+`var(note)code(^\)var(name)', and they can be forced to appear below
+by writing `var(note)code(_\)var(name)'.  Here is a chart showing
+symbols above notes, with the name of the corresponding symbol
+appearing underneath.
+
+mudela()(
+\score{
+ < \notes{ c''-\accent c''-\marcato c''-\staccatissimo f'-\fermata 
+          c''-\stopped c''-\staccato c''-\tenuto c''-\upbow c''-\downbow
+          c''-\lheel c''-\rheel  c''-\ltoe  c''-\rtoe  c''-\turn
+          c''-\open  c''-\flageolet  c''-\reverseturn 
+          c''-\trill
+          c''-\prall c''-\mordent c''-\prallprall  c''-\prallmordent
+          c''-\upprall c''-\downprall c''-\thumb c''-\segno c''-\coda}
+  \context Lyrics \lyrics{  
+        accent__ marcato__ staccatissimo__ fermata stopped__
+        staccato__ tenuto__ upbow downbow__ lheel__ rheel__ ltoe
+        rtoe__ turn__ open__ flageolet reverseturn__ trill__ prall__
+        mordent prallprall__ prallmordent__ uprall__ downprall thumb 
+       segno coda }
+  >
+  \paper{ linewidth = 5.875\in;          
+          indent = 0.0;        }
+ }
+)
+
+In addition, it is possible to place arbitrary strings of text or
+TeX() above or below notes by using a string instead of an identifier:
+`code(c^"text")'.  Fingerings can be placed by simply using digits.
+All of these note ornaments appear in the printed output but have no
+effect on the MIDI rendering of the music.
+
+To save typing,  a few common symbols  can  be  abbreviated  with
+single characters:
+mudela()(
+\score{ \notes {
+        \property Voice.textStyle = typewriter
+        c''4-._"c-." s4
+        c''4--_"c-{}-"  s4
+        c''4-+_"c-+" s4
+        c''4-|_"c-|" s4
+        c''4->_"c->"  s4
+        c''4-^_"c-\\^{ }"  s4 }
+        \paper { linewidth = 12.\cm; }})
+
+Dynamic marks are specified by using an identifier after a note without a dash:
+code(c4 \ff).  Note that this syntax is inconsistent with the syntax for other
+types of ornaments.  The available dynamic marks are: code(\pppppp),
+code(\ppppp), code(\pppp), code(\ppp), code(\pp), code(\p), code(\mp),
+code(\mf), code(\f), code(\ff), code(\fff), code(\ffff), code(\fffff),
+code(\ffffff), code(\fp), code(\sf), code(\sff), code(\sp), code(\spp),
+code(\sfz) and code(\rfz).
+
+A crescendo mark is started with code(\cr) and terminated with
+code(\rc).  A decrescendo mark is started with code(\decr) and
+terminated with code(\rced).  There are also shorthands for these
+marks.  A crescendo can be started with code(\<) and a decrescendo can
+be started with code(\>).  Either one can be terminated with code(\!).
+Note that code(\!) must go before the last note of the dynamic mark whereas
+code(\rc) and code(\rced) go after the last note.  Because these marks are
+bound to notes, if you want to get several marks during one note, you must use
+spacer notes. 
+mudela(fragment,verbatim,center)(
+c'' \< \! c''   d'' \decr e'' \rced 
+< f''1 {s4 \< \! s4 \> \! s2 } >)
+
+
+COMMENT(Broken!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!)
+
+Tremolo marks can be printed by a note by adding code(:)[var(length)]
+after the note.  The length must be at least 8.  A var(length) value
+of 8 gives one line across the note stem.  
+If the length is omitted,
+then the last value is used, or the value of the code(Abbrev)
+property if there was no last value.  To place tremolo marks in
+between two notes, begin with code([:)var(length) and end with code(]).
+The tremolo marks will appear instead of beams.  Putting more than two
+notes in such a construction will produce odd effects. 
+
+[TREMOLO BEAMS TEMPORARILY OUT OF ORDER]
+
+COMMENT(mudela (fragment,verbatim,center)(
+c'2:8 c':32 [:16 e'1 g'] [:8 e'4 f']
+))
+
+COMMENT(
+Is the last paragraph correct?  Is it called "tremolo"?  Why is
+"abbreviation" used?  (What is the unabreviated form?)
+
+COMMENT(
+mudela (fragment,verbatim,center)(
+c'4:32 [:16 c'8 d'8]
+))
+
+)
+
+
+sect(Other Ways to Enter Pitches)
+
+subsect(Pitch Names in Other Languages)
+label(notelang)
+
+The pitch names can be easily redefined using the code(\notenames) command.
+Note name definitions have been provided in various languages.  
+Simply include the language specific init file.  For example:
+code(\include "english.ly").  The available language files and the names
+they define are:
+
+verb(                        Note Names               sharp       flat
+nederlands.ly  c   d   e   f   g   a   bes b   -is         -es
+english.ly     c   d   e   f   g   a   bf  b   -s/-sharp   -f/-flat
+deutsch.ly     c   d   e   f   g   a   b   h   -is         -es
+norsk.ly       c   d   e   f   g   a   b   h   -iss/-is    -ess/-es
+svenska.ly     c   d   e   f   g   a   b   h   -iss        -ess
+italiano.ly    do  re  mi  fa  sol la  sid si  -d          -b
+catalan.ly     do  re  mi  fa  sol la  sid si  -d/-s       -b)
+
+subsect(Relative Pitch Specification)
+label(relative)
+
+One very common error when entering music is to place notes in the wrong
+octave.  One way to avoid being confused by large numbers of octave changing
+marks is to use
+the code(\relative) keyword. 
+Music which appears within code(\relative) is
+interpreted differently.  The octave of a note is determined by making it as
+close to the previous note as possible.  The octave changing marks code(') and
+code(,) can then be added to raise or lower this note by octaves.  You have to
+specify a starting pitch because the first note of a list has no predecessor.  
+
+mudela(fragment,verbatim,center)(
+\relative c'' { c d b c, d b c' d 
+                b c,, d b }
+)
+
+When the preceeding item is a chord, the first note of the chord is used to
+determine the first note of the next chord.  But other notes within the second
+chord are determined by looking at the immediately preceeding note.  
+
+mudela(fragment,verbatim,center)(
+\relative c' { c <c e g> 
+    <c' e g> <c, e' g> }
+) 
+
+The code(\relative) keyword can only appear in music, so there must be a
+surrounding code(\notes) keyword which does not appear in the fragments shown
+above.  Also note that if the music passed to a code(\relative) keyword 
+contains a code(\transpose) keyword, the tranposed music will not be
+processed in relative mode.  An additional code(\relative) must be placed
+inside the code(\transpose).  If code(\relative) will be used several
+times, or if it will be used in the same music with code(\transpose),
+then you may get bizarre effects.  This can be fixed by using an
+explicit code(Staff) context.   
+
+
+subsect(Tranposition of Pitches)
+label(transpose)
+
+Another way to modify the meaning of the note names is to use the
+code(\transpose) keyword.  This keyword allows you to transpose music.
+To use transposition, specify the pitch that middle C should be tranposed to.
+It is important to distinguish between enharmonic pitches as they can produce
+different transpositions.  To transpose up half a step, for example, either 
+code(\transpose cis') or code(\transpose des') will work.  But the first
+version will print sharps and the second version will print flats.  
+In this example, a scale in the key of E is transposed to F, or to E-sharp 
+with odd results.
+mudela(fragment,verbatim,center)(
+\relative c' { \key e; 
+  e fis gis a b cis dis e }
+)
+mudela(fragment,verbatim,center)(
+\transpose des' \relative c' { \key e; 
+   e fis gis a b cis dis e }
+)
+mudela(fragment,verbatim,center)(
+\transpose cis' \relative c' { \key e; 
+    e fis gis a b cis dis e }
+)
+If you want to use both code(\transpose) and code(\relative), then you must use
+code(\transpose) first.  Any code(\relative) keywords that are outside the 
+code(\transpose) have no effect on notes that appear inside the
+code(\transpose).  As with code(\relative), using code(\transpose)
+repeatedly can cause bizarre effects.  An explicit code(Staff) context
+will eliminate the problems.  
+
+sect(Chords)
+
+Chords can be entered either by name or by listing the notes in angle brackets.
+Chords can be displayed either as notes or by name.  To enter chords by name,
+either place them inside the code(\chords) keyword, or use
+code(\notes) and surround them with
+code(@) characters. 
+Chord names have the form
+var(tonic)[var(duration)][code(-)var(modifier)][code(^)var(subtractions)][code(/)var(inversion)]
+The var(tonic) should be the tonic note of the chord, and the var(duration) is
+the chord duration in the usual notation.  There are two kinds of modifiers.
+One type is chord additions, which are obtained by listing intervals separated
+by dots.  An interval is written by its number with an optional code(+) or
+code(-) to indicate raising or lowering by half a step.  A chord additions has
+two effects:  it adds the specified interval and all lower odd numbered
+intervals to the chord, and it may lower or raise the specified interval.
+Intervals can be separated by a dot (code(.)) if you need to list
+several unmodified intervals.
+Repeating a code(-) character will remove a half step from the preceeding
+interval.  
+mudela(fragment,verbatim,center)(
+\transpose c''{ 
+\chords{
+  c1 c-3- c-7 c-8 c-9  
+  c-9-5+7+ c-3-5- c-4.6.8
+}}) 
+The second type of modifier that may appear after the code(-) is 
+a named modifier. 
+Named modifiers are listed in the file file(chord-modifiers.ly).  The
+available modifiers are code(m) and code(min) which lower
+the 3rd half a step, code(aug) which raises the 5th, code(dim) which lowers
+the 5th, code(maj) which adds a raised 7th, and code(sus) which replaces the
+5th with a 4th.  
+mudela(fragment,verbatim,center)(
+\transpose c''{ 
+\chords{
+  c1-m c-min c-maj c-aug c-dim c-sus
+}}) 
+
+Chord subtractions are used to eliminate notes from a chord.  The notes to be
+subtracted are listed after a code(^) character, separated by dots.  
+mudela(fragment,verbatim,center)(
+\transpose c''{ 
+\chords{
+  c1^3 c-7^5.3 c-8^7
+}}) 
+
+Chord inversions can be specified by appending code(/) and the name of a
+single note to a chord.  This has the effect of lowering the specified note by
+an octave so it becomes the lowest note in the chord.  If the
+specified note is not in the chord then a warning will be printed.  
+mudela(fragment,verbatim,center)(
+\transpose c'''{ 
+ @c1@ @c/e@ @c/g@ @c-7/e@
+}) 
+Throughout these examples, chords have been shifted around the staff
+using code(\transpose).  The code(\relative) keyword has odd effects
+when combined with named chords.  
+
+For displaying printed chord names, use the code(ChordNames) context.  
+The chords may be entered either using the notation described above,
+or directly using angle brackets. 
+mudela(fragment,verbatim)(
+<
+  \context ChordNames { \chords{ a b c} \notes{ < d f g >  < e g b > } }
+  \context Staff \notes{ a b c' d' e' }
+>
+)
+Lilypond examines chords specified as lists of notes to determine a
+name to give the chord.  By default, LilyPond will not try to identify
+chord inversions:
+mudela(fragment,verbatim,center)(
+<
+  \context ChordNames { 
+     \notes{ < e' g' c'' > } }
+  \context Staff \notes{ c' } 
+>)
+If you want inversions to be recognized, you must set the property
+code(Score.chordInversion): 
+mudela(fragment,verbatim,center)(
+<
+  \property Score.chordInversion = 1
+  \context ChordNames { 
+       \notes{ < e' g' c'' > } }
+  \context Staff \notes{ c' } 
+>)
+
+
+
+sect(Lyrics)
+
+Lyrics are entered like notes, with pitches replaced
+by text.  For example code(Twin-4 kle4 twin-4 kle4) enters four
+syllables, each with quarter note duration.  Note that the hyphen has
+no special meaning for lyrics, and does not introduce special symbols.
+See Section ref(modes) for a description of what is interpreted as a lyric.
+
+In order to instruct LilyPond to write lyrics underneath the
+staff, you must enter the lyrics context with code(\context Lyrics).  
+Lyrics should be entered in lyrics mode which is entered with code(\lyrics).
+
+Spaces can be introduced into a lyric either by using quotes (code("))
+or by using an underscore without quotes: code(He_could4 not4).  All
+unquoted underscores are converted to spaces.  Here is a full example: 
+mudela(verbatim)(\score{
+  <  \notes \transpose c'' {c d e c | c d e c | e f g'2 | 
+                              e'4 f g'2 \bar "|."; }
+     \context Lyrics \lyrics { 
+              DOEXPAND(Fr\)`e-4 re Ja- que DOEXPAND(Fr\)`e- re Ja- que
+              Dor- mez vous?2 Dor-4 mez vous?2  }
+  >
+})
+
+COMMENT(
+URG
+                        Fr\`e-4 re Ja- que
+                        Fr\`e- re Ja- que
+Why does this warrant an URG?
+)
+
+When one word is attached to many notes, you may 
+want a  continuous line after the lyric to show  this.   To achieve
+this effect, add a code(__) lyric as a separate word 
+after the lyric to be extended.  
+This will create
+an extender, a line  that extends over the entire duration of 
+the lyric.  This line will run all the way to the start of the next
+lyric, so you may want to shorten it by using a blank lyric.  
+mudela(verbatim)(\score{
+< \notes \relative c''{ 
+     a4()b()c()d c()d()b()a c()d()b()a }
+   \context Lyrics \lyrics {
+     foo1 __  bar2. __ _4 baz1 __ }
+> })
+     
+If you want to have hyphens centred between syllables (rather than attached
+to the end of the first syllable) you can use the special code(--) lyric as
+separate word between syllables. This will result in a hyphen whose length
+varies depending on the space between syllables, and centred between the
+syllables. For example: 
+mudela(verbatim)(\score{
+  <  \notes \transpose c'' {c d e c | c d e c | e f g'2 | 
+                              e'4 f g'2 \bar "|."; }
+     \context Lyrics \lyrics { 
+              DOEXPAND(Fr\)`e4 -- re Ja -- que DOEXPAND(Fr\)`e -- re Ja -- que
+              Dor -- mez vous?2 Dor4 -- mez vous?2  }
+  >
+})
+
+
+
+sect(Time)  
+
+LilyPond aligns all musical objects according to the amount of time
+they occupy.  All musical objects have a duration.  When music is
+written sequentially using braces the duration is the sum of the 
+durations of the elements.  When music is stacked into simultaneous music 
+using angle
+brackets, the duration is the maximum of the durations of the
+elements.  
+
+Because LilyPond knows the durations of all musical elements, the time
+signature enables LilyPond to draw bar lines automatically.  The time
+signature is specified with the code(\time) keyword: code(\time 3/4).
+If no time signature is given, LilyPond assumes 4/4.  The automatic
+generation of bar lines can toggled with the code(\cadenza) keyword or the
+code(Staff.barNonAuto) property,
+and an incomplete measure at the start of the music can be created
+using the code(\partial) keyword: code(\partial 8*2;) creates a
+starting measure lasting two eighth notes.
+
+In order to help with error checking, you can insert bar markers in
+your music by typing code(|).  Whenever LilyPond encounters a code(|)
+that doesn't fall at a measure boundary, she prints a warning message.
+
+
+COMMENT(
+sect(Composition: forming bigger structures)
+label(sec:grammar)
+
+The computer savy user may be interested in a more formal
+specification.  We can capture what have learned about forming
+sentences in Mudela in a context-free grammar.
+
+latexcommand(\smallskip)
+
+table(2)(lll)(
+        row(cell(em(Music))cell(: em(Note)))
+        row(cell()cell(code(|) em(Rest)))
+        row(cell()cell(code(|) code({) em(MusicList) code(})))
+        row(cell()cell(code(|) code(<) em(MusicList) code(>)))
+        row(cell()cell(code(|) em(Command)))
+        row(cell()cell(code(|) code(\context) em(string) code(=) em(string)  em(Music)))
+        row(cell()cell(;))
+        row(cell(em(MusicList))cell(: em(empty)))
+        row(cell()cell(code(|)  em(MusicList)  em(Music)))
+        row(cell()cell(;))
+)
+
+latexcommand(\smallskip)
+
+In mathematics you can form expressions by combining expressions,
+which are ultimately some kind of atom or terminal symbol.  The same
+goes for Mudela: there are some basic building blocks, and by
+combining those you create complex music.
+
+You can combine music in three ways:
+itemize(
+it()If you enclose a sequence of music-elements in braces ( code({)
+    and code(}) ), then you form another kind of music called
+sequential music
+    with those pieces.
+  The duration of sequential composition is the sum of the durations of its elements
+  verb(
+      { c c g g a a g2 }      % twinkle twinkle
+      { { c c g g} { a a g2 } }
+  )
+it()You can stack music by enclosing a sequence of music elements
+    with code(<) and code(>). This is called simultaneous music.  
+    The duration of a simultaneous composition is the maximum of the durations 
+    of its elements Example:
+    verb(
+        <a4 {cis8 cis8} e'4>      % a-major chord
+    )
+it()You can form music by transposing music:
+    verb(
+    \transpose  
+        d       % from c to the d that's almost one octave down
+                { e4 f4 }       % the horizontal music
+)
+it()verb(\context)
+it()verb(\property)
+it()verb(\translator)
+it()verb(\relative)
+)
+
+Of course you can also combine these three mechanisms.
+verb(
+{ c <c e> <c e g> <c e g \transpose d' dis > }  % 4 increasing chords
+)
+
+END OF COMMENT  )
+
+
+sect(Repeats)
+
+In order to specify repeats, use the code(\repeat) keyword.  By
+default, repeats are printed with repeat symbols.  
+mudela(fragment,verbatim,center)(
+c'1
+\repeat semi 2 { c'4 d' e' f' }
+\repeat semi 2 { f' e' d' c' })
+In order to specify alternate endings, use the code(\alternative)
+keyword.  
+mudela(fragment,verbatim,center)(
+c'1
+\repeat semi 2 {c'4 d' e' f'} 
+\alternative { {d'2 d'} {f' f} })
+The code(semi) specifies that normal repeats will be printed.  If
+code(fold) is used instead then the alternatives will be stacked:
+mudela(fragment,verbatim,center)(
+c'1
+\repeat fold 2 {c'4 d' e' f'} 
+\alternative { {d'2 d'} {f' f} })
+When the repeats involve partial measures, it will be necessary to use
+code(\partial) keywords in a somewhat unexpected way 
+to indicate some measure lengths.
+mudela(fragment,verbatim)(
+\context Staff { \relative c'{
+  \repeat semi 2 { \partial 4; e | c2 d2 | e2 f2 | }
+  \alternative { { g4 g g } {\partial 1; a a a a | b1 } }
+}})
+Repeats can be unfolded by setting the property Staff.unfoldRepeats.
+Note also that if your music begins with code(\repeat), you must place
+it in an explicit code(Staff) context or you will get bizarre results. 
+
+If you don't give enough alternatives for all of the repeats, then the
+first alternative is assumed to be repeated enough to equal to
+specified number of repeats.  
+mudela(fragment,verbatim)(
+\context Staff { \relative c'{
+  \repeat semi 3 { \partial 4; e | c2 d2 | e2 f2 | }
+  \alternative { { g4 g g } {\partial 1; e4 e e } 
+                 {\partial 1; a a a a | b1 } }
+}})
+
+
+sect(Keywords)
+
+Keywords sometimes appear alone, but usually they require arguments.
+A keyword may have a single argument, a sequence of arguments in
+braces, or a sequence of arguments separated by spaces and terminated
+by a semicolon.  The precise syntax of each keyword is shown below.
+Keywords must appear in the right context.  If you use a keyword in
+the wrong place, even if the usage is syntactically correct, you will
+get the message ``parse error'' from LilyPond.
+
+
+description(
+
+dit(code(\absdynamic) code({) var(code) code(})) Internal keyword for
+printing dynamic marks such as $f$ under music.  The parameter
+var(code) is unsigned and specifies the dynamic mark to print.
+Normally you should use the more user friendly abbreviations defined
+in the init file file(dynamic.ly).
+
+FIXME: Changed to code(\textscript) var(text) var(style).  Defines
+a text-request.
+
+dit(code(\accepts) var(string)code(;)) This keyword can appear only within a
+code(\translator) block.  It specifies what contexts are allowed with the
+context that is being defined.  See Section ref(translators).  
+
+dit(code(\alternative) code({) var(music1) var(music2) ... code(}))
+Specifies alternative endings.  Must come after a code(\repeat) keyword.  
+
+dit(code(\bar) var(bartype)code(;)) Prints a special bar symbol, or at
+measure boundaries, replaces the regular bar symbol with a special
+symbol.  The argument var(bartype) is a string which specifies the
+kind of bar to print.  Options are code(":|"), code("|:"),
+code(":|:"), code("||"), code("|."), code(".|"), or code(".|.").
+These produce respectively a right repeat, a left repeat, a double
+repeat, a double bar, a start bar, an end bar, or a thick double bar.
+If var(bartype) is set to code("empty") then nothing is printed, but a
+line break is allowed at that spot.  Note that the printing of special bars
+has no effect on the MIDI output.
+
+dit(code(\cadenza) var(togglevalue)code(;)) Toggles the automatic generation
+of bar lines.  If var(togglevalue) is 0 then bar line generation is
+turned off.   If var(togglevalue) is  1  then a bar is  immediately
+printed and bar generation is turned on.
+
+dit(code(\clef) var(clefname)code(;)) Allowed only in music.  
+Sets the current clef.  The argument is
+a string which specifies the name of the clef.  Several clef names are
+supported.  If code(_8) or code(^8) is added to the end of a clef
+name then the clef lowered or raised an octave will be generated.  
+Here are the supported clef names with middle C shown in each clef:
+mudela(center)(
+\score{
+  \notes{ \cadenza 1;
+   %\property Voice.textStyle = typewriter
+   \clef subbass; c'4-"\kern-10mm subbass" 
+           \clef bass;    c'4^"\kern -8mm bass"
+           \clef baritone; c'4_"\kern -10mm baritone"
+           \clef varbaritone; c'4^"\kern -10mm varbaritone"
+           \clef tenor;     c'4_"\kern -10mm tenor"
+           \clef "G_8";   c'4^"\kern -6mm G\_8" 
+   }  
+   \paper{ linewidth= 4.5 \in; }
+}
+)
+mudela(center)(
+\score{
+  \notes{\cadenza 1; \clef alto;    c'4_"\kern -10mm alto"
+      %     \clef scarlatti;    c'4_"\kern -4mm scarlatti"
+           \clef mezzosoprano; c'4^"\kern -10mm mezzosoprano"
+           \clef soprano;  c'4_"\kern -10mm soprano"
+           \clef treble;  c'4^"\kern -6mm treble"
+           \clef french;  c'4_"\kern -10mm french" }  
+  \paper{ linewidth= 4.5 \in; }
+}
+)
+The treble  clef  can also  be obtained using  the  names code(G) or
+code(violin).  The bass clef is also available by code(\clef  F). 
+
+dit(code(\chord) var(chordlist)) Parse var(chordlist) in chords mode.
+
+dit(code(\chordmodifiers) var(modifierlist)) Specify the text chord
+modifiers that may appear after chord names.  These are specified in
+the file file(chord-modifiers.ly).  
+
+dit(code(\cm)) Specify a dimension in centimeters. 
+
+dit(code(\consists) var(string)code(;)) This keyword can appear only within a
+code(\translator) block.  It specifies that an engraver or performer named
+var(string) should be added to the translator.  See Section
+ref(translators).
+
+dit(code(\consistsend) var(string)code(;)) Unknown function.  
+
+dit(code(\context) var(contexttype) [code(=) var(contextname)]
+var(music) or code(\context) var(translatortype)code(;)) The first
+variant is used only within music to create an instance of a
+context.  The new context can optionally be given a name.  The
+specified var(music) is processed in the new context. The second
+variant appears within a code(\translator) block and specifies the
+type of translator being created.
+
+dit(code(\duration) code({) var(length) var(dotcount) code(})) Specify note
+duration.  The parameter var(length) is the negative logarithm (base
+2) of duration: 1 is a half note, 2 is a quarter note, 3 is an eighth
+note, etc.  The number of dots  after  the  note is given by
+var(dotcount). 
+
+dit(code(\font) var(string)) Internal keyword.  Used within
+code(\paper) to specify the font.
+
+
+dit(code(\header) code({) var(key1) = var(val1); var(key2) = var(val2); ... code(}))
+Specifies information about the music.  A header should appear at the
+top of the file describing the file's contents.  If a file has
+multiple code(\score) blocks, then a header should appear in
+each score block describing its contents.  Tools like code(ly2dvi) can
+use this information for generating titles.   Key values that are used
+by ly2dvi are: title, subtitle, composer, opus, poet, instrument,
+metre, arranger, piece and tagline.  
+
+dit(code(\in)) Specify a dimension in inches.  
+
+dit(code(\include) var(file)) Include the specified file.  The
+argument var(file) is a string.  The full filename including the
+file(.ly) extension must be given, and the filename must be quoted.
+(An unquoted string will not work here.)
+
+dit(code(\key) var(pitch) var(type) code(;)) Change the key signature. 
+var(type) should be code(\major) or code(\minor) to get
+var(pitch)-major or var(pitch)-minor, respectively. The second
+argument is optional, the default is major keys. 
+The var(\context) argument can also be given as an integer, which tells
+the number of semitones that should be added to the pitch given in the
+subsequent code(\key) commands to get the corresponding major key,
+e.g. code(\minor) is defined as 3.  The standard mode names 
+code(\ionian), code(\locrian), code(\aeolian), code(\mixolydian),
+code(\lydian), code(\phrygian), and code(\dorian) are also defined. 
+
+dit(code(\keysignature) var(pitchseq)code(;))
+Specify an arbitrary key signature.  The pitches from var(pitch) will
+be printed in the key signature in the order that they appear on the list.
+
+dit(code(\lyrics) var(lyriclist)) Parse var(lyriclist) in lyrics mode.
+
+dit(code(\maininput)) Internal command.  This command is used for creating init
+files like file(init.fly) that read the user file into the middle of another
+file.  It is illegal to use this command in a user file.  
+        
+dit(code(\mark) var(unsigned)code(;) or code(\mark) var(string)code(;)) 
+Allowed in music only.  Prints a mark over or under (depending on the
+code(markDirection) property) the staff.
+You must add code(Mark_engraver) to the Score context.
+
+dit(code(\midi) var(statementlist)) Appears in a score block to
+indicate that musical output should be produced and to set output
+parameters.  Can also appear at the top level to set default output
+parameters.  See code(\tempo).
+
+dit(code(\mm)) Specify a dimension in millimeters. 
+
+dit(code(\musicalpitch) code({) var(octave) var(note) var(shift) code(})) 
+Specify note pitch.  The octave is specified by an integer,
+zero for the octave containing middle C.  The note is a number from 0
+to 7, with 0 corresponding to C and 7 corresponding to B.  The shift
+is zero for a natural, negative to add flats, or positive to add
+sharps.
+
+dit(code(\name) var(context)code(;)) Appears within code(\translator) to
+specify the name of the context that the translator handles. See Section
+ref(translators).   
+
+dit(code(\notenames) var(assignmentlist)) Define new note names.  This
+keyword can appear only at the top level. 
+The argument is a list of definitions of  the form
+var(name) = var(pitch),  where var(pitch) is specified with the
+code(\musicalpitch) keyword.  
+
+dit(code(\notes) var(music)) Enter note mode and process the
+specified music. 
+
+dit(code(\paper) var(statmentlist)) 
+Appears in a score block to indicate that the music should be printed
+or to set output parameters.  Can also appear at the top level to set
+default output parameters for all of the score blocks.  
+The var(statmentlist) contains statements that change features of the
+output.  See Section ref(paper).  
+
+dit(code(\partial) var(duration)code(;)) Specify that the first measure of
+the music lasts only for the specified duration.  Use also to specify
+the duration of the first measure of the argument to
+code(\alternative).  
+
+dit(code(\penalty) var(int)code(;)) Allowed only in music.
+Discourage or encourage line breaks.  See identifiers code(\break) and
+code(\nobreak) in Section ref(ident). 
+
+dit(code(\property) var(contextname)code(.)var(propname) code(=) var(value))
+Sets the var(propname) property of the context var(contextname) to the
+specified var(value).  All three arguments are strings.  Depending on
+the context it may be necessary to quote the strings or to leave space
+on both sides of the dot. 
+
+dit(code(\pt)) Specify a dimension in points. 
+
+dit(code(\relative) var(pitch) var(music)) Processes the specified
+var(music) in relative pitch
+mode.  In this mode, the octave of a pitch is chosen so that the
+pitch is closest to the preceeding pitch.  
+The argument var(pitch) is
+the starting pitch for this comparision.  In the case of chords, the
+first note of a chord is used as the base for the first pitches in the next
+chord.  See Section ref(relative).
+
+dit(code(\remove) var(string)code(;)) Can appear only in a
+code(\translator) block.  Specifies that a performer or engraver named
+var(string) should be removed.  See Section ref(translators).  
+
+dit(code(\repeat) var(style) var(count) code({) var(music) code(}))
+Repeats the specified
+music var(count) times.  Alternative endings can be specified by adding a
+code(\alternative) keyword after the code(\repeat).  The var(style)
+parameter should be either code(semi), for regular repeats,  or
+code(fold) for repeats displayed vertically. 
+
+dit(code(\scm) var(scheme)code(;)) Embeds specified Scheme code.  
+
+dit(code(\scmfile) var(filename)code(;)) Reads Scheme code from the specified
+file.  
+
+dit(code(\score) var(statementlist)) Create a Score context.  This
+is the top level notation context.  
+COMMENT(this still needs work)
+
+dit(code(\script) var(alias)) Prints a symbol above or below a note.
+The argument is a string which points into the script-alias table
+defined in file(script.scm).  The scheme definitions specify whether
+the symbol follows notes into the staff, dependence of symbol
+placement on staff direction, and a priority for placing several
+symbols over one note.  Usually the code(\script) keyword is not used
+directly.  Various helpful identifier definitions appear in
+file(script.ly).
+
+dit(code(\shape) code(=) var(indent1) var(width1) var(indent2)
+var(width2) ... code(;)) Allowed only within code(\paper).  Each pair
+of var(indent) and var(width) values is a dimension specifying how far
+to indent and how wide to make the line.  The indentation and width of
+successive lines are specified by the successive pairs of dimensions.
+The last pair of dimensions will define the characeristics of all
+lines beyond those explicitly specified.
+
+COMMENT(First pair of dimensions seems to be skipped.  At least it is
+in the example file denneboom.ly.)
+
+dit(code(\skip) var(duration)code(;)) Skips the amount of time specified by
+var(duration).  A gap will be left for the skipped time with no notes
+printed.  It works in Note Mode or Lyrics Mode (but generates a
+mysterious error in lyrics).
+
+dit(code(\spanrequest) var(startstop) var(type)).  Define a spanning request
+var(startstop) is either -1 (code(\start)) or 1 (code(\stop)). The var(type)
+parameter is a string that describes what should be started.  Supported types
+are "crescendo", "decrescendo", "beam", "slur".  This is an internal command.
+Users should use the abbreviations  which are defined in the
+initialization file file(dynamic.ly).
+
+dit(code(\tempo) var(duration) = var(perminute)code(;)) Used within
+code(\midi) or within music to specify the tempo.  For example, 
+`code(\midi { \tempo 4 = 76;})' requests output with 76 quarter notes
+per minute.  Note that if the music contains several tempo commands,
+only the last one is used to set the tempo for the entire MIDI output. 
+COMMENT(Is this true?)
+
+dit(code(\textscript) var(text) var(style)) Print the specified text as a
+script in the specified style.  
+
+dit(code(\time) var(numerator)code(/)var(denominator)code(;)) Change the time
+signature.  The default time signature is 4/4.  
+
+dit(code(\times) var(numerator)code(/)var(denominator) var(music))
+Multiply the duration of var(music) by the specified fraction.
+
+dit(code(\translator) var(statements) or code(\translator)
+var(context) = var(name)) The first variant appears only within
+code(\paper) and specifies a translator for
+converting music to notation.  The translator is specified with a
+single code(\context) statement and a series of code(\accepts), and
+code(\consists) statements.  See Section ref(translators). 
+The second variant appears in 
+music.  It specifies that the current the contexts
+contained within the specified context should be shifted to the
+context with the specified name.  
+
+COMMENT( \translator seems like a strange name for the second
+operation, and is the overloading desireable? )
+
+dit(code(\transpose) var(pitch) var(music)) Transposes the specified
+music.  Middle C is tranposed to var(pitch).  This is allowed in music only,
+and if it appears inside code(\relative), then any notes specified for
+transposition should be specified inside another code(\relative).  See Section
+ref(transpose).  
+
+dit(code(\type) var(string)code(;)) Use inside code(\translator) to
+specify the type of the translator.  
+
+dit(code(\version) var(string)) Specify the version of Mudela that a
+file was written for.  The argument is the version number, for example
+code("1.0.1").  Note that the Mudela version is different from the
+LilyPond version.
+
+)  
+
+
+sect(Notation Contexts)
+
+Notation contexts provide information that appears in printed music
+but not in the music itself.  A new musical context is created using
+the code(\context) keyword: `code(\context) var(contexttype) [code(=)
+var(contextname)] var(music)'.  The following context types are
+allowed.
+
+description(
+
+dit(code(LyricVoice)) Corresponds to a voice with lyrics.  Handles the printing
+of a single line of lyrics.  
+
+dit(code(Voice)) Corresponds to a voice on a staff.
+  This context handles the conversion of noteheads,
+  dynamic signs, stems, beams, super- and subscripts, slurs, ties and rests.
+
+dit(code(ChordNamesVoice)) A voice with chord names.  Handles printing
+of a line of chord names.  
+
+dit(code(ChordNames))  Typesets chord names.  Can contain
+code(ChordNamesVoice) contexts.  
+
+dit(code(Lyrics)) Typesets lyrics.  It can contain code(LyricVoice) contexts.
+
+dit(code(Staff)) Handles clefs, bar lines, keys,
+  accidentals.  It can contain code(Voice) contexts.
+
+dit(code(RhythmicStaff)) A context like code(Staff) but for printing
+rhythms.  Pitches are ignored; the notes are printed on one line.  
+It can contain code(Voice) contexts. 
+
+dit(code(GrandStaff)) Contains code(Staff) or code(RhythmicStaff)
+contexts.  It adds a brace on the left side grouping the staffs
+together. The bar lines of the contained staffs are connected vertically.
+It can contain code(Staff) contexts.
+
+dit(code(PianoStaff)) Just like code(GrandStaff) but with
+code(minVerticalAlign) set equal to code(maxVerticalAlign) so that
+interstaff beaming and slurring can be used.  
+
+dit(code(StaffGroup)) Contains code(Staff) or code(RhythmicStaff)
+contexsts.  Adds a bracket on the left side, grouping the staffs
+together.  The bar lines of the contained staffs are connected vertically.
+It can contain code(Staff), code(RhythmicStaff), code(GrandStaff) or code(Lyrics) contexts.  
+
+dit(code(ChoirStaff)) Identical to code(StaffGroup) except that the
+contained staffs are not connected vertically.  
+
+dit(code(Score)) This is the top level notation context.  It is specified with
+the code(\score) keyword rather than the code(\context) command.  No
+other context can contain a code(Score) context.  This context handles
+the administration of time signatures.  It also makes sure that items
+such as clefs, time signatures, and key-signatures are aligned across
+staffs.  It can contain code(Lyrics), code(Staff),
+code(RhythmicStaff), code(GrandStaff), code(StaffGroup), and
+code(ChoirStaff) contexts.
+
+)
+
+The various contexts have properties associated with them.  These
+properties can be changed using the code(\property) command:
+`code(\property) var(context)code(.)var(propname) code(=) var(value)'.
+Properties can also be set within the code(\translator) block
+corresponding to the appropriate context.  In this case, they are
+assigned by `var(propname) code(=) var(value)'.  The settings made with
+code(\property) are processed after settings made in the code(\translator)
+block, so the code(\property) settings will override code(\translator)
+settings.  
+
+The code(\property) keyword will create any property you specify.
+There is no guarantee that a property will actually be used.  If you
+spell a property name wrong, there will be no error message.  In order to find
+out what properties are used, you must search the source code 
+for code(get_property).  
+Properties that are set in one context are inherited by all of the
+contained contexts.  This means that a property valid for the Voice
+context can be set in the Score context (for example) and thus take
+effect in all Voice contexts.  
+
+subsubsubsect(Lyrics properties)
+
+description(
+
+dit(code(textStyle)) Set the font for lyrics.  The available font
+choices are code(roman), code(italic), code(bold), code(large),
+code(Large), code(typewriter), and code(finger).  The code(finger)
+font can only display numbers.  Note also that you must be careful
+when using code(\property) in Lyrics mode.  Because of the way strings
+are parsed, either put quotes around the arguments to code(\property)
+or be sure to leave a space on both sides of the dot.
+
+
+)
+
+subsubsubsect(Voice properties)
+
+description(  
+
+dit(code(stemLeftBeamCount)) Specify the number of beams to draw on
+the left side of the next note.  
+
+dit(code(stemRightBeamCount)) Specify the number of beams to draw on
+the right side of the next note.  
+
+dit(code(beamAuto)) If set to 1 then beams are generated
+automatically.  If set to zero then no beams will be automatically
+generated.  The default value is 1.  
+
+dit(code(beamAutoEnd)) Specifies when automatically generated beams
+can end.  See Section ref(autobeam).
+
+dit(code(beamAutoBegin)) Specifies when automatically generated beams
+can start.  See Section ref(autobeam). 
+
+dit(code(textEmptyDimension)) If set to 1 then text placed above or
+below the staff is assumed to have zero width.  
+
+dit(code(noteheadStyle)) Selects type of note head.  Choices are
+code(cross), code(diamond), code(harmonic), code(transparent), and
+code("").  They are shown in that order below.  
+mudela(center)(
+\score{
+  \notes{ 
+     \property Staff.barNonAuto = 1
+     \property Voice.noteHeadStyle = cross 
+     a'
+     \property Voice.noteHeadStyle = diamond
+     a'
+     \property Voice.noteHeadStyle = harmonic
+     a'
+     \property Voice.noteHeadStyle = transparent
+     a' 
+     \property Voice.noteHeadStyle = ""
+     a'
+  }
+ \paper{ linewidth = -1.;}
+}
+)
+
+
+dit(code(restStyle)) Change the layout of rests shorter than quarter notes. 
+Currently, the standard layout code(restStyle="") and mensural notation
+code(restStyle="mensural") are available.
+
+dit(code("midiInstrument")) Sets the instrument for MIDI output.  This
+property name must be quoted because of the embedded underscore.  If
+this property is not set then LilyPond will use the code(instrument)
+property.  This must be set to one of the strings on the list of MIDI
+instruments that appears in Section ref(midilist).  If you use a
+string which is not listed, LilyPond will silently substitute piano. 
+
+dit(code(transposing)) Tranpose the MIDI output.  Set this property to
+the number of half-steps to transpose by.
+
+dit(code(oldTieBehavior)) Set to 1 in order to get old tie behavior
+where ties would connect unequal pitches.  
+
+dit(code(verticalDirection)) Determines the direction of stems, subscripts,
+beams, slurs, and ties.  Set to code(\down) to force them down,
+code(\up) to force them up, or code(\free) to let LilyPond decide.
+This can be used to distinguish between voices on the same staff.  The
+code(\stemdown), code(\stemup), and code(\stemboth) identifiers set
+this property.  See also the identifiers code(\voiceone),
+code(\voicetwo), code(\voicethree) and code(\voicefour).
+
+dit(code(slurVerticalDirection)) Set to code(\free) for free choice of slur
+direction, set to code(\up) to force slurs up, set to code(\down) to
+force slurs down.  The shorthands code(\slurup), code(\slurdown), and
+code(\slurboth) are available.
+
+dit(code(tieVerticalDirection)) Set to code(\free) for free choice of tie
+direction, set to code(\up) to force ties up, set to code(\down) to
+force ties down.  
+
+dit(code(slurdash)) Set to 0 for normal slurs, 1 for dotted slurs, and
+a larger value for dashed slurs.  Identifiers code(\slurnormal) and
+code(\slurdotted) are predefined to set the first two settings.
+
+dit(code(horizontalNoteShift)) Set to 1 to enable LilyPond to shift notes
+horizontally if they collide with other notes.  This is useful when
+typesetting many voices on one staff.  The identifier code(\shift) is
+defined to enable this.  If there are several voices, every voice must
+have a distinct value of this property or no shifting will occur.
+
+dit(code(dynamicDir)) Determines location of dynamic marks.  Set to
+code(\up) to print marks above the staff; set to code(\down) to print
+marks below the staff.
+
+dit(code(dynamicStyle)) Set the text style for dynamics.  
+
+dit(code(textStyle)) Set the text style for superscripts and
+subscripts.  See above for list of text styles.
+
+dit(code(textScriptPadding)) Determines the extra space added between
+super-/subscripted text and the closest staff line or note.
+
+dit(code(fontSize)) Can be used to select smaller font sizes for
+music.  The normal font size is 0, and the two smaller sizes are -1
+and -2.
+
+dit(code(abbrev)) Set length for tremolo to be used if no length is
+explicitly specified.
+
+dit(code(tupletDirection)) Determines the direction of triplets and 
+other tuplets.  Set to code(\down) to force them below the staff,
+code(\up) to force them above, or code(\free) to let LilyPond decide.
+
+dit(code(tupletVisibility)) Determines whether tuplets of notes are
+labelled.  Setting to 0 shows nothing; setting to 1 shows a number;
+setting to 2 shows a number and a bracket if there is no beam; setting
+to 3 shows a number, and if there is no beam it adds a bracket;
+setting to 4 shows both a number and a bracket unconditionally. The 
+code(pletoff) and code(pleton) identifiers set the property to 0 and 3, 
+respectively. 
+
+dit(code(markScriptPadding)) Determines the extra space added between
+the mark and the closest staff line or note.
+
+dit(code(markDirection)) Determines if marks should be printed above
+or below the staff. Set to code(\up) to print marks above the staff;
+set to code(\down) to print marks below the staff.
+
+dit(code(articulationScriptPadding)) Determines the extra space added 
+between articulation marks, such as staccato, tenuto, trill, up/down 
+bow or fermata, and the closest staff line or note.
+)
+
+subsubsubsect(Staff properties)
+
+description(
+
+dit(code(createInitdefaultClef)) Specify whether clefs are created on
+default?  (Doesn't seem to do anything.)
+
+dit(code(barNumberDirection)) Set to code(\up) or code(\down) to put
+bar numbers above or below the staff.  
+
+dit(code(barNumberHangOnClef)) Set to 1 to cause bar numbers to appear
+above or below the clef instead of on the bar line.
+
+dit(code(barNumberScriptPadding)) Sets extra space between the bar
+number and the bar it labels.
+
+dit(code(barSize)) Specify the height of the bar lines if it should be
+different than the staff height.
+
+dit(code(markHangOnClef)) Set to 1 to cause marks to appear by clefs
+instead of by bar lines.
+
+dit(code(marginDirection)) Set to code(\left) or code(\right) to
+specify location of marginal scripts.  
+
+dit(code(marginScriptPadding)) Specify extra space for marginal scripts.
+
+dit(code(forgetAccidentals)) Causes accidentals to be printed at every
+note instead of remembered for the duration of a measure.  
+
+dit(code(noResetKey)) Do not reset the key at the start of a measure.
+Accidentals will be printed only once and are in effect until
+overridden, possibly many measures later. 
+
+dit(code(staffLineLeading)) Specifies the distance (in points) between lines
+of the staff.  
+
+dit(code(numberOfStaffLines)) Specifies the number of staff lines. The
+default is 5. 
+
+dit(code(postBreakPadding)) Extra space in points to be added after
+the clef, time signature and key signature on the staff.
+
+dit(code(barAtLineStart)) Set to 1 to produce a bar line after the
+clef at the start of each line (but not at the beginning of the
+music).  
+
+dit(code(voltaVisibility)) Set to 0 to suppress the printing
+of brackets over alternate endings specified by code(\alternative).
+
+dit(code(voltaSpannerDuration)) Set to an integer to control the size
+of the brackets printed by code(\alternative).  The integer specifies
+the number of whole notes duration to use for the brackets.  It seems
+to be rounded to the nearest measure.  This can be used to shrink the
+length of brackets in the situation where one alternative is very
+large.  It may have odd effects if the specified duration is longer
+than the music given in an code(\alternative).  
+
+dit(code(barNonAuto)) If set to 1 then bar lines will not be printed
+automatically; they must be explicitly created with code(\bar) keywords.
+Unlike with the code(\cadenza) keyword, measures are still counted.  Bar
+generation will resume according to that count if this property is set to
+zero.  
+
+dit(code(defaultClef)) Determines the default clef.  See code(\clef)
+keyword.
+
+dit(code(nuberOfStaffLines)) Sets the number of lines that the staff has.
+dit(code(barAlways)) If set to 1 a bar line is drawn after each note.
+
+dit(code(defaultBarType)) Sets the default type of bar line.  See
+code(\bar) keyword.
+
+dit(code(keyoctaviation)) If set to 1, then keys are the same in all
+octaves.  If set to 0 then the key signature for different octaves can
+be different and is specified independently: code(\keysignature bes
+fis').  The default value is 1.  Can be set to zero with
+code(\specialkey) or reset to 1 with code(\normalkey).
+
+dit(code(instrument) and code(instr)) If code(Staff_margin_engraver)
+is added to the Staff translator, then the code(instrument) property
+is used to label the first line of the staff and the code(instr)
+property is used to label subsequent lines.  If the
+code(midiInstrument) property is not set then code(instrument) is
+used to determine the instrument for MIDI output.
+COMMENT(This prints the instrument name on top of the staff lines.)
+
+dit(code(createKeyOnClefChange)) Set to a nonempty string if you want key
+signatures to be printed when the clef changes.  Set to the empty string (the
+default) if you do not want key signatures printed.
+
+
+dit(code(timeSignatureStyle)) Changes the default two-digit layout
+   for time signatures. The following values are recognized:
+   description(
+      dit(code(C)) 4/4 and 2/2 are typeset as C and struck C,
+      respectively. All other time signatures are written with two digits.
+      dit(code(old)) 2/2, 3/2, 3/4, 4/4, 6/4, 9/4, 6/8 and 9/8 are typeset 
+      with old-style mensuration marks. All other time signatures are 
+      written with two digits.
+      dit(code(1)) All time signatures are typeset with a single
+      digit, e.g. 3/2 is written as 3.
+      dit(code(C2/2), code(C4/4), code(old2/2), code(old3/2),
+      code(old3/4), code(old4/4), code(old6/4), code(old9/4), 
+      code(old6/8) or code(old9/8))Tells Lilypond to use a 
+      specific symbol as time signature.
+   )
+The different time signature characters are shown below with
+their names:
+mudela(center)(
+\score{
+  \notes\relative c'' {
+\property Voice.textStyle = typewriter
+\property Staff.timeSignatureStyle = "C2/2"
+\time 2/2; a2^"C2/2" a2 
+\property Staff.timeSignatureStyle = "C4/4"
+\time 2/2; a2^"C4/4" a2 
+\property Staff.timeSignatureStyle = "old2/2"
+\time 2/2; a2^"old2/2" a2 
+\property Staff.timeSignatureStyle = "old3/2"
+\time 2/2; a2^"old3/2" a2 
+\property Staff.timeSignatureStyle = "old4/4"
+\time 2/2; a2^"old4/4" a2 
+\property Staff.timeSignatureStyle = "old6/4"
+\time 2/2; a2^"old6/4" a2 
+\property Staff.timeSignatureStyle = "old9/4"
+\time 2/2; a2^"old9/4" a2 
+\property Staff.timeSignatureStyle = "old6/8"
+\time 2/2; a2^"old6/8" a2 
+\property Staff.timeSignatureStyle = "old9/8"
+\time 2/2; a2^"old9/8" a2 
+}
+   \paper{ linewidth= 4.5 \in; }
+}
+)
+
+dit(code(clefStyle)) Determines how clefs are typeset. When set to
+code(transparent), the clefs are not printed at all, when set to
+code(fullSizeChanges), clef changes in the middle of a line are
+typeset with a full size clef. By default, clef changes are typeset in
+smaller size.
+
+)
+   
+subsubsubsect(GrandStaff properties)
+
+description( 
+
+dit(code(alignmentReference)) Set to code(\center) for vertical
+alignment reference point to be in the center of the vertical group.
+Set to code(\up) to put the reference point at the top of the group. 
+
+dit(code(maxVerticalAlign)) Set the maximum vertical distance between
+staffs.
+
+dit(code(minVerticalAlign)) Set the minimum vertical distance between
+staffs.  
+
+)
+
+subsubsubsect(Score properties)
+
+description(
+
+dit(code(skipBars)) Set to 1 to skip the empty bars that are produced
+by multimeasure notes and rests.  These bars will not appear on the
+printed output.  Set to zero (the default) to expand multimeasure
+notes and rests into their full length, printing the appropriate
+number of empty bars so that synrchonization with other voices is
+preserved.  COMMENT(meaning of "skip" here seems to be different from
+the meaning used for the keyword \skip.)
+
+dit(code(beamquantisation)) Set to code(\none) for no quantization.
+Set to code(\normal) to quantize position and slope.  Set to
+code(\traditional) to avoid wedges.  These three settings are
+available via code(\beamposfree), code(\beamposnormal), and
+code(\beampostraditional).
+
+dit(code(beamslopedamping)) Set to code(\none) for undamped beams.
+Set to code(\normal) for damped beams.  Set to code(\infinity) for
+beams with zero slope.  The identifiers code(\beamslopeproportional),
+code(\beamslopedamped), and code(\beamslopezero) each set the
+corresponding value.
+
+dit(code(chordInversion)) Determines whether LilyPond should look for
+chord inversions when translating from notes to chord names.  Set to 1
+to find inversions.  The default is 0 which does not look for inversions.
+
+)
+
+
+
+sect(Pre-defined Identifiers)
+label(ident)
+
+Various identifiers are defined in the initialization files to
+provide shorthands for some settings.  
+
+description(
+dit(code(\aeolian)) Used as the second argument of the code(\key)
+keyword to get an aeolian mode. 
+dit(code(\break)) Force a line break in music by using a large
+argument for the keyword code(\penalty). 
+dit(code(\center)) Used for setting textalignment property.  Is set to 0.
+dit(code(\cr)) Start a crescendo.
+dit(code(\decr)) Start a decrescendo.
+dit(code(\dorian)) Used as the second argument of the code(\key)
+keyword to get a dorian mode.
+dit(code(\down)) Used for setting direction setting properties.  Is
+equal to -1.  
+dit(code(\f)) Print forte symbol on the preceeding note.
+dit(code(\ff)) Print fortissimo symbol on the preceeding note. 
+dit(code(\fff)) Print fortississimo symbol on preceeding note. 
+dit(code(\ffff)) Print fortissississimo symbol on preceeding note.
+dit(code(\fffff)) Print fffff symbol on preceeding note.
+dit(code(\ffffff)) Print ffffff symbol on preceeding note.
+dit(code(\fp)) Print fortepiano symbol on preceeding note. 
+dit(code(\free)) Used for setting direction setting properties.  Is
+equal to 0.  
+dit(code(\Gourlay)) Used for setting the paper variable
+code(castingalgorithm).  Is equal to 1.0.  
+dit(code(\infinity)) Used for setting the Score.beamslopedamping
+property.  Is actually equal to 10000.  
+dit(code(\ionian)) Used as the second argument of the code(\key)
+keyword to get an ionian mode. 
+dit(code(\left)) Used for setting textalignment property.  Is equal to -1.
+dit(code(\locrian)) Used as the second argument of the code(\key)
+keyword to get a locrian mode. 
+dit(code(\lydian)) Used as the second argument of the code(\key)
+keyword to get a lydian mode. 
+dit(code(\major)) Used as the second argument of the code(\key)
+keyword to get a major key.
+dit(code(\minor)) Used as the second argument of the code(\key)
+keyword to get a minor key.
+dit(code(\mixolydian)) Used as the second argument of the code(\key)
+keyword to get a mixolydian mode.
+dit(code(\mf)) Print mezzoforte symbol on preceeding note. 
+dit(code(\mp)) Print mezzopiano symbol on preceeding note. 
+dit(code(\nobreak)) Prevent a line break in music by using a large
+negative argument for the keyword code(\penalty). 
+dit(code(\none)) Used for setting Score.beamslopedamping and
+Score.beamquantisation properties.  Is equal to 0.
+dit(code(\normal)) Used for setting Score.beamslopedamping and
+Score.beamquantisation properties.  Is equal to 1.
+dit(code(\normalkey)) Select normal key signatures where each octave
+has the same key signature.  This sets the Staff.keyoctaviation property.
+dit(code(\p)) Print a piano symbol on preceeding note. 
+dit(code(\phrygian)) Used as the second argument of the code(\key)
+keyword to get a phrygian mode.
+dit(code(\pp)) Print pianissimo symbol on preceeding note. 
+dit(code(\ppp)) Print pianississimo symbol on preceeding note. 
+dit(code(\pppp)) Print pianissississimo symbol on preceeding note.
+dit(code(\ppppp)) Print ppppp symbol on preceeding note.
+dir(code(\pppppp)) Print pppppp symbol on preceeding note.
+dit(code(\rc)) Terminate a crescendo. 
+dit(code(\rced)) Terminate a decrescendo
+dit(code(\rfz)) Print a rinforzato symbol on preceeding note.
+dit(code(\right)) Used for setting textalignment property.  Is set to 1.
+dit(code(\sf)) Print a subito-forte symbol on preceeding note. 
+dit(code(\sff)) Print a subito-fortissimo symbol on preceeding note.
+dit(code(\sfz)) Print a sforzato symbol on preceeding note. 
+dit(code(\shiftoff)) Disable horizontal shifting of note heads that collide.  
+Sets the Voice.horizontalNoteShift property.
+dit(code(\shifton)) Enable note heads that collide with other note heads
+to be shifted horiztonally.  Sets the Voice.horizontalNoteShift property.
+dit(code(\slurboth)) Allow slurs to be above or below notes.  This
+sets the Voice.slurVerticalDirection property. 
+dit(code(\slurdown)) Force slurs to be below notes. This sets the
+Voice.slurVerticalDirection property. 
+dit(code(\slurup)) Force slurs to be above notes.  This sets the
+Voice.slurVerticalDirection property.  
+dit(code(\sp)) Print a subito-piano symbol on preceeding note.
+dit(code(\spp)) Print a subito-forte symbol on preceeding note.
+dit(code(\specialkey)) Allow keys signatures do differ in different
+octaves.  This sets the Staff.keyoctaviation property.  
+dit(code(\stemboth)) Allow stems, beams, and slurs to point either
+direction.  This sets the Voice.verticalDirection property. 
+dit(code(\stemdown)) Force stems, beams, and slurs to point down.
+This sets the Voice.verticalDirection property. 
+dit(code(\stemup)) Force stems, beams and slurs to point up.  This
+sets the Voice.verticalDirection property. 
+dit(code(\traditional)) Used for setting the 
+Score.beamquantisation property.  Is equal to 2.  
+dit(code(\up)) Used for setting various direction properties.  Is
+equal to 1. 
+dit(code(\voiceone)) Enter Voice context called code(one) and force stems down.
+(See code(\stemdown).)
+dit(code(\voicetwo)) Enter Voice context called code(two) and force stems
+up. (See code(\stemup).)
+dit(code(\voicethree)) Enter Voice context called code(three) and force stems
+up.  
+dit(code(\voicefour)) Enter Voice context called code(four), force stems down
+and turn on horizontal shifting.  (See code(\stemdown) and code(\shifton).)
+dit(code(\Wordwrap)) Used for setting the paper variable
+code(castingalgorithm).  Equal to 0.0.  
+)
+
+
+sect(Output)
+label(output)
+label(paper)
+
+The output produced by LilyPond is controlled by the code(\paper) and
+code(\midi) keywords.  These keywords appear in the code(\score) block
+to indicate that printed or musical output should be produced.  If
+neither keyword appears in a code(\score) block, then paper output is
+produced but MIDI output is not produced.  
+
+The contents of the code(\paper) and code(\midi) blocks can change the
+output in various ways.  These blocks can appear at the top level of a
+Mudela file to set default parameters for each type of output.  It is
+still necessary to explicitly specify the output type in the
+code(\score) blocks if you don't want the default behavior of
+producing only paper output.  
+
+The code(\paper) and code(\midi) blocks 
+may begin with an optional identifier reference.  No
+identifier references are allowed anywhere else in the block.  
+The code(\paper) block can contain the code(\shape) keyword; the
+code(\midi) block can contain the code(\tempo) keyword.  Both of them
+can contain code(\translator) keywords.  The code(\paper) block can
+also contain identifier assignments and parameter assignments.  Unlike
+at the top level, these assignments must be terminated by a semicolon.
+
+
+subsect(Paper variables)
+
+Warning: this section is outdated and inaccurate.  
+
+There are a large number of paper variables that are used to control
+details of the layout.  Usually you will not want to change these
+variables; they are set by default to vaules that depend on the font
+size in use.  The only way to find out what variables are supported is
+to search the source code for code(get_var).  Two variables that you
+may want to change are code(linewidth) and code(indent).
+
+In order to change the font size used for the output, many variables
+need to be changed.  Some identifiers and initialization files can
+simplify this process.  The default size is 20pt.  In order to select
+a different size, you must do two things.  At the top level, do
+code(\include "paper)var(SZ)code(.ly") where var(SZ) is the height of
+the staff in points.  Values presently allowed are 11, 13, 16, 20, and
+26.  This loads some definitions, but does not cause them to take
+effect.  In order to actually change the size, you must use one of the
+identifiers: code(\paper_eleven), code(\paper_thirteen),
+code(\paper_sixteen), code(\paper_twenty) or code(\paper_twentysix)
+inside a code(\paper) block.
+
+
+description(
+  dit(var(integer)) If an integer appears on the left side of an
+assignment then a code(\font) keyword must appear on the right
+side.  This defines a music font at a particular size.  See Voice
+property code(fontSize).
+
+dit(code(arithmetic_basicspace) and code(arithmetic_multiplier))
+The space taken by a note is determined by the formula 
+COMMENT(
+
+)verb(arithmetic_multiplier * ( c + log2 (time) ))COMMENT(
+
+) where code(time) is the amount of time a note occupies.  The value
+of code(c) is chosen such that the smallest space within a measure is
+arithmetic_basicspace.  The smallest space is the one following the
+shortest note in the measure.  Typically arithmetic_basicspace is set
+to the width of a quarter note head.
+
+dit(code(beam_dir_algorithm)) Specify algorithm for determining
+whether beams go up or down.  It is real valued.  If set to 2.0 then
+majority selection is used.  If set to 3.0, then mean selection is
+used based on the mean center distance.  If set to 4.0 then median
+selection is used, based on the median center distance.  
+dit(code(castingalgorithm)) 
+dit(code(crescendo_shorten))
+dit(code(forced_stem_shorten)) Stems that have been forced to go the
+unnatural direction are shortened by this amount.  Equal to
+dit(code(forced_stem_shorten0))
+dit(code(gourlay_energybound))
+dit(code(gourlay_maxmeasures)) Maximum number of measures per line
+when using Gourlay method.
+Decreasing this greatly reduces computation time.  Default value: 10.  
+dit(code(indent)) Sets the indentation of the first line of music.  
+dit(code(interbeam))
+dit(code(interbeam4))
+dit(code(interline))  The distance between two staff
+lines, calculated from the center of the lines.  
+dit(code(linewidth))  Sets the width of the lines.  If it is set to
+-1.0, then a single unjustified line is produced.  
+dit(code(notewidth)) Width of an average note head.  
+dit(code(output)) Specifies an alternate
+name for the TeX() output.  A file(.tex) extension will be added to
+the string you specify.
+dit(code(rulethickness)) Determines thickness of staff lines and bars. 
+dit(code(slur_clip_angle))
+dit(code(slur_clip_height))
+dit(code(slur_clip_ratio))
+dit(code(slur_height_limit)) Specifies the maximum height of slurs.
+Normally equal to staff_height.
+dit(code(slur_ratio)) Specifes the ratio of slur hight to slur width
+to aim for.  Default value is 0.3.  
+dit(code(slur_rc_factor))
+dit(code(slur_slope_damping)) Allows slurs to start and end at
+different heights ????  Default value is 0.5.
+dit(code(slur_thickness)) Specify slur thickness.  Equal to code(1.4 *
+\staffline) by default.  
+dit(code(slur_x_gap)) Horizontal space between note and slur.  Set to
+code(\interline / 5) by default.  
+dit(code(slur_x_minimum))
+dit(code(staffheight)) The height of the staff from the center of the
+bottom line to the center of the top line.  Equal to to code(4 * \interline).
+dit(code(stem_length)) Specify length of stems for notes in the staff
+that don't have beams.  
+dit(code(stemthickness)) Specifies the thickness of the stem lines.  
+dit(code(tie_slope_damping))
+dit(code(tie_x_minimum))
+)
+
+
+subsect(MIDI Instrument Names)
+label(midilist)
+
+The MIDI instrument name is set by the code(Staff.midiInstrument)
+property or, if that property is not set, the code(Staff.instrument)
+property.  The instrument name should be chosen from this list.  If
+string does not exactly match one from this list then LilyPond uses
+the default piano.
+
+COMMENT( acordina = accordion, tango accordian = concertina
+         distortion guitar = distorted guitar
+         orchestral strings = harp 
+         pan flute = wood flute? )
+
+verb("acoustic grand"               "contrabass"             "lead 7 (fifths)"
+"bright acoustic"              "tremolo strings"        "lead 8 (bass+lead)"
+"electric grand"               "pizzicato strings"      "pad 1 (new age)"
+"honky-tonk"                   "orchestral strings"     "pad 2 (warm)"
+"electric piano 1"             "timpani"                "pad 3 (polysynth)"
+"electric piano 2"             "string ensemble 1"      "pad 4 (choir)"
+"harpsichord"                  "string ensemble 2"      "pad 5 (bowed)"
+"clav"                         "synthstrings 1"         "pad 6 (metallic)"
+"celesta"                      "synthstrings 2"         "pad 7 (halo)"
+"glockenspiel"                 "choir aahs"             "pad 8 (sweep)"
+"music box"                    "voice oohs"             "fx 1 (rain)"
+"vibraphone"                   "synth voice"            "fx 2 (soundtrack)"
+"marimba"                      "orchestra hit"          "fx 3 (crystal)"
+"xylophone"                    "trumpet"                "fx 4 (atmosphere)"
+"tubular bells"                "trombone"               "fx 5 (brightness)"
+"dulcimer"                     "tuba"                   "fx 6 (goblins)"
+"drawbar organ"                "muted trumpet"          "fx 7 (echoes)"
+"percussive organ"             "french horn"            "fx 8 (sci-fi)"
+"rock organ"                   "brass section"          "sitar"
+"church organ"                 "synthbrass 1"           "banjo"
+"reed organ"                   "synthbrass 2"           "shamisen"
+"accordion"                    "soprano sax"            "koto"
+"harmonica"                    "alto sax"               "kalimba"
+"concertina"                   "tenor sax"              "bagpipe"
+"acoustic guitar (nylon)"      "baritone sax"           "fiddle"
+"acoustic guitar (steel)"      "oboe"                   "shanai"
+"electric guitar (jazz)"       "english horn"           "tinkle bell"
+"electric guitar (clean)"      "bassoon"                "agogo"
+"electric guitar (muted)"      "clarinet"               "steel drums"
+"overdriven guitar"            "piccolo"                "woodblock"
+"distorted guitar"             "flute"                  "taiko drum"
+"guitar harmonics"             "recorder"               "melodic tom"
+"acoustic bass"                "pan flute"              "synth drum"
+"electric bass (finger)"       "blown bottle"           "reverse cymbal"
+"electric bass (pick)"         "skakuhachi"             "guitar fret noise"
+"fretless bass"                "whistle"                "breath noise"
+"slap bass 1"                  "ocarina"                "seashore"
+"slap bass 2"                  "lead 1 (square)"        "bird tweet"
+"synth bass 1"                 "lead 2 (sawtooth)"      "telephone ring"
+"synth bass 2"                 "lead 3 (calliope)"      "helicopter"
+"violin"                       "lead 4 (chiff)"         "applause"
+"viola"                        "lead 5 (charang)"       "gunshot"
+"cello"                        "lead 6 (voice)")
+
+
+
+subsect(Translators)
+label(translators)
+
+The behavior of notation contexts is defined by the translators for
+those contexts.  The translator for a context specifies what notations
+are handled by the context, it specifies what other contexts the
+context can contain, and it sets property values for the context.  
+There are different translators for each type of output.  The
+translators for paper output are defined in file(engraver.ly).  The
+translators for MIDI output are defined in file(performer.ly).  
+
+The first thing that appears inside a code(\translator) definition is
+the type of the context being created.  This is specified with the
+code(\type) keyword: code(\type) var(typename)code(;).  After the type
+of the context is specified, property assignments, the code(\name)
+keyword and code(\consists), code(\accepts), and code(\remove)
+keywords can appear in any order.  The code(\name) keyword specifies
+the name of the context that is handled by the translator.  If the
+name is not specified, the translator won't do anything.  Each
+code(\accepts) keyword specifies what contexts can be contained inside
+this one.  The code(\consists) keywords specify which notations are
+handled by the context.  Each code(\consists) keyword specifies the
+name of an engraver (for paper ouput) or performer (for MIDI output)
+which handles a certain notation.  The code(\remove) keyword can be
+used to remove a performer or engraver from the translator.
+
+In the code(\paper) block, it is also possible to define translator
+identifiers.  Like other block identifiers, the identifier can only
+be used as the very first item of a translator.  In order to define
+such an identifier outside of code(\score), you must do
+verb(\paper{ foo=\translator{ ... }
+\score{
+  \notes{ ... }
+  \paper{ \translator{ \foo ... } }
+})
+
+Some All of the standard translators have predefined identifiers,  making
+it easy to redefine these contexts by adding or removing items. 
+The predefined identifiers are:  code(StaffContext),
+code(RhythmicStaffContext),  code(VoiceContext),  code(ScoreContext), code(ScoreWithNumbers)
+
+
+subsubsect(Paper Types and Engravers and Pre-defined Translators)
+
+Some pre-defined identifiers can simplify modification of translators.
+The pre-defined identifiers are:  
+description(
+dit(code(StaffContext)) Default Staff  context. 
+dit(code(RhythmicStaffContext)) Default RhythmicStaff  context. 
+dit(code(VoiceContext)) Default Voice  context.  
+dit(code(ScoreContext))  Default  Score context. 
+dit(code(ScoreWithNumbers)) Score  context with numbering at  the
+Score level.   
+dit(code(BarNumberingStaffContext)) Staff context with numbering  at
+the Staff level.  
+dit(code(HaraKiriStaffContext))  
+dit(code(OrchestralPartStaffContext))
+dit(code(OrchestralScoreContext))
+)
+Using these pre-defined values, you can remove  or add items to the
+translator verb(\paper{ \translator{ \StaffContext
+                     \remove Some_engraver;
+                     \consists Different_engraver;  }})
+      
+
+
+There are four types for paper translators:
+description(
+  dit(code(Engraver_group_engraver))
+  dit(code(Hara_kiri_line_group_engraver))
+  dit(code(Line_group_engraver_group))
+  dit(code(Score_engraver))  
+)
+COMMENT( The names of these types seem somewhat confusing. )
+
+The engravers for paper output are:
+
+description(
+dit(code(Abbreviation_beam_engraver))
+dit(code(Bar_engraver)) Engraves bar lines.  Normally in code(Staff) and
+code(RhythmicStaff).  
+dit(code(Bar_number_engraver)) Engrave bar numbers.  These numbers
+appear at the start of each line.  Not normally in any translator.  Can
+be added to code(Score) for Score-wide numbering or to code(Staff) for
+numbering on each staff.  
+
+dit(code(Beam_engraver)) Handles beam requests by engraving beams.  Normally
+appears in the code(Voice) translator.  If omitted, then notes will be printed
+with flags instead of beams.
+
+dit(code(Beam_req_swallow_translator)) Swallows beam requests.  In
+code(LyricVoice).  
+dit(code(Chord_name_engraver)) Engraves chord names.  Normally in
+code(ChordNameVoice) 
+dit(code(Clef_engraver)) Engraves the clef symbol.  Normally in code(Staff).
+dit(code(Collision_engraver))
+dit(code(Dot_column_engraver)) Engraves dots on dotted notes shifted to the
+right of the note.  Normally in code(Voice).  If omitted, then dots appear on
+top of the notes.  
+dit(code(Dynamic_engraver)) Engraves dynamics symbols.  Normally in code(Voice).
+dit(code(Font_size_engraver))
+dit(code(Key_engraver)) Engraves the key signature.  Normally in code(Staff).
+dit(code(Local_key_engraver))
+dit(code(Lyric_engraver)) Engraves lyrics.  Normally in code(LyricVoice).
+dit(code(Multi_measure_rest_engraver)) Engraves multi-measure rests that are
+produced with code(R).  Normally in code(Voice).
+dit(code(Piano_bar_engraver))
+dit(code(Pitch_squash_engraver)) Treat all pitches as middle C.  Used in
+code(RhythmicStaff).  Note that the notes move, but the locations of
+accidentals stay the same. 
+dit(code(Priority_horizontal_align_engraver))
+dit(code(Repeat_engraver)) Handles repeats? In code(Staff) and 
+   code(RhythmicStaff).
+dit(code(Rest_collision_engraver)) Handles collisions of rests. In code(Staff).
+dit(code(Rest_engraver)) Engraves rests.  Normally in code(Voice).
+dit(code(Rhythmic_column_engraver))
+dit(code(Score_priority_engraver))
+dit(code(Script_engraver)) Handles note ornaments generated by code(\script).
+Normally in code(Voice).  
+dit(code(Separating_line_group_engraver))
+dit(code(Skip_req_swallow_translator))
+dit(code(Slur_engraver)) Engraves slurs.  Normally in code(Voice).
+dit(code(Span_bar_engraver)) Engraves lines across multiple staffs.  Normally
+in code(Staffgroup) and code(GrandStaff).  Removing this from code(StaffGroup)
+gives the definition of code(ChoirStaff).  
+dit(code(Span_score_bar_engraver))
+dit(code(Staff_group_bar_engraver))
+dit(code(Staff_margin_engraver)) Prints the name of the instrument
+(specified by code(Staff.instrument) and code(Staff.instr)) at the
+left of the staff.  
+dit(code(Staff_sym_engraver))
+dit(code(Stem_engraver)) Engraves stems.  Normally in code(Voice).
+dit(code(Ties_engraver)) Engraves ties.  Normally in code(Voice).
+dit(code(Time_signature_engraver)) Engraves the time signature.  Normally in
+code(Staff) and code(RhythmicStaff).
+dit(code(Timing_engraver)) Responsible for synchronizing timing information
+from staffs.  Normally in code(Score).  In order to create polyrhythmic music,
+this engraver should be removed from code(Score) and placed in code(Staff).
+dit(code(Tuplet_engraver)) Engraves tuplet brackets?  In code(Staff).
+dit(code(Vertical_align_engraver)) 
+)
+
+
+subsubsect(MIDI Types and Performers)
+
+The types available for  MIDI translators are:
+description(
+dit(code(Performer_group_performer))
+dit(code(Score_performer))
+dit(code(Staff_performer))
+)
+
+The performers for MIDI translators are:
+description(
+dit(code(Key_performer))
+dit(code(Time_signature_performer))
+dit(code(Note_performer))
+dit(code(Lyric_performer))
+dit(code(Swallow_performer))
+)
+
diff --git a/Documentation/tex/refman.yo b/Documentation/tex/refman.yo
deleted file mode 100644 (file)
index 6328f11..0000000
+++ /dev/null
@@ -1,2219 +0,0 @@
-mailto(gnu-music-discuss@gnu.org)
-COMMENT(-*-text-*-)
-
-redef(var)(1)(whenlatex(latexcommand({\normalfont\scshape )ARG1+latexcommand(}))\
-    whenhtml(sc(ARG1)))
-
-
-redef(code)(1)(tt(ARG1))
-
-
-COMMENT(
-
-  BUGS:
-
-    Causes segfault:
-
-    \score{
-      \notes{  \context Voice {
-         \repeat fold 2 { a b c d } {}
-     }
-     }
-    }
-    
-
-   restStyle=mensural doesn't seem to work (lots of characters not found
-     for rests.fly)
-
-TODO:
-   thread
-   paper size?
-   paper variables
-   the explanation of how lyrics mode parses words seems ridiculous.  
-      Is there a simple way to explain this, or is the behavior
-      too complicated for a reasonable explanation?
-   accordion symbols
-   interstaff beams (beam-interstaff.ly)
-   interstaff slurs (see preludes-1.ly)
-)
-
-
-COMMENT( 
-This document contains Mudela fragments.  You need at least
-Yodl-1.30.18 to convert this to tex or html.
-)
-
-htmlbodyopt(bgcolor)(white)
-htmlcommand(<font color=black>)
-
-latexlayoutcmds(
-\setlength{\topmargin}{-0.25in}
-\setlength{\textheight}{9in}
-\setlength{\textwidth}{5.875in} 
-\setlength{\oddsidemargin}{0.25in}   
-\setlength{\evensidemargin}{0.25in}
-\input mudela-book
-)
-
-whentexinfo(notableofcontents())
-
-article(Mudela 1.0.21 / LilyPond 1.1.49 Reference Manual)
-      (Adrian Mariano, Han-Wen Nienhuys and Jan Nieuwenhuizen)
-      (nop()PIPETHROUGH(date "+%B %d, %Y")()()nop())
-
-COMMENT(
-
-* The [ ] look weird
-
-* paragraphs have too much space.
-
-)
-
-
-latexcommand(\def\interexample{})
-latexcommand(\def\preexample{\par})
-latexcommand(\def\postexample{\par\medskip})
-latexcommand(\def\file#1{{code(#1)}})
-COMMENT(
-latexcommand(\def\texttt#1{\tt #1})
-latexcommand(\def\textbf#1{\bf #1})
-)
-
-COMMENT(urg, texinfo include breaks)
-whenhtml(
-includefile(html-disclaimer.yo-urg)
-)
-
-bf(This document is not up to date).  All rendered examples of course
-are current, but the rest probably isn't.  Adjusting the tutorial was
-considered more important than writing the reference manual.  We
-apologize for the inconvenience.  For a complete and up-to-date
-definition, see file(lily/parser.yy), file(lily/lexer.ll), and the
-init files.
-
-This document describes the the GNU LilyPond input format, which is an
-effective language for defining music.  We call this language (rather
-arrogantly) The Musical Definition Language or Mudela, for
-short.footnote(If anybody comes up with a better name, we'd gladly
-  take this. Gourlay already uses Musical Description Language,
-  G-Sharp Score Definition Language.  ISO standard 10743 defines a
-  Standard Music Description Language.  We're not being original here.)
-
-The first aim of Mudela is to define a piece of music, being complete
-from both from a musical typesetting, as from a musical performing
-point of view.
-
-The Musical Definition Language (Mudela), has a logical structure,
-making use of identifiers, that allows for flexible input, and
-definition reuse. See the documentation file file(MANIFESTO), included
-with the LilyPond sources for reasons and design considerations.
-
-
-sect(Running LilyPond)
-
-When invoked with a filename that has no extension, LilyPond will try adding
-a file(.fly) extension first, and a file(.ly) extension second.  
-If the filename ends with 
-file(.fly),  LilyPond processes  the file as music using
-file(init.fly).  In this case, LilyPond does something
-like:
-verb(\score {
-  \notes\relative c {
-    \input "yourfile.fly"
-  }
-  \paper{}
-  \midi{}
-})
-If you invoke LilyPond with a file file(foo.)var(ext) that doesn't
-have the file(.ly) extension then LilyPond will look for a file called
-file(init.)var(ext) and process this file.  The file
-file(init.)var(ext) must contain the code(\maininput) keyword or LilyPond
-will not read the user specified file.
-
-When LilyPond processes file(filename.ly) it will produce file(filename.tex) as
-output.  If file(filename.ly) contains a second code(\paper) keyword, then
-LilyPond will produce file(filename-1.tex) as well.  Subsequent code(\paper)
-keywords will produces sequentially numbered file names.  Several files can be
-specified; they will each be processed independently.
-
-sect(Syntax)
-
-subsect(Basic Mudela)
-
-A Mudela file consists of keywords with arguments and identifier
-assignments separated by spaces, tabs or newlines.  Semicolons are
-used by some keywords and are inconsistantly required in other
-circumstances.  A one line comment is introduced by a code(%)
-character.  Block comments are started by code(%{) and ended by
-code(%}).  They cannot be nested.
-
-Mudela supports several types:
-
-description(
-
-dit(integer) 
-Formed from an optional minus sign followed by digits.  Arithmetic
-operations cannot be done with integers, and integers cannot be mixed
-with reals.
-
-dit(real) 
-Formed from an optional minus sign and a sequence of digits followed
-by a emph(required) decimal point and an optional exponent such as
-code(-1.2e3).  Reals can be built up using the usual operations:
-code(+), code(-), code(*), and code(/), with parentheses for grouping.
-
-dit(string) 
-Begins and ends with the code(") character.  To include a code(")
-character in a string write code(\").  Various other backslash
-sequences have special interpretations as in the C language.  A string
-that contains no spaces can be written without the quotes.  See
-Section ref(modes) for details on unquoted strings; their
-interpretation varies depending on the situation.  On the right side
-of identifier assignments and within the code(\header) keyword,
-strings can be concatenated using the code(+) character.
-
-dit(dimension) Consists of a real followed by one of the dimension
-keywords: code(\mm), code(\pt), code(\in), or code(\cm).  Dimensions
-are converted immediately to a real which gives the dimension in
-points, so they can be mixed with reals, but the result is no longer
-of type dimension.  The keywords that require a dimension
-(code(\shape)).
-
-dit(pitch) 
-A pitch is a string which is the name of a pitch.  Example: code(a).
-The pitch names can be redefined with the code(\notenames) keyword.
-See Section(notelang) for pitch names in different languages.  Pitches
-can only be specified inside note mode which is specified with
-code(\notes).  Therefore, keywords which require pitch arguments must
-appear inside code(\notes).  
-
-dit(music) 
-Music is a compound type: arbitrarily complicated expressions with a
-hierarchical structure can be formed from simple building blocks.  The
-simplest expression of type music is a single note.  A note is formed
-from a pitch and an optional duration and must be specified within
-code(\notes).  See Section ref(notedesc) for details.  More
-complicated expressions of type music are formed by surrounding a
-sequence of expressions of type music with braces code({) and code(})
-or with angle brackets code(<) and code(>).  Items appearing in braces
-will be treated as serial. Items in angle brackets will be
-simultaneous.  So for example code({ c e g }) represents an arpeggio
-and code(< c e g >) represents a chord.  These items can be nested any
-way you like.  This simple example shows how three chords can be
-expressed in two different ways:
-mudela(fragment,verbatim,center)(
-\notes{
-  c
-  <a c' e'> <b  d' f'> <c' e' g'>
-  <{a b  c'}{c' d' e'}{e' f' g'}>
-})
-
-)
-
-
-
-subsect(Identifiers)
-
-Identifiers allow names to be assigned to constants, music, or other
-Mudela structures.  To assign an identifier you use
-var(name)=var(value) and to refer to an identifier, you preceed its
-name with a backslash: code(\)var(name).  It is legal to redefine an
-identifier in terms of its old value: code(foo = \foo * 2.0).
-Identifier assignments must appear at the top level in the Mudela
-file.  Note that semicolons are forbidden after assignments appearing
-at the top level but they are obligatory after assignments appearing
-elsewhere.  (Semicolons are also forbidden after code(\property) assignments.)
-
-An identifier can be created with any string for its name, but you
-will only be able to refer to identifiers whose names begin with a
-letter and are entirely alphanumeric.  It is also impossible to refer
-to an identifier whose name is the same as the name of a keyword.  The
-following words are keywords:
-verb(accepts         duration      midi          relative      textscript 
-alternative     font          mm            remove        time       
-bar                   musicalpitch  repeat        times      
-cadenza         header        name          scm           translator 
-chordmodifiers  in            notenames     scmfile       transpose  
-chords          include       notes         score         type       
-clef            key           paper         script        version
-cm              keysignature  partial       shape      
-consists        lyrics        penalty       skip       
-consistsend     maininput     property      spanrequest
-context         mark          pt            tempo)
-
-The right hand side of an identifier assignment is parsed completely
-when the assignment is made.  It therefore must have any context
-specified in the definition.  For example, you must write
-code(foo=\notes{a8 b c}) rather than code(foo={a8 b c}).  Even though
-the context is specified in the definition, you must refer to the
-identifier inside the correct context:
-verb(foo = \paper{ linewidth = 6.0\in; }
-\score{
-  \notes{ ... }
-  \paper{ \foo }
-})
-If code(\foo) is used here without the surrounding code(\paper) then
-an error will result.  Note however that the following is acceptible
-verb(foo = \notes { ... }
-\score{ \foo })  
-It is not necessary to specify code(\notes).
-
-Identifiers can be set equal to integers, reals, strings, music,
-durations (specified with code(\duration)), note ornaments (specified
-with code(\script), dynamics commands, or code(:)), note name tables
-(specified with code(\notenames), translator definitions, the
-code(\paper) block, the code(\midi) block or the code(\score) block.
-When identifiers are used for translators, the code(\paper),
-code(\midi), and code(\score) blocks, they may only be referred to as
-the first item in a block.  So code(\paper{\one \two}) is illegal
-because the identifier code(\two) is not the first thing in the block.
-Unlike other identifier definitions, translator identifier definitions
-can only appear within code(\midi) or code(\paper) blocks.  See
-Section ref(translators) for more information.
-
-
-
-subsect(Modes)
-label(modes)
-
-To simplify different aspects of music definition (entering the notes
-and manipulating them) Mudela has three different input modes which
-affect how unquoted strings are interpreted.
-In each mode, words are identified on the input.  If code("word") is
-encountered, it is treated as a string.  If code(\word) is
-encountered it is treated as a keyword or as an identifier.  The
-behavior of the modes differs in two ways: different modes treat
-unquoted words different, and different modes have different rules for
-deciding what is a word.  
-
-description(
-
-dit(Normal mode)
-At the start of parsing, Mudela is in normal mode.
-In normal mode, a word is an alphabetic character followed by
-alphanumeric characters.  If code(word) is encountered on the input it
-is treated as a string. 
-
-dit(Note mode) Note mode is introduced by the keyword
-code(\notes).  In Note mode, words can only contain alphabetic
-characters.  If code(word) is encountered, LilyPond first checks for a
-notename of code(word).  If no notename is found, then code(word) is
-treated as a string.  If you mistype a notename, the parser will most
-likely complain that you should be in code(\lyrics) mode to do lyrics. 
-
-dit(Chord mode) Chord mode is instroduced by the keyword code(\chords).
-Very similar to Note mode.  
-COMMENT(I'm not sure how it differs)
-
-dit(Lyric mode) Lyrics mode is introduced by the keyword
-code(\lyrics).  This mode is has rules that make it easy to include
-punctuation and diacritical marks in words.  A word in Lyrics mode
-begins with: an alphabetic character, code(_),
-code(?), code(!), code(:), code('), 
-the control characters code(^A) through code(^F), code(^Q) through
-code(^W), code(^Y), code(^^), any 8-bit character with ASCII code over
-127, or a two character combination of a backslash followed by one
-of code(`), code('), code(") or code(^).  
-Subsequent characters of a word can be any character that is not a
-digit and not white space.  One important consequence of this is that
-a word can end with code(}), which may be confusing if you thought the
-code(}) was going to terminate lyrics mode.  Any code(_) characters
-which appear in an unquoted word are converted to spaces, providing a
-mechanism for introducing spaces into words without using quotes.  
-Quoted words can also be used in lyrics mode to specify words that
-cannot be specified with the above rules.  Here are some examples.
-Not all of these words are printable by TeX().  
-verb(a&@&@&TSI|{[    % a word
-\'afoo}         % a word
-1THtrhortho     % not a word because it starts with a digit
-``Hello''       % not a word because it starts with `
-Leise DOEXPAND(Fl\)DOEXPAND("u\)ss{}teren meine Sapfe       % 4 words
-_ _ _ _         % 4 words, each one a space
-))
-
-It is possible to create words that break the rules by prefixing them with the
-dollar sign code($).  Regardless of the context, a word beginning with code($)
-extends until the next white space character.  Such words can contain numbers
-(even in Note mode), or other forbidden characters.  The dollar sign can be
-used to create and access identifiers that could not otherwise be used.  
-
-COMMENT(
-These modes are of a lexical nature. Normal and Note mode largely
-resemble each other, save the possibility of entering Reals, 
-meaning of code(_) and the resolution of words
-
-What's this about reals?  When can you enter them or not enter them?)
-
-
-sect(Note Description)
-label(notedesc)
-
-subsect(Basic Note Specification)
-
-A note specification has the form 
-var(pitch)[var(octavespec)][code(!)][code(?)][var(duration)].
-The pitch of the note is specified by the note's name.  
-
-LilyPond has predefined note names for various languages.  The default
-names are the Dutch note names.  The notes are specified by the
-letters code(c) through code(b), where code(c) is an octave below
-middle C and the letters span the ocatave above that C.  
-In Dutch, a sharp is formed by adding
-code(-is) to the end of a pitch name.  A flat is formed by adding code(-es).
-Double sharps and double flats are obtained by adding code(-isis) or
-code(-eses).  
-Lily has predefined sets of notenames
-for various nop(languages).  See Section ref(notelang) for details.
-Rests are specified with the note name code(r) or code(R).  
-There is also a note name code(s) which produces a nonprinting note of the
-specified duration.
-
-The optional octave specification takes the form of a series of single
-quote 
-code(') characters or a series of comma code(,) characters.  Each
-code(') raises the pitch by one octave; each code(,) lowers the pitch
-by an octave.  
-
-mudela(fragment,verbatim,center)(
-c' d' e' f' g' a' b' c''
-)
-
-mudela(fragment,verbatim,center)(
-cis' dis' eis' fis' gis' ais' bis'
-)
-
-mudela(fragment,verbatim,center)(
-ces' des' es' fes' ges' as' bes'
-)
-
-mudela(fragment,verbatim,center)(
-cisis' eisis' gisis' aisis' beses'
-)
-
-mudela(fragment,verbatim,center)(
-ceses' eses' geses' ases' beses'
-)
-
-Whenever a C-sharp is desired,  you must specify a C-sharp.  LilyPond
-will determine what accidentals to  typeset  depending on the  key and
-context.   
-A reminder accidental can be forced by
-using the  optional exclamation mark `code(!)'
-on the pitch.
-A cautionary accidental, i.e., an accidental within paranthesis
-can be obtained using the optional question mark `code(?)' on the pitch.
-mudela(fragment,verbatim,center)(
-cis' d' e' cis'  c'? d' e' c'!  
-)
-
-
-Durations are entered as their reciprocal values
-mudela(fragment,verbatim,center)(
-a'1 a'2 a'4 a a'8 a a'16 a'32 a'64
-)
-mudela(fragment,verbatim,center)(
-r1 r2 r4 r8 r16 r32
-)
-
-If the duration is omitted then it is set equal to the previous
-duration.  If there is no previous duration, then a quarter note is
-assumed.  
-The duration can be followed by a dot code(.) to obtain dotted note
-lengths.  
-mudela(fragment,verbatim,center)(
-a'4. b'4.
-)
-
-Extra long notes can be obtained using the code(\breve) and
-code(longa) durations:
-mudela(fragment,verbatim,center)(
-c'\breve gis'\longa
-)
-
-In order to get triplets and other tuplets, you must use the
-code(\times) keyword which multiplies the duration by a fraction.  The
-syntax is code(\times) var(fraction) var(music).  The length of all of
-the specified music will be multiplied by the fraction and the
-fraction's denominator will be printed over the notes.  The most
-common tuplet is the triplet in which 3 notes have the length of 2, so
-the notes are 2/3 their written length:
-mudela(fragment,verbatim,center)( b'4 \times 2/3 {c'4 c' c'} d'4 d'4 )
-If you try to use code(\times) as the first thing in your music, you
-may encounter the warning ``No one to print a tuplet start bracket''.
-This happens because the Tuplet-engraver is in Voice and no Voice has
-been created yet.  You must explicitly specify the Voice context in
-this situation 
-mudela(fragment,verbatim,center)( 
-\context Voice { \times 2/3 {c'4 d' e'}} 
-)
-
-A shorthand for code(\times) is to write code(*)var(fraction) after a
-duration.  This shorthand will not label triplets correctly, but
-it is convenient for long rests.  
-For long rests with durations equal to an integer number of whole notes,
-LilyPond produces output that indicates the duration of the rest.  If you use
-code(r) then one rest symbol will be printed and several measures left blank.
-If you use code(R) then all of the measure will be filled with whole rests.
-mudela(fragment,verbatim,center)(
-r1 r1*3 R1*3
-)
-If you set the code(Score.skipBars) property, then only one measure will be
-printed; with code(R), a number indicating the length of the rest will be
-displayed.  
-mudela(fragment,verbatim,center)(
-\property Score.skipBars=1
-r1 r1*3 R1*3
-)
-Even though the code(\times) command is not explicit, it is still
-necessary to specify a code(Voice) context if the music begins with
-rests lengthened using code(*).  
-Otherwise, the following will result:
-mudela(fragment,verbatim,center)(
-R1*3 c'1 d'
-)
-
-
-subsect(Automatic Beam Generation)
-label(autobeam)
-
-By default, Lilypond will generate beams automatically.  This feature can be
-disabled by setting the code(Voice.beamAuto) property to 0.  It can be
-overridden for specific cases by specifying explicit beams as
-described in Section ref(manualbeam).  
-
-In order to decide how to generate beams, Lilypond uses a large number
-of Voice properties, whose default values appear in
-file(auto-beam-settings.ly).  In general, beams can begin anywhere,
-but their ending location is significant.  Beams can end on a beat, or
-at durations specified by the code(Voice.beamAutoEnd) property.  To
-end beams every quarter note, for example, you could use set
-code(Voice.beamAutoEnd) equal to code("1/4").  To end beams every
-three eighth notes you would set it to code("3/8").  The same syntax
-can be used to specify beam starting points using code(Voice.beamAutoBegin).
-
-To allow different settings for different time signatures, these
-property names can start with code(time)var(N)code(_)var(M) to
-restrict the definition to var(N)code(/)code(M) time.  So for example,
-to specify beams ending only for 6/8 time you would use the property
-code(Voice.time6_8beamAutoEnd).  To allow different endings for notes
-of different durations, the duration can be tacked onto the end of the
-property.  To specify beam endings for beams that contain 32nd notes,
-you would use code(Voice.beamAutoEnd_32).
-
-
-subsect(Note Spanners: Beams, Slurs and Ties)
-label(manualbeam)
-
-A beam is specified by surrounding the beamed notes with brackets
-code([) and code(]).  
-mudela(fragment,verbatim,center)(
-[a'8 a'] [a'16 a' a' a'] 
-)
-Some more elaborate constructions:
-mudela(fragment,verbatim,center)(
-[a'16 <a' c''> c'' <a' c''>]
-\times 2/3 { [e'8 f' g'] }
-)
-
-Another type of spanner is the slur.  Slurs connects chords and try to
-avoid crossing stems.  A slur is started with code(CHAR(40)) and stopped with
-code(CHAR(41)).  The starting code(CHAR(40)) appears to the right of the first note
-in the slur.  The terminal code(CHAR(41)) apppears to the left of the first
-note in the slur.  This makes it possible to put a note in slurs from
-both sides:
-mudela(fragment,verbatim,center)(
-f'()g'()a' [a'8 b'(] a'4 g' )f'
-)
-
-A tie connects two adjacent note heads of the same pitch.  
-When used with chords, it
-connects all of the note heads whose pitches match.  
-Ties are indicated using the tilde symbol
-code(~) by analogy with TeX()'s tie which connects words.  
-Note that if you try to tie together chords which have no common
-pitches, then a warning message will appear and no tie will be created.
-(Note that ties between different pitches can be enabled using the
-property Voice.oldTieBehavior.)
-
-mudela(fragment,verbatim,center)(
-e' ~ e' <c' e' g'> ~ <c' e' g'>
-)
-
-It is possible to create beams and slurs that cross staffs by switching the
-context:
-mudela(fragment,verbatim,center)(
-\context PianoStaff <
-\context Staff=one \notes\relative c'{
-  \stemup
-  [c8 c \translator Staff=two \stemup c c]
-  \translator Staff=one
-  d4( \translator Staff=two )a4
-  }
-\context Staff=two \notes{ \clef bass; s1}
->
-)
-
-
-
-subsect(Note Ornaments)
-
-A variety of symbols can appear above and below notes to indicate
-different characteristics of the performance.  These symbols can be
-added to a note with `var(note)code(-\)var(name)'.  Numerous symbols
-are defined in file(script.ly) and file(script.scm).  Symbols can be
-forced to appear above the note by writing
-`var(note)code(^\)var(name)', and they can be forced to appear below
-by writing `var(note)code(_\)var(name)'.  Here is a chart showing
-symbols above notes, with the name of the corresponding symbol
-appearing underneath.
-
-mudela()(
-\score{
- < \notes{ c''-\accent c''-\marcato c''-\staccatissimo f'-\fermata 
-          c''-\stopped c''-\staccato c''-\tenuto c''-\upbow c''-\downbow
-          c''-\lheel c''-\rheel  c''-\ltoe  c''-\rtoe  c''-\turn
-          c''-\open  c''-\flageolet  c''-\reverseturn 
-          c''-\trill
-          c''-\prall c''-\mordent c''-\prallprall  c''-\prallmordent
-          c''-\upprall c''-\downprall c''-\thumb c''-\segno c''-\wheel}
-  \context Lyrics \lyrics{  
-        accent__ marcato__ staccatissimo__ fermata stopped__
-        staccato__ tenuto__ upbow downbow__ lheel__ rheel__ ltoe
-        rtoe__ turn__ open__ flageolet reverseturn__ trill__ prall__
-        mordent prallprall__ prallmordent__ uprall__ downprall thumb 
-       segno wheel}
-  >
-  \paper{ linewidth = 5.875\in;          
-          indent = 0.0;        }
- }
-)
-
-In addition, it is possible to place arbitrary strings of text or
-TeX() above or below notes by using a string instead of an identifier:
-`code(c^"text")'.  Fingerings can be placed by simply using digits.
-All of these note ornaments appear in the printed output but have no
-effect on the MIDI rendering of the music.
-
-To save typing,  a few common symbols  can  be  abbreviated  with
-single characters:
-mudela()(
-\score{ \notes {
-        \property Voice.textStyle = typewriter
-        c''4-._"c-." s4
-        c''4--_"c-{}-"  s4
-        c''4-+_"c-+" s4
-        c''4-|_"c-|" s4
-        c''4->_"c->"  s4
-        c''4-^_"c-\\^{ }"  s4 }
-        \paper { linewidth = 12.\cm; }})
-
-Dynamic marks are specified by using an identifier after a note without a dash:
-code(c4 \ff).  Note that this syntax is inconsistent with the syntax for other
-types of ornaments.  The available dynamic marks are: code(\pppppp),
-code(\ppppp), code(\pppp), code(\ppp), code(\pp), code(\p), code(\mp),
-code(\mf), code(\f), code(\ff), code(\fff), code(\ffff), code(\fffff),
-code(\ffffff), code(\fp), code(\sf), code(\sff), code(\sp), code(\spp),
-code(\sfz) and code(\rfz).
-
-A crescendo mark is started with code(\cr) and terminated with
-code(\rc).  A decrescendo mark is started with code(\decr) and
-terminated with code(\rced).  There are also shorthands for these
-marks.  A crescendo can be started with code(\<) and a decrescendo can
-be started with code(\>).  Either one can be terminated with code(\!).
-Note that code(\!) must go before the last note of the dynamic mark whereas
-code(\rc) and code(\rced) go after the last note.  Because these marks are
-bound to notes, if you want to get several marks during one note, you must use
-spacer notes. 
-mudela(fragment,verbatim,center)(
-c'' \< \! c''   d'' \decr e'' \rced 
-< f''1 {s4 \< \! s4 \> \! s2 } >)
-
-
-COMMENT(Broken!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!)
-
-Tremolo marks can be printed by a note by adding code(:)[var(length)]
-after the note.  The length must be at least 8.  A var(length) value
-of 8 gives one line across the note stem.  
-If the length is omitted,
-then the last value is used, or the value of the code(Abbrev)
-property if there was no last value.  To place tremolo marks in
-between two notes, begin with code([:)var(length) and end with code(]).
-The tremolo marks will appear instead of beams.  Putting more than two
-notes in such a construction will produce odd effects. 
-
-[TREMOLO BEAMS TEMPORARILY OUT OF ORDER]
-
-COMMENT(mudela (fragment,verbatim,center)(
-c'2:8 c':32 [:16 e'1 g'] [:8 e'4 f']
-))
-
-COMMENT(
-Is the last paragraph correct?  Is it called "tremolo"?  Why is
-"abbreviation" used?  (What is the unabreviated form?)
-
-COMMENT(
-mudela (fragment,verbatim,center)(
-c'4:32 [:16 c'8 d'8]
-))
-
-)
-
-
-sect(Other Ways to Enter Pitches)
-
-subsect(Pitch Names in Other Languages)
-label(notelang)
-
-The pitch names can be easily redefined using the code(\notenames) command.
-Note name definitions have been provided in various languages.  
-Simply include the language specific init file.  For example:
-code(\include "english.ly").  The available language files and the names
-they define are:
-
-verb(                        Note Names               sharp       flat
-nederlands.ly  c   d   e   f   g   a   bes b   -is         -es
-english.ly     c   d   e   f   g   a   bf  b   -s/-sharp   -f/-flat
-deutsch.ly     c   d   e   f   g   a   b   h   -is         -es
-norsk.ly       c   d   e   f   g   a   b   h   -iss/-is    -ess/-es
-svenska.ly     c   d   e   f   g   a   b   h   -iss        -ess
-italiano.ly    do  re  mi  fa  sol la  sid si  -d          -b
-catalan.ly     do  re  mi  fa  sol la  sid si  -d/-s       -b)
-
-subsect(Relative Pitch Specification)
-label(relative)
-
-One very common error when entering music is to place notes in the wrong
-octave.  One way to avoid being confused by large numbers of octave changing
-marks is to use
-the code(\relative) keyword. 
-Music which appears within code(\relative) is
-interpreted differently.  The octave of a note is determined by making it as
-close to the previous note as possible.  The octave changing marks code(') and
-code(,) can then be added to raise or lower this note by octaves.  You have to
-specify a starting pitch because the first note of a list has no predecessor.  
-
-mudela(fragment,verbatim,center)(
-\relative c'' { c d b c, d b c' d 
-                b c,, d b }
-)
-
-When the preceeding item is a chord, the first note of the chord is used to
-determine the first note of the next chord.  But other notes within the second
-chord are determined by looking at the immediately preceeding note.  
-
-mudela(fragment,verbatim,center)(
-\relative c' { c <c e g> 
-    <c' e g> <c, e' g> }
-) 
-
-The code(\relative) keyword can only appear in music, so there must be a
-surrounding code(\notes) keyword which does not appear in the fragments shown
-above.  Also note that if the music passed to a code(\relative) keyword 
-contains a code(\transpose) keyword, the tranposed music will not be
-processed in relative mode.  An additional code(\relative) must be placed
-inside the code(\transpose).  If code(\relative) will be used several
-times, or if it will be used in the same music with code(\transpose),
-then you may get bizarre effects.  This can be fixed by using an
-explicit code(Staff) context.   
-
-
-subsect(Tranposition of Pitches)
-label(transpose)
-
-Another way to modify the meaning of the note names is to use the
-code(\transpose) keyword.  This keyword allows you to transpose music.
-To use transposition, specify the pitch that middle C should be tranposed to.
-It is important to distinguish between enharmonic pitches as they can produce
-different transpositions.  To transpose up half a step, for example, either 
-code(\transpose cis') or code(\transpose des') will work.  But the first
-version will print sharps and the second version will print flats.  
-In this example, a scale in the key of E is transposed to F, or to E-sharp 
-with odd results.
-mudela(fragment,verbatim,center)(
-\relative c' { \key e; 
-  e fis gis a b cis dis e }
-)
-mudela(fragment,verbatim,center)(
-\transpose des' \relative c' { \key e; 
-   e fis gis a b cis dis e }
-)
-mudela(fragment,verbatim,center)(
-\transpose cis' \relative c' { \key e; 
-    e fis gis a b cis dis e }
-)
-If you want to use both code(\transpose) and code(\relative), then you must use
-code(\transpose) first.  Any code(\relative) keywords that are outside the 
-code(\transpose) have no effect on notes that appear inside the
-code(\transpose).  As with code(\relative), using code(\transpose)
-repeatedly can cause bizarre effects.  An explicit code(Staff) context
-will eliminate the problems.  
-
-sect(Chords)
-
-Chords can be entered either by name or by listing the notes in angle brackets.
-Chords can be displayed either as notes or by name.  To enter chords by name,
-either place them inside the code(\chords) keyword, or use
-code(\notes) and surround them with
-code(@) characters. 
-Chord names have the form
-var(tonic)[var(duration)][code(-)var(modifier)][code(^)var(subtractions)][code(/)var(inversion)]
-The var(tonic) should be the tonic note of the chord, and the var(duration) is
-the chord duration in the usual notation.  There are two kinds of modifiers.
-One type is chord additions, which are obtained by listing intervals separated
-by dots.  An interval is written by its number with an optional code(+) or
-code(-) to indicate raising or lowering by half a step.  A chord additions has
-two effects:  it adds the specified interval and all lower odd numbered
-intervals to the chord, and it may lower or raise the specified interval.
-Intervals can be separated by a dot (code(.)) if you need to list
-several unmodified intervals.
-Repeating a code(-) character will remove a half step from the preceeding
-interval.  
-mudela(fragment,verbatim,center)(
-\transpose c''{ 
-\chords{
-  c1 c-3- c-7 c-8 c-9  
-  c-9-5+7+ c-3-5- c-4.6.8
-}}) 
-The second type of modifier that may appear after the code(-) is 
-a named modifier. 
-Named modifiers are listed in the file file(chord-modifiers.ly).  The
-available modifiers are code(m) and code(min) which lower
-the 3rd half a step, code(aug) which raises the 5th, code(dim) which lowers
-the 5th, code(maj) which adds a raised 7th, and code(sus) which replaces the
-5th with a 4th.  
-mudela(fragment,verbatim,center)(
-\transpose c''{ 
-\chords{
-  c1-m c-min c-maj c-aug c-dim c-sus
-}}) 
-
-Chord subtractions are used to eliminate notes from a chord.  The notes to be
-subtracted are listed after a code(^) character, separated by dots.  
-mudela(fragment,verbatim,center)(
-\transpose c''{ 
-\chords{
-  c1^3 c-7^5.3 c-8^7
-}}) 
-
-Chord inversions can be specified by appending code(/) and the name of a
-single note to a chord.  This has the effect of lowering the specified note by
-an octave so it becomes the lowest note in the chord.  If the
-specified note is not in the chord then a warning will be printed.  
-mudela(fragment,verbatim,center)(
-\transpose c'''{ 
- @c1@ @c/e@ @c/g@ @c-7/e@
-}) 
-Throughout these examples, chords have been shifted around the staff
-using code(\transpose).  The code(\relative) keyword has odd effects
-when combined with named chords.  
-
-For displaying printed chord names, use the code(ChordNames) context.  
-The chords may be entered either using the notation described above,
-or directly using angle brackets. 
-mudela(fragment,verbatim)(
-<
-  \context ChordNames { \chords{ a b c} \notes{ < d f g >  < e g b > } }
-  \context Staff \notes{ a b c' d' e' }
->
-)
-Lilypond examines chords specified as lists of notes to determine a
-name to give the chord.  By default, LilyPond will not try to identify
-chord inversions:
-mudela(fragment,verbatim,center)(
-<
-  \context ChordNames { 
-     \notes{ < e' g' c'' > } }
-  \context Staff \notes{ c' } 
->)
-If you want inversions to be recognized, you must set the property
-code(Score.chordInversion): 
-mudela(fragment,verbatim,center)(
-<
-  \property Score.chordInversion = 1
-  \context ChordNames { 
-       \notes{ < e' g' c'' > } }
-  \context Staff \notes{ c' } 
->)
-
-
-
-sect(Lyrics)
-
-Lyrics are entered like notes, with pitches replaced
-by text.  For example code(Twin-4 kle4 twin-4 kle4) enters four
-syllables, each with quarter note duration.  Note that the hyphen has
-no special meaning for lyrics, and does not introduce special symbols.
-See Section ref(modes) for a description of what is interpreted as a lyric.
-
-In order to instruct LilyPond to write lyrics underneath the
-staff, you must enter the lyrics context with code(\context Lyrics).  
-Lyrics should be entered in lyrics mode which is entered with code(\lyrics).
-
-Spaces can be introduced into a lyric either by using quotes (code("))
-or by using an underscore without quotes: code(He_could4 not4).  All
-unquoted underscores are converted to spaces.  Here is a full example: 
-mudela(verbatim)(\score{
-  <  \notes \transpose c'' {c d e c | c d e c | e f g'2 | 
-                              e'4 f g'2 \bar "|."; }
-     \context Lyrics \lyrics { 
-              DOEXPAND(Fr\)`e-4 re Ja- que DOEXPAND(Fr\)`e- re Ja- que
-              Dor- mez vous?2 Dor-4 mez vous?2  }
-  >
-})
-
-COMMENT(
-URG
-                        Fr\`e-4 re Ja- que
-                        Fr\`e- re Ja- que
-Why does this warrant an URG?
-)
-
-When one word is attached to many notes, you may 
-want a  continuous line after the lyric to show  this.   To achieve
-this effect, add a code(__) lyric as a separate word 
-after the lyric to be extended.  
-This will create
-an extender, a line  that extends over the entire duration of 
-the lyric.  This line will run all the way to the start of the next
-lyric, so you may want to shorten it by using a blank lyric.  
-mudela(verbatim)(\score{
-< \notes \relative c''{ 
-     a4()b()c()d c()d()b()a c()d()b()a }
-   \context Lyrics \lyrics {
-     foo1 __  bar2. __ _4 baz1 __ }
-> })
-     
-If you want to have hyphens centred between syllables (rather than attached
-to the end of the first syllable) you can use the special code(--) lyric as
-separate word between syllables. This will result in a hyphen whose length
-varies depending on the space between syllables, and centred between the
-syllables. For example: 
-mudela(verbatim)(\score{
-  <  \notes \transpose c'' {c d e c | c d e c | e f g'2 | 
-                              e'4 f g'2 \bar "|."; }
-     \context Lyrics \lyrics { 
-              DOEXPAND(Fr\)`e4 -- re Ja -- que DOEXPAND(Fr\)`e -- re Ja -- que
-              Dor -- mez vous?2 Dor4 -- mez vous?2  }
-  >
-})
-
-
-
-sect(Time)  
-
-LilyPond aligns all musical objects according to the amount of time
-they occupy.  All musical objects have a duration.  When music is
-written sequentially using braces the duration is the sum of the 
-durations of the elements.  When music is stacked into simultaneous music 
-using angle
-brackets, the duration is the maximum of the durations of the
-elements.  
-
-Because LilyPond knows the durations of all musical elements, the time
-signature enables LilyPond to draw bar lines automatically.  The time
-signature is specified with the code(\time) keyword: code(\time 3/4).
-If no time signature is given, LilyPond assumes 4/4.  The automatic
-generation of bar lines can toggled with the code(\cadenza) keyword or the
-code(Staff.barNonAuto) property,
-and an incomplete measure at the start of the music can be created
-using the code(\partial) keyword: code(\partial 8*2;) creates a
-starting measure lasting two eighth notes.
-
-In order to help with error checking, you can insert bar markers in
-your music by typing code(|).  Whenever LilyPond encounters a code(|)
-that doesn't fall at a measure boundary, she prints a warning message.
-
-
-COMMENT(
-sect(Composition: forming bigger structures)
-label(sec:grammar)
-
-The computer savy user may be interested in a more formal
-specification.  We can capture what have learned about forming
-sentences in Mudela in a context-free grammar.
-
-latexcommand(\smallskip)
-
-table(2)(lll)(
-        row(cell(em(Music))cell(: em(Note)))
-        row(cell()cell(code(|) em(Rest)))
-        row(cell()cell(code(|) code({) em(MusicList) code(})))
-        row(cell()cell(code(|) code(<) em(MusicList) code(>)))
-        row(cell()cell(code(|) em(Command)))
-        row(cell()cell(code(|) code(\context) em(string) code(=) em(string)  em(Music)))
-        row(cell()cell(;))
-        row(cell(em(MusicList))cell(: em(empty)))
-        row(cell()cell(code(|)  em(MusicList)  em(Music)))
-        row(cell()cell(;))
-)
-
-latexcommand(\smallskip)
-
-In mathematics you can form expressions by combining expressions,
-which are ultimately some kind of atom or terminal symbol.  The same
-goes for Mudela: there are some basic building blocks, and by
-combining those you create complex music.
-
-You can combine music in three ways:
-itemize(
-it()If you enclose a sequence of music-elements in braces ( code({)
-    and code(}) ), then you form another kind of music called
-sequential music
-    with those pieces.
-  The duration of sequential composition is the sum of the durations of its elements
-  verb(
-      { c c g g a a g2 }      % twinkle twinkle
-      { { c c g g} { a a g2 } }
-  )
-it()You can stack music by enclosing a sequence of music elements
-    with code(<) and code(>). This is called simultaneous music.  
-    The duration of a simultaneous composition is the maximum of the durations 
-    of its elements Example:
-    verb(
-        <a4 {cis8 cis8} e'4>      % a-major chord
-    )
-it()You can form music by transposing music:
-    verb(
-    \transpose  
-        d       % from c to the d that's almost one octave down
-                { e4 f4 }       % the horizontal music
-)
-it()verb(\context)
-it()verb(\property)
-it()verb(\translator)
-it()verb(\relative)
-)
-
-Of course you can also combine these three mechanisms.
-verb(
-{ c <c e> <c e g> <c e g \transpose d' dis > }  % 4 increasing chords
-)
-
-END OF COMMENT  )
-
-
-sect(Repeats)
-
-In order to specify repeats, use the code(\repeat) keyword.  By
-default, repeats are printed with repeat symbols.  
-mudela(fragment,verbatim,center)(
-c'1
-\repeat semi 2 { c'4 d' e' f' }
-\repeat semi 2 { f' e' d' c' })
-In order to specify alternate endings, use the code(\alternative)
-keyword.  
-mudela(fragment,verbatim,center)(
-c'1
-\repeat semi 2 {c'4 d' e' f'} 
-\alternative { {d'2 d'} {f' f} })
-The code(semi) specifies that normal repeats will be printed.  If
-code(fold) is used instead then the alternatives will be stacked:
-mudela(fragment,verbatim,center)(
-c'1
-\repeat fold 2 {c'4 d' e' f'} 
-\alternative { {d'2 d'} {f' f} })
-When the repeats involve partial measures, it will be necessary to use
-code(\partial) keywords in a somewhat unexpected way 
-to indicate some measure lengths.
-mudela(fragment,verbatim)(
-\context Staff { \relative c'{
-  \repeat semi 2 { \partial 4; e | c2 d2 | e2 f2 | }
-  \alternative { { g4 g g } {\partial 1; a a a a | b1 } }
-}})
-Repeats can be unfolded by setting the property Staff.unfoldRepeats.
-Note also that if your music begins with code(\repeat), you must place
-it in an explicit code(Staff) context or you will get bizarre results. 
-
-If you don't give enough alternatives for all of the repeats, then the
-first alternative is assumed to be repeated enough to equal to
-specified number of repeats.  
-mudela(fragment,verbatim)(
-\context Staff { \relative c'{
-  \repeat semi 3 { \partial 4; e | c2 d2 | e2 f2 | }
-  \alternative { { g4 g g } {\partial 1; e4 e e } 
-                 {\partial 1; a a a a | b1 } }
-}})
-
-
-sect(Keywords)
-
-Keywords sometimes appear alone, but usually they require arguments.
-A keyword may have a single argument, a sequence of arguments in
-braces, or a sequence of arguments separated by spaces and terminated
-by a semicolon.  The precise syntax of each keyword is shown below.
-Keywords must appear in the right context.  If you use a keyword in
-the wrong place, even if the usage is syntactically correct, you will
-get the message ``parse error'' from LilyPond.
-
-
-description(
-
-dit(code(\absdynamic) code({) var(code) code(})) Internal keyword for
-printing dynamic marks such as $f$ under music.  The parameter
-var(code) is unsigned and specifies the dynamic mark to print.
-Normally you should use the more user friendly abbreviations defined
-in the init file file(dynamic.ly).
-
-FIXME: Changed to code(\textscript) var(text) var(style).  Defines
-a text-request.
-
-dit(code(\accepts) var(string)code(;)) This keyword can appear only within a
-code(\translator) block.  It specifies what contexts are allowed with the
-context that is being defined.  See Section ref(translators).  
-
-dit(code(\alternative) code({) var(music1) var(music2) ... code(}))
-Specifies alternative endings.  Must come after a code(\repeat) keyword.  
-
-dit(code(\bar) var(bartype)code(;)) Prints a special bar symbol, or at
-measure boundaries, replaces the regular bar symbol with a special
-symbol.  The argument var(bartype) is a string which specifies the
-kind of bar to print.  Options are code(":|"), code("|:"),
-code(":|:"), code("||"), code("|."), code(".|"), or code(".|.").
-These produce respectively a right repeat, a left repeat, a double
-repeat, a double bar, a start bar, an end bar, or a thick double bar.
-If var(bartype) is set to code("empty") then nothing is printed, but a
-line break is allowed at that spot.  Note that the printing of special bars
-has no effect on the MIDI output.
-
-dit(code(\cadenza) var(togglevalue)code(;)) Toggles the automatic generation
-of bar lines.  If var(togglevalue) is 0 then bar line generation is
-turned off.   If var(togglevalue) is  1  then a bar is  immediately
-printed and bar generation is turned on.
-
-dit(code(\clef) var(clefname)code(;)) Allowed only in music.  
-Sets the current clef.  The argument is
-a string which specifies the name of the clef.  Several clef names are
-supported.  If code(_8) or code(^8) is added to the end of a clef
-name then the clef lowered or raised an octave will be generated.  
-Here are the supported clef names with middle C shown in each clef:
-mudela(center)(
-\score{
-  \notes{ \cadenza 1;
-   %\property Voice.textStyle = typewriter
-   \clef subbass; c'4-"\kern-10mm subbass" 
-           \clef bass;    c'4^"\kern -8mm bass"
-           \clef baritone; c'4_"\kern -10mm baritone"
-           \clef varbaritone; c'4^"\kern -10mm varbaritone"
-           \clef tenor;     c'4_"\kern -10mm tenor"
-           \clef "G_8";   c'4^"\kern -6mm G\_8" 
-   }  
-   \paper{ linewidth= 4.5 \in; }
-}
-)
-mudela(center)(
-\score{
-  \notes{\cadenza 1; \clef alto;    c'4_"\kern -10mm alto"
-      %     \clef scarlatti;    c'4_"\kern -4mm scarlatti"
-           \clef mezzosoprano; c'4^"\kern -10mm mezzosoprano"
-           \clef soprano;  c'4_"\kern -10mm soprano"
-           \clef treble;  c'4^"\kern -6mm treble"
-           \clef french;  c'4_"\kern -10mm french" }  
-  \paper{ linewidth= 4.5 \in; }
-}
-)
-The treble  clef  can also  be obtained using  the  names code(G) or
-code(violin).  The bass clef is also available by code(\clef  F). 
-
-dit(code(\chord) var(chordlist)) Parse var(chordlist) in chords mode.
-
-dit(code(\chordmodifiers) var(modifierlist)) Specify the text chord
-modifiers that may appear after chord names.  These are specified in
-the file file(chord-modifiers.ly).  
-
-dit(code(\cm)) Specify a dimension in centimeters. 
-
-dit(code(\consists) var(string)code(;)) This keyword can appear only within a
-code(\translator) block.  It specifies that an engraver or performer named
-var(string) should be added to the translator.  See Section
-ref(translators).
-
-dit(code(\consistsend) var(string)code(;)) Unknown function.  
-
-dit(code(\context) var(contexttype) [code(=) var(contextname)]
-var(music) or code(\context) var(translatortype)code(;)) The first
-variant is used only within music to create an instance of a
-context.  The new context can optionally be given a name.  The
-specified var(music) is processed in the new context. The second
-variant appears within a code(\translator) block and specifies the
-type of translator being created.
-
-dit(code(\duration) code({) var(length) var(dotcount) code(})) Specify note
-duration.  The parameter var(length) is the negative logarithm (base
-2) of duration: 1 is a half note, 2 is a quarter note, 3 is an eighth
-note, etc.  The number of dots  after  the  note is given by
-var(dotcount). 
-
-dit(code(\font) var(string)) Internal keyword.  Used within
-code(\paper) to specify the font.
-
-
-dit(code(\header) code({) var(key1) = var(val1); var(key2) = var(val2); ... code(}))
-Specifies information about the music.  A header should appear at the
-top of the file describing the file's contents.  If a file has
-multiple code(\score) blocks, then a header should appear in
-each score block describing its contents.  Tools like code(ly2dvi) can
-use this information for generating titles.   Key values that are used
-by ly2dvi are: title, subtitle, composer, opus, poet, instrument,
-metre, arranger, piece and tagline.  
-
-dit(code(\in)) Specify a dimension in inches.  
-
-dit(code(\include) var(file)) Include the specified file.  The
-argument var(file) is a string.  The full filename including the
-file(.ly) extension must be given, and the filename must be quoted.
-(An unquoted string will not work here.)
-
-dit(code(\key) var(pitch) var(type) code(;)) Change the key signature. 
-var(type) should be code(\major) or code(\minor) to get
-var(pitch)-major or var(pitch)-minor, respectively. The second
-argument is optional, the default is major keys. 
-The var(\context) argument can also be given as an integer, which tells
-the number of semitones that should be added to the pitch given in the
-subsequent code(\key) commands to get the corresponding major key,
-e.g. code(\minor) is defined as 3.  The standard mode names 
-code(\ionian), code(\locrian), code(\aeolian), code(\mixolydian),
-code(\lydian), code(\phrygian), and code(\dorian) are also defined. 
-
-dit(code(\keysignature) var(pitchseq)code(;))
-Specify an arbitrary key signature.  The pitches from var(pitch) will
-be printed in the key signature in the order that they appear on the list.
-
-dit(code(\lyrics) var(lyriclist)) Parse var(lyriclist) in lyrics mode.
-
-dit(code(\maininput)) Internal command.  This command is used for creating init
-files like file(init.fly) that read the user file into the middle of another
-file.  It is illegal to use this command in a user file.  
-        
-dit(code(\mark) var(unsigned)code(;) or code(\mark) var(string)code(;)) 
-Allowed in music only.  Prints a mark over or under (depending on the
-code(markDirection) property) the staff.
-You must add code(Mark_engraver) to the Score context.
-
-dit(code(\midi) var(statementlist)) Appears in a score block to
-indicate that musical output should be produced and to set output
-parameters.  Can also appear at the top level to set default output
-parameters.  See code(\tempo).
-
-dit(code(\mm)) Specify a dimension in millimeters. 
-
-dit(code(\musicalpitch) code({) var(octave) var(note) var(shift) code(})) 
-Specify note pitch.  The octave is specified by an integer,
-zero for the octave containing middle C.  The note is a number from 0
-to 7, with 0 corresponding to C and 7 corresponding to B.  The shift
-is zero for a natural, negative to add flats, or positive to add
-sharps.
-
-dit(code(\name) var(context)code(;)) Appears within code(\translator) to
-specify the name of the context that the translator handles. See Section
-ref(translators).   
-
-dit(code(\notenames) var(assignmentlist)) Define new note names.  This
-keyword can appear only at the top level. 
-The argument is a list of definitions of  the form
-var(name) = var(pitch),  where var(pitch) is specified with the
-code(\musicalpitch) keyword.  
-
-dit(code(\notes) var(music)) Enter note mode and process the
-specified music. 
-
-dit(code(\paper) var(statmentlist)) 
-Appears in a score block to indicate that the music should be printed
-or to set output parameters.  Can also appear at the top level to set
-default output parameters for all of the score blocks.  
-The var(statmentlist) contains statements that change features of the
-output.  See Section ref(paper).  
-
-dit(code(\partial) var(duration)code(;)) Specify that the first measure of
-the music lasts only for the specified duration.  Use also to specify
-the duration of the first measure of the argument to
-code(\alternative).  
-
-dit(code(\penalty) var(int)code(;)) Allowed only in music.
-Discourage or encourage line breaks.  See identifiers code(\break) and
-code(\nobreak) in Section ref(ident). 
-
-dit(code(\property) var(contextname)code(.)var(propname) code(=) var(value))
-Sets the var(propname) property of the context var(contextname) to the
-specified var(value).  All three arguments are strings.  Depending on
-the context it may be necessary to quote the strings or to leave space
-on both sides of the dot. 
-
-dit(code(\pt)) Specify a dimension in points. 
-
-dit(code(\relative) var(pitch) var(music)) Processes the specified
-var(music) in relative pitch
-mode.  In this mode, the octave of a pitch is chosen so that the
-pitch is closest to the preceeding pitch.  
-The argument var(pitch) is
-the starting pitch for this comparision.  In the case of chords, the
-first note of a chord is used as the base for the first pitches in the next
-chord.  See Section ref(relative).
-
-dit(code(\remove) var(string)code(;)) Can appear only in a
-code(\translator) block.  Specifies that a performer or engraver named
-var(string) should be removed.  See Section ref(translators).  
-
-dit(code(\repeat) var(style) var(count) code({) var(music) code(}))
-Repeats the specified
-music var(count) times.  Alternative endings can be specified by adding a
-code(\alternative) keyword after the code(\repeat).  The var(style)
-parameter should be either code(semi), for regular repeats,  or
-code(fold) for repeats displayed vertically. 
-
-dit(code(\scm) var(scheme)code(;)) Embeds specified Scheme code.  
-
-dit(code(\scmfile) var(filename)code(;)) Reads Scheme code from the specified
-file.  
-
-dit(code(\score) var(statementlist)) Create a Score context.  This
-is the top level notation context.  
-COMMENT(this still needs work)
-
-dit(code(\script) var(alias)) Prints a symbol above or below a note.
-The argument is a string which points into the script-alias table
-defined in file(script.scm).  The scheme definitions specify whether
-the symbol follows notes into the staff, dependence of symbol
-placement on staff direction, and a priority for placing several
-symbols over one note.  Usually the code(\script) keyword is not used
-directly.  Various helpful identifier definitions appear in
-file(script.ly).
-
-dit(code(\shape) code(=) var(indent1) var(width1) var(indent2)
-var(width2) ... code(;)) Allowed only within code(\paper).  Each pair
-of var(indent) and var(width) values is a dimension specifying how far
-to indent and how wide to make the line.  The indentation and width of
-successive lines are specified by the successive pairs of dimensions.
-The last pair of dimensions will define the characeristics of all
-lines beyond those explicitly specified.
-
-COMMENT(First pair of dimensions seems to be skipped.  At least it is
-in the example file denneboom.ly.)
-
-dit(code(\skip) var(duration)code(;)) Skips the amount of time specified by
-var(duration).  A gap will be left for the skipped time with no notes
-printed.  It works in Note Mode or Lyrics Mode (but generates a
-mysterious error in lyrics).
-
-dit(code(\spanrequest) var(startstop) var(type)).  Define a spanning request
-var(startstop) is either -1 (code(\start)) or 1 (code(\stop)). The var(type)
-parameter is a string that describes what should be started.  Supported types
-are "crescendo", "decrescendo", "beam", "slur".  This is an internal command.
-Users should use the abbreviations  which are defined in the
-initialization file file(dynamic.ly).
-
-dit(code(\tempo) var(duration) = var(perminute)code(;)) Used within
-code(\midi) or within music to specify the tempo.  For example, 
-`code(\midi { \tempo 4 = 76;})' requests output with 76 quarter notes
-per minute.  Note that if the music contains several tempo commands,
-only the last one is used to set the tempo for the entire MIDI output. 
-COMMENT(Is this true?)
-
-dit(code(\textscript) var(text) var(style)) Print the specified text as a
-script in the specified style.  
-
-dit(code(\time) var(numerator)code(/)var(denominator)code(;)) Change the time
-signature.  The default time signature is 4/4.  
-
-dit(code(\times) var(numerator)code(/)var(denominator) var(music))
-Multiply the duration of var(music) by the specified fraction.
-
-dit(code(\translator) var(statements) or code(\translator)
-var(context) = var(name)) The first variant appears only within
-code(\paper) and specifies a translator for
-converting music to notation.  The translator is specified with a
-single code(\context) statement and a series of code(\accepts), and
-code(\consists) statements.  See Section ref(translators). 
-The second variant appears in 
-music.  It specifies that the current the contexts
-contained within the specified context should be shifted to the
-context with the specified name.  
-
-COMMENT( \translator seems like a strange name for the second
-operation, and is the overloading desireable? )
-
-dit(code(\transpose) var(pitch) var(music)) Transposes the specified
-music.  Middle C is tranposed to var(pitch).  This is allowed in music only,
-and if it appears inside code(\relative), then any notes specified for
-transposition should be specified inside another code(\relative).  See Section
-ref(transpose).  
-
-dit(code(\type) var(string)code(;)) Use inside code(\translator) to
-specify the type of the translator.  
-
-dit(code(\version) var(string)) Specify the version of Mudela that a
-file was written for.  The argument is the version number, for example
-code("1.0.1").  Note that the Mudela version is different from the
-LilyPond version.
-
-)  
-
-
-sect(Notation Contexts)
-
-Notation contexts provide information that appears in printed music
-but not in the music itself.  A new musical context is created using
-the code(\context) keyword: `code(\context) var(contexttype) [code(=)
-var(contextname)] var(music)'.  The following context types are
-allowed.
-
-description(
-
-dit(code(LyricVoice)) Corresponds to a voice with lyrics.  Handles the printing
-of a single line of lyrics.  
-
-dit(code(Voice)) Corresponds to a voice on a staff.
-  This context handles the conversion of noteheads,
-  dynamic signs, stems, beams, super- and subscripts, slurs, ties and rests.
-
-dit(code(ChordNamesVoice)) A voice with chord names.  Handles printing
-of a line of chord names.  
-
-dit(code(ChordNames))  Typesets chord names.  Can contain
-code(ChordNamesVoice) contexts.  
-
-dit(code(Lyrics)) Typesets lyrics.  It can contain code(LyricVoice) contexts.
-
-dit(code(Staff)) Handles clefs, bar lines, keys,
-  accidentals.  It can contain code(Voice) contexts.
-
-dit(code(RhythmicStaff)) A context like code(Staff) but for printing
-rhythms.  Pitches are ignored; the notes are printed on one line.  
-It can contain code(Voice) contexts. 
-
-dit(code(GrandStaff)) Contains code(Staff) or code(RhythmicStaff)
-contexts.  It adds a brace on the left side grouping the staffs
-together. The bar lines of the contained staffs are connected vertically.
-It can contain code(Staff) contexts.
-
-dit(code(PianoStaff)) Just like code(GrandStaff) but with
-code(minVerticalAlign) set equal to code(maxVerticalAlign) so that
-interstaff beaming and slurring can be used.  
-
-dit(code(StaffGroup)) Contains code(Staff) or code(RhythmicStaff)
-contexsts.  Adds a bracket on the left side, grouping the staffs
-together.  The bar lines of the contained staffs are connected vertically.
-It can contain code(Staff), code(RhythmicStaff), code(GrandStaff) or code(Lyrics) contexts.  
-
-dit(code(ChoirStaff)) Identical to code(StaffGroup) except that the
-contained staffs are not connected vertically.  
-
-dit(code(Score)) This is the top level notation context.  It is specified with
-the code(\score) keyword rather than the code(\context) command.  No
-other context can contain a code(Score) context.  This context handles
-the administration of time signatures.  It also makes sure that items
-such as clefs, time signatures, and key-signatures are aligned across
-staffs.  It can contain code(Lyrics), code(Staff),
-code(RhythmicStaff), code(GrandStaff), code(StaffGroup), and
-code(ChoirStaff) contexts.
-
-)
-
-The various contexts have properties associated with them.  These
-properties can be changed using the code(\property) command:
-`code(\property) var(context)code(.)var(propname) code(=) var(value)'.
-Properties can also be set within the code(\translator) block
-corresponding to the appropriate context.  In this case, they are
-assigned by `var(propname) code(=) var(value)'.  The settings made with
-code(\property) are processed after settings made in the code(\translator)
-block, so the code(\property) settings will override code(\translator)
-settings.  
-
-The code(\property) keyword will create any property you specify.
-There is no guarantee that a property will actually be used.  If you
-spell a property name wrong, there will be no error message.  In order to find
-out what properties are used, you must search the source code 
-for code(get_property).  
-Properties that are set in one context are inherited by all of the
-contained contexts.  This means that a property valid for the Voice
-context can be set in the Score context (for example) and thus take
-effect in all Voice contexts.  
-
-subsubsubsect(Lyrics properties)
-
-description(
-
-dit(code(textStyle)) Set the font for lyrics.  The available font
-choices are code(roman), code(italic), code(bold), code(large),
-code(Large), code(typewriter), and code(finger).  The code(finger)
-font can only display numbers.  Note also that you must be careful
-when using code(\property) in Lyrics mode.  Because of the way strings
-are parsed, either put quotes around the arguments to code(\property)
-or be sure to leave a space on both sides of the dot.
-
-
-)
-
-subsubsubsect(Voice properties)
-
-description(  
-
-dit(code(stemLeftBeamCount)) Specify the number of beams to draw on
-the left side of the next note.  
-
-dit(code(stemRightBeamCount)) Specify the number of beams to draw on
-the right side of the next note.  
-
-dit(code(beamAuto)) If set to 1 then beams are generated
-automatically.  If set to zero then no beams will be automatically
-generated.  The default value is 1.  
-
-dit(code(beamAutoEnd)) Specifies when automatically generated beams
-can end.  See Section ref(autobeam).
-
-dit(code(beamAutoBegin)) Specifies when automatically generated beams
-can start.  See Section ref(autobeam). 
-
-dit(code(textEmptyDimension)) If set to 1 then text placed above or
-below the staff is assumed to have zero width.  
-
-dit(code(noteheadStyle)) Selects type of note head.  Choices are
-code(cross), code(diamond), code(harmonic), code(transparent), and
-code("").  They are shown in that order below.  
-mudela(center)(
-\score{
-  \notes{ 
-     \property Staff.barNonAuto = 1
-     \property Voice.noteHeadStyle = cross 
-     a'
-     \property Voice.noteHeadStyle = diamond
-     a'
-     \property Voice.noteHeadStyle = harmonic
-     a'
-     \property Voice.noteHeadStyle = transparent
-     a' 
-     \property Voice.noteHeadStyle = ""
-     a'
-  }
- \paper{ linewidth = -1.;}
-}
-)
-
-
-dit(code(restStyle)) Change the layout of rests shorter than quarter notes. 
-Currently, the standard layout code(restStyle="") and mensural notation
-code(restStyle="mensural") are available.
-
-dit(code("midiInstrument")) Sets the instrument for MIDI output.  This
-property name must be quoted because of the embedded underscore.  If
-this property is not set then LilyPond will use the code(instrument)
-property.  This must be set to one of the strings on the list of MIDI
-instruments that appears in Section ref(midilist).  If you use a
-string which is not listed, LilyPond will silently substitute piano. 
-
-dit(code(transposing)) Tranpose the MIDI output.  Set this property to
-the number of half-steps to transpose by.
-
-dit(code(oldTieBehavior)) Set to 1 in order to get old tie behavior
-where ties would connect unequal pitches.  
-
-dit(code(verticalDirection)) Determines the direction of stems, subscripts,
-beams, slurs, and ties.  Set to code(\down) to force them down,
-code(\up) to force them up, or code(\free) to let LilyPond decide.
-This can be used to distinguish between voices on the same staff.  The
-code(\stemdown), code(\stemup), and code(\stemboth) identifiers set
-this property.  See also the identifiers code(\voiceone),
-code(\voicetwo), code(\voicethree) and code(\voicefour).
-
-dit(code(slurVerticalDirection)) Set to code(\free) for free choice of slur
-direction, set to code(\up) to force slurs up, set to code(\down) to
-force slurs down.  The shorthands code(\slurup), code(\slurdown), and
-code(\slurboth) are available.
-
-dit(code(tieVerticalDirection)) Set to code(\free) for free choice of tie
-direction, set to code(\up) to force ties up, set to code(\down) to
-force ties down.  
-
-dit(code(slurdash)) Set to 0 for normal slurs, 1 for dotted slurs, and
-a larger value for dashed slurs.  Identifiers code(\slurnormal) and
-code(\slurdotted) are predefined to set the first two settings.
-
-dit(code(horizontalNoteShift)) Set to 1 to enable LilyPond to shift notes
-horizontally if they collide with other notes.  This is useful when
-typesetting many voices on one staff.  The identifier code(\shift) is
-defined to enable this.  If there are several voices, every voice must
-have a distinct value of this property or no shifting will occur.
-
-dit(code(dynamicDir)) Determines location of dynamic marks.  Set to
-code(\up) to print marks above the staff; set to code(\down) to print
-marks below the staff.
-
-dit(code(dynamicStyle)) Set the text style for dynamics.  
-
-dit(code(textStyle)) Set the text style for superscripts and
-subscripts.  See above for list of text styles.
-
-dit(code(textScriptPadding)) Determines the extra space added between
-super-/subscripted text and the closest staff line or note.
-
-dit(code(fontSize)) Can be used to select smaller font sizes for
-music.  The normal font size is 0, and the two smaller sizes are -1
-and -2.
-
-dit(code(abbrev)) Set length for tremolo to be used if no length is
-explicitly specified.
-
-dit(code(tupletDirection)) Determines the direction of triplets and 
-other tuplets.  Set to code(\down) to force them below the staff,
-code(\up) to force them above, or code(\free) to let LilyPond decide.
-
-dit(code(tupletVisibility)) Determines whether tuplets of notes are
-labelled.  Setting to 0 shows nothing; setting to 1 shows a number;
-setting to 2 shows a number and a bracket if there is no beam; setting
-to 3 shows a number, and if there is no beam it adds a bracket;
-setting to 4 shows both a number and a bracket unconditionally. The 
-code(pletoff) and code(pleton) identifiers set the property to 0 and 3, 
-respectively. 
-
-dit(code(markScriptPadding)) Determines the extra space added between
-the mark and the closest staff line or note.
-
-dit(code(markDirection)) Determines if marks should be printed above
-or below the staff. Set to code(\up) to print marks above the staff;
-set to code(\down) to print marks below the staff.
-
-dit(code(articulationScriptPadding)) Determines the extra space added 
-between articulation marks, such as staccato, tenuto, trill, up/down 
-bow or fermata, and the closest staff line or note.
-)
-
-subsubsubsect(Staff properties)
-
-description(
-
-dit(code(createInitdefaultClef)) Specify whether clefs are created on
-default?  (Doesn't seem to do anything.)
-
-dit(code(barNumberDirection)) Set to code(\up) or code(\down) to put
-bar numbers above or below the staff.  
-
-dit(code(barNumberHangOnClef)) Set to 1 to cause bar numbers to appear
-above or below the clef instead of on the bar line.
-
-dit(code(barNumberScriptPadding)) Sets extra space between the bar
-number and the bar it labels.
-
-dit(code(barSize)) Specify the height of the bar lines if it should be
-different than the staff height.
-
-dit(code(markHangOnClef)) Set to 1 to cause marks to appear by clefs
-instead of by bar lines.
-
-dit(code(marginDirection)) Set to code(\left) or code(\right) to
-specify location of marginal scripts.  
-
-dit(code(marginScriptPadding)) Specify extra space for marginal scripts.
-
-dit(code(forgetAccidentals)) Causes accidentals to be printed at every
-note instead of remembered for the duration of a measure.  
-
-dit(code(noResetKey)) Do not reset the key at the start of a measure.
-Accidentals will be printed only once and are in effect until
-overridden, possibly many measures later. 
-
-dit(code(staffLineLeading)) Specifies the distance (in points) between lines
-of the staff.  
-
-dit(code(numberOfStaffLines)) Specifies the number of staff lines. The
-default is 5. 
-
-dit(code(postBreakPadding)) Extra space in points to be added after
-the clef, time signature and key signature on the staff.
-
-dit(code(barAtLineStart)) Set to 1 to produce a bar line after the
-clef at the start of each line (but not at the beginning of the
-music).  
-
-dit(code(voltaVisibility)) Set to 0 to suppress the printing
-of brackets over alternate endings specified by code(\alternative).
-
-dit(code(voltaSpannerDuration)) Set to an integer to control the size
-of the brackets printed by code(\alternative).  The integer specifies
-the number of whole notes duration to use for the brackets.  It seems
-to be rounded to the nearest measure.  This can be used to shrink the
-length of brackets in the situation where one alternative is very
-large.  It may have odd effects if the specified duration is longer
-than the music given in an code(\alternative).  
-
-dit(code(barNonAuto)) If set to 1 then bar lines will not be printed
-automatically; they must be explicitly created with code(\bar) keywords.
-Unlike with the code(\cadenza) keyword, measures are still counted.  Bar
-generation will resume according to that count if this property is set to
-zero.  
-
-dit(code(defaultClef)) Determines the default clef.  See code(\clef)
-keyword.
-
-dit(code(nuberOfStaffLines)) Sets the number of lines that the staff has.
-dit(code(barAlways)) If set to 1 a bar line is drawn after each note.
-
-dit(code(defaultBarType)) Sets the default type of bar line.  See
-code(\bar) keyword.
-
-dit(code(keyoctaviation)) If set to 1, then keys are the same in all
-octaves.  If set to 0 then the key signature for different octaves can
-be different and is specified independently: code(\keysignature bes
-fis').  The default value is 1.  Can be set to zero with
-code(\specialkey) or reset to 1 with code(\normalkey).
-
-dit(code(instrument) and code(instr)) If code(Staff_margin_engraver)
-is added to the Staff translator, then the code(instrument) property
-is used to label the first line of the staff and the code(instr)
-property is used to label subsequent lines.  If the
-code(midiInstrument) property is not set then code(instrument) is
-used to determine the instrument for MIDI output.
-COMMENT(This prints the instrument name on top of the staff lines.)
-
-dit(code(createKeyOnClefChange)) Set to a nonempty string if you want key
-signatures to be printed when the clef changes.  Set to the empty string (the
-default) if you do not want key signatures printed.
-
-
-dit(code(timeSignatureStyle)) Changes the default two-digit layout
-   for time signatures. The following values are recognized:
-   description(
-      dit(code(C)) 4/4 and 2/2 are typeset as C and struck C,
-      respectively. All other time signatures are written with two digits.
-      dit(code(old)) 2/2, 3/2, 3/4, 4/4, 6/4, 9/4, 6/8 and 9/8 are typeset 
-      with old-style mensuration marks. All other time signatures are 
-      written with two digits.
-      dit(code(1)) All time signatures are typeset with a single
-      digit, e.g. 3/2 is written as 3.
-      dit(code(C2/2), code(C4/4), code(old2/2), code(old3/2),
-      code(old3/4), code(old4/4), code(old6/4), code(old9/4), 
-      code(old6/8) or code(old9/8))Tells Lilypond to use a 
-      specific symbol as time signature.
-   )
-The different time signature characters are shown below with
-their names:
-mudela(center)(
-\score{
-  \notes\relative c'' {
-\property Voice.textStyle = typewriter
-\property Staff.timeSignatureStyle = "C2/2"
-\time 2/2; a2^"C2/2" a2 
-\property Staff.timeSignatureStyle = "C4/4"
-\time 2/2; a2^"C4/4" a2 
-\property Staff.timeSignatureStyle = "old2/2"
-\time 2/2; a2^"old2/2" a2 
-\property Staff.timeSignatureStyle = "old3/2"
-\time 2/2; a2^"old3/2" a2 
-\property Staff.timeSignatureStyle = "old4/4"
-\time 2/2; a2^"old4/4" a2 
-\property Staff.timeSignatureStyle = "old6/4"
-\time 2/2; a2^"old6/4" a2 
-\property Staff.timeSignatureStyle = "old9/4"
-\time 2/2; a2^"old9/4" a2 
-\property Staff.timeSignatureStyle = "old6/8"
-\time 2/2; a2^"old6/8" a2 
-\property Staff.timeSignatureStyle = "old9/8"
-\time 2/2; a2^"old9/8" a2 
-}
-   \paper{ linewidth= 4.5 \in; }
-}
-)
-
-dit(code(clefStyle)) Determines how clefs are typeset. When set to
-code(transparent), the clefs are not printed at all, when set to
-code(fullSizeChanges), clef changes in the middle of a line are
-typeset with a full size clef. By default, clef changes are typeset in
-smaller size.
-
-)
-   
-subsubsubsect(GrandStaff properties)
-
-description( 
-
-dit(code(alignmentReference)) Set to code(\center) for vertical
-alignment reference point to be in the center of the vertical group.
-Set to code(\up) to put the reference point at the top of the group. 
-
-dit(code(maxVerticalAlign)) Set the maximum vertical distance between
-staffs.
-
-dit(code(minVerticalAlign)) Set the minimum vertical distance between
-staffs.  
-
-)
-
-subsubsubsect(Score properties)
-
-description(
-
-dit(code(skipBars)) Set to 1 to skip the empty bars that are produced
-by multimeasure notes and rests.  These bars will not appear on the
-printed output.  Set to zero (the default) to expand multimeasure
-notes and rests into their full length, printing the appropriate
-number of empty bars so that synrchonization with other voices is
-preserved.  COMMENT(meaning of "skip" here seems to be different from
-the meaning used for the keyword \skip.)
-
-dit(code(beamquantisation)) Set to code(\none) for no quantization.
-Set to code(\normal) to quantize position and slope.  Set to
-code(\traditional) to avoid wedges.  These three settings are
-available via code(\beamposfree), code(\beamposnormal), and
-code(\beampostraditional).
-
-dit(code(beamslopedamping)) Set to code(\none) for undamped beams.
-Set to code(\normal) for damped beams.  Set to code(\infinity) for
-beams with zero slope.  The identifiers code(\beamslopeproportional),
-code(\beamslopedamped), and code(\beamslopezero) each set the
-corresponding value.
-
-dit(code(chordInversion)) Determines whether LilyPond should look for
-chord inversions when translating from notes to chord names.  Set to 1
-to find inversions.  The default is 0 which does not look for inversions.
-
-)
-
-
-
-sect(Pre-defined Identifiers)
-label(ident)
-
-Various identifiers are defined in the initialization files to
-provide shorthands for some settings.  
-
-description(
-dit(code(\aeolian)) Used as the second argument of the code(\key)
-keyword to get an aeolian mode. 
-dit(code(\break)) Force a line break in music by using a large
-argument for the keyword code(\penalty). 
-dit(code(\center)) Used for setting textalignment property.  Is set to 0.
-dit(code(\cr)) Start a crescendo.
-dit(code(\decr)) Start a decrescendo.
-dit(code(\dorian)) Used as the second argument of the code(\key)
-keyword to get a dorian mode.
-dit(code(\down)) Used for setting direction setting properties.  Is
-equal to -1.  
-dit(code(\f)) Print forte symbol on the preceeding note.
-dit(code(\ff)) Print fortissimo symbol on the preceeding note. 
-dit(code(\fff)) Print fortississimo symbol on preceeding note. 
-dit(code(\ffff)) Print fortissississimo symbol on preceeding note.
-dit(code(\fffff)) Print fffff symbol on preceeding note.
-dit(code(\ffffff)) Print ffffff symbol on preceeding note.
-dit(code(\fp)) Print fortepiano symbol on preceeding note. 
-dit(code(\free)) Used for setting direction setting properties.  Is
-equal to 0.  
-dit(code(\Gourlay)) Used for setting the paper variable
-code(castingalgorithm).  Is equal to 1.0.  
-dit(code(\infinity)) Used for setting the Score.beamslopedamping
-property.  Is actually equal to 10000.  
-dit(code(\ionian)) Used as the second argument of the code(\key)
-keyword to get an ionian mode. 
-dit(code(\left)) Used for setting textalignment property.  Is equal to -1.
-dit(code(\locrian)) Used as the second argument of the code(\key)
-keyword to get a locrian mode. 
-dit(code(\lydian)) Used as the second argument of the code(\key)
-keyword to get a lydian mode. 
-dit(code(\major)) Used as the second argument of the code(\key)
-keyword to get a major key.
-dit(code(\minor)) Used as the second argument of the code(\key)
-keyword to get a minor key.
-dit(code(\mixolydian)) Used as the second argument of the code(\key)
-keyword to get a mixolydian mode.
-dit(code(\mf)) Print mezzoforte symbol on preceeding note. 
-dit(code(\mp)) Print mezzopiano symbol on preceeding note. 
-dit(code(\nobreak)) Prevent a line break in music by using a large
-negative argument for the keyword code(\penalty). 
-dit(code(\none)) Used for setting Score.beamslopedamping and
-Score.beamquantisation properties.  Is equal to 0.
-dit(code(\normal)) Used for setting Score.beamslopedamping and
-Score.beamquantisation properties.  Is equal to 1.
-dit(code(\normalkey)) Select normal key signatures where each octave
-has the same key signature.  This sets the Staff.keyoctaviation property.
-dit(code(\p)) Print a piano symbol on preceeding note. 
-dit(code(\phrygian)) Used as the second argument of the code(\key)
-keyword to get a phrygian mode.
-dit(code(\pp)) Print pianissimo symbol on preceeding note. 
-dit(code(\ppp)) Print pianississimo symbol on preceeding note. 
-dit(code(\pppp)) Print pianissississimo symbol on preceeding note.
-dit(code(\ppppp)) Print ppppp symbol on preceeding note.
-dir(code(\pppppp)) Print pppppp symbol on preceeding note.
-dit(code(\rc)) Terminate a crescendo. 
-dit(code(\rced)) Terminate a decrescendo
-dit(code(\rfz)) Print a rinforzato symbol on preceeding note.
-dit(code(\right)) Used for setting textalignment property.  Is set to 1.
-dit(code(\sf)) Print a subito-forte symbol on preceeding note. 
-dit(code(\sff)) Print a subito-fortissimo symbol on preceeding note.
-dit(code(\sfz)) Print a sforzato symbol on preceeding note. 
-dit(code(\shiftoff)) Disable horizontal shifting of note heads that collide.  
-Sets the Voice.horizontalNoteShift property.
-dit(code(\shifton)) Enable note heads that collide with other note heads
-to be shifted horiztonally.  Sets the Voice.horizontalNoteShift property.
-dit(code(\slurboth)) Allow slurs to be above or below notes.  This
-sets the Voice.slurVerticalDirection property. 
-dit(code(\slurdown)) Force slurs to be below notes. This sets the
-Voice.slurVerticalDirection property. 
-dit(code(\slurup)) Force slurs to be above notes.  This sets the
-Voice.slurVerticalDirection property.  
-dit(code(\sp)) Print a subito-piano symbol on preceeding note.
-dit(code(\spp)) Print a subito-forte symbol on preceeding note.
-dit(code(\specialkey)) Allow keys signatures do differ in different
-octaves.  This sets the Staff.keyoctaviation property.  
-dit(code(\stemboth)) Allow stems, beams, and slurs to point either
-direction.  This sets the Voice.verticalDirection property. 
-dit(code(\stemdown)) Force stems, beams, and slurs to point down.
-This sets the Voice.verticalDirection property. 
-dit(code(\stemup)) Force stems, beams and slurs to point up.  This
-sets the Voice.verticalDirection property. 
-dit(code(\traditional)) Used for setting the 
-Score.beamquantisation property.  Is equal to 2.  
-dit(code(\up)) Used for setting various direction properties.  Is
-equal to 1. 
-dit(code(\voiceone)) Enter Voice context called code(one) and force stems down.
-(See code(\stemdown).)
-dit(code(\voicetwo)) Enter Voice context called code(two) and force stems
-up. (See code(\stemup).)
-dit(code(\voicethree)) Enter Voice context called code(three) and force stems
-up.  
-dit(code(\voicefour)) Enter Voice context called code(four), force stems down
-and turn on horizontal shifting.  (See code(\stemdown) and code(\shifton).)
-dit(code(\Wordwrap)) Used for setting the paper variable
-code(castingalgorithm).  Equal to 0.0.  
-)
-
-
-sect(Output)
-label(output)
-label(paper)
-
-The output produced by LilyPond is controlled by the code(\paper) and
-code(\midi) keywords.  These keywords appear in the code(\score) block
-to indicate that printed or musical output should be produced.  If
-neither keyword appears in a code(\score) block, then paper output is
-produced but MIDI output is not produced.  
-
-The contents of the code(\paper) and code(\midi) blocks can change the
-output in various ways.  These blocks can appear at the top level of a
-Mudela file to set default parameters for each type of output.  It is
-still necessary to explicitly specify the output type in the
-code(\score) blocks if you don't want the default behavior of
-producing only paper output.  
-
-The code(\paper) and code(\midi) blocks 
-may begin with an optional identifier reference.  No
-identifier references are allowed anywhere else in the block.  
-The code(\paper) block can contain the code(\shape) keyword; the
-code(\midi) block can contain the code(\tempo) keyword.  Both of them
-can contain code(\translator) keywords.  The code(\paper) block can
-also contain identifier assignments and parameter assignments.  Unlike
-at the top level, these assignments must be terminated by a semicolon.
-
-
-subsect(Paper variables)
-
-Warning: this section is outdated and inaccurate.  
-
-There are a large number of paper variables that are used to control
-details of the layout.  Usually you will not want to change these
-variables; they are set by default to vaules that depend on the font
-size in use.  The only way to find out what variables are supported is
-to search the source code for code(get_var).  Two variables that you
-may want to change are code(linewidth) and code(indent).
-
-In order to change the font size used for the output, many variables
-need to be changed.  Some identifiers and initialization files can
-simplify this process.  The default size is 20pt.  In order to select
-a different size, you must do two things.  At the top level, do
-code(\include "paper)var(SZ)code(.ly") where var(SZ) is the height of
-the staff in points.  Values presently allowed are 11, 13, 16, 20, and
-26.  This loads some definitions, but does not cause them to take
-effect.  In order to actually change the size, you must use one of the
-identifiers: code(\paper_eleven), code(\paper_thirteen),
-code(\paper_sixteen), code(\paper_twenty) or code(\paper_twentysix)
-inside a code(\paper) block.
-
-
-description(
-  dit(var(integer)) If an integer appears on the left side of an
-assignment then a code(\font) keyword must appear on the right
-side.  This defines a music font at a particular size.  See Voice
-property code(fontSize).
-
-dit(code(arithmetic_basicspace) and code(arithmetic_multiplier))
-The space taken by a note is determined by the formula 
-COMMENT(
-
-)verb(arithmetic_multiplier * ( c + log2 (time) ))COMMENT(
-
-) where code(time) is the amount of time a note occupies.  The value
-of code(c) is chosen such that the smallest space within a measure is
-arithmetic_basicspace.  The smallest space is the one following the
-shortest note in the measure.  Typically arithmetic_basicspace is set
-to the width of a quarter note head.
-
-dit(code(beam_dir_algorithm)) Specify algorithm for determining
-whether beams go up or down.  It is real valued.  If set to 2.0 then
-majority selection is used.  If set to 3.0, then mean selection is
-used based on the mean center distance.  If set to 4.0 then median
-selection is used, based on the median center distance.  
-dit(code(castingalgorithm)) 
-dit(code(crescendo_shorten))
-dit(code(forced_stem_shorten)) Stems that have been forced to go the
-unnatural direction are shortened by this amount.  Equal to
-dit(code(forced_stem_shorten0))
-dit(code(gourlay_energybound))
-dit(code(gourlay_maxmeasures)) Maximum number of measures per line
-when using Gourlay method.
-Decreasing this greatly reduces computation time.  Default value: 10.  
-dit(code(indent)) Sets the indentation of the first line of music.  
-dit(code(interbeam))
-dit(code(interbeam4))
-dit(code(interline))  The distance between two staff
-lines, calculated from the center of the lines.  
-dit(code(linewidth))  Sets the width of the lines.  If it is set to
--1.0, then a single unjustified line is produced.  
-dit(code(notewidth)) Width of an average note head.  
-dit(code(output)) Specifies an alternate
-name for the TeX() output.  A file(.tex) extension will be added to
-the string you specify.
-dit(code(rulethickness)) Determines thickness of staff lines and bars. 
-dit(code(slur_clip_angle))
-dit(code(slur_clip_height))
-dit(code(slur_clip_ratio))
-dit(code(slur_height_limit)) Specifies the maximum height of slurs.
-Normally equal to staff_height.
-dit(code(slur_ratio)) Specifes the ratio of slur hight to slur width
-to aim for.  Default value is 0.3.  
-dit(code(slur_rc_factor))
-dit(code(slur_slope_damping)) Allows slurs to start and end at
-different heights ????  Default value is 0.5.
-dit(code(slur_thickness)) Specify slur thickness.  Equal to code(1.4 *
-\staffline) by default.  
-dit(code(slur_x_gap)) Horizontal space between note and slur.  Set to
-code(\interline / 5) by default.  
-dit(code(slur_x_minimum))
-dit(code(staffheight)) The height of the staff from the center of the
-bottom line to the center of the top line.  Equal to to code(4 * \interline).
-dit(code(stem_length)) Specify length of stems for notes in the staff
-that don't have beams.  
-dit(code(stemthickness)) Specifies the thickness of the stem lines.  
-dit(code(tie_slope_damping))
-dit(code(tie_x_minimum))
-)
-
-
-subsect(MIDI Instrument Names)
-label(midilist)
-
-The MIDI instrument name is set by the code(Staff.midiInstrument)
-property or, if that property is not set, the code(Staff.instrument)
-property.  The instrument name should be chosen from this list.  If
-string does not exactly match one from this list then LilyPond uses
-the default piano.
-
-COMMENT( acordina = accordion, tango accordian = concertina
-         distortion guitar = distorted guitar
-         orchestral strings = harp 
-         pan flute = wood flute? )
-
-verb("acoustic grand"               "contrabass"             "lead 7 (fifths)"
-"bright acoustic"              "tremolo strings"        "lead 8 (bass+lead)"
-"electric grand"               "pizzicato strings"      "pad 1 (new age)"
-"honky-tonk"                   "orchestral strings"     "pad 2 (warm)"
-"electric piano 1"             "timpani"                "pad 3 (polysynth)"
-"electric piano 2"             "string ensemble 1"      "pad 4 (choir)"
-"harpsichord"                  "string ensemble 2"      "pad 5 (bowed)"
-"clav"                         "synthstrings 1"         "pad 6 (metallic)"
-"celesta"                      "synthstrings 2"         "pad 7 (halo)"
-"glockenspiel"                 "choir aahs"             "pad 8 (sweep)"
-"music box"                    "voice oohs"             "fx 1 (rain)"
-"vibraphone"                   "synth voice"            "fx 2 (soundtrack)"
-"marimba"                      "orchestra hit"          "fx 3 (crystal)"
-"xylophone"                    "trumpet"                "fx 4 (atmosphere)"
-"tubular bells"                "trombone"               "fx 5 (brightness)"
-"dulcimer"                     "tuba"                   "fx 6 (goblins)"
-"drawbar organ"                "muted trumpet"          "fx 7 (echoes)"
-"percussive organ"             "french horn"            "fx 8 (sci-fi)"
-"rock organ"                   "brass section"          "sitar"
-"church organ"                 "synthbrass 1"           "banjo"
-"reed organ"                   "synthbrass 2"           "shamisen"
-"accordion"                    "soprano sax"            "koto"
-"harmonica"                    "alto sax"               "kalimba"
-"concertina"                   "tenor sax"              "bagpipe"
-"acoustic guitar (nylon)"      "baritone sax"           "fiddle"
-"acoustic guitar (steel)"      "oboe"                   "shanai"
-"electric guitar (jazz)"       "english horn"           "tinkle bell"
-"electric guitar (clean)"      "bassoon"                "agogo"
-"electric guitar (muted)"      "clarinet"               "steel drums"
-"overdriven guitar"            "piccolo"                "woodblock"
-"distorted guitar"             "flute"                  "taiko drum"
-"guitar harmonics"             "recorder"               "melodic tom"
-"acoustic bass"                "pan flute"              "synth drum"
-"electric bass (finger)"       "blown bottle"           "reverse cymbal"
-"electric bass (pick)"         "skakuhachi"             "guitar fret noise"
-"fretless bass"                "whistle"                "breath noise"
-"slap bass 1"                  "ocarina"                "seashore"
-"slap bass 2"                  "lead 1 (square)"        "bird tweet"
-"synth bass 1"                 "lead 2 (sawtooth)"      "telephone ring"
-"synth bass 2"                 "lead 3 (calliope)"      "helicopter"
-"violin"                       "lead 4 (chiff)"         "applause"
-"viola"                        "lead 5 (charang)"       "gunshot"
-"cello"                        "lead 6 (voice)")
-
-
-
-subsect(Translators)
-label(translators)
-
-The behavior of notation contexts is defined by the translators for
-those contexts.  The translator for a context specifies what notations
-are handled by the context, it specifies what other contexts the
-context can contain, and it sets property values for the context.  
-There are different translators for each type of output.  The
-translators for paper output are defined in file(engraver.ly).  The
-translators for MIDI output are defined in file(performer.ly).  
-
-The first thing that appears inside a code(\translator) definition is
-the type of the context being created.  This is specified with the
-code(\type) keyword: code(\type) var(typename)code(;).  After the type
-of the context is specified, property assignments, the code(\name)
-keyword and code(\consists), code(\accepts), and code(\remove)
-keywords can appear in any order.  The code(\name) keyword specifies
-the name of the context that is handled by the translator.  If the
-name is not specified, the translator won't do anything.  Each
-code(\accepts) keyword specifies what contexts can be contained inside
-this one.  The code(\consists) keywords specify which notations are
-handled by the context.  Each code(\consists) keyword specifies the
-name of an engraver (for paper ouput) or performer (for MIDI output)
-which handles a certain notation.  The code(\remove) keyword can be
-used to remove a performer or engraver from the translator.
-
-In the code(\paper) block, it is also possible to define translator
-identifiers.  Like other block identifiers, the identifier can only
-be used as the very first item of a translator.  In order to define
-such an identifier outside of code(\score), you must do
-verb(\paper{ foo=\translator{ ... }
-\score{
-  \notes{ ... }
-  \paper{ \translator{ \foo ... } }
-})
-
-Some All of the standard translators have predefined identifiers,  making
-it easy to redefine these contexts by adding or removing items. 
-The predefined identifiers are:  code(StaffContext),
-code(RhythmicStaffContext),  code(VoiceContext),  code(ScoreContext), code(ScoreWithNumbers)
-
-
-subsubsect(Paper Types and Engravers and Pre-defined Translators)
-
-Some pre-defined identifiers can simplify modification of translators.
-The pre-defined identifiers are:  
-description(
-dit(code(StaffContext)) Default Staff  context. 
-dit(code(RhythmicStaffContext)) Default RhythmicStaff  context. 
-dit(code(VoiceContext)) Default Voice  context.  
-dit(code(ScoreContext))  Default  Score context. 
-dit(code(ScoreWithNumbers)) Score  context with numbering at  the
-Score level.   
-dit(code(BarNumberingStaffContext)) Staff context with numbering  at
-the Staff level.  
-dit(code(HaraKiriStaffContext))  
-dit(code(OrchestralPartStaffContext))
-dit(code(OrchestralScoreContext))
-)
-Using these pre-defined values, you can remove  or add items to the
-translator verb(\paper{ \translator{ \StaffContext
-                     \remove Some_engraver;
-                     \consists Different_engraver;  }})
-      
-
-
-There are four types for paper translators:
-description(
-  dit(code(Engraver_group_engraver))
-  dit(code(Hara_kiri_line_group_engraver))
-  dit(code(Line_group_engraver_group))
-  dit(code(Score_engraver))  
-)
-COMMENT( The names of these types seem somewhat confusing. )
-
-The engravers for paper output are:
-
-description(
-dit(code(Abbreviation_beam_engraver))
-dit(code(Bar_engraver)) Engraves bar lines.  Normally in code(Staff) and
-code(RhythmicStaff).  
-dit(code(Bar_number_engraver)) Engrave bar numbers.  These numbers
-appear at the start of each line.  Not normally in any translator.  Can
-be added to code(Score) for Score-wide numbering or to code(Staff) for
-numbering on each staff.  
-
-dit(code(Beam_engraver)) Handles beam requests by engraving beams.  Normally
-appears in the code(Voice) translator.  If omitted, then notes will be printed
-with flags instead of beams.
-
-dit(code(Beam_req_swallow_translator)) Swallows beam requests.  In
-code(LyricVoice).  
-dit(code(Chord_name_engraver)) Engraves chord names.  Normally in
-code(ChordNameVoice) 
-dit(code(Clef_engraver)) Engraves the clef symbol.  Normally in code(Staff).
-dit(code(Collision_engraver))
-dit(code(Dot_column_engraver)) Engraves dots on dotted notes shifted to the
-right of the note.  Normally in code(Voice).  If omitted, then dots appear on
-top of the notes.  
-dit(code(Dynamic_engraver)) Engraves dynamics symbols.  Normally in code(Voice).
-dit(code(Font_size_engraver))
-dit(code(Key_engraver)) Engraves the key signature.  Normally in code(Staff).
-dit(code(Local_key_engraver))
-dit(code(Lyric_engraver)) Engraves lyrics.  Normally in code(LyricVoice).
-dit(code(Multi_measure_rest_engraver)) Engraves multi-measure rests that are
-produced with code(R).  Normally in code(Voice).
-dit(code(Piano_bar_engraver))
-dit(code(Pitch_squash_engraver)) Treat all pitches as middle C.  Used in
-code(RhythmicStaff).  Note that the notes move, but the locations of
-accidentals stay the same. 
-dit(code(Priority_horizontal_align_engraver))
-dit(code(Repeat_engraver)) Handles repeats? In code(Staff) and 
-   code(RhythmicStaff).
-dit(code(Rest_collision_engraver)) Handles collisions of rests. In code(Staff).
-dit(code(Rest_engraver)) Engraves rests.  Normally in code(Voice).
-dit(code(Rhythmic_column_engraver))
-dit(code(Score_priority_engraver))
-dit(code(Script_engraver)) Handles note ornaments generated by code(\script).
-Normally in code(Voice).  
-dit(code(Separating_line_group_engraver))
-dit(code(Skip_req_swallow_translator))
-dit(code(Slur_engraver)) Engraves slurs.  Normally in code(Voice).
-dit(code(Span_bar_engraver)) Engraves lines across multiple staffs.  Normally
-in code(Staffgroup) and code(GrandStaff).  Removing this from code(StaffGroup)
-gives the definition of code(ChoirStaff).  
-dit(code(Span_score_bar_engraver))
-dit(code(Staff_group_bar_engraver))
-dit(code(Staff_margin_engraver)) Prints the name of the instrument
-(specified by code(Staff.instrument) and code(Staff.instr)) at the
-left of the staff.  
-dit(code(Staff_sym_engraver))
-dit(code(Stem_engraver)) Engraves stems.  Normally in code(Voice).
-dit(code(Ties_engraver)) Engraves ties.  Normally in code(Voice).
-dit(code(Time_signature_engraver)) Engraves the time signature.  Normally in
-code(Staff) and code(RhythmicStaff).
-dit(code(Timing_engraver)) Responsible for synchronizing timing information
-from staffs.  Normally in code(Score).  In order to create polyrhythmic music,
-this engraver should be removed from code(Score) and placed in code(Staff).
-dit(code(Tuplet_engraver)) Engraves tuplet brackets?  In code(Staff).
-dit(code(Vertical_align_engraver)) 
-)
-
-
-subsubsect(MIDI Types and Performers)
-
-The types available for  MIDI translators are:
-description(
-dit(code(Performer_group_performer))
-dit(code(Score_performer))
-dit(code(Staff_performer))
-)
-
-The performers for MIDI translators are:
-description(
-dit(code(Key_performer))
-dit(code(Time_signature_performer))
-dit(code(Note_performer))
-dit(code(Lyric_performer))
-dit(code(Swallow_performer))
-)
-
index f114e445eb060b3f4083b4296e3c809204f0f0f2..4c354406d3228817f093050fd55ae46911991958 100644 (file)
@@ -1,2 +1,2 @@
-
+% We're testing \mudelafile here.
 c''4^"This! Is! A! Test!" d e 
index d160e7abc8a247f408c90cdb1ef871922e51937a..cad569fc22768bc47e9c33b2dcb68e2f263c4330 100644 (file)
@@ -795,12 +795,11 @@ Example:
     \partial 4;
     [d'8 dis'] e' c''4 e'8 c''4 
   )
+)
 
-
-The commands described above aren't really music, but they can best be
-thought as as notes with no duration.  Since they are grammatically
-equivalent to notes, these commands can be used in the same places as
-notes.
+The commands described above do not music that you could hear, but
+within the language, they are "Music": they are grammatically
+equivalent to notes, so they can appear in the same places as notes.
 
 sect(Notation context)
 
diff --git a/NEWS b/NEWS
index b17aa62697989e48d44bfd2a2ca97a43fb0c460b..614d60fffaaa8a54a1c11124c186cab52e7e7409 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,33 @@
+pl 53.jbr2
+        - Documentation/ntweb/index.html: Updated nt distribution web page
+
+pl 54.uu1
+       - bf: Stem lens for beams.
+       - move meta doco to Documentation/metadoc
+       - move .bibb to Documentation/bibliography
+       - rename mi2mu to midi2ly
+       - removed other-packages.bib to comply with GNU standards
+
+pl 54.jcn1
+       - mutopia/J.S.Bach/Duette 1&2
+
+pl 54.mb1
+        - Renamed \wheel to the \coda
+       - bf: correct gap in tuplet braces
+
+pl 53.hwn2
+       - move more parameters from PS/TeX to Lily.
+       - PS cleanup
+       - TeX cleanup.
+       - bf: also make (empty) bar at end of voltabracket.
+       - bf: don't put slur over rest. 
+
+
+pl 54.uu1
+       - debian updates (anthony fok).
+
+*************
+pl 54 (july, 8)
 pl 53.jbr1
        - scripts/ly2dvi.py: A fix for the multitude of file systems supported
           by windows.  As long as the paths that the cygwin apps use are
diff --git a/TODO b/TODO
index 569bfdb5b877626f9ac95c5bd7b6a61eb2523950..a8215f79151aa907d10dabc13b9c73540dd36a0a 100644 (file)
--- a/TODO
+++ b/TODO
@@ -9,12 +9,16 @@ Most of the items are marked in the code as well
 Grep for TODO and ugh/ugr/urg.  
 
 .* BUGS
+. * sane strategy for extensions (assume .ly):
+02:22:24 appel ~/usr/src/lilypond$ lilypond foo
+GNU LilyPond 1.1.54.
+[/home/fred/usr/src/lilypond/scm/lily.scm]
+warning: can't find file: `init'
 . * indent = 0.0 with linewidth=-1.0
 . * music ending in grace notes.
 . * PostScript
-.  * ps/lily.ps see comments.
+.  * half notes in pfa
 . * didot / big point.
-. * fix singleStaffBracket
 . * check EGCS version
 . * input/test/stem-spacing.ly: 12/4 touches first note
 . * \shape 1st dim skipped? 
@@ -38,6 +42,8 @@ Grep for TODO and ugh/ugr/urg.
 . * tuplets that are written as "number : note", for example
    "3 : [image of a half note here]".  possible?
 
+. * filenames : junk lily.x 
+
 . * Matanya's tips: 
 .  * don't  shorten stems/staffs closer to each other.
 .  * accidentals closer to note head
@@ -46,6 +52,7 @@ Grep for TODO and ugh/ugr/urg.
 
 .* Cleanups needed
 . * \$ and $ identifier syntax in examples.
+. * bracket ps code.
 . * Key_engraver, Local_key_item
 . * Think of comprehensive solution for "if (grace_b == self_grace_b_)"
 . * Y dimension units: staffspace vs. Point
@@ -58,6 +65,7 @@ Grep for TODO and ugh/ugr/urg.
 . * parser
 
 .* TODO before 1.2
+. * rename midi2ly, abc2ly mup2ly
 . * Grace_slur_engraver.
 . * Break_req handling is silly (break_forbid () + \break fucks up.)
 . * Morally pure LilyPond.
@@ -244,6 +252,7 @@ touching it.
       Reading 4 bytes from 0xefffeca8 on the stack.
       Address 0xefffeca8 is 728 bytes below frame pointer in function 
 . * GNU diff 2.7: diff -rN does not see a new directory with empty file
+. * patch: don't touch timestamp if all patches fail.
 . * mf-to-table -> add space before ; in AFM output.  (-> check AFM
     spec. Is this a bug in afm2tfm?)
 . * check out GCC signatures?
diff --git a/VERSION b/VERSION
index ceae9e617280b10edb6a3efdf1184a1b8dc67cec..294cc5ec434a62227b0a582a30a4b82dac0568e8 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1,7 +1,7 @@
 PACKAGE_NAME=LilyPond
 MAJOR_VERSION=1
 MINOR_VERSION=1
-PATCH_LEVEL=54
+PATCH_LEVEL=55
 MY_PATCH_LEVEL=
 
 # use the above to send patches: MY_PATCH_LEVEL is always empty for a
index 602d77213ae3deb0becaa0fd24480ff64026f68c..caee78ed689c2ec3ef1c521d12b1712ad6bc8c1c 100644 (file)
@@ -2,6 +2,8 @@ dnl WARNING WARNING WARNING WARNING
 dnl do not edit! this is aclocal.m4, generated from stepmake/aclocal.m4
 dnl WARNING WARNING WARNING WARNING
 dnl do not edit! this is aclocal.m4, generated from stepmake/aclocal.m4
+dnl WARNING WARNING WARNING WARNING
+dnl do not edit! this is aclocal.m4, generated from stepmake/aclocal.m4
 dnl aclocal.m4   -*-shell-script-*-
 dnl StepMake subroutines for configure.in
 
index b49c00723418e0c52f35cb11c8e79f2b774c74bc..740dafc961371d0f412c0184c07d93230df68610 100644 (file)
@@ -9,7 +9,7 @@ at-dir = $(outdir)/
 at-ext =
 
 EXTRA_DIST_FILES = README.Debian TODO $(CONF_FILES) $(OUT_DIST_FILES) control.foka
-CONF_FILES = changelog copyright preinst postinst postrm rules watch 
+CONF_FILES = changelog copyright doc-base preinst postinst postrm prerm rules watch 
 #OUTCONF_FILES = $(addprefix $(outdir)/, $(basename $(CONF_FILES))) $(OUTIN_FILES)
 OUTCONF_FILES = $(OUTIN_FILES)
 OUT_DIST_FILES = $(OUTIN_FILES)
index 320703b02825a0afd085c09bae0f6b883bc70447..c257da906c5c39db86fad25fbdcdf7be0aaeb06e 100644 (file)
@@ -8,6 +8,9 @@ Dear music lover:
   Hope you enjoy producing beautiful music scores with GNU LilyPond
   and other related packages!  ^_^
 
+  Note:
+    If you experience problems about missing EC fonts during the TeX run,
+    please make sure you have the tetex-extra package installed.
 
 Old LilyPond Fonts Issue:
 ~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -33,8 +36,8 @@ Old LilyPond Fonts Issue:
 
   Nonetheless, GNU LilyPond now comes with the standard "feta" fonts,
   and they are already listed in the latest teTeX 0.9 / Web2C 7.2
-  /usr/lib/texmf/fontname/special.map file, so there shouldn't be any
+  /usr/share/texmf/fontname/special.map file, so there shouldn't be any
   more problems!  Enjoy!  :-)
 
 
-Anthony Fok <foka@debian.org>, Wed, 22 Apr 1998 03:37:00 -0600
+Anthony Fok <foka@debian.org>, Wed,  7 Jul 1999 15:19:48 -0600
index 804e47bb20059c8ae028a5f5e14b6e2f9eed7024..81437d0d42bd2ad354df96128d6976c662994fce 100644 (file)
@@ -1,6 +1,35 @@
-lilypond (1.1.36-1) unstable; urgency=low
+lilypond (1.1.53-1) unstable; urgency=low
 
   * New upstream release.
+  * Partially upgraded to standards version 3.0.0:
+     - Updated copyright to point to /usr/share/common-licenses
+     - First step towards FHS-compliance: Man pages are now installed
+       under /usr/share/man.
+
+ -- Anthony Fok <foka@debian.org>  Wed,  7 Jul 1999 15:23:57 -0600
+
+lilypond (1.1.47-1) unstable; urgency=low
+
+  * New upstream release.
+
+ -- Anthony Fok <foka@debian.org>  Thu, 10 Jun 1999 18:10:13 -0600
+
+lilypond (1.1.42-1) unstable; urgency=low
+
+  * New upstream release.
+  * [postinst]: Runs "/usr/bin/mktexlsr /usr/share/texmf" to save time.
+  * [postrm]: Removed the unnecessary "/usr/bin/mktexlsr" call.
+  * The segfault problem has disappeared on my computer (running
+    the latest potato system).  Please test.
+
+ -- Anthony Fok <foka@debian.org>  Tue, 11 May 1999 11:16:58 -0600
+
+lilypond (1.1.37-1) unstable; urgency=low
+
+  * New upstream release.
+  * Known problem: LilyPond simply segfaults under glibc 2.1 on my i386
+    system, and I don't know how to fix the problem yet.  I hope users of
+    other platforms have better luck.
   * [debian/rules]:
       - Make and install info files.
       - Removed "CC=egcc" because the default gcc on all platforms is
@@ -9,8 +38,13 @@ lilypond (1.1.36-1) unstable; urgency=low
       - Minor clean-ups.
   * Added debian/compress to make sure *.png are not compressed.
   * Added debian/doc-base and postinst/prerm for the LilyPond info files.
+  * s!usr/lib/texmf!usr/share/texmf!g and cleaned up old hacks
+    in {pre,post}{inst,rm} files due to tetex's new FHS-compliant
+    directory structure.
+  * [debian/control]: Now Depends/Recommends the latest FHS-compliant
+      tetex-{bin,base,extra} (>= 0.9.99031{0,1}-1) packages.
 
- -- Anthony Fok <foka@debian.org>  Sun, 21 Mar 1999 13:39:39 -0700
+ -- Anthony Fok <foka@debian.org>  Mon,  5 Apr 1999 20:43:30 -0600
 
 lilypond (1.1.31-1) unstable; urgency=low
 
index 52b35a3aca122c4950f2d1721f71bd2f20371998..39108826e8eb216bcbb91b4ecafbdae5bf9744f2 100644 (file)
@@ -10,12 +10,10 @@ Depends: ${shlibs:Depends}, tetex-bin (>= 0.9.981031-2)
 Recommends: python-base (>= 1.5.1), python-misc (>= 1.5.1), tetex-base (>= 0.9.981030-1), tetex-extra (>= 0.9.981030-1)
 Conflicts: musixtex-fonts, tetex-base (<< 0.9)
 Description: The GNU Project music typesetter.
- LilyPond is the GNU Project music typesetter.  This program can print
- beautiful sheet music from a music definition file.  It can also play
- mechanical performances to a MIDI file.  Features include multiple
- staffs, meters, clefs, keys, lyrics, versatile input language, cadenzas,
- beams, slurs, triplets, named chords, transposing, formatting scores, 
- part extraction.  It includes a nice font of musical symbols.
+ LilyPond is the GNU Project music typesetter. It transforms a musical
+ description file into beautiful sheet music.
  .
   URLs: http://www.cs.uu.nl/~hanwen/lilypond/
         http://www.xs4all.nl/~jantien/lilypond/
index 52b35a3aca122c4950f2d1721f71bd2f20371998..9161ab70bfb159e1be227d729e9cb66fe3fb986e 100644 (file)
@@ -2,12 +2,12 @@ Source: lilypond
 Section: tex
 Priority: optional
 Maintainer: Anthony Fok <foka@debian.org>
-Standards-Version: 2.5.0.0
+Standards-Version: 3.0.0
 
 Package: lilypond
 Architecture: any
-Depends: ${shlibs:Depends}, tetex-bin (>= 0.9.981031-2)
-Recommends: python-base (>= 1.5.1), python-misc (>= 1.5.1), tetex-base (>= 0.9.981030-1), tetex-extra (>= 0.9.981030-1)
+Depends: ${shlibs:Depends}, tetex-bin (>= 0.9.990310-1)
+Recommends: python-base (>= 1.5.1), python-misc (>= 1.5.1), tetex-base (>= 0.9.990311-1), tetex-extra (>= 0.9.990311-1)
 Conflicts: musixtex-fonts, tetex-base (<< 0.9)
 Description: The GNU Project music typesetter.
  LilyPond is the GNU Project music typesetter.  This program can print
index dcd268aca52f9c983beb6a01d5fba18629022e59..9fcb608cd03c6577ac927c9cce322ab718693bf0 100644 (file)
@@ -2,7 +2,10 @@ This package was Debianized by Anthony Fok <foka@debian.org> on
 Wed,  6 Aug 1997 04:30:28 -0600
 
 It was downloaded from
-      ftp://ftp.lilypond.org/pub/LilyPond/v1.1/lilypond-1.1.36.tar.gz
+      ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/development/lilypond-1.1.53.tar.gz
+
+It is also available at:
+      ftp://ftp.lilypond.org/pub/LilyPond/v1.1/lilypond-1.1.53.tar.gz
 
 For more information about GNU LilyPond, please visit:
       http://www.cs.uu.nl/~hanwen/lilypond/
@@ -46,4 +49,4 @@ GNU LilyPond under Debian GNU/Linux are also under the GNU General
 Public License (GPL) version 2 or later.  
 
 On Debian GNU/Linux systems, the complete text of the GNU General
-Public License can be found in `/usr/doc/copyright/GPL'.
+Public License can be found in `/usr/share/common-licenses/GPL'.
diff --git a/debian/doc-base b/debian/doc-base
new file mode 100644 (file)
index 0000000..13016d1
--- /dev/null
@@ -0,0 +1,11 @@
+Document: lilypond
+Title: LilyPond, the GNU Project music typesetter
+Author: Various
+Abstract: This documentation describes LilyPond (the GNU Project music
+ typesetter), its language Mudela, and the Mutopia project, a.k.a.
+ "Music To the People."
+Section: Apps/Music
+
+Format: info
+Index: /usr/share/info/lilypond.info.gz
+Files: /usr/share/info/lilypond.info*
index 52b35a3aca122c4950f2d1721f71bd2f20371998..39108826e8eb216bcbb91b4ecafbdae5bf9744f2 100644 (file)
@@ -10,12 +10,10 @@ Depends: ${shlibs:Depends}, tetex-bin (>= 0.9.981031-2)
 Recommends: python-base (>= 1.5.1), python-misc (>= 1.5.1), tetex-base (>= 0.9.981030-1), tetex-extra (>= 0.9.981030-1)
 Conflicts: musixtex-fonts, tetex-base (<< 0.9)
 Description: The GNU Project music typesetter.
- LilyPond is the GNU Project music typesetter.  This program can print
- beautiful sheet music from a music definition file.  It can also play
- mechanical performances to a MIDI file.  Features include multiple
- staffs, meters, clefs, keys, lyrics, versatile input language, cadenzas,
- beams, slurs, triplets, named chords, transposing, formatting scores, 
- part extraction.  It includes a nice font of musical symbols.
+ LilyPond is the GNU Project music typesetter. It transforms a musical
+ description file into beautiful sheet music.
  .
   URLs: http://www.cs.uu.nl/~hanwen/lilypond/
         http://www.xs4all.nl/~jantien/lilypond/
index ac8e261b95432eaeef9e1c72746fb75f4f08ecae..8f096b4772d0e02975c4f80907fd6ec19a1cc9be 100755 (executable)
@@ -1,37 +1,29 @@
 #!/bin/sh
 #
 # postinst script for the Debian GNU/Linux lilypond package
-#
 #   by Anthony Fok <foka@debian.org>
 #   Initial release:  Sun, 26 Oct 1997 03:23:00 -0700
-#     Last modified:  Wed, 11 Nov 1998 22:59:49 -0700
+#     Last modified:  Wed,  7 Jul 1999 19:36:36 -0600
 
 set -e
 
 package=lilypond               # This is used for filenames!  Don't change it!
 pkg_name="GNU LilyPond"
 
-std_TEXMFMAIN=/usr/lib/texmf   # Debian's standard $TEXMFMAIN
+std_TEXMFMAIN=/usr/share/texmf # Debian's standard $TEXMFMAIN
 
 TEXMFMAIN=`/usr/bin/kpsewhich -expand-var '$TEXMFMAIN'`
 : ${TEXMFMAIN:=$std_TEXMFMAIN}
 
-echo " Running /usr/bin/mktexlsr ..."
-/usr/bin/mktexlsr
+echo " Running /usr/bin/mktexlsr $TEXMFMAIN..."
+/usr/bin/mktexlsr $TEXMFMAIN
 
 install-info --description='LilyPond, the GNU Project music typesetter' \
        --section "Music" "Music" \
-       --quiet /usr/info/lilypond.info.gz
+       --quiet /usr/share/info/lilypond.info.gz
 
 #DEBHELPER#
 
-# If we are the last package to use the old /usr/lib/texmf/doc,
-# we will create the symlink to /usr/doc/texmf.  :-)
-if rmdir /usr/lib/texmf/doc >/dev/null 2>&1
-then
-    ln -s /usr/doc/texmf /usr/lib/texmf/doc
-fi
-
 echo
 echo " $pkg_name configuration completed."
 echo " Please read /usr/doc/$package/README.Debian to get started."
index 80e1d36c753ed7e0214cbeed584b2caa4e8ddf5d..51f571a4f0f32691d82c978f81a930d59e2d9823 100755 (executable)
@@ -4,14 +4,14 @@
 #   by Anthony Fok <foka@debian.org>
 #   This is free software; see the GNU General Public Licence
 #   version 2 or later for copying conditions.  There is NO warranty.
-#   Last modified:  Fri, 14 Aug 1998 00:07:07 -0600
+#   Last modified:  Tue, 11 May 1999 11:16:35 -0600
 
 set -e
 
 package=lilypond
 font_supplier=public
 font_typeface=lilypond
-std_TEXMFMAIN=/usr/lib/texmf
+std_TEXMFMAIN=/usr/share/texmf
 std_VARTEXFONTS=/var/spool/texmf
 
 #DEBHELPER#
@@ -32,7 +32,6 @@ case "$1" in
        # Clear out the old TFM and PK files in case the fonts were modified
        rm -rf $VARTEXFONTS/tfm/$font_supplier/$font_typeface
        rm -rf $VARTEXFONTS/pk/*/$font_supplier/$font_typeface
-       /usr/bin/mktexlsr
     ;;
 
     failed-upgrade|abort-install|abort-upgrade|disappear)
index cf27f6b9365c49894dd2a17f5272f858dd1723a9..270b2db61dba503b3bb08a1f704798cd76d05d1f 100644 (file)
@@ -4,14 +4,14 @@
 #   by Anthony Fok <foka@debian.org>
 #   This is free software; see the GNU General Public Licence
 #   version 2 or later for copying conditions.  There is NO warranty.
-#   Last modified:  Tue, 10 Nov 1998 23:47:00 -0700
+#   Last modified:  Mon,  5 Apr 1999 20:30:12 -0600
 
 set -e
 
 package=lilypond
 font_supplier=public
 font_typeface=lilypond
-std_TEXMFMAIN=/usr/lib/texmf
+std_TEXMFMAIN=/usr/share/texmf
 std_VARTEXFONTS=/var/spool/texmf
 
 #DEBHELPER#
@@ -36,15 +36,6 @@ case "$1" in
            rm -rf $VARTEXFONTS/tfm/$font_supplier/mf
            rm -rf $VARTEXFONTS/pk/*/$font_supplier/mf
        fi
-
-       # Since 1.0.17-1, /usr/lib/texmf/tex/lilypond has been changed
-        # to a symbolic directory.  Remove the old real directory to
-        # prevent problems during upgrade.
-       for i in $LILYTEXINPUTS $LILYMFINPUTS; do
-           if [ -d $i -a ! -L $i ]; then
-               rm -rf $i
-           fi
-       done
     ;;
 
     abort-upgrade)
diff --git a/debian/prerm b/debian/prerm
new file mode 100644 (file)
index 0000000..0c66539
--- /dev/null
@@ -0,0 +1,6 @@
+#!/bin/sh
+set -e
+
+install-info --quiet --remove /usr/share/info/lilypond.info.gz
+
+#DEBHELPER#
index 7a94ca326ffe0ceeadbf6d0f54425c033f3c89e3..6dc437471401d2163c16a8ca8aa7ae110b7c878c 100755 (executable)
@@ -1,5 +1,5 @@
 #!/usr/bin/make -f
-# Made with the aid of debhelper by by Joey Hess,
+# Made with the aid of debhelper by Joey Hess,
 # based on the sample debian/rules file for GNU hello by Ian Jackson.
 #
 # This is free software; see the GNU General Public Licence
@@ -12,24 +12,31 @@ package = lilypond
 
 SHELL = /bin/sh
 r = debian/tmp
+TMP = `pwd`/debian/tmp
 d = usr/doc/$(package)
 
 # Uncomment this to turn on verbose mode.
 #export DH_VERBOSE=1
 
+# This is the debhelper compatability version to use.
+export DH_COMPAT=1
+
 build: build-stamp
 build-stamp:
        dh_testdir
 
        ./configure --disable-checking --disable-debugging \
                --enable-printing --prefix=/usr --disable-optimise \
-               --enable-shared
+               --enable-shared \
+               --infodir='$${prefix}/share/info' \
+               --mandir='$${prefix}/share/man'
        $(MAKE) all
        $(MAKE) -C Documentation/pictures pngs
 
        # Remove the "-" and the "-k" once the \times segfault
        # bug is fixed.  (lilypond-1.1.31, 1999-02-17)
-       -$(MAKE) -k -C Documentation/tex dvi
+       # -$(MAKE) -k -C Documentation/tex dvi
+       -$(MAKE) -C Documentation/tex dvi
        -$(MAKE) -C Documentation info
 
        # $(MAKE) htmldoc
@@ -57,18 +64,18 @@ install-stamp: build-stamp
        dh_installdirs usr/doc/texmf \
                usr/lib/emacs/site-lisp \
                usr/doc/$(package)/examples \
-               usr/lib/texmf/tex \
-               usr/lib/texmf/fonts/source/public \
-               usr/lib/texmf/fonts/afm/public \
-               usr/lib/texmf/fonts/tfm/public
+               usr/share/texmf/tex \
+               usr/share/texmf/fonts/source/public \
+               usr/share/texmf/fonts/afm/public \
+               usr/share/texmf/fonts/tfm/public
        ln -fs ../lilypond $(r)/usr/doc/texmf/lilypond
 
-       $(MAKE) prefix=`pwd`/$(r)/usr install
+       $(MAKE) prefix=$(TMP)/usr install
 
-       ln -s ../../../share/lilypond/tex $(r)/usr/lib/texmf/tex/lilypond
-       ln -s ../../../../../share/lilypond/mf $(r)/usr/lib/texmf/fonts/source/public/lilypond
-       ln -s ../../../../../share/lilypond/afm $(r)/usr/lib/texmf/fonts/afm/public/lilypond
-       ln -s ../../../../../share/lilypond/tfm $(r)/usr/lib/texmf/fonts/tfm/public/lilypond
+       ln -s ../../lilypond/tex $(r)/usr/share/texmf/tex/lilypond
+       ln -s ../../../../lilypond/mf $(r)/usr/share/texmf/fonts/source/public/lilypond
+       ln -s ../../../../lilypond/afm $(r)/usr/share/texmf/fonts/afm/public/lilypond
+       ln -s ../../../../lilypond/tfm $(r)/usr/share/texmf/fonts/tfm/public/lilypond
 
        touch install-stamp
 
@@ -80,8 +87,8 @@ binary-arch: build install
        dh_testdir
        dh_testroot
        cp -av mudela-mode.el $(r)/usr/lib/emacs/site-lisp
-       dh_installdocs ANNOUNCE* NEWS-* DEDICATION \
-               BUGS TODO *.txt \
+       dh_installdocs AIMS ANNOUNCE* NEWS-* DEDICATION \
+               BUGS TASKS TODO *.txt \
                Documentation/pictures/out/*.png \
                Documentation/out/*.txt \
                Documentation/tex/*.doc \
@@ -98,6 +105,7 @@ binary-arch: build install
 #      dh_installmanpages
 #      dh_undocumented
        dh_installchangelogs -k NEWS
+       dh_link
        dh_strip
        dh_compress
        dh_fixperms
diff --git a/input/bugs/Overture.ly b/input/bugs/Overture.ly
deleted file mode 100644 (file)
index 93ba0bc..0000000
+++ /dev/null
@@ -1,245 +0,0 @@
-\header {
-title = "Parties sur les fleut Dous \\'a 3";
-composer = "Johann Christoph Faber";
-piece = "1.  Overture";
-}
-
-\version "1.1.52";
-
-global=\notes{
-       \time 2/2;
-       \key C;
-}
-
-treble=\notes\relative c''' {
-%1
-       g2 c4 g |
-       g4( [f8 )e] f2 |
-       f4( [e8 )d] e2 |
-       [e8( )f g f] e4.( )d8 |
-%5
-       d2 r8 g8 [a( )e] |
-       f2 r8 f8 [g( )d] |
-       e2( [)e8 e( d )c] |
-       d2( [)d8 d( c )b] |
-       g'4. g8 g4 a |
-%10
-% implied trill on d
-       d,4 e d4. c8 |
-       c8 [g' c( )b] a2 |
-       r8 a [d( )c] [b b( a )b] |
-       [c( )b a g] fis4 [g8 a] |
-       b2 [b8( )a g a] |
-%15
-       fis4. g8 g4 f |
-       r8 g8 [f( )g] e4.( )d8 |
-% Another implied trill
-       d4 e d4. c8 |
-       % \semibreve = \dottedminim
-       \time 3/4;
-       c4 g' g |
-       [g8( )f e f g a] |
-%20
-       g4 e r |
-       r2. |
-       r4 g g |
-       c [b8( )a g bes]  |
-       a4 f r |
-%25
-       r2. |
-       r4 a g |
-       a f e |
-       f [a8( )g f e] |
-       d4 g g |
-%30
-       g( )a b |
-       c e, d |
-       e f g |
-       a d, d |
-       d( )e f |
-%35
-       g r4 r |
-       r e f |
-       g( [a8 )g f e ] |
-       f4 e2 |
-       d4 g( )f |
-%40
-       e r4 r4 |
-       r g c |
-       [a8( g )f g f e] |
-       [ d8( )c d e f g ]|
-       [e ( ) f e( f g )a ]|
-%45
-% Implied trill and turn on the D
-       [f8( )e] d2 |
-       c4 r4 r4 |
-       e r4 r4 |
-       g( )a b |
-       c e, f |
-%50
-       g( [a8 )g f e] |
-       d4.( )g8 g4 |
-       [f8( )e] d4. c8 |
-       c2. \bar "|.";
-}
-
-tenor=\notes\relative c'' {
-       e2 g4 e |
-       c2( [)c8 c8( b )a] |
-       b2 c2 |
-       [c8()d e d] c4.( )b8 |
-%5
-       b4 [c8 d] e2 |
-       r8 c8 [d( )a] b2 |
-       c2 a2( |
-       [)a8 a8( g )f] g2 |
-       c2. c4|
-%10
-       b c c( )b |
-       c g' f2 |
-       r8 f [a a] [g e(] )f4 |
-       g e a, d |
-       g2. e4 |
-%15
-       d a [b8. c16 c8. d16] |
-       d2 c4.( )b8 |
-       b4 c c( )b |
-       % \semibreve = \dottedminim
-       \time 3/4;
-       c4 e e |
-       [e8( )d c d e f ]|
-%20
-       e4 c r |
-       r2. |
-       r4 e e |
-       a [g8( )f e g] |
-       f4 c r4 |
-%25
-       r2. |
-       r4 f e |
-       f a, g |
-       a [f'8( )e d c ] |
-       b4 e d |
-%30
-       e( )f d |
-       e c b |
-       c c e |
-       f b, a |
-       b( )c d |
-%35
-       e r4 r4 |
-       r c d |
-       e e e |
-       d d( )cis |
-       d e( )d |
-%40
-       c r4 r4 |
-       r4 e g |
-       [f8( e )d e d c ] |
-       [b8( )a b c d b] |
-       [c8 ( ) d c( d e )f] |
-%45
-       [d( )c] c4 b |
-       c r r
-       c r r |
-       e ( ) f d |
-       e c d |
-%50
-       e( [f8 )e d c] |
-       b4.( )e8 e4 |
-       [d8 ()c] c4 b |
-       c2. \bar "|.";
-}
-
-bass=\notes\relative c' {
-       c4 [c,8 d] e4.( [f16 )g] |
-       a2( [)a8 a( g )f] |
-       g2 [c,8 f g()a] |
-       c2 c, |
-%5
-       [g'8()f e d ] cis2 |
-       d4. d8 g4. g,8 |
-       [c8 g' c( )e, ] f2( |
-       [)f8 f( e )d] e2 |
-       e2. f4 |
-%10
-       g2 g, |
-       c r8 c [f()e] |
-       d2 g4 f |
-       [e8()d] c4 [d8()c b a]|
-       g4 a b c|
-%15
-       d2 [e8. c16 f8. d16] |
-       g2 c, |
-       f2 g |
-       % \semibreve = \dottedminim
-       \time 3/4;
-       c,4 r r |
-       r2. |
-%20
-       r4 c' a |
-       c e, g |
-       c, r r |
-       r2.
-       r4 f c |
-%25
-       f a, c |
-       f, r r |
-       r f' c |
-       f r r |
-       r c' g |
-%30
-       c f, g |
-       c, e g |
-       c, a' c |
-       f, g fis |
-       g e d |
-%35
-       c e g |
-       c, e d |
-       c cis cis |
-       d a' a, |
-       d r r |
-%40
-       r e g |
-       c, c' e, |
-       f2. |
-       g2. |
-       a4 [g8()f] e4 |
-%45
-       f g g, |
-       c e g |
-       c e, g |
-       c, f g |
-       c a [g8()f]
-%50
-        e2 f4 |
-        g4()f e |
-         f g g, |
-        c2. \bar "|.";
-}
-       
-
-\score{
-       \context StaffGroup <
-             \context Staff =treble \notes {
-                   \property Staff.Instrument = "Treble" 
-                   \global \treble 
-             }
-
-             \context Staff =tenor \notes {
-                     \property Staff.Instrument = "Tenor"
-                     \global \tenor 
-             }
-
-             \context Staff =bass \notes {
-                     \property Staff.Instrument = "Bass"
-                     \global \clef "bass"; \bass
-             }
-       >
-       \paper {
-               \translator { \BarNumberingStaffContext }
-       }
-}
-       
-
diff --git a/input/bugs/partial.ly b/input/bugs/partial.ly
deleted file mode 100644 (file)
index af91532..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-\score{
-    \notes \relative c''{
-       \time 4/4;
-       c4 c c c 
-       \partial 4*3;
-       c c c
-       \repeat 2 {
-       \partial 4;
-       c
-       c c c c
-       \partial 4*3;
-       c c c
-       }
-    }
-    \paper{  }
-}
diff --git a/input/bugs/rcol.fly b/input/bugs/rcol.fly
deleted file mode 100644 (file)
index e320644..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-\clef alto;
-\time 3/4;
-\key F;
-[bes'16 r r ges'][es r r ges][es r r ges] |
-[bes, r r d][bes r r d][bes r r d]|
-[bes r r es][bes r r es][bes r r es]|
-[bes r r d][bes r r d][bes r r d]|
-[cis r r g'][e r r g][e r r b']|
-[g r r bes][g r r bes][g r r bes] |
-[g r r a][e r r a][e r r a]|
-[d, r r gis][d r r gis][d r r gis]|
diff --git a/input/bugs/semirepeat.ly b/input/bugs/semirepeat.ly
deleted file mode 100644 (file)
index 70928d8..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-\score { \notes\context Staff\relative c'' {
-
-% less alts than body
-\repeat semi 4 { c^"4$\\times$ 2alt" d } \alternative { e f } \repeat "semi" 2 c4
-}}
diff --git a/input/bugs/slur-over-rest.ly b/input/bugs/slur-over-rest.ly
deleted file mode 100644 (file)
index 48f3238..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-
-\score{
-\notes \relative c{      r4-> r4-. r4^"foo" ( b'4  ) g''4
-}}
index ddd2903abc9eb4499a7bbea60fe34d0c5552ae93..70d831405a6cf9a610d962d8f26b9e90a6486a3b 100644 (file)
@@ -1,14 +1,7 @@
+
+%JAN: Dit is een autobiem bug.
 \score {
-    \notes \transpose c'' \context Staff { c\longa*1/4 c\breve*1/2 c1 c2 c4 c8 c16 c32 c64 }
-    \paper {
-     \translator {
-       \StaffContext
-      % \remove "Staff_symbol_engraver";
-        \remove "Time_signature_engraver";
-        \remove "Bar_engraver";
-        \remove "Clef_engraver";
- }
-linewidth = -1.;
-    }}
+    \notes \transpose c'' \context Voice { c8 c16 c32 c64 }
+   }
 
 
index 65d91f885b1db7e51e6fe405a741601fd3068f20..474e9a9dd174ebeb0bf885e21e7e706f14771fc1 100644 (file)
@@ -14,7 +14,7 @@ FontBody=     \notes\transpose c''{
                a\mf_\fermata a\f-\stopped a\ff-\open a\fff^\trill|
                a\fp-\reverseturn a4.\sf a4.\sfz |  a4\fz % a\rf
                [c8-\prall c-\mordent] [a'-\prallmordent a'-\prallprall]
-               [c8-\upprall a'8-\downprall] [a'-\segno c-\wheel] |
+               [c8-\upprall a'8-\downprall] [a'-\segno c-\coda] |
                [c \< d e f] [as' ges' f' e']
                [cis' dis' c' des'] [cisis' disis' \! ceses' deses'] |
                \clef "bass";
index 168558215f75f5300ec51f91286bbb99a129d54f..78a40f1a15e93452f36143819093eb9f1d771a22 100644 (file)
@@ -17,7 +17,7 @@ traditional song in various languages.
 
 %{
 Tested Features: lyrics, interleaving lyrics and staffs, repeats,
-       auto beaming, applying new rhythm on lyrics
+       auto beaming, applying new rhythm on lyrics, hyphens
 %}
 
 \version "1.1.52";
@@ -53,12 +53,12 @@ global = \notes {
 }
 
 tekst = \lyrics{ 
-       Al- tijd is Kort- jak- je ziek, " "
-       midden "in de" week maar "'s zon-" dags  " " niet.
-       "'s Zon-" dags gaat ze naar de kerk, " "
-       met een boek vol zil- ver  " " werk. " "
-       Al- tijd is Kort- jak- je ziek, " "
-       midden  "in de" week maar "'s zon-" dags  " " niet.
+       Al -- tijd is Kort -- jak -- je ziek, " "
+       midden "in de" week maar "'s zon" -- dags  " " niet.
+       "'s Zon" -- dags gaat ze naar de kerk, " "
+       met een boek vol zil -- ver  " " werk. " "
+       Al -- tijd is Kort -- jak -- je ziek, " "
+       midden  "in de" week maar "'s zon" -- dags  " " niet.
 }
 
 
@@ -68,51 +68,51 @@ tekst. Mogen wij ook af en toe ergens op afgeven?
 %}
 
 hegedraagjetekst = \lyrics{ 
-       Al- tijd zuigt Bill Gates mijn piek, " "
-       "\TeX" is slecht- ser dan mu-  " " ziek.
-       "'s Zon-" dags gaat het door een raam, " "
-       Weet dat ik me er- voor  " " schaam.
-       Al- tijd zuigt Bill Gates mijn piek, " "
-       "\TeX" is slecht- ser dan mu-  " " ziek.
+       Al -- tijd zuigt Bill Gates mijn piek, " "
+       "\TeX" is slecht -- ser dan mu --  " " ziek.
+       "'s Zon" -- dags gaat het door een raam, " "
+       Weet dat ik me er -- voor  " " schaam.
+       Al -- tijd zuigt Bill Gates mijn piek, " "
+       "\TeX" is slecht -- ser dan mu --  " " ziek.
 }
 
 texte = \lyrics{ 
        \property Lyrics . textStyle" =  "italic" 
 %      \property Lyrics . textStyle" =  "roman" 
-       Ah! vous dir- ai- je ma- man " "
-       Ce qui cau- se mon tour-  " " ment
-       Pa- pa veut que je rai- son- ne
-       Comm' u- ne gran- de per- " " son- ne
-       Moi je dis que les bon- bons " "
-       Va- lent mieux que la rai-  " " son
+       Ah! vous dir -- ai -- je ma -- man " "
+       Ce qui cau -- se mon tour --  " " ment
+       Pa -- pa veut que je rai -- son -- ne
+       Comm' u -- ne gran -- de per -- " " son -- ne
+       Moi je dis que les bon -- bons " "
+       Va -- lent mieux que la rai --  " " son
 }
 
 texti = \lyrics{
        \property "Lyrics"."textStyle" =  "roman"
-       Twin- kle, twin- kle, lit- tle star, " "
-       How I won- der what you  " " are.
-       Up a- bove the world so high, " "
-       Like a dia- mond in the  " " sky. " "
-       Twin- kle, twin- kle, lit- tle star, " "
-       How I won- der what you  " " are!
+       Twin -- kle, twin -- kle, lit -- tle star, " "
+       How I won -- der what you  " " are.
+       Up a -- bove the world so high, " "
+       Like a dia -- mond in the  " " sky. " "
+       Twin -- kle, twin -- kle, lit -- tle star, " "
+       How I won -- der what you  " " are!
 }
 
 textii = \lyrics{
-       When the bla- zing sun is gone, " "
-       When he no- thing shines up-  " " on,
-       Then you show your lit- tle light, " "
-       Twin- kle, twin- kle, all the  " " night. " "
-       Twin- kle, twin- kle, lit- tle star, " "
-       How I won- der what you  " " are!
+       When the bla -- zing sun is gone, " "
+       When he no -- thing shines up --  " " on,
+       Then you show your lit -- tle light, " "
+       Twin -- kle, twin -- kle, all the  " " night. " "
+       Twin -- kle, twin -- kle, lit -- tle star, " "
+       How I won -- der what you  " " are!
 }
 
 textiii = \lyrics{
-       Then the tra- veler in the dark " "
-       Thanks you for your ti- ny  " " spark;
+       Then the tra -- veler in the dark " "
+       Thanks you for your ti -- ny  " " spark;
        He could not see which way to go,
-       If you did not twin- kle  " " so. " "
-       Twin- kle, twin- kle, lit- tle star, " "
-       How I won- der what you  " " are!
+       If you did not twin -- kle  " " so. " "
+       Twin -- kle, twin -- kle, lit -- tle star, " "
+       How I won -- der what you  " " are!
 }
 
 \score{
index 6553412fa10886f579442000945f803dffffdeda..e5daab3c1bcc7fac90886a65c4542495bf38ce28 100644 (file)
@@ -31,7 +31,7 @@ Bow::do_brew_molecule_p () const
 
   SCM d =  get_elt_property (dashed_scm_sym);
   if (d == SCM_BOOL_F)
-    a = lookup_l ()->slur (c);
+    a = lookup_l ()->slur (c, thick);
   else
     a = lookup_l ()->dashed_slur (c, thick, gh_scm2int (SCM_CDR(d)));
 
index 1dbe94e3e45d3626ed50239c9f2e4c535616c94f..2401502c9c9124a35d9ba6e8c9449b689fb2d741 100644 (file)
@@ -53,8 +53,9 @@ Crescendo::get_symbol () const
 
   bool continued = broken[Direction (-grow_dir_)];
   Real height = paper_l()->staffheight_f () / 6;
+  Real thick = paper_l ()->get_var ("crescendo_thickness");
 
-  return Molecule (lookup_l ()->hairpin (w_dim, height, grow_dir_ < 0, continued));
+  return Molecule (lookup_l ()->hairpin (w_dim, height, thick, grow_dir_ < 0, continued));
 }
 
 Molecule*
index 1d1d96c369445ed88a12c77e7d58ab1070c52d99..b7fcda070618dc6cfa87fb35322f81998e059805 100644 (file)
@@ -38,13 +38,13 @@ public:
   Molecule ledger_line (Interval) const;
   Molecule fill (Box b) const;
   Molecule filledbox (Box b) const;  
-  Molecule hairpin (Real width, Real height, bool decresc, bool continued) const;
+  Molecule hairpin (Real width, Real height, Real thick, bool decresc, bool continued) const;
   Molecule tuplet_bracket (Real dy, Real dx, Real gap, Real thick,Real interline, Direction dir) const;
   Molecule rest (int, bool outside, String) const;
   Molecule accordion (SCM arg, Real interline_f) const;
-  Molecule slur (Array<Offset> controls) const;
+  Molecule slur (Array<Offset> controls, Real thick) const;
   Molecule text (String style, String text, Paper_def*) const;
-  Molecule staff_brace (Real dy) const;
+  Molecule staff_brace (Real dy, int) const;
   Molecule staff_bracket (Real dy) const;
   Molecule volta (Real h, Real w,  Real thick,  bool last_b) const;
   Molecule special_time_signature (String, int,int, Paper_def*) const;
index 961a4b37c838a35cc718e15b23e86706789d7c80..38412301cbc4b2c2c65b25279c6ec5238ccdd9ac 100644 (file)
@@ -159,11 +159,13 @@ Lookup::bar (String str, Real h, Paper_def *paper_l) const
   if (str == "bracket")
     return staff_bracket (h);
   else if (str == "brace")
-    return staff_brace (h);
-  
+    {
+      Real staffht  = paper_l->get_var ("staffheight");
+      return staff_brace (h,staffht);
+    }
   Real kern = paper_l->get_var ("bar_kern");
   Real thinkern = paper_l->get_var ("bar_thinkern");
-  
+
   Molecule thin = simple_bar ("thin", h, paper_l);
   Molecule thick = simple_bar ("thick", h, paper_l);
   Molecule colon = afm_find ("dots-repeatcolon", paper_l);  
@@ -483,12 +485,13 @@ Lookup::time_signature (int num, int den, Paper_def *paper_l) const
 }
 
 Molecule
-Lookup::staff_brace (Real y) const
+Lookup::staff_brace (Real y, int staff_size) const
 {
   Molecule m;
   
   Atom at  (gh_list (pianobrace_scm_sym,
                     gh_double2scm (y),
+                    gh_int2scm (staff_size),
                     SCM_UNDEFINED
                     ));
   
@@ -499,7 +502,7 @@ Lookup::staff_brace (Real y) const
 }
 
 Molecule
-Lookup::hairpin (Real width, Real height, bool decresc, bool continued) const
+Lookup::hairpin (Real width, Real height, Real thick, bool decresc, bool continued) const
 {
   Molecule m;   
 
@@ -508,6 +511,7 @@ Lookup::hairpin (Real width, Real height, bool decresc, bool continued) const
                     gh_double2scm (width),
                     gh_double2scm (height),
                     gh_double2scm (continued ? height/2 : 0.0),
+                    gh_double2scm (thick),
                     SCM_UNDEFINED));
   m.dim_.x () = Interval (0, width);
   m.dim_.y () = Interval (-2*height, 2*height);
@@ -538,7 +542,7 @@ Lookup::tuplet_bracket (Real dy , Real dx, Real thick, Real gap, Real interline_
   Make a smooth curve along the points 
  */
 Molecule
-Lookup::slur (Array<Offset> controls) const
+Lookup::slur (Array<Offset> controls, Real linethick) const
 {
   Offset  delta_off = controls[3]- controls[0];
   Molecule m; 
@@ -552,6 +556,7 @@ Lookup::slur (Array<Offset> controls) const
 
   Atom at  (gh_list (ly_symbol ("bezier-sandwich"),
                     ly_quote_scm (array_to_list (scontrols, 8)),
+                    gh_double2scm (linethick),
                     SCM_UNDEFINED));
 
   m.dim_[X_AXIS] = Interval (0, delta_off[X_AXIS]);
index 5864e065271cfdf3f771a81ac9fd955531eba090..9ca3649fe3a9c8192367df058531512ff2d6ab52 100644 (file)
 
 ADD_THIS_TRANSLATOR (Repeat_engraver);
 
-/*
-  Needs redesign?
-
-  -  Logic needs to be moved out of do_try_music(),
-  
-  - don't  try to do multiple repeated music.  Lets assume repeats  don't nest.
-  
- */
 bool
 Repeat_engraver::do_try_music (Music* m)
 {
@@ -155,6 +147,8 @@ Repeat_engraver::do_process_requests ()
 
              if (t != "stop")
                bar_engraver_l->request_bar (t);
+             else
+               bar_engraver_l->request_bar (""); 
            }
          else
            {
index 504219f39305e29893e3552908c85eaba30d6d44..827e9a022214dca804688bd7b53ace3b334dbe1f 100644 (file)
@@ -38,10 +38,13 @@ void
 Slur::add_column (Note_column*n)
 {
   if (!n->head_l_arr_.size ())
-    warning (_ ("Putting slur over rest."));
-  encompass_arr_.push (n);
-  //  n->stem_l_->slur_l_ = this;
-  add_dependency (n);
+    warning (_ ("Putting slur over rest. Ignoring"));
+  else
+    {
+      encompass_arr_.push (n);
+      //  n->stem_l_->slur_l_ = this;
+      add_dependency (n);
+    }
 }
 
 Direction
index 2993559a848849a5a8a812b0facca82022936a55..d945823d66e3b3f7a74c8aee76ef1be43907ef9a 100644 (file)
@@ -63,7 +63,7 @@ Stem_info::Stem_info (Stem*s, int mult)
   int stem_max = (int)rint(paper_l->get_var ("stem_max"));
   String type_str = grace_b ? "grace_" : "";
   Real min_stem_f = paper_l->get_var (type_str + "minimum_stem_length"
-                                     + to_str (mult_i_ <? stem_max));
+                                     + to_str (mult_i_ <? stem_max)) * internote_f;
   Real stem_f = paper_l->get_var (type_str + "stem_length"
                                  + to_str (mult_i_ <? stem_max))* internote_f;
 
index 252795dd956aefe0b0a106739bb114bc1a439407..264691e06828c4e3f8435026b58da3ae4b533e10 100644 (file)
@@ -23,7 +23,7 @@ paper_sixteen = \paper {
 
        arithmetic_basicspace = 2.;
         arithmetic_multiplier = 4.8\pt;
-       texsetting = "\\input lilyponddefs \\musixsixteendefs ";
+       texsetting = "\\input lilyponddefs ";
        pssetting = "(lilyponddefs.ps) findlibfile {exch pop //systemdict /run get exec} { /undefinedfilename signalerror } ifelse\n";
        scmsetting = "\"(lilyponddefs.ps) findlibfile {exch pop //systemdict /run get exec} { /undefinedfilename signalerror } ifelse\";\n";
        scmsetting = "\"\\\\input lilyponddefs \\\\musixsixteendefs\";\n";
index 25e85d7dc6159d947580dfa9bd086ddbc44c50f7..91594546997af6b0fc5b009c9337d9da479952d2 100644 (file)
@@ -30,7 +30,7 @@ paper_twenty = \paper {
 
        arithmetic_basicspace = 2.;
         arithmetic_multiplier = 6.\pt;
-       texsetting = "\\input lilyponddefs \\musixtwentydefs ";
+       texsetting = "\\input lilyponddefs ";
        pssetting = "(lilyponddefs.ps) findlibfile {exch pop //systemdict /run get exec} { /undefinedfilename signalerror } ifelse\n";
        % urg, debugging only
        scmsetting = "\"(lilyponddefs.ps) findlibfile {exch pop //systemdict /run get exec} { /undefinedfilename signalerror } ifelse\";\n";
index c224318fba209b4370c8c950b943bf56d34171fe..afc68d5ab717a29d8cc62d3982c99e51159ac900 100644 (file)
@@ -104,6 +104,8 @@ tie_slope_damping = 0.8;
 slur_thickness = 1.4 * \staffline;
 slur_height_limit = \staffheight;
 
+
+
 % slur_ratio = 0.3;
 % try bit flatter slurs
 slur_ratio = 0.25;
@@ -165,6 +167,7 @@ mmrest_x_minimum = 2.0*\staffheight;
 
 % chop off this much when next to pp / ff sign.
 crescendo_shorten = 4.0 * \interline;
+crescendo_thickness   = \staffline;
 
 % in internote.
 restcollision_minimum_dist = 3.0;
@@ -180,6 +183,8 @@ stemSpacingCorrection = 0.5*\interline;
 
 
 
+
+
 \include "engraver.ly";
 
 
index cbd3225c8e2778eb7b7b78b0499e31af79d91ff8..38f89853d243975e4f7e23f06cfc9e5bef20d61b 100644 (file)
@@ -44,4 +44,4 @@ prallmordent = \script "prallmordent"
 upprall = \script "upprall"
 downprall = \script "downprall"
 segno = \script "segno"
-wheel = \script "wheel"
\ No newline at end of file
+coda = \script "coda"
\ No newline at end of file
index c53adf486685be7990741ab7fac3816f379ff15b..f42f35368ad8a606f4db870678a8bc2764512003 100644 (file)
@@ -32,7 +32,7 @@ mkdir htmldocs
 tar -C htmldocs -xzf out/htmldoc.tar.gz
 #tar -C $RPM_BUILD_ROOT/tmp/lilypond-rpm-doc -xzf out/htmldoc.tar.gz
 
-strip lily/out/lilypond mi2mu/out/mi2mu
+strip lily/out/lilypond midi2ly/out/midi2ly
 make prefix="$RPM_BUILD_ROOT/usr" install
 # gzip -9fn $RPM_BUILD_ROOT/usr/info/* || true
 
@@ -66,8 +66,8 @@ fi
 /usr/bin/mudela-book
 /usr/bin/ly2dvi
 /usr/bin/lilypond
-/usr/bin/mi2mu
-/usr/man/man1/mi2mu.1
+/usr/bin/midi2ly
+/usr/man/man1/midi2ly.1
 /usr/man/man1/lilypond.1
 /usr/man/man1/mudela-book.1
 /usr/man/man1/ly2dvi.1
index 7ea9b2519912796b5968eaa10ea53b6a699be584..ba753587cf3ac146b6ba85af847d562ee964bd1c 100644 (file)
@@ -1,15 +1,15 @@
 Begin3
 Titel: LilyPond
-Versie: 1.1.54
-Inschrijf datum: 08JUL99
+Versie: 1.1.55
+Inschrijf datum: 09JUL99
 Beschrijving: @FLAPTEKST@
 Trefwoorden: muziek typezetten midi notatie
 Auteur: hanwen@stack.nl (Han-Wen Nienhuys)
        janneke@gnu.org (Jan Nieuwenhuizen)
 Onderhouden door: hanwen@cs.ruu.nl (Han-Wen Nienhuys)
 Voornaamste plek: sunsite.unc.edu /pub/Linux/apps
-       770k lilypond-1.1.54.tar.gz 
+       770k lilypond-1.1.55.tar.gz 
 Oorspronkelijke plek: ftp.cs.uu.nl /pub/GNU/LilyPond/development/
-       770k lilypond-1.1.54.tar.gz 
+       770k lilypond-1.1.55.tar.gz 
 Copi-eer voorwaarden: GPL
 End
index 3d0634270571685e08f095de69549de16998c9e5..1a7e20b9a7d2472ac2ad3e24b31c22215ed63752 100644 (file)
@@ -1,21 +1,19 @@
 Begin3
 Title: LilyPond
-Version: 1.1.54
-Entered-date: 08JUL99
+Version: 1.1.55
+Entered-date: 09JUL99
 Description: 
-LilyPond is the GNU Project music typesetter.  This program can print
-beautiful sheet music from a music definition file.  It can also play
-mechanical performances to a MIDI file.  Features include multiple
-staffs, meters, clefs, keys, lyrics, versatile input language, cadenzas,
-beams, slurs, triplets, named chords, transposing, formatting scores, 
-part extraction.  It includes a nice font of musical symbols.
+
+LilyPond is the GNU Project music typesetter. It transforms a musical
+description file into beautiful sheet music.
+
 Keywords: music notation typesetting midi fonts engraving
 Author: hanwen@cs.ruu.nl (Han-Wen Nienhuys)
        janneke@gnu.org (Jan Nieuwenhuizen)
 Maintained-by: hanwen@stack.nl (Han-Wen Nienhuys)
 Primary-site: sunsite.unc.edu /pub/Linux/apps/sound/convert
-       770k lilypond-1.1.54.tar.gz 
+       770k lilypond-1.1.55.tar.gz 
 Original-site: ftp.cs.uu.nl /pub/GNU/LilyPond/development/
-       770k lilypond-1.1.54.tar.gz 
+       770k lilypond-1.1.55.tar.gz 
 Copying-policy: GPL
 End
index 0337c89dfc35a88bb07e2f61172f53af1b007c3f..11adbb60a4c73d69ed7b33d67b8e529fb6c239ad 100644 (file)
@@ -1,9 +1,9 @@
 Name: lilypond
-Version: 1.1.54
+Version: 1.1.55
 Release: 1
 Copyright: GPL
 Group: Applications/Publishing
-Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.1.54.tar.gz
+Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.1.55.tar.gz
 Summary: A program for printing sheet music.
 URL: http://www.cs.uu.nl/~hanwen/lilypond
 Packager: Han-Wen Nienhuys <hanwen@cs.uu.nl>
@@ -13,12 +13,10 @@ Prereq: tetex
 
 %description 
 
-LilyPond is the GNU Project music typesetter.  This program can print
-beautiful sheet music from a music definition file.  It can also play
-mechanical performances to a MIDI file.  Features include multiple
-staffs, meters, clefs, keys, lyrics, versatile input language, cadenzas,
-beams, slurs, triplets, named chords, transposing, formatting scores, 
-part extraction.  It includes a nice font of musical symbols.
+
+LilyPond is the GNU Project music typesetter. It transforms a musical
+description file into beautiful sheet music.
+
 
 %prep
 %setup
@@ -38,7 +36,7 @@ mkdir htmldocs
 tar -C htmldocs -xzf out/htmldoc.tar.gz
 #tar -C $RPM_BUILD_ROOT/tmp/lilypond-rpm-doc -xzf out/htmldoc.tar.gz
 
-strip lily/out/lilypond mi2mu/out/mi2mu
+strip lily/out/lilypond midi2ly/out/midi2ly
 make prefix="$RPM_BUILD_ROOT/usr" install
 # gzip -9fn $RPM_BUILD_ROOT/usr/info/* || true
 
@@ -72,8 +70,8 @@ fi
 /usr/bin/mudela-book
 /usr/bin/ly2dvi
 /usr/bin/lilypond
-/usr/bin/mi2mu
-/usr/man/man1/mi2mu.1
+/usr/bin/midi2ly
+/usr/man/man1/midi2ly.1
 /usr/man/man1/lilypond.1
 /usr/man/man1/mudela-book.1
 /usr/man/man1/ly2dvi.1
index a3e1fd036aca4f59df94ea07dfda3a179945c32f..55c21d3ad1ef82d9a548fe4cdeaa1b2411370d5d 100644 (file)
@@ -8,7 +8,7 @@ depth = .
 
 # descent order into subdirectories:
 #
-SUBDIRS = scripts buildscripts  flower lib lily mf mi2mu po debian \
+SUBDIRS = scripts buildscripts  flower lib lily mf midi2ly po debian \
        Documentation ly input tex make mutopia test intl stepmake\
        ps  scm
 #
index 835a13c83166e70f30561ed17868b78ea08d181e..6f5a6c967f92ce52fb3d6edc966211e47f79b7d5 100644 (file)
@@ -666,31 +666,31 @@ fet_beginchar("Segno", "segno", "segno")
 fet_endchar;
 
 fet_beginchar("Coda", "coda", "coda")
-       save thin, thick, wheelwidth, wheelheight;
+       save thin, thick, codawidth, codaheight;
        thin# = 1.2 stafflinethickness#;
        thick# = 3.5 stafflinethickness#;
-       wheelwidth# = 2/3 interline#;
-       wheelheight# = 1 interline#;
-       define_pixels(thin, thick, wheelwidth, wheelheight);
+       codawidth# = 2/3 interline#;
+       codaheight# = 1 interline#;
+       define_pixels(thin, thick, codawidth, codaheight);
 
-       set_char_box(wheelwidth#+thick#, wheelwidth#+thick#,
-               wheelheight#+thick#, wheelheight#+thick#);
+       set_char_box(codawidth#+thick#, codawidth#+thick#,
+               codaheight#+thick#, codaheight#+thick#);
 
        penpos1(thick,0);
        penpos2(thin,-90);
        penpos3(thick,180);
-       x1l=-wheelwidth;
-       y2l=wheelheight;
+       x1l=-codawidth;
+       y2l=codaheight;
        y1=0;
        x2=0;
        z3 = - z1;
        penlabels(1,2,3);
 
-       path halfwheel;
-       halfwheel := z1l{up} .. z2l{right} .. z3l{down} -- 
+       path halfcoda;
+       halfcoda := z1l{up} .. z2l{right} .. z3l{down} -- 
                z3r{up} .. z2r{left} .. z1r{down} .. cycle;
-       fill halfwheel;
-       fill (halfwheel scaled -1);
+       fill halfcoda;
+       fill (halfcoda scaled -1);
 
        pickup pencircle scaled thin;
        draw (0,-h) -- (0,h);
diff --git a/mi2mu/GNUmakefile b/mi2mu/GNUmakefile
deleted file mode 100644 (file)
index 3432b24..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-# title           makefile for mi2mu
-# file    mi2mu/Makefile 
-
-depth = ..
-
-NAME = mi2mu
-MODULE_NAME = mi2mu
-
-SUBDIRS = include
-EXTRA_DIST_FILES += TODO
-MODULE_LIBS=$(depth)/lib $(depth)/flower
-STEPMAKE_TEMPLATES=c++ executable po
-
-include $(depth)/make/stepmake.make 
-
-# explicit dependencies: (how to do auto?)
-#
-midi-lexer.l:  $(outdir)/midi-parser.hh
-
-
-$(outdir)/mi2mu-version.o: $(outdir)/version.hh
-
diff --git a/mi2mu/TODO b/mi2mu/TODO
deleted file mode 100644 (file)
index 2f0b77f..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-# mi2mu/TODO
-
-Most of the items are marked in the code as well, with full explanation. 
-grep for TODO and ugh/ugr
-
-
-IMPORTANT
-
-       * if multiple channels per track: output each to separate voice
-
-       * get rid of (last few?) midi-specifics in mudela-*
-
-       * find / remove trend (tempo) of mudela columns
-
-       * get rid of Duration_* statics
-
-       * junk one in list vs. array
-
-       * add mi2mu example output (.midi.ly and .gif) to website
-
-       * important? lily is important, go work on lily!
-
-       * faq about mi2mu midi t1. ?
-
-PROJECTS
-
-       * write something interesting in mi2mu manual page
-
-       * check/use type 0 / 1 / 2 of midi file
-
-       * create Indentable_stream (see Tex_stream) as base for Lily_stream
-
-       * use dynamic info
-
-       * use aftertouch info (to guess slurs/ties, scripts (staccato?))
-
-       * lyric events
-
-       * parse all midi events
-
-       * handle time based midi files
-
-       * use dstream feature from lily
-
-       * midi esp.: use I32 iso int where 32 bits are needed (or assumed...)
-
-       * read unsigned words as U16 (not as I16)
-
-       * check use of integral and unsigned in lexer
-       
-       * get rid of ugly statics in Duration_convert
-
-       * change option double-dots to max-dots
-
-       * set Key, Meter, ... command line options
-
-BUGS
-
-       * output of 0 duration c'0
-
-       * array memleaks(?): use Link_array / create Pointer_array? 
-
-       * fix "#undef MEVENT_LIST" source tree: Array<Midi_event*> 
-
-       * split notes that cross bar limit
-
-FUTURE
-
-       * guess plets (i.e.: only use plet-duration *2/3 if there's a 
-         whole plet)
-
-       * merge midi-events with lily's midi-items?
-
-       * guess beams
-
-       * guess / follow tempo changes
-
-       * check out NIFF / analogies?
-
-       * steal good ideas of other gpl midi parsers
-
-       * lily: add mudela info into midi as specials
-         mi2mu: use special info
-
diff --git a/mi2mu/include/GNUmakefile b/mi2mu/include/GNUmakefile
deleted file mode 100644 (file)
index 1a19230..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-# lib/include/Makefile
-
-depth = ../..
-STEPMAKE_TEMPLATES=c++
-include $(depth)/make/stepmake.make
-
diff --git a/mi2mu/include/dummy.icc b/mi2mu/include/dummy.icc
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/mi2mu/include/dummy.tcc b/mi2mu/include/dummy.tcc
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/mi2mu/include/mi2mu-proto.hh b/mi2mu/include/mi2mu-proto.hh
deleted file mode 100644 (file)
index d8ad136..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
-  mi2mu-proto.hh -- declare type names in mi2mu
-
-  source file of mi2mu, part of the GNU LilyPond package,
-
-  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
-*/
-
-
-#ifndef MI2MU_PROTO_HH
-#define MI2MU_PROTO_HH
-
-class Midi_parser;
-struct Midi_parser_info;
-class Midi_score_parser;
-class Midi_track_parser;
-class Mudela_stream;
-class Mudela_item;
-class Mudela_key;
-class Mudela_time_signature;
-class Mudela_note;
-class Mudela_tempo;
-class Mudela_text;
-class Mudela_score;
-class Mudela_staff;
-class Mudela_voice;
-class Mudela_column;
-
-#endif // MI2MU_PROTO_HH
diff --git a/mi2mu/version.cc b/mi2mu/version.cc
deleted file mode 100644 (file)
index e9f2ed4..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-#include "proto.hh"
-#include "string.hh"
-
-const char * mi2mu_version_sz();
-
-// should simply have Root class...
-String
-mi2mu_version_str()
-{
-  return  String (mi2mu_version_sz ())
-       + " " + _("of") + " " +  __DATE__ + " " + __TIME__;
-}
-
diff --git a/midi2ly/GNUmakefile b/midi2ly/GNUmakefile
new file mode 100644 (file)
index 0000000..de64e3e
--- /dev/null
@@ -0,0 +1,22 @@
+# title           makefile for midi2ly
+# file    midi2ly/Makefile 
+
+depth = ..
+
+NAME = midi2ly
+MODULE_NAME = midi2ly
+
+SUBDIRS = include
+EXTRA_DIST_FILES += TODO
+MODULE_LIBS=$(depth)/lib $(depth)/flower
+STEPMAKE_TEMPLATES=c++ executable po
+
+include $(depth)/make/stepmake.make 
+
+# explicit dependencies: (how to do auto?)
+#
+midi-lexer.l:  $(outdir)/midi-parser.hh
+
+
+$(outdir)/midi2ly-version.o: $(outdir)/version.hh
+
diff --git a/midi2ly/TODO b/midi2ly/TODO
new file mode 100644 (file)
index 0000000..2f0b77f
--- /dev/null
@@ -0,0 +1,84 @@
+# mi2mu/TODO
+
+Most of the items are marked in the code as well, with full explanation. 
+grep for TODO and ugh/ugr
+
+
+IMPORTANT
+
+       * if multiple channels per track: output each to separate voice
+
+       * get rid of (last few?) midi-specifics in mudela-*
+
+       * find / remove trend (tempo) of mudela columns
+
+       * get rid of Duration_* statics
+
+       * junk one in list vs. array
+
+       * add mi2mu example output (.midi.ly and .gif) to website
+
+       * important? lily is important, go work on lily!
+
+       * faq about mi2mu midi t1. ?
+
+PROJECTS
+
+       * write something interesting in mi2mu manual page
+
+       * check/use type 0 / 1 / 2 of midi file
+
+       * create Indentable_stream (see Tex_stream) as base for Lily_stream
+
+       * use dynamic info
+
+       * use aftertouch info (to guess slurs/ties, scripts (staccato?))
+
+       * lyric events
+
+       * parse all midi events
+
+       * handle time based midi files
+
+       * use dstream feature from lily
+
+       * midi esp.: use I32 iso int where 32 bits are needed (or assumed...)
+
+       * read unsigned words as U16 (not as I16)
+
+       * check use of integral and unsigned in lexer
+       
+       * get rid of ugly statics in Duration_convert
+
+       * change option double-dots to max-dots
+
+       * set Key, Meter, ... command line options
+
+BUGS
+
+       * output of 0 duration c'0
+
+       * array memleaks(?): use Link_array / create Pointer_array? 
+
+       * fix "#undef MEVENT_LIST" source tree: Array<Midi_event*> 
+
+       * split notes that cross bar limit
+
+FUTURE
+
+       * guess plets (i.e.: only use plet-duration *2/3 if there's a 
+         whole plet)
+
+       * merge midi-events with lily's midi-items?
+
+       * guess beams
+
+       * guess / follow tempo changes
+
+       * check out NIFF / analogies?
+
+       * steal good ideas of other gpl midi parsers
+
+       * lily: add mudela info into midi as specials
+         mi2mu: use special info
+
diff --git a/midi2ly/include/GNUmakefile b/midi2ly/include/GNUmakefile
new file mode 100644 (file)
index 0000000..1a19230
--- /dev/null
@@ -0,0 +1,6 @@
+# lib/include/Makefile
+
+depth = ../..
+STEPMAKE_TEMPLATES=c++
+include $(depth)/make/stepmake.make
+
diff --git a/midi2ly/include/dummy.icc b/midi2ly/include/dummy.icc
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/midi2ly/include/dummy.tcc b/midi2ly/include/dummy.tcc
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/midi2ly/include/mi2mu-proto.hh b/midi2ly/include/mi2mu-proto.hh
new file mode 100644 (file)
index 0000000..d8ad136
--- /dev/null
@@ -0,0 +1,29 @@
+/*
+  mi2mu-proto.hh -- declare type names in mi2mu
+
+  source file of mi2mu, part of the GNU LilyPond package,
+
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
+*/
+
+
+#ifndef MI2MU_PROTO_HH
+#define MI2MU_PROTO_HH
+
+class Midi_parser;
+struct Midi_parser_info;
+class Midi_score_parser;
+class Midi_track_parser;
+class Mudela_stream;
+class Mudela_item;
+class Mudela_key;
+class Mudela_time_signature;
+class Mudela_note;
+class Mudela_tempo;
+class Mudela_text;
+class Mudela_score;
+class Mudela_staff;
+class Mudela_voice;
+class Mudela_column;
+
+#endif // MI2MU_PROTO_HH
diff --git a/midi2ly/version.cc b/midi2ly/version.cc
new file mode 100644 (file)
index 0000000..e9f2ed4
--- /dev/null
@@ -0,0 +1,13 @@
+#include "proto.hh"
+#include "string.hh"
+
+const char * mi2mu_version_sz();
+
+// should simply have Root class...
+String
+mi2mu_version_str()
+{
+  return  String (mi2mu_version_sz ())
+       + " " + _("of") + " " +  __DATE__ + " " + __TIME__;
+}
+
diff --git a/mutopia/J.S.Bach/Duette/GNUmakefile b/mutopia/J.S.Bach/Duette/GNUmakefile
new file mode 100644 (file)
index 0000000..15abf8a
--- /dev/null
@@ -0,0 +1,12 @@
+# mutopia/J.S.Bach/Duette/GNUmakefile
+
+depth = ../../..
+
+SUBDIRS =
+EXTRA_DIST_FILES=
+
+LOCALSTEPMAKE_TEMPLATES=mutopia
+examples=
+
+include $(depth)/make/stepmake.make
+
diff --git a/mutopia/J.S.Bach/Duette/global-i.ly b/mutopia/J.S.Bach/Duette/global-i.ly
new file mode 100644 (file)
index 0000000..849b54b
--- /dev/null
@@ -0,0 +1,6 @@
+\version "1.1.52";
+
+$global_i = \notes{
+       \time 12/8;
+       \key G;
+}
diff --git a/mutopia/J.S.Bach/Duette/global-ii.ly b/mutopia/J.S.Bach/Duette/global-ii.ly
new file mode 100644 (file)
index 0000000..da22bed
--- /dev/null
@@ -0,0 +1,5 @@
+$global_ii = \notes{
+       \time 4/4;
+       \property Staff.timeSignatureStyle = "C2/2"
+       \key a\minor;
+}
diff --git a/mutopia/J.S.Bach/Duette/viola-i.ly b/mutopia/J.S.Bach/Duette/viola-i.ly
new file mode 100644 (file)
index 0000000..6645130
--- /dev/null
@@ -0,0 +1,22 @@
+\header{
+filename =      "viola-i.ly";
+title =                 "Vier Duette";
+description =   "Four duets for Violino and Violoncello (Viola)";
+opus =           "BWV";
+composer =      "Johann Sebastian Bach (1685-1750)";
+enteredby =     "jcn";
+copyright =     "Public Domain";
+}
+
+\version "1.1.52";
+
+\include "global-i.ly"
+\include "violoncello-i.ly";
+
+$viola_i_staff = \context Staff = viola <
+  \property Staff.instrument = "viola"
+  %\property Staff.instrument = "violin"
+  \notes\transpose c'' \$violoncello_i
+  \clef alto;
+  \$global_i
+>
diff --git a/mutopia/J.S.Bach/Duette/viola-ii.ly b/mutopia/J.S.Bach/Duette/viola-ii.ly
new file mode 100644 (file)
index 0000000..5ccd1a9
--- /dev/null
@@ -0,0 +1,21 @@
+\header{
+filename =      "viola-ii.ly";
+title =                 "Vier Duette";
+description =   "Four duets for Violino and Violoncello (Viola)";
+opus =           "BWV";
+composer =      "Johann Sebastian Bach (1685-1750)";
+enteredby =     "jcn";
+copyright =     "Public Domain";
+}
+
+\include "global-ii.ly"
+\include "violoncello-ii.ly";
+
+$viola_ii_staff = \context Staff = viola <
+  \property Staff.instrument = "viola"
+  %\property Staff.instrument = "violin"
+  \clef alto;
+  \$global_ii
+  \notes\transpose c'' \$violoncello_ii
+>
+\version "1.1.52";
diff --git a/mutopia/J.S.Bach/Duette/viola-part.ly b/mutopia/J.S.Bach/Duette/viola-part.ly
new file mode 100644 (file)
index 0000000..66df2cd
--- /dev/null
@@ -0,0 +1,43 @@
+\header{
+filename =      "viola-part.ly";
+title =                 "Vier Duette";
+description =   "Four duets for Violino and Violoncello (Viola)";
+opus =           "BWV";
+composer =      "Johann Sebastian Bach (1685-1750)";
+enteredby =     "jcn";
+copyright =     "Public Domain";
+}
+
+\version "1.1.52";
+
+\include "global-i.ly"
+\include "viola-i.ly"
+
+%{
+\score{
+  \$viola_i_staff
+  \paper{
+    \translator { \BarNumberingStaffContext }
+  }
+  \midi{
+%urg real/duration
+%    \tempo 4. = 69;
+    \tempo 4 . = 50;
+  }
+}
+%}
+
+\include "global-ii.ly"
+\include "viola-ii.ly"
+
+\score{
+  \$viola_ii_staff
+  \paper{
+    castingalgorithm=0.0;
+    \translator { \BarNumberingStaffContext }
+    \translator { \ScoreContext skipBars = 1; }
+  }
+  \midi{
+    \tempo 2 = 96;
+  }
+}
diff --git a/mutopia/J.S.Bach/Duette/violino-i.ly b/mutopia/J.S.Bach/Duette/violino-i.ly
new file mode 100644 (file)
index 0000000..8ee9467
--- /dev/null
@@ -0,0 +1,88 @@
+\header{
+filename =     "violino-i.ly";
+title =                 "Vier Duette";
+description =  "Four duets for Violino and Violoncello (Viola)";
+opus =         "BWV";
+composer =     "Johann Sebastian Bach (1685-1750)";
+enteredby =    "jcn";
+copyright =    "Public Domain";
+}
+
+\version "1.1.52";
+
+$violino_i = \notes\relative c'' {
+  \property Voice.beamAutoEnd = "3/8"
+  %% should fix autobeamer: not only check shortest type's end in beam,
+  %%% but also the newly added type's end
+  \property Voice."beamAutoEnd_8" = "1/16"
+  %r4 r8 [g16(fis e)d] b'8 a r r [g16(fis e)d] c'8 |
+  r4 r8 g16(fis e)d b'8 a r r g16(fis e)d c'8 |
+  b r r d16(b)a g(e')c d(b)a g(c)a c(b)a g(a)fis |
+  g d(e fis g a )b d(c b c a )b g(a b c d )e g()fis e(d)cis |
+  a'd,(e fis g a )b a(g fis g e )fis a(g fis e )d 
+  %%cis d e fis <g8 { \grace a, } { \grace d, } >~|
+  cis d e fis <g8 a, d,>~|
+%5
+  %%<\grace a,16 \grace d, g'16 > e(fis)d cis d 
+  <g16 a, d,> e(fis)d cis d 
+  g,8 <f'4~g, g,> f16 d(e)c b c fis,!8 <e'4 fis,>~|
+  <e16 fis,> c(d)b a b e, b'(c)a g a d, a'(b)g fis g c, g'(a)fis e fis |
+  b,(d)e fis(g)a b(d)c b(a)g fis(g)a b(c)d e(a)g fis e d |
+  g d(e)fis g a b g(fis)g c, a' b, g'(fis)g a, c fis, g(a)b <c8( d, a>~|
+  <c d, a> )b r [d16(b a)g] e'8 d r r [c16(b a)g] g'8 | 
+%10
+  <fis a, d,> r r g16(fis)e d(b')g a(fis)e d(g)e g(fis)e d(e)cis |
+  <d4. d,>~<d16 d,> fis,(g e d)e <c'!4. d,>~<c16 d,> e,(fis d cis)d |
+  <b'4. g g,>~<b16 g g,> e,(dis)e fis g a8 b <c fis,>~ <c16 fis,> b(a)g fis e |
+  [dis e fis g] <a8 fis>~<a16 fis> fis(g)e d e b e(g)e dis e b e(g)e d e |
+  [cis d e fis] <g8 a,>~<g16 a,> e(fis)d cis d a d(fis)d cis d a d(fis)d c d |
+%15
+  [b c d e] <f8 g,>~<f16 g,> e(dis)e a e cis' a(gis)a dis a fis'8 [b,()a] |
+  g16 b(cis dis e fis )g b( a g fis e)dis cis( dis e fis g)a fis(e dis cis b |
+  )e g(fis)e a fis g b(a)g a fis g b(a)g fis e [dis()e fis()c] <a'8( b, fis b,>~|
+  <a b,> <)g b,> r [b,16(a g)fis] c'8 b r r [a16(g fis)e] e'8 |
+  dis8 r r e16 d(cis b g' e)fis d(cis b e cis)e d(cis b cis)ais |
+%20
+  <b4. d, g>~<b16 d,> ais( b d cis)e d8 [b()cis\prall] d [gis()b] |
+  <d,4. e,>~<d16 e,> gis,(a c! b)d <c8 e,> [a()b\prall] c [fis()a]|
+  <c,4. d,>~<c16 d,> a(b)g fis g e b'(c)a g a fis c'(d)b a b |
+  g d'(e)c b c a e'(s)d c d b8 <g'4 g, g,>~<g16 g,>c,(f! e d c |
+  )b c(f, a g f)e g(f e d c )g c(d e f g )a d(c)b a g |
+%25
+  c16 g a b c d e g(f)e f d e  c'(b)c a f g  c,(b)c <f8 g, g,>~|
+  <f16 g,> d(e)c b c fis8 a <c d, d,>~<c16 d, d,> c,(d)b a b e,8 <d'4 e,> ~|
+  <d16 e,> b(c)a gis a e' b(c)a g a fis' c(d)b a b g' d(e)c b c |
+  a' g(fis e d c)b d(c b a g)fis e'(d c b)a \breathe [g(fis e)d] b'8|
+  a r r r16 a, b c d(e)fis g a b c d [g,(fis e)d] c'8 | 
+%30
+  b r r r4 r8 r4 r8 d16 b(a g e')c|
+  d b(a g c a)b d(c f c a)b g(fis g a fis)g b(a g a fis|
+  )g e(d)c f d e g(f)e f d e f(g)a d, f e a(b)c e, g|
+  fis g(a)b e, g fis b(c)d fis, a g a(b)c fis, a g c(d)e g, b|
+  a g(a b c)d [c(b a)g] <f'8 g, g,> <e g, g,> r r d16(c b)a <g'8 a, d,> |
+%35
+  <fis a, d,> r r a16( fis e)d <c'8 a, d,> <b16 b, d, g,> g(a)b e,(g)c,
+  fis(g)a d,(fis|
+  )b, d(e)f b,(d)g, b(c)d g,(b)d, g(a)b d,(g)b, d(e)f b,(d|
+  )g,8 r r e'16(d c)b f'8 e r r g16(fis e)d c'8 |
+  <c4.\prall>~c16 b(a g)e' c()d b(a g)c a()c b(a)g
+  \context Staff<
+    %\context Voice { a16 f | g1. }
+    \context Voice { \property Voice.verticalDirection=1 a16 fis | g1. }
+    \context Voice=x { \property Voice.verticalDirection=-1 c,16 c | b1. }
+  >
+  \bar "|.";
+}
+
+\include "global-i.ly"
+
+$violino_i_staff = \context Staff = violino <
+  %urg
+  % \notes\property Voice.textStyle = "large" s4^"Moderato"
+  % \notes {s4. \property Voice.textStyle = "large" s4^"Moderato"}
+  % urg, timidity violino patches broken?
+  %\property Staff.instrument = "violin"
+  \property Staff.instrument = "viola"
+  \$violino_i
+  \$global_i
+>
diff --git a/mutopia/J.S.Bach/Duette/violino-ii.ly b/mutopia/J.S.Bach/Duette/violino-ii.ly
new file mode 100644 (file)
index 0000000..5cf92fd
--- /dev/null
@@ -0,0 +1,102 @@
+\header{
+filename =     "violino-ii.ly";
+title =                 "Vier Duette";
+description =  "Four duets for Violino and Violoncello (Viola)";
+opus =         "BWV";
+composer =     "Johann Sebastian Bach (1685-1750)";
+enteredby =    "jcn";
+copyright =    "Public Domain";
+}
+
+$violino_ii = \notes\relative c''{
+  R1*8 |
+  r2 e | 
+%10
+  fis a,|c8(b)a2 b8()cis|d e f2 e8()dis|e(b e)fis e(b e)g|
+  fis(b,fis')g fis(b,fis')a|
+%15
+  g(b,g')a g(b,g')b|fis(b,fis')g fis(b,fis')a|g fis e2 d4|cis bes'(a\prall)g|
+  bes, g'(f\prall)e|
+%20
+  g, e'(d\prall)cis|d8 g,(f)e d4 c'|b as'(g\prall)f|as, f'(e\prall)d|
+  f, d'(c\prall)b|
+%25
+  c8 f,(e)d c4 bes'(|)a8 g'(f)e f d a4~|a8 g(a)b g c e4| f,8(e'd)c d b f4~|
+  f8 e(f)g e g c4|
+%30
+  d,8(c'b)a b gis d4|d8 c(d)e c f e d|e4 a,2()gis4|a2 a'|c e,|
+%35
+  f8(e)d2 e8()fis|g a bes2 a8()gis|a(e a)b a(e a)c|b(e,b')c b(e,b')d|
+  c(e,c')d c(e,c')d|
+%40
+  b(e,b')c b(e,b')d| c(b)a2 gis4|a8()c b d c()b c a|e4 fis g fis8()e|fis4 gis a2~
+%45
+  a4 g8 fis g4 e~|e dis8 cis dis2\prall|e4 b' e2|e dis\prall|e4. d16(e f8)e d c|
+%50
+  b c d4. c8(b)a|gis a b4. a8(g)fis|gis()e gis a b()c d b|c()b a b c()d es c|
+  a b c4. b8(a)g|
+%55
+  fis g a4.g8(fis)e| fis()d fis g a()b c a|b()a g a b()c d b|c4 e()a, c(|
+  )fis, g8 a b4 g(|
+%60
+  )a c()fis, a(|)d, e8 fis g4 e(|)fis a()dis, fis(|)b, cis8 dis e2~|
+  e4 d8 cis d2~|
+%65
+  d4 e8 fis g2(|)g4 f8 e f2~|f4 g8 a bes2~|bes4 a8 gis a2~|
+  a gis\prall|
+%70
+  a e'|f a,|c8(b)a2 b8()cis|d e f2 e8()dis|e(b e)fis e(c)e g|
+%75
+  fis(b,fis')g fis(b,fis')a|g(b,g')a g(b,g')b|fis(b,fis')g fis(b,fis')a|
+  g\prall b,(e)fis g()a b()g|e f g4. f8(e)d|
+%80
+  cis d e4. d8(c)b|cis a cis d e()f g()e|f e d cis d4 c|b as'(g\prall)f|
+  as, f'(e\prall)d|
+%85
+  f, d'(c\prall)b| c8(g)c d c fis,(a)c|b(dis,)b' c b f,(b')d|
+  cis(a)cis dis e g,(c)e|d(f,)d' es d g,(d')f|
+%90
+  e(c)e fis g bes,(es)g|f(a,)f' g f bes,(d)f|e(gis,)e' f e a,(e')g|
+  f()g f e d()c b a|gis e()fis()g e gis a b|
+%95
+  c2 e,|f8 e(d)cis d e fis gis|a e a2 gis4(|)a b()c b8 a|b4()cis <d2 d,>~|
+%100
+  <d4 d,> c8 b c4 <a a,>~|<a a,> gis8 fis g2\prall|
+  <a2 e a,> <e' a,> <a a,> <a c,>|
+  %<a2 b, d4><gis\prall b,4 d>|
+  \context Staff<
+    \context Voice { 
+      \property Voice.verticalDirection=1
+      <a2 b,>gis\prall|a8 g f4~f8 e(d)cis|
+%105
+      d c bes4~bes8 a(gis)fis|gis4 e <e' a,><f a,>|
+      %c2 b()\grace a|
+      c2 b|
+      a1|
+    }
+    \context Voice=x { 
+      \property Voice.verticalDirection=-1
+      d,4 s<b4 d>s|<a2 d> s2|
+%105
+      <d g,> s2|s1|
+      %e2 d ()\grace c|
+      e2 d|
+      c1|
+    }
+  >
+  \bar "|.";
+}
+
+\include "global-ii.ly"
+
+$violino_ii_staff = \context Staff = violino <
+  %urg
+  % \notes\property Voice.textStyle = "large" s4^"Moderato"
+  % \notes {s4. \property Voice.textStyle = "large" s4^"Moderato"}
+  % urg, timidity violino patches broken?
+  %\property Staff.instrument = "violin"
+  \property Staff.instrument = "viola"
+  \$violino_ii
+  \$global_ii
+>
+\version "1.1.52";
diff --git a/mutopia/J.S.Bach/Duette/violino-part.ly b/mutopia/J.S.Bach/Duette/violino-part.ly
new file mode 100644 (file)
index 0000000..f53fc6f
--- /dev/null
@@ -0,0 +1,43 @@
+\header{
+filename =      "violino-part.ly";
+title =                 "Vier Duette";
+description =   "Four duets for Violino and Violoncello (Viola)";
+opus =           "BWV";
+composer =      "Johann Sebastian Bach (1685-1750)";
+enteredby =     "jcn";
+copyright =     "Public Domain";
+}
+
+\version "1.1.52";
+
+\include "global-i.ly"
+\include "violino-i.ly"
+
+%{
+\score{
+  \$violino_i_staff
+  \paper{
+    \translator { \BarNumberingStaffContext }
+  }
+  \midi{
+%    \tempo 4. = 69;
+    \tempo 4 . = 50;
+  }
+}
+%}
+
+\include "global-ii.ly"
+\include "violino-ii.ly"
+
+\score{
+  \$violino_ii_staff
+  \paper{
+    \translator { \BarNumberingStaffContext }
+    castingalgorith=0;
+  }
+  \midi{
+%    \tempo 4. = 69;
+    \tempo 4 . = 50;
+  }
+}
+
diff --git a/mutopia/J.S.Bach/Duette/violino-viola.ly b/mutopia/J.S.Bach/Duette/violino-viola.ly
new file mode 100644 (file)
index 0000000..856c58d
--- /dev/null
@@ -0,0 +1,52 @@
+\header{
+filename =      "violino-viola.ly";
+title =                 "Vier Duette";
+description =   "Four duets for Violino and Violoncello (Viola)";
+opus =           "BWV";
+composer =      "Johann Sebastian Bach (1685-1750)";
+enteredby =     "jcn";
+copyright =     "Public Domain";
+}
+
+\version "1.1.52";
+
+\include "violino-i.ly";
+\include "viola-i.ly";
+
+\score{
+  \context GrandStaff <
+    \$violino_i_staff
+    \$viola_i_staff
+  >
+  \paper{
+    \translator {
+      \OrchestralScoreContext
+    }
+  }
+  \midi{
+%urg real/duration
+%    \tempo 4. = 69;
+    \tempo 4 . = 50;
+  }
+}
+
+
+\include "violino-ii.ly";
+\include "viola-ii.ly";
+
+\score{
+  \context GrandStaff <
+    \$violino_ii_staff
+    \$viola_ii_staff
+  >
+  \paper{
+    \translator {
+      \OrchestralScoreContext
+    }
+  }
+  \midi{
+%    \tempo 2 = 96;
+    \tempo 2 = 75;
+  }
+}
+
diff --git a/mutopia/J.S.Bach/Duette/violino-violoncello.ly b/mutopia/J.S.Bach/Duette/violino-violoncello.ly
new file mode 100644 (file)
index 0000000..449f317
--- /dev/null
@@ -0,0 +1,50 @@
+\header{
+filename =      "violino-violoncello.ly";
+title =                 "Vier Duette";
+description =   "Four duets for Violino and Violoncello (Viola)";
+opus =           "BWV";
+composer =      "Johann Sebastian Bach (1685-1750)";
+enteredby =     "jcn";
+copyright =     "Public Domain";
+}
+
+\version "1.1.52";
+
+\include "violino-i.ly";
+\include "violoncello-i.ly";
+
+\score{
+  \context GrandStaff <
+    \$violino_i_staff
+    \$violoncello_i_staff
+  >
+  \paper{
+    \translator {
+      \OrchestralScoreContext
+    }
+  }
+  \midi{
+%urg, real/duration
+%    \tempo 4. = 69;
+    \tempo 4 . = 50;
+  }
+}
+
+\include "violino-ii.ly";
+\include "violoncello-ii.ly";
+
+\score{
+  \context GrandStaff <
+    \$violino_ii_staff
+    \$violoncello_ii_staff
+  >
+  \paper{
+    \translator {
+      \OrchestralScoreContext
+    }
+  }
+  \midi{
+    \tempo 2 = 96;
+  }
+}
+
diff --git a/mutopia/J.S.Bach/Duette/violoncello-i.ly b/mutopia/J.S.Bach/Duette/violoncello-i.ly
new file mode 100644 (file)
index 0000000..9b42424
--- /dev/null
@@ -0,0 +1,71 @@
+\header{
+filename =     "violoncello-i.ly";
+title =                "Vier Duette";
+description =  "Four duets for Violino and Violoncello (Viola)";
+opus =                 "BWV";
+composer =     "Johann Sebastian Bach (1685-1750)";
+enteredby =    "jcn";
+copyright =    "Public Domain";
+}
+
+\version "1.1.52";
+
+$violoncello_i = \notes\relative c{
+  \property Voice.beamAutoEnd = "3/8"
+  g8()a d, g b()g d()fis a d a()fis |
+  g()d b' g b()c b()e fis g d()d, |
+  g r r [d'16(b a )g] e'8 d r r [c16(b a )b] g'8 |
+  fis r r g16 fis( e d b' g )a fis( e d g)e g fis( e d e)cis |
+%5
+  d8 d'()a b16 c(d)b g b c,8 c'()g a16 b(c)a fis a |
+  b,8()b' fis g a()e fis g()d e fis()d |
+  g r r g,16(fis e)d b'8 a r r g16(fis e )d c'8 |
+  b r r d16 b(a)g e' c d b(a)g c a c b(a)g a fis |
+  g d( e fis g a )b d(c b c )a b g(a b c b )e g( fis e d cis |
+%10
+  )a'16 d,( e fis g a)b a(g fis g e)fis a(g fis e d)cis d(e)fis g8~ |
+  g16 e(fis)d cis d b'4.~b16 d,(e)c b c a'4.~|
+  a16 fis(g)e dis e c'4.~c16 b(a)g fis e dis8(e)c |
+  b b'16(a g)fis e8 e,()fis g()b a g e()e' |
+  a,16 b(cis)d e cis d8 d,()e fis a()g fis d()d' |
+%15
+  g,16(a b)c! d b c8 c'()fis, a dis,()fis b,16 cis(dis e)fis d |
+  e8 e, r [e'16( dis cis)b] g'8 fis r r [e16(dis cis)b] a'8 |
+  g r r b16 g(fis)e c'! a b g(fis)e a fis a g(fis)e fis dis |
+  e b(cis dis)e fis g b(a)g a fis g e(fis)g a b cis e(dis)c b ais |
+  fis b,(cis)dis e fis g fis(e)d e cis d8()d, g' e fis()fis,|
+%20
+  b16 fis'(gis)ais b cis d cis(d)b ais b fis b(d)b ais b f b(d)b a b |
+  e, b'(e)d c b a b(c)a gis a e a(c)a gis a es a(c)a g a|
+  d, a'(d)c b a g8()g, b c a()c d()b d |
+  e c()e f g, f'~f16 e(f b, a)b e8()a f |
+  g g, r [c16(b a)g] e'8 d r r [c16(b a)g] f'8|
+%25
+  e r r g16 e(d)c a' f g e(d)c f d f e(d)c d b |
+  c8 c'()g a16 b(c)a g fis b8 b,()fis' gis16 a(b)g fis e |
+  a,8()a' b c b()c d()b d e [c()a]|
+  fis()d r [g16(fis e)d] b'8 a r r b16 d(c)b a g |
+  e e'(d)c b a [g(fis e)d] c'8 b r r r16 b, c d e fis |
+%30
+  g a(b c d)e d b(a g e')c d b(a g c)a b d(c b c)a|
+  b g(fis e a fis)g b(a g a fis)g b(a g c a)b g(fis e fis dis|
+  )e g(f)e a fis g e(d)c d c c8()c' b c a()c |
+  d,()d' cis d b()d e,()e' dis e c()e |
+  fis,()e d g [c,16(b a)g] c g'(a c b)d e8 [d,16(cis b)a]|
+%35
+  d a'(b cis d)e fis8 [g,16( fis e)d] g8()e c a d()d,|
+  g r r r16 d''(e)f b,(d)g, b(c)d g,(b)d, f(g)a d,(f|
+  )b, d(e)f b,(d)g,8 a()b c16 d(e f g a)b d(c b a)g|
+  fis [a(g)fis e d] g8()e c g'8 b, e c d d, |
+  g1.|
+  \bar "|.";
+}
+
+\include "global-i.ly"
+
+$violoncello_i_staff = \context Staff = violoncello <
+  \property Staff.instrument = "cello"
+  \$violoncello_i
+  \clef bass;
+  \$global_i
+>
diff --git a/mutopia/J.S.Bach/Duette/violoncello-ii.ly b/mutopia/J.S.Bach/Duette/violoncello-ii.ly
new file mode 100644 (file)
index 0000000..19f5dfa
--- /dev/null
@@ -0,0 +1,78 @@
+\header{
+filename =     "violoncello-ii.ly";
+title =                "Vier Duette";
+description =  "Four duets for Violino and Violoncello (Viola)";
+opus =                 "BWV";
+composer =     "Johann Sebastian Bach (1685-1750)";
+enteredby =    "jcn";
+copyright =    "Public Domain";
+}
+
+\version "1.1.52";
+
+$violoncello_ii = \notes\relative c{
+  r2 a'2|c e,| f8(e)d2 e8()fis| g a bes2 a8()gis|
+%5
+  a(e)a b a(e)a c|b(e,b')c b(e,b')d|c(e,c')d c(e,c')e|b(e,b')c b(e,b')d|
+  c(b)a2 gis4|
+%10
+  a8()c b d c()b c a|e4 fis g fis8()e|fis4 gis a2~|a4 g8(fis)g4 e~|
+  e dis8 cis dis2\prall|
+%15
+  e4 b' e2~|e dis\prall|e4 e,8()fis g a bes g|e f g4. f8(e)d|cis d e4.d8(cis)b|
+%20
+  cis()a cis d e()f g e|f()e d e f()g as f|d e f4. e8(d)c|b c d4. c8(b)a|
+  b()g b c d()e f d|
+%25
+  e()d c d e()f g e|f4 a()d, f(|)b, c8 d e4 c(|)d f()b, d(|)a a8 b c4 a(|
+%30
+  )b d()gis, b(|)e, fis8()gis a4 b|c2 e,|f8 e d4~d8 e(fis)gis|a e a2 gis4|
+%35
+  a b c b8()a|b4 c d2~|d4 c8 b c4 a~|a gis8 gis gis2\prall|a4 e' a2~|
+%40
+  a gis\prall|a e|f a,|c8(b)a2 b8 cis|d()e f2 e8()dis|
+%45
+  e(b e)fis e(b e)g|fis(b,fis')g fis(b,fis')a|g(b,g')a g(b,g')b|
+  fis(b,fis')g fis(b,fis')a|g(fis)e2 fis4|
+%50
+  gis f'!(e\prall)d |f, d'(c\prall)b|d, b'(a\prall)gis|a8 d,(c)b a4 g'|
+  fis es'(d\prall)c|
+%55
+  es, c'(b\prall)a|c, a'(g\prall)fis|g8 c,(b)a g4 f'(|)e8 e'(c)b c()a e4~|
+  e8 d e fis d()g b4|
+%60
+  c,8(b'a)g a()fis c4~|c8 b c d b()d g4|a,8(g'fis)e fis()dis a4~|
+  a8 g a b g d' e g|fis(ais,fis')g fis(b,fis')g|
+%65
+  gis(e gis)ais b(e,g)b|a(cis,a')bes a(d,a')c|b(g c)cis d f,(bes)d|
+  c e,(c')d c f,(a)c|b d,(b')c b e,(b')d|
+%70
+  c a(c)e c a()b gis(|)a c(b)d c b(c)a|e4 fis g fis8()e|fis4 gis a2~|
+  a4 g8 fis g4 e~|
+%75
+  e dis8 cis dis2\prall|e4 b' e2~|e dis\prall|e r4 d|cis bes(a\prall)g|
+%80
+  bes, g'(()f\prall)e|g, e'(()d\prall)cis|d8()a d e f g as f|d e f4.(e8 d)c|
+  b c d4.(c8 b)a|
+%85
+  b()g b c d()e b d|e4 e, a2~|a4 g8 fis g2~|g4 a8 b c2~|c4 bes8 a bes2~|
+%90
+  bes4 c8 d es2~|es4 d8 cis d2~|d cis\prall|d4 e f d|e d' c b|
+%95
+  a8()e a2 gis4\prall| a2 b|c e,|c8(e)d2 e8()fis|g a bes2 a8()gis|
+%100
+  a(e a)b a(e a)c| b(e,b')c b(e,b')d|c(e,c')d c(e,c')e|
+  b(e,b')c b(e,b')d| c(a b)cis d()e f g|
+%105
+  f e d cis d4 d,~|d c8 b c4 d|e d e e,|<e'1 a,>
+  \bar "|.";
+}
+
+\include "global-ii.ly"
+
+$violoncello_ii_staff = \context Staff = violoncello <
+  \property Staff.instrument = "cello"
+  \$violoncello_ii
+  \clef bass;
+  \$global_ii
+>
diff --git a/mutopia/J.S.Bach/Duette/violoncello-part.ly b/mutopia/J.S.Bach/Duette/violoncello-part.ly
new file mode 100644 (file)
index 0000000..bdac627
--- /dev/null
@@ -0,0 +1,43 @@
+\header{
+filename =      "violoncello-part.ly";
+title =                 "Vier Duette";
+description =   "Four duets for Violino and Violoncello (Viola)";
+opus =           "BWV";
+composer =      "Johann Sebastian Bach (1685-1750)";
+enteredby =     "jcn";
+copyright =     "Public Domain";
+}
+
+\version "1.1.52";
+
+\include "global-i.ly"
+\include "violoncello-i.ly"
+
+%{
+\score{
+  \$violoncello_i_staff
+  \paper{
+    \translator { \BarNumberingStaffContext }
+  }
+  \midi{
+%urg, real/duration
+%    \tempo 4. = 69;
+    \tempo 4 . = 69;
+  }
+}
+%}
+
+\include "global-ii.ly"
+\include "violoncello-ii.ly"
+
+\score{
+  \$violoncello_ii_staff
+  \paper{
+    castingalgorithm=0.;
+    \translator { \BarNumberingStaffContext }
+  }
+  \midi{
+    \tempo 2 = 96;
+  }
+}
+
index c7e99a35d2deb5ae4d5d7e31e06efe7bd9b02d94..bb33ed42dd96b403cb39cde6beb8ecdeacd10545 100644 (file)
@@ -1,8 +1,8 @@
-# mutopia/J.S.Bach/Makefile
+# mutopia/J.S.Bach/GNUmakefile
 
 depth = ../..
 
-SUBDIRS = Petites-Preludes Solo-Cello-Suites Cembalo-Partitas
+SUBDIRS = Petites-Preludes Solo-Cello-Suites Cembalo-Partitas Duette
 EXTRA_DIST_FILES=
 
 
diff --git a/mutopia/J.S.Bach/global-i.ly b/mutopia/J.S.Bach/global-i.ly
deleted file mode 100644 (file)
index c5a8fb0..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-$global_i = \notes{
-       \time 12/8;
-       \key G;
-}
diff --git a/mutopia/J.S.Bach/viola-i.ly b/mutopia/J.S.Bach/viola-i.ly
deleted file mode 100644 (file)
index c239761..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-\header{
-filename =      "viola-i.ly";
-title =                 "Vier Duette";
-description =   "Four duets for Violino and Violoncello (Viola)";
-opus =           "BWV";
-composer =      "Johann Sebastian Bach (1685-1750)";
-enteredby =     "jcn";
-copyright =     "Public Domain";
-}
-
-\include "global-i.ly"
-\include "violoncello-i.ly";
-
-$viola_i_staff = \context Staff = viola <
-       \notes\transpose c'' \$violoncello_i
-       \clef alto;
-       \$global_i
->
-\version "1.1.52";
diff --git a/mutopia/J.S.Bach/viola-part.ly b/mutopia/J.S.Bach/viola-part.ly
deleted file mode 100644 (file)
index a7fe1b4..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-\header{
-filename =      "viola-part.ly";
-title =                 "Vier Duette";
-description =   "Four duets for Violino and Violoncello (Viola)";
-opus =           "BWV";
-composer =      "Johann Sebastian Bach (1685-1750)";
-enteredby =     "jcn";
-copyright =     "Public Domain";
-}
-
-\include "global-i.ly"
-\include "viola-i.ly"
-
-\score{
-       \$viola_i_staff
-       \paper{
-               \translator { \BarNumberingStaffContext }
-       }
-       \midi{
-%urg
-%              \tempo 4. = 69;
-               \tempo 4 . = 69;
-       }
-}
-
diff --git a/mutopia/J.S.Bach/violino-i.ly b/mutopia/J.S.Bach/violino-i.ly
deleted file mode 100644 (file)
index 1c4a2d1..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-\header{
-filename =      "violino-i.ly";
-title =                 "Vier Duette";
-description =   "Four duets for Violino and Violoncello (Viola)";
-opus =           "BWV";
-composer =      "Johann Sebastian Bach (1685-1750)";
-enteredby =     "jcn";
-copyright =     "Public Domain";
-}
-
-$violino_i = \notes\relative c'' {
-       r4 r8 [g16(fis e)d] b'8 a r r [g16(fis e)d] c'8 |
-       b r r [d16(b)a g(e')c][d(b)a g(c)a][c(b)a g(a)fis] |
-       [g d(e fis g a][)b d(c b c a][)b g(a b c d][)e g()fis e(d)cis] |
-       [a'd,(e fis g a][)b a(g fis g e][)fis a(g fis e )d]
-       % [cis d e fis <g8 a,\grace d,\grace>] ~ |
-       [cis d e fis <g8 a, d,>] ~ |
-       %[<g16 a,\grace d,\grace> e(fis)d cis d]
-       [<g16 a, d,> e(fis)d cis d] 
-       g,8 <f'4 ~ g, g,> [f16 d(e)c b c]
-       fis,8 <e'4 f,> ~ |
-       [<e16 f,> c(d)b a b][e, b'(c)a g a][d, a'(b)g fis g][c, g'(a)fis e fis] |
-       [b,(d)e fis(g)a][b(d)c b(a)g][fis(g)a b(c)d][e(a)g fis e d] |
-       [g d(e)fis g a][b g(fis)g c, a'][b, g'(fis)g a, c]
-       [fis, g(a)b <c8( d, a>] ~
-       [<c d, a> )b] r [d16(b a)g] e'8 d r r [c16(b a)g] g'8 | <fis a, d,>
-}
-
-\include "global-i.ly"
-
-$violino_i_staff = \context Staff = violino <
-       <
-               %urg
-               % \notes\property Voice.textStyle = "large" s4^"Moderato"
-               % \notes {s4. \property Voice.textStyle = "large" s4^"Moderato"}
-               \$violino_i
-       >
-       \$global_i
->
-\version "1.1.52";
diff --git a/mutopia/J.S.Bach/violino-part.ly b/mutopia/J.S.Bach/violino-part.ly
deleted file mode 100644 (file)
index de5a179..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-\header{
-filename =      "violino-part.ly";
-title =                 "Vier Duette";
-description =   "Four duets for Violino and Violoncello (Viola)";
-opus =           "BWV";
-composer =      "Johann Sebastian Bach (1685-1750)";
-enteredby =     "jcn";
-copyright =     "Public Domain";
-}
-
-\include "global-i.ly"
-\include "violino-i.ly"
-
-\score{
-       \$violino_i_staff
-       \paper{
-               \translator { \BarNumberingStaffContext }
-       }
-       \midi{
-%urg
-%              \tempo 4. = 69;
-               \tempo 4 . = 69;
-       }
-}
-
diff --git a/mutopia/J.S.Bach/violino-viola.ly b/mutopia/J.S.Bach/violino-viola.ly
deleted file mode 100644 (file)
index e79ff40..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-\header{
-filename =      "violino-viola.ly";
-title =                 "Vier Duette";
-description =   "Four duets for Violino and Violoncello (Viola)";
-opus =           "BWV";
-composer =      "Johann Sebastian Bach (1685-1750)";
-enteredby =     "jcn";
-copyright =     "Public Domain";
-}
-
-\include "violino-i.ly";
-\include "viola-i.ly";
-
-\score{
-       \context GrandStaff <
-               \$violino_i_staff
-               \$viola_i_staff
-       >
-       \paper{
-               \translator {
-%                      \BarNumberingStaffContext
-%                      \BarNumberingScoreContext
-                       \OrchestralScoreContext
-               }
-       }
-       \midi{
-%urg
-%              \tempo 4. = 69;
-               \tempo 4 . = 69;
-       }
-}
-
-\version "1.1.52";
diff --git a/mutopia/J.S.Bach/violino-violoncello.ly b/mutopia/J.S.Bach/violino-violoncello.ly
deleted file mode 100644 (file)
index d7431f1..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-\header{
-filename =      "violino-violoncello.ly";
-title =                 "Vier Duette";
-description =   "Four duets for Violino and Violoncello (Viola)";
-opus =           "BWV";
-composer =      "Johann Sebastian Bach (1685-1750)";
-enteredby =     "jcn";
-copyright =     "Public Domain";
-}
-
-\include "violino-i.ly";
-\include "violoncello-i.ly";
-
-\score{
-       \context GrandStaff <
-               \$violino_i_staff
-               \$violoncello_i_staff
-       >
-       \paper{
-               \translator {
-%                      \BarNumberingStaffContext
-%                      \BarNumberingScoreContext
-                       \OrchestralScoreContext
-               }
-       }
-       \midi{
-%urg
-%              \tempo 4. = 69;
-               \tempo 4 . = 69;
-       }
-}
-
-\version "1.1.52";
diff --git a/mutopia/J.S.Bach/violoncello-i.ly b/mutopia/J.S.Bach/violoncello-i.ly
deleted file mode 100644 (file)
index bae5e6d..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-\header{
-filename =      "violoncello.ly";
-title =                 "Vier Duette";
-description =   "Four duets for Violino and Violoncello (Viola)";
-opus =           "BWV";
-composer =      "Johann Sebastian Bach (1685-1750)";
-enteredby =     "jcn";
-copyright =     "Public Domain";
-}
-
-$violoncello_i = \notes\relative c{
-       [g8()a d,][g b()g][d()fis a][d a()fis]|
-       [g()d b'][g b()c][b()e fis][g d()d,] |
-       g r r [d'16(b a )g] e'8 d r r [c16(b a )b]g'8 |
-       fis r r [g16 fis( e d b' g][)a fis( e d g)e][g fis( e d e)cis] |
-       [d8 d'()a][b16 c(d)b g b][c,8 c'()g][a16 b(c)a fis a] |
-       [b,8()b' fis][g a()e][fis g()d][e fis()d] |
-       g r r [g,16(fis e)d] b'8 a r r [g16(fis e )d]c'8 |
-       b r r [d16 b(a)g e' c][d b(a)g c a][c b(a)g a fis] |
-       [g d( e fis g a][)b d(c b c )a][b g(a b c b][)e g( fis e d cis] |
-       )a'16
-}
-
-\include "global-i.ly"
-
-$violoncello_i_staff = \context Staff = violoncello <
-       \$violoncello_i
-       \clef bass;
-       \$global_i
->
-\version "1.1.52";
diff --git a/mutopia/J.S.Bach/violoncello-part.ly b/mutopia/J.S.Bach/violoncello-part.ly
deleted file mode 100644 (file)
index bf1d8f0..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-\header{
-filename =      "violoncello-part.ly";
-title =                 "Vier Duette";
-description =   "Four duets for Violino and Violoncello (Viola)";
-opus =           "BWV";
-composer =      "Johann Sebastian Bach (1685-1750)";
-enteredby =     "jcn";
-copyright =     "Public Domain";
-}
-
-\include "global-i.ly"
-\include "violoncello-i.ly"
-
-\score{
-       \$violoncello_i_staff
-       \paper{
-               \translator { \BarNumberingStaffContext }
-       }
-       \midi{
-%urg
-%              \tempo 4. = 69;
-               \tempo 4 . = 69;
-       }
-}
-
index 75991aa5f037380e72ad88eb803c31a3df913809..3eeb87484a6b04f79eeb0f79bf929968416c360c 100644 (file)
@@ -18,9 +18,9 @@
         closepath fill
 } bind def
 
-/draw_decrescendo % width height cons
+/draw_decrescendo %  width height cons thick
 {
-       stafflinethickness setlinewidth
+       setlinewidth
        /cresc_cont exch def
        /cresc_ht exch def
        /cresc_wd exch def
@@ -33,9 +33,9 @@
        stroke
 } bind def
 
-/draw_crescendo % width height cons
+/draw_crescendo % width height cons thick
 {
-       stafflinethickness setlinewidth
+       setlinewidth
        /cresc_cont exch def
        /cresc_ht exch def
        /cresc_wd exch def
@@ -99,9 +99,9 @@
 } bind def
 
 % this is for drawing slurs.
-/draw_bezier_sandwich 
+/draw_bezier_sandwich  % thickness 
 {
-       stafflinethickness setlinewidth
+       setlinewidth
        moveto
        curveto
        lineto
index 9a369e9d51fad65867b93be78863447de8b6771d..6f2666422e0427eccacd54241dbfdbc18726f4aa 100644 (file)
@@ -3,13 +3,11 @@
 % hmm
 /setgray { 1 add } bind def
 
-% urg
-1 /stafflinethickness exch def
+/stafflinethickness  mudelapaperstaffline def
+/staffheight mudelapaperstaffheight def
 
 /xoffset 30 def
 /yoffset 700 def
-/staffrulethickness 1 def
-/staffheight 20 def
 
 /placebox
 {
        grestore
 } bind def
 
-/setbold % '(' text ')'
-{
-       settext
-} bind def
-/settext % '(' text ')'
-{
-       gsave
-       % urg
-       /Times-Roman findfont 12 scalefont setfont
-       show
-       grestore
-} bind def
-
-/setfinger % '(' text ')'
-{
-       gsave
-       % urg
-       /feta-nummer5 findfont 12 scalefont setfont
-       show
-       grestore
-} bind def
-
-/setitalic % '(' text ')'
-{
-       gsave
-       % urg
-       /Times-Italic findfont 12 scalefont setfont
-       show
-       grestore
-} bind def
-
-/vrule % width depth height
-{
-} bind def
-
-
 %
 % FIXME.  translate to middle of box.
 %
 
 /draw_box % breapth width depth height
 {
+       /h exch def
+       /d exch def
+       /w exch def
+       /b exch def
        gsave
-       4 -1 roll
-       dup
-       neg 0 translate
-       4 -1 roll
-       add
-
-       setlinewidth
 
-       0 exch moveto
-       neg 0 exch lineto stroke
-
-       grestore
-} bind def
+       0 setlinewidth
+       b neg d neg rmoveto
+       b w add 0 rlineto
+       0 d h add rlineto
+       b w add neg 0 rlineto
+       closepath % 0 d h add neg rlineto
+       fill
 
-/extender % width
-{
-       gsave
-       0 0 moveto
-       stafflinethickness 0.8 mul setlinewidth
-       0 lineto stroke
        grestore
 } bind def
 
-/widthbar % height width
-{
-       gsave
-       setlinewidth
-       2 div dup neg 0 exch moveto
-       0 exch lineto stroke
-       2 div
-       grestore
-} bind def
-
-/thickbar % height
-{
-       stafflinethickness 2 mul widthbar
-} bind def
-
-/thinbar % height
-{
-       stafflinethickness 1.6 mul widthbar
-} bind def
-
-/maatstreep % height
-{
-       thinbar
-} bind def
-
-/fatdoublebar
-{
-       thickbar
-} bind def
-
-/finishbar
-{
-       thickbar
-} bind def
-
-/generalmeter % num den
-{
-       pop pop
-} bind def
-
-/pianobrace % '(' char ')'
-{
-       gsave
-       /feta-braces20 findfont 12 scalefont setfont%
-       show
-       grestore
-} bind def
-
-/doublebar
-{
-       thinbar
-} bind def
-
-/repeatbar
-{
-       thickbar
-} bind def
-
-/repeatbarstartrepeat
-{
-       thickbar
-} bind def
-
-/startbar
-{
-       thickbar
-} bind def
-
-/startrepeat
-{
-       thickbar
-} bind def
-
-/stoprepeat
-{
-       thickbar
-} bind def
-
 /start_line
 { 
        gsave
        grestore
        yoffset add /yoffset exch def
        % urg...
-       yoffset staffheight 8 mul sub /yoffset exch def
+       yoffset mudelapaperstaffheight 8 mul sub /yoffset exch def
 } bind def
 
 /unknown { (U) setbold } bind def
index dbc8381e439061ae3a54a53a59c003b2a0a71c0b..003a92a63935a3311bb0d529fa007658f4eec2d5 100644 (file)
     (embedded-ps ((ps-scm 'crescendo) w h cont)))
 
   (define (char i)
-    (string-append "\\show{" (inexact->string i 10) "}"))
+    (string-append "\\char" (inexact->string i 10) " "))
   
   (define (decrescendo w h cont)
     (embedded-ps ((ps-scm 'decrescendo) w h cont)))
 
+   ;This sets CTM so that you get to the currentpoint
+  ; by executing a 0 0 moveto
+       
   (define (embedded-ps s)
-    (string-append "\\embeddedps{" s "}"))
+    (string-append "\\special{ps: @beginspecial @setspecial " s " @endspecial}"))
 
   (define (end-output) 
     "\n\\EndLilyPondOutput")
   
   (define (experimental-on)
-    "\\turnOnExperimentalFeatures")
+    "")
 
   (define (font-switch i)
     (string-append
     (string-append
      "\\font" (font-switch i) "=" s "\n"))
 
-  (define (generalmeter num den)
-    (string-append 
-     "\\generalmeter{" (number->string (inexact->exact num)) "}{" (number->string (inexact->exact den)) "}"))
-
-  (define (header-end) "\\turnOnPostScript")
+  ;; UGH
+   
+  (define (header-end) (string-append
+"\\special{!"
+"/stafflinethickness \\mudelapaperstaffline0 def " ;may we burn in hell.
+"/interline \\mudelapaperinterline0 %\n def "
+"interline 3 div /bracket_b exch def "
+"interline 2 mul /bracket_w exch def "
+"stafflinethickness 2 mul /bracket_t exch def "
+"interline 1.5 mul /bracket_v exch def "
+"bracket_v /bracket_u exch def "
+"50 /bracket_alpha exch def "
+"1 setlinecap}"))
 
   (define (header creator generate) 
     (string-append
      "\\placebox{"
      (number->dim y) "}{" (number->dim x) "}{" s "}"))
 
-
-  ;;;; UGH! Junk \\bracefont !
-  (define (pianobrace y)
-    (define step 1.0)
-    (define minht (* 2 mudelapaperstaffheight))
-    (define maxht (* 7 minht))
-    (string-append
-     "{\\bracefont " (char (max
-                           0
-                           (/  (- (min y (- maxht step)) minht) step))) "}"))
-
+  ;;;;
+  (define (pianobrace y staffht)
+    (let* ((step 1.0)
+          (minht (* 2 staffht))
+          (maxht (* 7 minht))
+          )
+      (string-append
+       (select-font (string-append "feta-braces" (number->string (inexact->exact staffht))))
+       (char (max 0 (/  (- (min y (- maxht step)) minht) step))))
+      )
+    )
 
 
   (define (rulesym h w) 
      )
     )
 
-  (define (bezier-sandwich l)
-    (embedded-ps ((ps-scm 'bezier-sandwich) l)))
+  (define (bezier-sandwich l thick)
+    (embedded-ps ((ps-scm 'bezier-sandwich) l thick)))
 
 
   (define (start-line ht)
      "depth " (number->dim depth)
      "height " (number->dim height) " "))
 
-
-
   (define (text s)
     (string-append "\\hbox{" (output-tex-string s) "}"))
   
            (define filledbox ,filledbox)
            (define font-def ,font-def)
            (define font-switch ,font-switch)
-           (define generalmeter ,generalmeter)
            (define header-end ,header-end)
            (define lily-def ,lily-def)
            (define header ,header) 
        ((eq? action-name 'experimental-on) experimental-on)
        ((eq? action-name 'font-def) font-def)
        ((eq? action-name 'font-switch) font-switch)
-       ((eq? action-name 'generalmeter) generalmeter)
        ((eq? action-name 'header-end) header-end)
        ((eq? action-name 'lily-def) lily-def)
        ((eq? action-name 'header) header) 
   (define (char i)
     (invoke-char " show" i))
 
-  (define (crescendo w h cont)
+  (define (crescendo w h cont thick)
     (string-append 
-     (numbers->string (list w h (inexact->exact cont)))
+     (numbers->string (list w h (inexact->exact cont) thick))
      " draw_crescendo"))
 
   (define (dashed-slur thick dash l)
      (number->string (* 2 thick))
      " ] 0 draw_dashed_slur"))
 
-  (define (decrescendo w h cont)
+  (define (decrescendo thick w h cont)
     (string-append 
-     (numbers->string (list w h (inexact->exact cont)))
+     (numbers->string (list w h (inexact->exact cont) thick))
      " draw_decrescendo"))
 
 
   (define (font-switch i)
     (string-append (font i) " "))
 
-  (define (generalmeter num den)
-    (string-append (number->string (inexact->exact num)) " " (number->string (inexact->exact den)) " generalmeter "))
-
   (define (header-end) "")
   (define (lily-def key val)
 
-     (if (string=? (substring  key 0 (string-length "mudelapaper") ) "mudelapaper")
+     (if (string=? (substring key 0 (min (string-length "mudelapaper") (string-length key))) "mudelapaper")
         (string-append "/" key " {" val "} bind def\n")
         (string-append "/" key " (" val ") def\n")
         )
      )
+
   (define (header creator generate) 
     (string-append
      "%!PS-Adobe-3.0\n"
   (define (placebox x y s) 
     (string-append 
      (number->string x) " " (number->string y) " {" s "} placebox "))
-  (define (pianobrace y)
-    ""
+
+  (define (pianobrace y staffht)
+    (let* ((step 1.0)
+          (minht (* 2 staffht))
+          (maxht (* 7 minht))
+          )
+      (string-append
+       (select-font (string-append "feta-braces" (number->string (inexact->exact staffht))))
+       (char (max 0 (/  (- (min y (- maxht step)) minht) step))))
+      )
     )
 
+
   (define (rulesym x y) 
     (string-append 
      (number->string x) " "
      (number->string y) " "
      " rulesym"))
 
-  (define (bezier-sandwich l)
+  (define (bezier-sandwich l thick)
     (string-append 
-     (apply string-append (map control->string l)) 
+     (apply string-append (map control->string l))
+     (number->string  thick)
      " draw_bezier_sandwich"))
 
   (define (start-line height)
            (define filledbox ,filledbox)
            (define font-def ,font-def)
            (define font-switch ,font-switch)
-           (define generalmeter ,generalmeter)
            (define pianobrace ,pianobrace)
            (define header-end ,header-end)
            (define lily-def ,lily-def)
index fbeeae8615c8a1c7aaf2b03723e90ff4971bff7b..534cffef89221bc0de85cabd20f47d24da80d92d 100644 (file)
@@ -35,7 +35,7 @@
        ("upprall" . ((feta . ("upprall" . "upprall")) #f 0 1 0))
        ("downprall" . ((feta . ("downprall" . "downprall")) #f 0 1 0))
        ("segno" . ((feta . ("segno" . "segno")) #f 0 1 0))
-       ("wheel" . ((feta . ("wheel" . "wheel")) #f 0 1 0)))
+       ("coda" . ((feta . ("coda" . "coda")) #f 0 1 0)))
       script-alist)
       )
 
index f7a68585e10f182151e875bd7363f39d850d8759..2c66ec21a411f26a551967951d0d305c92379e1f 100644 (file)
@@ -362,6 +362,30 @@ if 1:
                            'deprecate \\grouping')
 
 
+if 1:
+       def conv(lines):
+               newlines =[]
+               for x in lines:
+                       x =  re.sub ('\\\\wheel','\\\\coda', x)
+                       newlines.append (x)
+               return newlines
+
+       conversions.append ((1,1,55), conv,
+                           '\\wheel -> \\coda')
+
+
+if 1:
+       def conv(lines):
+               newlines =[]
+               for x in lines:
+                       x =  re.sub ('\\\\wheel','\\\\coda', x)
+                       newlines.append (x)
+               return newlines
+
+       conversions.append ((1,1,55), conv,
+                           '\\wheel -> \\coda')
+
+
 
 ############################
        
index 25da9f8fce53a942c5982d455ceb079546208335..ddc11383162878a2e0200a69604da8f6166f5972 100644 (file)
@@ -270,7 +270,6 @@ class TeXOutput:
         this.write(top)
         this.__mudelaDefs('')
         this.write("""\
-\\cmrtwenty% ugh
 \\makelilytitle
 """) 
 
index d579266f49ca40a49db06945fd12aab506a08eee..602d77213ae3deb0becaa0fd24480ff64026f68c 100644 (file)
@@ -1,5 +1,7 @@
 dnl WARNING WARNING WARNING WARNING
 dnl do not edit! this is aclocal.m4, generated from stepmake/aclocal.m4
+dnl WARNING WARNING WARNING WARNING
+dnl do not edit! this is aclocal.m4, generated from stepmake/aclocal.m4
 dnl aclocal.m4   -*-shell-script-*-
 dnl StepMake subroutines for configure.in
 
index 780a1722849ebc3d4a12f6ab4db3c8c9f949e6bb..d614eb5cd3e1568173a56920bc625ec9ed9892ad 100755 (executable)
@@ -73,7 +73,3 @@ rel_pn = package.patch_dir + pn
 os.rename(pn, rel_pn)
 os.link(rel_pn, pn)
 
-# urg; this includes lilypond*.gz into yodl ball
-# os.system('tar cf ' + package.nickname + ' *gz')
-os.system('set -x; tar cf ' + package.nickname + ' ' + package.name + '*gz')
-
index 6a627fe2d5772a7048d98c2cf448e34f5936948c..5f4602b70770ba9977b685e07938b6204f29744f 100644 (file)
@@ -5,7 +5,8 @@ local-dist: configure
 
 local-distclean: 
        rm -f config.h config.hh config.make Makefile GNUmakefile \
-               config.cache config.status config.log index.html
+               config.cache config.status config.log index.html \
+               afm tfm cmtfm share/locale/*/LC_MESSAGES/lilypond.mo
 
 local-maintainerclean:
        rm -f configure
diff --git a/tex/dyndefs.tex b/tex/dyndefs.tex
deleted file mode 100644 (file)
index 92362ae..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-% dyndefs.tex
-%
-%
-%%UGHGUHGUGHGGUGH JUNK THIS!
-%% 
-%\let\dyn\dynfont
-\def\dyn{\dynfont}
-
-\chardef\dynaf = 101
-\chardef\dynnf = 102
-\chardef\dynnp = 112
-\chardef\dynnm = 109
-\chardef\dynnr = 114
-\chardef\dynns = 115
-\chardef\dynnz = 122
-
-\def\dynm{\raise .2ex\hbox{\dynnm}}
-\def\dynmm{\raise .1ex\hbox{\dynnm}}
-\def\dynr{\raise .2ex\hbox{\dynnr}}
-\def\dyns{\raise .15ex\hbox{\dynns}}
-\def\dynz{\raise .15ex\hbox{\dynnz}}
-
-\def\kdynf{\dynnf\kern -0.1em}
-\def\kdynp{\dynnp\kern -0.05em}
-
-\def\dynp{{\dyn\dynnp}}
-\def\dynpp{{\dyn\kdynp\dynnp}}
-\def\dynppp{{\dyn\kdynp\kdynp\dynnp}}
-\def\dynpppp{{\dyn\kdynp\kdynp\kdynp\dynnp}}
-\def\dynppppp{{\dyn\kdynp\kdynp\kdynp\kdynp\dynnp}}
-\def\dynpppppp{{\dyn\kdynp\kdynp\kdynp\kdynp\kdynp\dynnp}}
-\def\dynmp{{\dyn\dynmm\kern -0.07em\dynnp}}
-\def\dynmf{{\dyn\dynm\kern -0.14em\dynnf}}
-\def\dynf{{\dyn\dynaf}}
-\def\dynff{{\dyn\kdynf\dynnf}}
-\def\dynfff{{\dyn\kdynf\kdynf\dynnf}}
-\def\dynffff{{\dyn\kdynf\kdynf\kdynf\dynnf}}
-\def\dynfffff{{\dyn\kdynf\kdynf\kdynf\kdynf\dynnf}}
-\def\dynffffff{{\dyn\kdynf\kdynf\kdynf\kdynf\kdynf\dynnf}}
-
-\def\dynfp{{\dyn\dynnf\kern -0.04em\dynnp}}
-\def\dynsp{{\dyn\dyns\kern -0.13em\dynnp}}
-\def\dynspp{{\dyn\dyns\kern -0.13em\kdynp\dynnp}}
-\def\dynsf{{\dyn\dyns\kern -0.13em\dynnf}}
-\def\dynsff{{\dyn\dyns\kern -0.13em\kdynf\dynnf}}
-\def\dynsfz{{\dyn\dynsf\dynz}}
-\def\dynfz{{\dyn\dynnf\dynz}}
-\def\dynrf{{\dyn\dynr\kern -0.1em\dynnf}}
-\def\dynfz{{\dyn\dynr\kern -0.1em\dynnf\dynz}}
-
-\endinput
index 8fca01e38ff5418a721db4c4af2fe632e465b38c..730b17a85b4934e98343e01a25221c0fa91068ba 100644 (file)
@@ -1,132 +1,3 @@
 % fetdefs.tex
 % encapsulating tex backend for auto-generated feta definitions
-
-\def\placebox#1#2#3{%
-        \botalign{\hbox{\raise #1\leftalign{\kern #2{}#3}}}}%
-
-%
-%
-% UGH! JUNKME!
-%
-\def\fetsixteendefs{%
-  \font\fetasixteen = feta16
-  \font\fetanummersixteen = feta-nummer8
-  \font\dynfontsixteen = feta-din10 scaled \magstep 1
-  \font\bracefontsixteen = feta-braces16
-  \font\fingerfontsixteen = feta-nummer4
-  \font\markfontsixteen = feta-nummer10
-  \font\fetanummerjsixteen = feta-nummer5
-\def\currentsize{sixteen}
-}
-
-\def\fettwentydefs{%
-  \font\fetatwenty = feta20
-  \font\fetanummertwenty = feta-nummer10
-  \font\dynfonttwenty = feta-din10 scaled \magstep 2
-  \font\bracefonttwenty = feta-braces20
-  \font\fingerfonttwenty = feta-nummer5
-  \font\markfonttwenty = feta-nummer12
-  \font\fetanummerjtwenty = feta-nummer7
-\def\currentsize{twenty}
-}
-
-\def\fettwentysixdefs{%
-  \font\fetatwentysix = feta26
-  \font\fetanummertwentysix = feta-nummer12
-  \font\dynfonttwentysix = feta-din10 scaled \magstep 3
-  \font\bracefonttwentysix = feta-braces16
-  \font\fingerfonttwenty = feta-nummer7
-  \font\markfonttwentysix = feta-nummer14
-\def\currentsize{twentysix}
-}
-
-\def\fetthirteendefs{%
-  \font\fetathirteen = feta13
-  \font\fetanummerthirteen = feta-nummer5
-  \font\dynfontthirteen = feta-din10 scaled \magstep 0
-  \font\bracefontthirteen = feta-braces16
-  \font\fingerfontthirteen = feta-nummer3
-  \font\markfonttwentysix = feta-nummer8
-\def\currentsize{thirteen}
-}
-
-\def\fetelevendefs{%
-  \font\fetaeleven = feta11
-  \font\fetanummereleven = feta-nummer5
-  \font\dynfonteleven = feta-din10        % scaled \magstep-1
-  \font\bracefonteleven = feta-braces16
-  \font\fingerfonteleven = feta-nummer3
-  \font\markfonttwentysix = feta-nummer7
-  \def\currentsize{eleven}
-}
-
-\def\sixteenfonts{\fetsixteendefs\cmrsixteen}
-\def\twentyfonts{\fettwentydefs\cmrtwenty}
-\def\twentysixfonts{\fettwentysixdefs\cmrtwenty}
-\def\elevenfonts{\fetelevendefs\cmreleven}
-\def\thirteenfonts{\fetthirteendefs\cmrthirteen}
-
-\def\bracefont{\csname bracefont\currentsize\endcsname}
-\def\fetanummer{\csname fetanummer\currentsize\endcsname}
-\def\dynfont{\csname dynfont\currentsize\endcsname}
-\def\fingerfont{\csname fingerfont\currentsize\endcsname}
-\def\fetanummerj{\csname fetanummerj\currentsize\endcsname}
-\def\markfont{\csname markfont\currentsize\endcsname}
-
-%\sixteenfonts
-%\twentysixfonts
-%\twentyfonts
-%\elevenfonts
-%\thirteenfonts
-
-\def\switchfont#1{\def\currentsize{#1}\csname feta\currentsize\endcsname}
-
-\def\fetdef#1#2{%
-  \def#1{\hbox{\fetchar{#2}}}}
-\def\fetchar#1{\char#1}
-\def\show#1{\char#1}
-
-%\input feta16
-%\input feta20
-
-% stacked numbers; overrules def in lilyponddefs
-% widest num should be .40 balkheight
-% oeps: \meter 12/8;
-%
-% \allabreve, \threetwometer etc. have zero as the second parameter.
-
-\def\generalmeter#1#2{%
-  \ifnum #2 = 0\relax
-    \vbox to 0pt{%
-      \vss
-      \hbox to 0.45\staffheight{\hss \fetanummer #1\hss}%
-      \vss}%
-  \else
-    \vbox to 0pt{%
-      \vss
-      \hbox to 0.45\staffheight{\hss \fetanummer #1\hss}%
-      \nointerlineskip
-      \hbox to 0.45\staffheight{\hss \fetanummer #2\hss}%
-      \vss}%
-  \fi}
-
-\def\pianobrace#1{{\bracefont\char #1}}
-\def\staffbracket#1{{\centeralign{\bracketfont\char #1}}}
-
-\def\embeddedtex#1{}
-\def\embeddedps#1{}
-\def\embeddedmf#1#2{}
-\def\embedclose{}
-
-\input lily-ps-defs
-
-% uncomment to use runtime MF
-%
-% \input lily-mf-defs
-
-\def\EndLilyPondOutput{%
-  \embedclose
-  \csname bye\endcsname
-}
-
 \endinput
diff --git a/tex/lily-mf-defs.tex b/tex/lily-mf-defs.tex
deleted file mode 100644 (file)
index b30ba9f..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-\newcount\embedcount\embedcount=0
-\newwrite\checkexists
-\newwrite\embedfile
-\def\inputifexists#1{%
-        \openin\checkexists #1
-        \ifeof\checkexists
-                 \closein\checkexists
-        \else
-                \closein\checkexists
-                \input #1
-        \fi
-}
-
-\def\embedcountid{feta-embed}
-\inputifexists{\embedcountid.aux}
-%
-% let's not overwrite -- and be sure to create new
-\def\embedclose{%
-        \immediate\openout\embedfile=\embedcountid.aux
-        \immediate\write\embedfile{\embedcount=\the\embedcount}
-        \immediate\closeout\embedfile
-}
-
-
-% let's keep embedcount to see how many embedded mf's clutter your system
-\def\embeddedmf#1#2{%
-        \edef\embedid{#1}%
-        \immediate\openout\embedfile=\embedid.mf%
-        \global\advance\embedcount by 1%
-       \immediate\write\embedfile{\%Automatically generated by TeX (fetdefs.tex
-)}%
-       \immediate\write\embedfile{\%Do not edit}%
-        \immediate\write\embedfile{#2}%
-        \immediate\closeout\embedfile%
-        \font\expandafter\embedid\expandafter=\embedid%
-        \embedid\char0%
-}
-
index 57a8108ffe4db20430f2df55cccbcb257f12acad..e94d19886979f04b6313bd9bdf116306d64c67eb 100644 (file)
@@ -14,9 +14,6 @@
 % ``compiles'' operatorname binding in the body of foo, making
 % the code faster, and more reliable (less flexible)
 
-% transplant a TeX dimension into the PS output.
-\def\PSsetTeXdimen#1{\expandafter\special{! /#1 (\the\csname #1\endcsname) deftexdimen}}
-
 {%
    \def\par{ }%         %Ugh.  Don't try this at home, kids!
    % neat file-include trick by Piet van Oostrum <piet@cs.uu.nl>
    \expandafter\special{! \includelilyps }
 }
 
-
-\special{!
-% PS helper: convert (0.2pt) to the token 0.2
-/settexdimen
-{
-        /thestring exch def
-        thestring 0 thestring length 2 sub
-        getinterval
-        token
-        pop exch pop 
-} def
-%
-/deftexdimen
-{
-        settexdimen
-        def     
-} def
-}
-
-\def\turnOnPostScript{%
-        \PSsetTeXdimen{stafflinethickness}
-        \PSsetTeXdimen{staffheight}
-        
-        % This sets CTM so that you get to the currentpoint
-        % by executing a 0 0 moveto
-        \def\embeddedps##1{%
-                \special{ps: @beginspecial @setspecial ##1 @endspecial}       
-        }
-        %
-
-        \special{! 
-/interline \mudelapaperinterline0  def % ugh.  Only works x.yyyy floats 
-interline 3 div /bracket_b exch def
-interline 2 mul /bracket_w exch def
-stafflinethickness 2 mul /bracket_t exch def
-interline 1.5 mul /bracket_v exch def
-bracket_v /bracket_u exch def
-50 /bracket_alpha exch def
-staffheight 4 div /interline exch def
-1 setlinecap}
-}
-
-\def\turnOnExperimentalFeatures{}
-
index 5ef348b4dd8af43ea2bd2d3775c9fcca5a5ef7b6..77b02d7f7a9a49c71209008c070a870c2377b576 100644 (file)
@@ -2,7 +2,7 @@
 %% include file for LilyPond
 %%
 %% this file defines various macros to accomodate lilypond output
-%% 
+%%
 %% let's not make par before endinput
 %
 % TeXbook ex 7.7
 \fi
 \SkipLilydefs
 %
-\ifundefined{mudelacopyright}
-        \def\mudelacopyright{\copyright\ \number\year}
-\fi
-\ifundefined{mudelatagline}
-        \def\mudelatagline{Lily was here}
-\fi
-\ifundefined{documentclass}
-        \input lilypond-plaintex
-\else
-        \input lilypond-latex
-\fi
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% macros to shorten other definitions
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def\musicmathdef#1#2{\def#1{\musicmathchar{#2}}}
-\def\musicmathchar#1{\musicmathfont\char#1}
-
-\def\topalign#1{\vbox to 0pt{#1\vss}}
 \def\botalign#1{\vbox to 0pt{\vss #1}}
-
-\def\centeralign#1{\hbox to 0pt{\hss#1\hss}}
 \def\leftalign#1{\hbox to 0pt{#1\hss}}
-\def\rightalign#1{\hbox to 0pt{\hss#1}}
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% set up dimensions
-% mudela-book don't like this:
-%\parindent=0pt
-\newdimen\interlinedist
-
-\newcount\n                     %duh. meaningful identifiers.
-\newdimen\staffheight
-\newdimen\stafflinethickness
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% set fonts and primary dimensions
-
-%
-% TODO JUNK THIS
-%
-% ugh
-\def\cmrtwenty{
-        \font\smalltextfont=cmr8
-        \font\textmusic=cmmi12
-}
-\def\cmrsixteen{
-        \font\smalltextfont=cmr6
-        \font\textmusic=cmmi10
-        }
-\def\cmrthirteen{
-        \font\smalltextfont=cmr6
-        \font\textmusic=cmmi9
-        }
-\def\cmreleven{
-        \font\smalltextfont=cmr5
-        \font\textmusic=cmmi8
-        }
-%%%%%%%
-%
-\def\musixtwentydefs{
-      \twentyfonts
-      \csname cmrtwenty\texsuffix\endcsname
-      \musixcalc
-}
-
-\def\musixsixteendefs{
-        \sixteenfonts
-        \csname cmrsixteen\texsuffix\endcsname
-        \musixcalc
-        }
-\def\musixtwentysixdefs{
-      \csname cmrtwentysix\texsuffix\endcsname
-          \twentysixfonts
-         \musixcalc
-        }
-\def\musixthirteendefs{
-        \thirteenfonts
-        \csname cmrthirteen\texsuffix\endcsname
-       \musixcalc
-}
-\def\musixelevendefs{
-        \csname cmreleven\texsuffix\endcsname
-        \elevenfonts
-        \musixcalc
-}
-
-\def\textsharp{\raise.4ex\hbox{\textmusic\char"5D}}
-\def\textnatural{\raise.4ex\hbox{\textmusic\char"5C}}
-\def\textflat{\raise.2ex\hbox{\textmusic\char"5B}}
-
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% do derivative calcs
 
-% this has to be synced with the font definition
-\def\musixcalc{
 
-        \stafflinethickness=\mudelapaperrulethickness pt
-}
-
-
-
-% stacked horizontal lines 
+% stacked horizontal lines
 \def\interscoreline{\vskip 16pt}
-
-% big fat marks, if errors are detected.
-\def\columnerrormark{\placebox{-5pt}{0pt}{\bf C!}}
-\def\scorelineerrormark{\placebox{0pt}{-10pt}{\bf L!}}
-\def\errormark{{\bf E!}}
-\def\unknown{%
-  %{\bf u} %FIXME
-}
-
-\input fetdefs
-
-
-% ugh
-% see e.g. input/test/beam-pos.ly
-%
-% something's wrong with the aligment; sometimes all symbols
-% look to be placed a bit too high (there's an ugly fix for
-% the staccato-dot in script.cc)
-% but this varies from line to line: it seems that xdvi
-% does some rounding; i can't really check this from screen on i
-% 600x600 res.
-%
-\def\rulesym#1#2{\dimen0=#1     %obsolete
-        \vrule height .5\dimen0 depth .5\dimen0 width #2}
-\def\shiftedrulesym#1#2{\dimen0=#1%
-        \vrule height .7\dimen0 depth .3\dimen0 width #2}
-\def\tinyrulesym#1#2{\dimen0=#1%
-        \vrule height .1\dimen0 depth .1\dimen0 width #2}
-%would be nice for checking alignment
-\def\openrulesym#1#2{\dimen0=#1%
-        \vbox to \dimen0{\vss%
-        \hbox{\vrule height .1\dimen0 width #2}%
-        \hbox{\vrule height .2\dimen0 width 0pt}%
-        \hbox{\vrule height .4\dimen0 width #2}%
-        \hbox{\vrule height .2\dimen0 width 0pt}%
-        \hbox{\vrule height .1\dimen0 width #2}%
-        \vss}}
-%\let\rulesym\shiftedrulesym
-%\let\rulesym\tinyrulesym
-%\let\rulesym\openrulesym
-
-% the interline symbol. Redefine to remove it.
-\def\defaultlineseparator{\vbox{\mussepline\vskip -5pt\mussepline}}
-\def\lineseparator{\defaultlineseparator}
-\def\beauty{%
-        \par\vskip 10pt plus 30pt minus 10pt\par
-        \hskip -5pt\lineseparator
-        \par\vskip 10pt plus 30pt minus 10pt\par
-}
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\placebox#1#2#3{%
+        \botalign{\hbox{\raise #1\leftalign{\kern #2{}#3}}}}%
+\input lily-ps-defs
+\def\EndLilyPondOutput{%
+  \csname bye\endcsname
+  }
+  
+  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+  
 \def\postheader{}
-
-%
-% macros suck. \ifundefined{nolilyfooter} gives wierd errors from time
-%        to time.
-%
-
-%
-% Warning: the order is conceptually weird.  It says:
-
-% if not defined (``nolilyfooter''):
-%    do_footer ()
-% else 
-%    dont_do_footer ()
-%
-\ifx\csname nolilyfooter\endcsname\relax
-        \message{[footer defined]}%
-        \csname lilyfooter\texsuffix\endcsname%
-\else
-        \message{[footer empty]}
-        \csname%
-        nolilyfooter\texsuffix\endcsname
-\fi
+\noindent
index 5cda54d7898e4e3bb206b310531252114c3ee6f4..07b806cbb884d90926ed3c63e73878421aa42447 100644 (file)
 \def\makelilytitle{%
   \begin{center}
         \bfseries
-        \ifx\mudelanull\thetitle\else\sethuge{\thetitle}\\ \fi
-        \ifx\mudelanull\thesubtitle\else\setLarge{\thesubtitle}\\ \fi
+        \ifx\mudelanull\thetitle\else{\huge\thetitle}\\ \fi
+        \ifx\mudelanull\thesubtitle\else{\Large\thesubtitle}\\ \fi
   \end{center}
   \bigskip
   % urg
   \edef\saveparskip{\parskip}\parskip-5mm
   \begin{minipage}[t]{0.45\textwidth}
-        \ifx\mudelanull\thepoet\else\settext{\thepoet}\\ \fi
-        \ifx\mudelanull\themetre\else\settext{\themetre}\\ \fi
+        \ifx\mudelanull\thepoet\else{\thepoet}\\ \fi
+        \ifx\mudelanull\themetre\else{\themetre}\\ \fi
   \end{minipage}\hspace*{\fill}
   \begin{minipage}[t]{0.45\textwidth}
       \begin{flushright}
-          \ifx\mudelanull\thecomposer\else\setlarge{\normalfont\scshape\thecomposer}\\ \fi
-          \ifx\mudelanull\theopus\else\settext{\theopus}\\ \fi
-          \ifx\mudelanull\thearranger\else\settext{\thearranger}\\ \fi
+          \ifx\mudelanull\thecomposer\else{\large\normalfont\scshape\thecomposer}\\ \fi
+          \ifx\mudelanull\theopus\else{\theopus}\\ \fi
+          \ifx\mudelanull\thearranger\else{\thearranger}\\ \fi
         \end{flushright}%
   \end{minipage}\par
   \parskip\saveparskip
-  {\center\setlarge{\theinstrument}\par}
-  {\flushleft\setLarge{\normalfont\scshape\thepiece}}
+  {\center{\large\theinstrument}\par}
+  {\flushleft{\large\normalfont\scshape\thepiece}}
   \leavevmode
 }
 \def\makelilypiecetitle
 {
   \bigskip
-  {\flushright\settext{\theopus}\par}
-  {\flushleft\setLarge{\normalfont\scshape\thepiece}}
+  {\flushright{\theopus}\par}
+  {\flushleft{\large\normalfont\scshape\thepiece}}
 }
 \endinput