]> git.donarmstrong.com Git - lilypond.git/commitdiff
release: 1.5.25 release/1.5.25
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Wed, 5 Dec 2001 18:08:18 +0000 (19:08 +0100)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Wed, 5 Dec 2001 18:08:18 +0000 (19:08 +0100)
46 files changed:
ChangeLog
Documentation/bibliography/GNUmakefile
Documentation/bibliography/colorado.bib
Documentation/bibliography/computer-notation.bib
Documentation/bibliography/html-long.bst [new file with mode: 0644]
Documentation/regression-test.tely
Documentation/topdocs/INSTALL.texi
INSTALL.txt
VERSION
buildscripts/bib2html.py [new file with mode: 0644]
configure
configure.in
input/regression/accidental-octave.ly [deleted file]
input/regression/accidental-single-double.ly
input/regression/accidentals.ly [deleted file]
input/test/accidentals.ly
lily/accidental-engraver.cc
lily/fingering-engraver.cc
lily/gourlay-breaking.cc
lily/include/lily-guile.hh
lily/include/simple-spacer.hh
lily/lily-guile.cc
lily/pitch.cc
lily/script-column.cc
lily/simple-spacer.cc
lily/stem.cc
lily/translator-def.cc
ly/engraver-init.ly
ly/property-init.ly
make/out/lilypond.lsm
make/out/lilypond.mandrake.spec
make/out/lilypond.redhat.spec
make/out/lilypond.suse.spec
scm/grob-property-description.scm
scm/interface-description.scm
scm/music-functions.scm
scm/translator-property-description.scm
scripts/ly2dvi.py
scripts/pmx2ly.py
tex/feta11.tex [new file with mode: 0644]
tex/feta13.tex [new file with mode: 0644]
tex/feta16.tex [new file with mode: 0644]
tex/feta19.tex [new file with mode: 0644]
tex/feta20.tex [new file with mode: 0644]
tex/feta23.tex [new file with mode: 0644]
tex/feta26.tex [new file with mode: 0644]

index b3ae394d3a2bf5de8eda682756a4290b67cfc824..e30cf2f8fd420d5d2a940e1ba909b460b3ecad06 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,20 @@
---- ../lilypond-1.5.24.jcn1/ChangeLog  Sat Dec  1 15:35:46 2001
-++ b/ChangeLog Wed Dec  5 14:31:02 2001
-@@ -1,3 +1,22 @@
+2001-12-05  Han-Wen Nienhuys  <hanwen@cs.uu.nl>
+
+       * bibtools/bib2html.py: Add simple bib2html convertor, and .bst
+       files to have standardised HTML bibliography output. Update build
+       docs to reflect this.
+
+       * lily/include/simple-spacer.hh (struct Simple_spacer): add
+       active_count_, so that we don't have to look for active springs
+       anymore.
+
+       * scm/interface-description.scm,scm/grob-property-description.scm:
+       Add 'penalty
+
+       * lily/simple-spacer.cc (solve): Handle forced line breaks
+       here. Fixes problems when combining linebreaks with non-fitting
+       line configurations
+
 2001-12-05  Jan Nieuwenhuizen  <janneke@gnu.org>
 
        * 1.4.9.jcn3 forward ports.
 2001-12-05  Jan Nieuwenhuizen  <janneke@gnu.org>
 
        * 1.4.9.jcn3 forward ports.
 
        * ly2dvi: Don't accept filenames with spaces (+ fix).
 
 
        * ly2dvi: Don't accept filenames with spaces (+ fix).
 
- 2001-12-01  Han-Wen  <hanwen@cs.uu.nl>
-       * lily/note-head.cc (head_extent): added to compute width without2001-12-03 Rune Zedeler <rune@zedeler.dk>
+2001-12-03  Han-Wen  <hanwen@cs.uu.nl>
 
 
-       * lily/lily-guile.cc: Added ly_assoc_front_x() and ly_assoc_cdr()
-       (FIXME: not accessible from guile)
-       
-       * lily/accidental-engraver.cc: rewrote accidental-routines to get
-       better support for Kurt Stone's suggestions.
-       Removed properties: noResetKey, autoReminders.
-       Added properties:   oneMeasureLazy, extraNatural, autoAccidentals,
-                           autoCautionaries.
-       
-       * ly/property-init.ly: added commands
-       \defaultAccidentals \modernAccidentals \modernCautionaries
-       \noResetKey
+       * ly/engraver-init.ly (VoiceContext): fix text engraver ordering.
 
 
-       * ly/engraver-init.ly: Correct initialization of new accidentals.
+       * lily/translator-def.cc: Remove manual symbol caching.
+
+       * lily/script-column.cc (before_line_breaking): robustness check:
+       don't crash if no direction set.
+
+       * scripts/pmx2ly.py: Key and clef change support (Laura Conrad)
+
+       * scripts/pmx2ly.py (Parser.parse_header): more generic header
+       parsing.
 
 
-       * scm/translator-property-description.scm: The new properties
-       added.
 
 
-       * input/: Some examples added, some changed.
-       
-       * Documentation/regression-test.tely: Added quick test of new
-       accidentals.
-       
-       
 2001-12-01  Han-Wen  <hanwen@cs.uu.nl>
 
        * lily/note-head.cc (head_extent): added to compute width without
 2001-12-01  Han-Wen  <hanwen@cs.uu.nl>
 
        * lily/note-head.cc (head_extent): added to compute width without
index 78e0c3c7306f2a5d9cd0a9839bfa79ec18b10a80..9eebd303702491914e1fb9de51dd1dddd23b1e02 100644 (file)
@@ -4,12 +4,11 @@ depth=../..
 
 OUT_BIB_FILES = $(addprefix $(outdir)/, $(BIB_FILES))
 BIB_FILES= $(wildcard *.bib)
 
 OUT_BIB_FILES = $(addprefix $(outdir)/, $(BIB_FILES))
 BIB_FILES= $(wildcard *.bib)
-EXTRA_DIST_FILES= $(BIB_FILES)
+EXTRA_DIST_FILES= $(BIB_FILES) $(wildcard *.bst)
 
 STEPMAKE_TEMPLATES=tex documentation
 LOCALSTEPMAKE_TEMPLATES=lilypond ly
 
 
 STEPMAKE_TEMPLATES=tex documentation
 LOCALSTEPMAKE_TEMPLATES=lilypond ly
 
-export BIBINPUTS:=$(shell pwd)//$(PATHSEP)$(BIBINPUTS)
 include $(depth)/make/stepmake.make 
 
 dvi: $(DVI_FILES) $(OUT_BIB_FILES)
 include $(depth)/make/stepmake.make 
 
 dvi: $(DVI_FILES) $(OUT_BIB_FILES)
@@ -22,6 +21,7 @@ default:
 GENHTMLS = engraving colorado  computer-notation
 OUTGENHTMLS = $(addprefix $(outdir)/, $(GENHTMLS:%=%.html))
 
 GENHTMLS = engraving colorado  computer-notation
 OUTGENHTMLS = $(addprefix $(outdir)/, $(GENHTMLS:%=%.html))
 
+
 local-WWW: $(addprefix $(outdir)/, $(BIB_FILES:.bib=.html))
        $(PYTHON) $(step-bindir)/ls-latex.py  --title 'References on Music Notation' \
          $(YO_FILES) $(OUTYO_FILES:.yo=.latex) $(BIB_FILES) $(DOC_FILES) $(TEX_FILES) \
 local-WWW: $(addprefix $(outdir)/, $(BIB_FILES:.bib=.html))
        $(PYTHON) $(step-bindir)/ls-latex.py  --title 'References on Music Notation' \
          $(YO_FILES) $(OUTYO_FILES:.yo=.latex) $(BIB_FILES) $(DOC_FILES) $(TEX_FILES) \
@@ -33,7 +33,7 @@ $(outdir)/%.bib: %.bib
        $(MAKE) footify
 
 $(outdir)/%.html: %.bib
        $(MAKE) footify
 
 $(outdir)/%.html: %.bib
-       -$(BIBTEX2HTML) $(BIBTEX2HTML_FLAGS)
+       $(PYTHON) $(depth)/buildscripts/bib2html.py -o $@ $<
        $(footify) $@
 
 local-clean:
        $(footify) $@
 
 local-clean:
index 6d7cf5120046978627ee79843bcc7b681330d35a..b9ac8df280ca43826508349c3d94e13aaf5f74b8 100644 (file)
@@ -3,19 +3,16 @@
 % AUTHOR=Alyssa Lamb (edited & converted to bibtex by HWN)
 %
 
 % AUTHOR=Alyssa Lamb (edited & converted to bibtex by HWN)
 %
 
-
-% TODO: fix the labelling.  
-
-@Book {6,
+@Book {jacob47:_music,
        author ={Jacob, Archibald},
        author ={Jacob, Archibald},
-       year={1947},
+       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},
 }
 
        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,
+@Book{brandt:_stand_chord_symbol_notat,
        author ={Carl Brandt and Clinton Roemer},
        title = {Standardized Chord Symbol Notation},
        address={Sherman Oaks, CA},
        author ={Carl Brandt and Clinton Roemer},
        title = {Standardized Chord Symbol Notation},
        address={Sherman Oaks, CA},
        note ={subject: musical notation},
 }
 
        note ={subject: musical notation},
 }
 
-@Book {22,
+@Book{johnson46:_how,
        author = {Johnson, Harold M},
        author = {Johnson, Harold M},
-       year = {1946},
+       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},
 }
 
        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,
+@Book{sadie90:_music_print_publis,
        title = {Music Printing & Publishing},
        author ={Donald W. Krummel \& Stanley Sadie},
        title = {Music Printing & Publishing},
        author ={Donald W. Krummel \& Stanley Sadie},
-       year = {1990},
+       year = 1990,
        publisher= {Macmillan Press},
        note ={subject: musical notation},
 }
        publisher= {Macmillan Press},
        note ={subject: musical notation},
 }
@@ -43,7 +40,7 @@
 %series={The Norton/Grove Handbooks in Music.},
 % publisher={W.W. Norton},
 
 %series={The Norton/Grove Handbooks in Music.},
 % publisher={W.W. Norton},
 
-@Book {40,
+@Book{foss:_music_print,
        author={Foss, Hubert},
        title = {Music Printing},
        series = {Practical Printing and Binding},
        author={Foss, Hubert},
        title = {Music Printing},
        series = {Practical Printing and Binding},
        note ={subject: musical notation},
 }
 
        note ={subject: musical notation},
 }
 
-@Book {48,
+@Book{steele03:_earlies_englis_music_print,
        author = {Steele, Robert},
        author = {Steele, Robert},
-       year = {1903},
+       year = 1903,
        title = {The Earliest English Music Printing},
        address={London},
        note= {subject: history of music printing and engraving},
 }
 
        title = {The Earliest English Music Printing},
        address={London},
        note= {subject: history of music printing and engraving},
 }
 
-@Book {54,
+@Book{austin:_story_music_print,
        author={Austin, Ernest},
        title = {The Story of Music Printing},
        address={London},
        author={Austin, Ernest},
        title = {The Story of Music Printing},
        address={London},
@@ -71,7 +68,7 @@
 
 
 
 
 
 
-@Book {63,
+@Book{?:_pictor_histor_music_print,
        author={?},
        title = {Pictoral History of Music Printing},
        address={Elhardt, Indiana},
        author={?},
        title = {Pictoral History of Music Printing},
        address={Elhardt, Indiana},
@@ -80,9 +77,9 @@
 
 }
 
 
 }
 
-@Book {77,
+@Book{wintermitz55:_music_autog_montev_hindem,
        author = {Wintermitz, Emmanuel},
        author = {Wintermitz, Emmanuel},
-       year = {1955},
+       year = 1955,
        title = {Musical Autographs from Monteverdi to Hindemith},
        address={Princeton},
        publisher={Princeton University Press},
        title = {Musical Autographs from Monteverdi to Hindemith},
        address={Princeton},
        publisher={Princeton University Press},
 }
 
 
 }
 
 
-@Book {92,
+@Book{novello47:_some_accoun_method_music_print,
 
        author = {Novello, A},
 
        author = {Novello, A},
-       year = {1847},
+       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},
 }
 
        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,
+@Book{chrsander18:_sketc_histor_music,
        author={Chrsander, F.},
        year={18??},
        title={A Sketch of the HIstory of Music printing, from the 15th to the 16th century},
        author={Chrsander, F.},
        year={18??},
        title={A Sketch of the HIstory of Music printing, from the 15th to the 16th century},
 
 @Article {squire1897,
        author = {Squire, W},
 
 @Article {squire1897,
        author = {Squire, W},
-       year = {1897},
+       year = 1897,
        title = {Notes on Early Music Printing},
        journal = {Bibliographica},
        volume={iii},
        title = {Notes on Early Music Printing},
        journal = {Bibliographica},
        volume={iii},
-       number={99},
+       number=99,
        note={ subject: history of music printing and engraving},
 
 }
 
        note={ subject: history of music printing and engraving},
 
 }
 
-@Article{113,
+@Article{meyer35:_print_music,
        author = {Meyer, K. and O'Meara, J},
        author = {Meyer, K. and O'Meara, J},
-       year = {1935},
+       year = 1935,
        title = {The Printing of Music, 1473-1934},
        journal = {The Dolphin},
        volume={ ii},
        title = {The Printing of Music, 1473-1934},
        journal = {The Dolphin},
        volume={ ii},
 
 }
 %% 4th ver.,
 
 }
 %% 4th ver.,
-@Article {120,
+@Article{pattison39:_notes_early_music_print,
        author = {Pattison, B},
        author = {Pattison, B},
-       year = {1939},
+       year = 1939,
        title = {Notes on Early Music Printing},
        journal = {The Library},
        note={subject: history of music printing and engraving},
        title = {Notes on Early Music Printing},
        journal = {The Library},
        note={subject: history of music printing and engraving},
        pages={389-421}, 
 }
 
        pages={389-421}, 
 }
 
-@Book {136,
+@Book{king64:_four_hundr_years_music_print,
        author = {King, H},
        author = {King, H},
-       year = {1964},
+       year = 1964,
        title = {Four Hundred Years of Music Printing},
        address={London},
        note={ subject: history of music printing and engraving},
        title = {Four Hundred Years of Music Printing},
        address={London},
        note={ subject: history of music printing and engraving},
 
 
 %(Rev.1961).
 
 
 %(Rev.1961).
-@Book{150,
+@Book{deutsch46:_music_number,
        author={Deutsch, O.F.},
        author={Deutsch, O.F.},
-       year ={1946},
+       year =1946,
        title = {Music Publishers' Numbers},
        address={London},
        note={ subject: history of music printing and engraving},
 }
 
        title = {Music Publishers' Numbers},
        address={London},
        note={ subject: history of music printing and engraving},
 }
 
-@Book {151,
+@Book{marco62:_earlies_music_print_contin_europ,
        author = {Marco, G.A},
        author = {Marco, G.A},
-       year = {1962},
+       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},
 }
 
        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,
+@Article{kinkeldey32:_music_and_music_print_incun,
        author = {Kinkeldey, O},
        author = {Kinkeldey, O},
-       year = {1932},
+       year = 1932,
        title = {Music And Music Printing in Incunabula},
        journal = {Papers of the Bibliographical Society of America},
        volume={ xxvi},
        title = {Music And Music Printing in Incunabula},
        journal = {Papers of the Bibliographical Society of America},
        volume={ xxvi},
        note={ subject: history of music printing and engraving},
 }
 
        note={ subject: history of music printing and engraving},
 }
 
-@Book {166,
+@Book{oldman34:_collec_music_first_edition,
        author = {Oldman, C.B},
        author = {Oldman, C.B},
-       year = {1934},
+       year = 1934,
        title = {Collecting Musical First Editions},
        address={London},
        note={ subject: history of music printing and engraving},
 }
 
        title = {Collecting Musical First Editions},
        address={London},
        note={ subject: history of music printing and engraving},
 }
 
-@Book{170,
+@Book{carter34:_new_paths_book_collec,
        author={Carter, J},
        author={Carter, J},
-       year={1934},
+       year=1934,
        title = {New Paths in Book Collecting},
        address={London},
        note={ subject: history of music printing and engraving},
 }
 
        title = {New Paths in Book Collecting},
        address={London},
        note={ subject: history of music printing and engraving},
 }
 
-@Book {179,
+@Book{krummel58:_graph_analy_applic_early_americ_engrav_music,
        author={Krummel, D.W.},
        author={Krummel, D.W.},
-       year={1958},
-       month={9},
+       year=1958,
+       month=9,
        title = {Graphic Analysis in Application to Early American Engraved Music},
        journal = {Notes},
        volume={xvi},
        title = {Graphic Analysis in Application to Early American Engraved Music},
        journal = {Notes},
        volume={xvi},
-       pages={213},
+       pages=213,
        note={ subject: history of music printing and engraving},
 }
 
        note={ subject: history of music printing and engraving},
 }
 
-@Book {189,
+@Book{krummel71:_oblon_format_early_music_books,
        author = {Krummel, D.W},
        author = {Krummel, D.W},
-       year = {1971},
+       year = 1971,
        title = {Oblong Format in Early Music Books},
        journal = {The Library},
        volume={5th ser., xxvi},
        title = {Oblong Format in Early Music Books},
        journal = {The Library},
        volume={5th ser., xxvi},
-       pages={312},
+       pages=312,
        note={ subject: history of music printing and engraving},
 }
 
        note={ subject: history of music printing and engraving},
 }
 
-@Book {198,
+@Book{king73:_anniv_music_print,
        author = {King, A.H},
        author = {King, A.H},
-       year = {1973},
+       year = 1973,
        title = {The 50th Anniversary of Music Printing},
 }
 
        title = {The 50th Anniversary of Music Printing},
 }
 
-@Book {204,
+@Book{rastall82:_wester,
        author={Rastall, Richard},
        author={Rastall, Richard},
-       year={1982},
+       year=1982,
  title = {The notation of Western music : an introduction},
        address={New York, N.Y.},
        publisher={St. Martin's Press},
  title = {The notation of Western music : an introduction},
        address={New York, N.Y.},
        publisher={St. Martin's Press},
 
 }
 
 
 }
 
-@Book {215,
+@Book{tappolet47:_la_notat_music,
        author = {Tappolet, Willy},
        author = {Tappolet, Willy},
-       year = {1947},
+       year = 1947,
        title = {La Notation Musicale},
        address={Paris},
        note={subject: general notation},
        publisher={Neuch\^atel},
 }
 
        title = {La Notation Musicale},
        address={Paris},
        note={subject: general notation},
        publisher={Neuch\^atel},
 }
 
-@Book {223,
+@Book{williams03:_story_notat,
        author = {Williams, C.F. Abdy},
        author = {Williams, C.F. Abdy},
-       year = {1903},
+       year = 1903,
        title = {The Story of Notation},
        address={New York},
        publisher={Charles Scribner's Sons},
        note={subject: general notation},
 }
 
        title = {The Story of Notation},
        address={New York},
        publisher={Charles Scribner's Sons},
        note={subject: general notation},
 }
 
-@Book {239,
+@Book{apel53,
        author={Apel, Willi},
        author={Apel, Willi},
-       year={1953},
+       year=1953,
        title = {The notation of polyphonic music, 900-1600},
        address={Cambridge, Mass},
        institution={Mediaeval Academy of America},
        note = {Musical notation},
 }
 
        title = {The notation of polyphonic music, 900-1600},
        address={Cambridge, Mass},
        institution={Mediaeval Academy of America},
        note = {Musical notation},
 }
 
-@Book {248,
+@Book{berger93:_mensur,
        author={Berger, Anna Maria Busse},
        author={Berger, Anna Maria Busse},
-       year={1993},
+       year=1993,
        title = {Mensuration and proportion signs : origins and evolution},
        address={Oxford, England},
        publisher={Clarendon Press},
        title = {Mensuration and proportion signs : origins and evolution},
        address={Oxford, England},
        publisher={Clarendon Press},
        note={subject: early notation},
 }
 
        note={subject: early notation},
 }
 
-@Book {258,
+@Book{parrish57,
        author={Parrish, Carl},
        author={Parrish, Carl},
-       year={1957},
+       year=1957,
  title = {The notation of medieval music},
        address={New York},
        publisher={Norton},
  title = {The notation of medieval music},
        address={New York},
        publisher={Norton},
 
 }
 
 
 }
 
-@Book {269,
+@Book{parrish46:_notat_mediev_music,
        author = {Parrish, Carl},
        author = {Parrish, Carl},
-       year = {1946},
+       year = 1946,
        title = {The Notation of Medieval Music},
        address={New York},
        publisher={Carl Fischer, Inc.},
        note={subject: early notation},
 }
 
        title = {The Notation of Medieval Music},
        address={New York},
        publisher={Carl Fischer, Inc.},
        note={subject: early notation},
 }
 
-@Book {277,
+@Book{patch49:_genes_music,
        author = {Patch, Harry},
        author = {Patch, Harry},
-       year = {1949},
+       year = 1949,
        title = {Genesis of a Music},
        address={Madison},
        publisher={University of Wisconsin Press},
        note={subject: early notation},
 }
 
        title = {Genesis of a Music},
        address={Madison},
        publisher={University of Wisconsin Press},
        note={subject: early notation},
 }
 
-@Book {285,
+@Book{cage69:_notat,
        author={Cage, John},
        author={Cage, John},
-       year={1969},
+       year=1969,
   title = {Notations},
        address={New York},
        publisher={Something Else Press},
   title = {Notations},
        address={New York},
        publisher={Something Else Press},
        Performance Arts, with text by 269 composers, but rearranged using
        chance operations.,V)} },
 
        Performance Arts, with text by 269 composers, but rearranged using
        chance operations.,V)} },
 
-@Book {295,
+@Book{gaburo77:_notat,
        author = {Gaburo, Virginia},
        author = {Gaburo, Virginia},
-       year = {1977},
+       year = 1977,
        title = {Notation},
        address={publisher= {Lingua Press},
        publisher={La Jolla, California}},
        note = {A Lecture about notation, new ideas about},
 }
 
        title = {Notation},
        address={publisher= {Lingua Press},
        publisher={La Jolla, California}},
        note = {A Lecture about notation, new ideas about},
 }
 
-@Book {306,
+@Book{risatti75:_new_music_vocab,
        author = {Risatti, Howard},
        author = {Risatti, Howard},
-       year = {1975},
+       year = 1975,
        title = {New Music Vocabulary},
        address={Urbana, Illinois},
        publisher={University of Illinois Press},
        title = {New Music Vocabulary},
        address={Urbana, Illinois},
        publisher={University of Illinois Press},
 
 
 
 
 
 
-@Book {325,
+@Book{cowell30:_new_music_resour,
        author = {Cowell, Henry},
        author = {Cowell, Henry},
-       year = {1930},
+       year = 1930,
        title = {New Musical Resources},
        address={New York},
        publisher={Alfred A. Knopf, Inc.},
        note={subject: 20th century notation},
 }
 
        title = {New Musical Resources},
        address={New York},
        publisher={Alfred A. Knopf, Inc.},
        note={subject: 20th century notation},
 }
 
-@Article {333,
+@Article{cowell27:_our_inadeq_notat,
        author = {Cowell, Henry},
        author = {Cowell, Henry},
-       year = {1927},
+       year = 1927,
        title = {Our Inadequate Notation},
        journal = {Modern Music},
        title = {Our Inadequate Notation},
        journal = {Modern Music},
-       volume={4},
-       number={3},
+       volume=4,
+       number=3,
        note={subject: 20th century notation},
 
 }
 
        note={subject: 20th century notation},
 
 }
 
-@Book {342,
+@Book{bowers92:_music_letter,
        author = {Bowers, Roger},
        author = {Bowers, Roger},
-       year = {1992},
+       year = 1992,
        title = {Music & Letters},
        title = {Music & Letters},
-       volume={73},
-       number={3},
+       volume=73,
+       number=3,
        month={August},
        pages={347(52)},
        note={Some reflection upon notation and proportion in Monteverdi's mass and vespers},
 }
 
        month={August},
        pages={347(52)},
        note={Some reflection upon notation and proportion in Monteverdi's mass and vespers},
 }
 
-@Book {353,
+@Book{brainard92:_curren_music,
        author = {Brainard, Paul},
        author = {Brainard, Paul},
-       year = {1992},
+       year = 1992,
        title = {Current Musicology},
        title = {Current Musicology},
-       number={50},
+       number=50,
        month={July-Dec},
        pages={21(26)},
        note={Proportional notation in the music of Schutz and his contemporaries in the 17th Century},
 }
 
        month={July-Dec},
        pages={21(26)},
        note={Proportional notation in the music of Schutz and his contemporaries in the 17th Century},
 }
 
-@Book {362,
+@Book{monelle89:_compar_liter,
        author = {Monelle, Raymond},
        author = {Monelle, Raymond},
-       year = {1989},
+       year = 1989,
        title = {Comparative Literature},
        title = {Comparative Literature},
-       volume={41}, number={3}
+       volume=41, number=3
        month={Summer},
        pages={252(18)},
 
        note={Music notation and the poetic foot},
 }
 
        month={Summer},
        pages={252(18)},
 
        note={Music notation and the poetic foot},
 }
 
-@Book {373,
+@Book{pinegar93:_curren_music,
        author = {Pinegar, Sandra},
        author = {Pinegar, Sandra},
-       year = {1993},
+       year = 1993,
        title = {Current Musicology},
        title = {Current Musicology},
-       number={53},
+       number=53,
        month={July},
        pages={99(10)},
        note={The seeds of notation and music paleography.},
 }
 
        month={July},
        pages={99(10)},
        note={The seeds of notation and music paleography.},
 }
 
-@Book {382,
+@Book{smith90:_curren_music,
        author = {Smith, Norman E},
        author = {Smith, Norman E},
-       year = {1990},
+       year = 1990,
        title = {Current Musicology},
        number={45-47},
        month={Jan-Dec},
        title = {Current Musicology},
        number={45-47},
        month={Jan-Dec},
        note={The notation of fractio modi.},
 }
 
        note={The notation of fractio modi.},
 }
 
-@Book {392,
+@Book{treitler92:_journ_music,
        author = {Treitler, Leo},
        author = {Treitler, Leo},
-       year = {1992},
+       year = 1992,
        title = {The Journal of Musicology},
        title = {The Journal of Musicology},
-       volume={10},
-       number={2},
+       volume=10,
+       number=2,
        month={Spring},
        pages={131(61)},
 
        month={Spring},
        pages={131(61)},
 
        Notational practice developed in medieval music to address the written tradition for chant which interacted with the unwritten vocal tradition.},
 }
 
        Notational practice developed in medieval music to address the written tradition for chant which interacted with the unwritten vocal tradition.},
 }
 
-@Book {407,
+@Book{west94:_music_letter,
        author = {West, M.L},
        author = {West, M.L},
-       year = {1994},
+       year = 1994,
        title = {Music & Letters},
        title = {Music & Letters},
-       volume={75},
-       number={2},
+       volume=75,
+       number=2,
        month={May},
        pages={161(19)},
        note={The Babylonian musical notation and the Hurrian melodic texts. 
        month={May},
        pages={161(19)},
        note={The Babylonian musical notation and the Hurrian melodic texts. 
 }
 }
 
 }
 }
 
-@Book {418,
+@Book{brown86:_music_quart,
        author = {Brown, Earle},
        author = {Brown, Earle},
-       year = {1986},
+       year = 1986,
        title = {Musical Quarterly},
        title = {Musical Quarterly},
-       volume={72},
+       volume=72,
        month={Spring},
        pages={180(22)},
        note={The notation and performance of new music.},
 }
 
        month={Spring},
        pages={180(22)},
        note={The notation and performance of new music.},
 }
 
-@Book {426,
+@Book{eggleston94:_notes,
        author = {Eggleston, Suzanne},
        author = {Eggleston, Suzanne},
-       year = {1994},
+       year = 1994,
        title = {Notes},
        title = {Notes},
-       volume={51},
-       number={2},
+       volume=51,
+       number=2,
        month={Dec},
        pages={657(7)}, 
        journal={New periodicals},
        month={Dec},
        pages={657(7)}, 
        journal={New periodicals},
 
 }
 
 
 }
 
-@Book {441,
-
+@Book{fuller89:_journ_music,
        author = {Fuller, David},
        author = {Fuller, David},
-       year = {1989},
+       year = 1989,
        title = {The Journal of Musicology},
        title = {The Journal of Musicology},
-       volume={7},
-       number={1},
+       volume=7,
+       number=1,
        month={Winter},
        pages={21(8)},
        note={
        Notes and inegales unjoined: defending a definition. (written-out inequalities in music notation).        
 }},
 
        month={Winter},
        pages={21(8)},
        note={
        Notes and inegales unjoined: defending a definition. (written-out inequalities in music notation).        
 }},
 
-@Book {454,
+@Book{jones90:_persp_new_music,
 
        author = {Jones, David Evan},
 
        author = {Jones, David Evan},
-       year = {1990},
+       year = 1990,
        title = {Perspectives of New Music},
        note={Speech extrapolated. (includes notation)}
 }
 
        title = {Perspectives of New Music},
        note={Speech extrapolated. (includes notation)}
 }
 
-@Book {464,
+@Book{lependorf89,
        author = {Lependorf, Jeffrey},
        author = {Lependorf, Jeffrey},
-       year = {1989},
+       year = 1989,
        journal={Perspectives of New Music},
        journal={Perspectives of New Music},
-       volume={27},
- number={2},
+       volume=27,
+       title = {?},
+ number=2,
        month={Summer},
        pages={232(20)},
        month={Summer},
        pages={232(20)},
-       note={
-       Contemporary notation for the shakuhachi: a primer for composers. (Tradition and Renewal in the Music of Japan) },
+       note={Contemporary notation for the shakuhachi: a primer for composers. (Tradition and Renewal in the Music of Japan) },
 
 }
 
 
 }
 
-@Book {478,
+@Book{rastall93:_music_letter,
        author = {Rastall, Richard},
        author = {Rastall, Richard},
-       year = {1993},
+       year = 1993,
        title = {Music & Letters},
        title = {Music & Letters},
-       volume={74}, number={4},
+       volume=74, number=4,
        month={November},
        pages={639(2)},
 
        month={November},
        pages={639(2)},
 
        title={Writing without representation, and unreadable notation.},
 }
 
        title={Writing without representation, and unreadable notation.},
 }
 
-@Book {501,
+@Book{hamel89,
        author = {Hamel, Keith A},
        author = {Hamel, Keith A},
-       year = {1989},
+       year = 1989,
        journal = {Perspectives of New Music},
        journal = {Perspectives of New Music},
-       volume={27},
-       number={1},
+       volume=27,
+       number=1,
        month={Winter},
        pages={70(14)},
        title={A design for music editing and printing software based on notational syntax},
        month={Winter},
        pages={70(14)},
        title={A design for music editing and printing software based on notational syntax},
index c5a25053716ff1fcc998f175776406fbfa30aaba..b368d6fc30e7ae663b528254eeda051f35582797 100644 (file)
@@ -534,18 +534,14 @@ surprising that LilyPond is more mature.
   pages={47--61},
 }
 
   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},
 @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://www.guitartabs.cc/tabfaq.shtml}
-%  HTML={http://wabakimi.carleton.ca/~phacket2/guitar/tabfaq.html},
+  url={http://www.guitartabs.cc/tabfaq.shtml},
 }
 
 }
 
-
 @Article {niff-web,
   note = {Specs for NIFF, a reasonably comprehensive but binary (yuk) format for notation HWN},
 
 @Article {niff-web,
   note = {Specs for NIFF, a reasonably comprehensive but binary (yuk) format for notation HWN},
 
@@ -557,7 +553,6 @@ surprising that LilyPond is more mature.
   ftp = {ftp://blackbox.cartah.washington.edu}
 }
 
   ftp = {ftp://blackbox.cartah.washington.edu}
 }
 
-
 @Article {smdl-web,
   author={unknown},
   title = {SMDL, Standard Musical Description Language},
 @Article {smdl-web,
   author={unknown},
   title = {SMDL, Standard Musical Description Language},
@@ -656,18 +651,11 @@ general rules, similar to\cite{parrish87-simultaneities}},
 note = {Placement of accidentals crystallised in an enormous set of
 rules.  Same remarks as for \cite{grover89-twovoices} applies} }
 
 note = {Placement of accidentals crystallised in an enormous set of
 rules.  Same remarks as for \cite{grover89-twovoices} applies} }
 
-@TechReport{,
+@TechReport{droettboom00:_study_notat_descr_languag,
   author =      {Michael Droettboom},
   title =       {Study of music Notation Description Languages},
   author =      {Michael Droettboom},
   title =       {Study of music Notation Description Languages},
-  year =        {2000},
-  OPTkey =      {},
-  OPTvolume =   {},
-  OPTnumber =   {},
-  OPTpages =    {},
-  OPTmonth =    {},
-  OPTnote =     {},
-  OPTannote =   {}
-html= {http://gigue.peabody.jhu.edu/~mdboom/format.pdf}
+  year =        2000,
+url= {http://gigue.peabody.jhu.edu/~mdboom/format.pdf},
 annote ={Author compares GUIDO and lilypond. LilyPond wins on practical issues as usability and availability of tools, GUIDO wins on implementation simplicity.}
 }
 
 annote ={Author compares GUIDO and lilypond. LilyPond wins on practical issues as usability and availability of tools, GUIDO wins on implementation simplicity.}
 }
 
diff --git a/Documentation/bibliography/html-long.bst b/Documentation/bibliography/html-long.bst
new file mode 100644 (file)
index 0000000..85a6163
--- /dev/null
@@ -0,0 +1,1373 @@
+% BibTeX bibliography style `html-long'
+%   spits out HTML-formatted bibliography in place of bbl output
+% by David Kotz dfk@cs.dartmouth.edu
+% $Id: html-long.bst,v 1.1 1999/03/11 22:00:27 dfk Exp dfk $
+%    modified from
+% BibTeX standard bibliography style `alpha'
+       % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09.
+       % Copyright (C) 1985, all rights reserved.
+       % Copying of this file is authorized only if either
+       % (1) you make absolutely no changes to your copy, including name, or
+       % (2) if you do make changes, you name it something other than
+       % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst.
+       % This restriction helps ensure that all standard styles are identical.
+       % The file btxbst.doc has the documentation for this style.
+
+% DFK added abstract, comment, earlier, keyword, later, URL
+ENTRY
+  { abstract
+    address
+    author
+    booktitle
+    chapter
+    comment
+    earlier
+    edition
+    editor
+    howpublished
+    institution
+    journal
+    key
+    keyword
+    later
+    month
+    note
+    number
+    organization
+    pages
+    private
+    publisher
+    school
+    series
+    title
+    type
+    URL
+    volume
+    year
+  }
+  {}
+  { label extra.label sort.label }
+
+INTEGERS { output.state before.all mid.sentence after.sentence after.block }
+
+FUNCTION {init.state.consts}
+{ #0 'before.all :=
+  #1 'mid.sentence :=
+  #2 'after.sentence :=
+  #3 'after.block :=
+}
+
+STRINGS { s t }
+
+FUNCTION {output.nonnull}
+{ 's :=
+  output.state mid.sentence =
+    { ", " * write$ }
+    { output.state after.block =
+       { add.period$ write$
+         newline$
+       }
+       { output.state before.all =
+            'write$
+            { add.period$ " " * write$ }
+           if$
+       }
+      if$
+      mid.sentence 'output.state :=
+    }
+  if$
+  s
+}
+
+FUNCTION {output}
+{ duplicate$ empty$
+    'pop$
+    'output.nonnull
+  if$
+}
+
+FUNCTION {output.check}
+{ 't :=
+  duplicate$ empty$
+    { pop$ "empty " t * " in " * cite$ * warning$ }
+    'output.nonnull
+  if$
+}
+
+% DFK changed to use cite$ for the label
+% DFK changed to HTML, and use URL to make cite key a link
+FUNCTION {output.bibitem}
+{ newline$
+  URL empty$
+    { "<DT> <A NAME=" quote$ * cite$ * quote$ * 
+       "> " * cite$ * ":</A> </DT>" * write$
+    }
+    { "<DT><A NAME=" quote$ * cite$ * quote$ * " HREF=" * quote$ * 
+       URL * quote$ * "> " * cite$ * ":</A></DT>" * write$
+    }
+  if$
+  newline$
+  "<DD>" write$ newline$
+  ""
+  before.all 'output.state :=
+}
+
+% DFK changed to HTML
+FUNCTION {fin.entry}
+{ add.period$
+  write$
+  newline$
+  earlier empty$
+       'skip$
+       { "<br>" write$ newline$
+         "See also earlier version <A HREF=" quote$ * "#" * earlier * quote$ *
+               ">" * earlier * "</A>." * write$ newline$
+       }
+  if$
+  later empty$
+       'skip$
+       { "<br>" write$ newline$
+         "See also later version <A HREF=" quote$ * "#" * later * quote$ *
+               ">" * later * "</A>." * write$ newline$
+       }
+  if$
+  "</DD>" write$ newline$
+}
+
+FUNCTION {new.block}
+{ output.state before.all =
+    'skip$
+    { after.block 'output.state := }
+  if$
+}
+
+FUNCTION {new.sentence}
+{ output.state after.block =
+    'skip$
+    { output.state before.all =
+       'skip$
+       { after.sentence 'output.state := }
+      if$
+    }
+  if$
+}
+
+FUNCTION {not}
+{   { #0 }
+    { #1 }
+  if$
+}
+
+FUNCTION {and}
+{   'skip$
+    { pop$ #0 }
+  if$
+}
+
+FUNCTION {or}
+{   { pop$ #1 }
+    'skip$
+  if$
+}
+
+FUNCTION {new.block.checka}
+{ empty$
+    'skip$
+    'new.block
+  if$
+}
+
+FUNCTION {new.block.checkb}
+{ empty$
+  swap$ empty$
+  and
+    'skip$
+    'new.block
+  if$
+}
+
+FUNCTION {new.sentence.checka}
+{ empty$
+    'skip$
+    'new.sentence
+  if$
+}
+
+FUNCTION {new.sentence.checkb}
+{ empty$
+  swap$ empty$
+  and
+    'skip$
+    'new.sentence
+  if$
+}
+
+FUNCTION {field.or.null}
+{ duplicate$ empty$
+    { pop$ "" }
+    'skip$
+  if$
+}
+
+% DFK changed to HTML
+FUNCTION {emphasize}
+{ duplicate$ empty$
+    { pop$ "" }
+    { "<EM>" swap$ * "</EM>" * }
+  if$
+}
+
+% DFK added for HTML strong emphasis
+FUNCTION {strong}
+{ duplicate$ empty$
+    { pop$ "" }
+    { "<STRONG>" swap$ * "</STRONG>" * }
+  if$
+}
+
+INTEGERS { nameptr namesleft numnames }
+
+% DFK added this, to strip {} and ~ from titles and authors
+% It's not a great idea, because it will screw up in math mode and some
+% special characters... but it makes most things much prettier.
+FUNCTION {author.title.purify}
+{ 't :=
+  ""
+    { t empty$ not }
+    { t #1 #1 substring$ "{" = 
+      t #1 #1 substring$ "}" = or
+       'skip$
+       { t #1 #1 substring$ "~" =
+           { " " * }
+           { t #1 #1 substring$ * }
+       if$
+       }
+      if$
+      t #2 global.max$ substring$ 't :=
+    }
+  while$
+}
+
+FUNCTION {format.names}
+{ 's :=
+  #1 'nameptr :=
+  s num.names$ 'numnames :=
+  numnames 'namesleft :=
+    { namesleft #0 > }
+    { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't :=
+      nameptr #1 >
+       { namesleft #1 >
+           { ", " * t * }
+           { numnames #2 >
+               { "," * }
+               'skip$
+             if$
+             t "others" =
+               { " et&nbsp;al." * }
+               { " and " * t * }
+             if$
+           }
+         if$
+       }
+       't
+      if$
+      nameptr #1 + 'nameptr :=
+      namesleft #1 - 'namesleft :=
+    }
+  while$
+}
+
+FUNCTION {format.authors}
+{ author empty$
+    { "" }
+    { author format.names  author.title.purify }
+  if$
+}
+
+FUNCTION {format.editors}
+{ editor empty$
+    { "" }
+    { editor format.names
+      editor num.names$ #1 >
+       { ", editors" * }
+       { ", editor" * }
+      if$
+    }
+  if$
+}
+
+% DFK added strong, so it will be bold.
+FUNCTION {format.title}
+{ title empty$
+    { "" }
+    { title "t" change.case$  author.title.purify strong }
+  if$
+}
+
+FUNCTION {n.dashify}
+{ 't :=
+  ""
+    { t empty$ not }
+    { t #1 #1 substring$ "-" =
+       { t #1 #2 substring$ "--" = not
+           { "--" *
+             t #2 global.max$ substring$ 't :=
+           }
+           {   { t #1 #1 substring$ "-" = }
+               { "-" *
+                 t #2 global.max$ substring$ 't :=
+               }
+             while$
+           }
+         if$
+       }
+       { t #1 #1 substring$ *
+         t #2 global.max$ substring$ 't :=
+       }
+      if$
+    }
+  while$
+}
+
+FUNCTION {format.date}
+{ year empty$
+    { month empty$
+       { "" }
+       { "there's a month but no year in " cite$ * warning$
+         month
+       }
+      if$
+    }
+    { month empty$
+       'year
+       { month " " * year * }
+      if$
+    }
+  if$
+}
+
+% DFK changed emphasize to strong
+FUNCTION {format.btitle}
+{ title author.title.purify strong
+}
+
+FUNCTION {tie.or.space.connect}
+{ duplicate$ text.length$ #3 <
+    { "&nbsp;" }
+    { " " }
+  if$
+  swap$ * *
+}
+
+FUNCTION {either.or.check}
+{ empty$
+    'pop$
+    { "can't use both " swap$ * " fields in " * cite$ * warning$ }
+  if$
+}
+
+FUNCTION {format.bvolume}
+{ volume empty$
+    { "" }
+    { "volume" volume tie.or.space.connect
+      series empty$
+       'skip$
+       { " of " * series emphasize * }
+      if$
+      "volume and number" number either.or.check
+    }
+  if$
+}
+
+FUNCTION {format.number.series}
+{ volume empty$
+    { number empty$
+       { series field.or.null }
+       { output.state mid.sentence =
+           { "number" }
+           { "Number" }
+         if$
+         number tie.or.space.connect
+         series empty$
+           { "there's a number but no series in " cite$ * warning$ }
+           { " in " * series * }
+         if$
+       }
+      if$
+    }
+    { "" }
+  if$
+}
+
+FUNCTION {format.edition}
+{ edition empty$
+    { "" }
+    { output.state mid.sentence =
+       { edition "l" change.case$ " edition" * }
+       { edition "t" change.case$ " edition" * }
+      if$
+    }
+  if$
+}
+
+INTEGERS { multiresult }
+
+FUNCTION {multi.page.check}
+{ 't :=
+  #0 'multiresult :=
+    { multiresult not
+      t empty$ not
+      and
+    }
+    { t #1 #1 substring$
+      duplicate$ "-" =
+      swap$ duplicate$ "," =
+      swap$ "+" =
+      or or
+       { #1 'multiresult := }
+       { t #2 global.max$ substring$ 't := }
+      if$
+    }
+  while$
+  multiresult
+}
+
+FUNCTION {format.pages}
+{ pages empty$
+    { "" }
+    { pages multi.page.check
+       { "pages" pages n.dashify tie.or.space.connect }
+       { "page" pages tie.or.space.connect }
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.vol.num.pages}
+{ volume field.or.null
+  number empty$
+    'skip$
+    { "(" number * ")" * *
+      volume empty$
+       { "there's a number but no volume in " cite$ * warning$ }
+       'skip$
+      if$
+    }
+  if$
+  pages empty$
+    'skip$
+    { duplicate$ empty$
+       { pop$ format.pages }
+       { ":" * pages n.dashify * }
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.chapter.pages}
+{ chapter empty$
+    'format.pages
+    { type empty$
+       { "chapter" }
+       { type "l" change.case$ }
+      if$
+      chapter tie.or.space.connect
+      pages empty$
+       'skip$
+       { ", " * format.pages * }
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.in.ed.booktitle}
+{ booktitle empty$
+    { "" }
+    { editor empty$
+       { "In " booktitle emphasize * }
+       { "In " format.editors * ", " * booktitle emphasize * }
+      if$
+    }
+  if$
+}
+
+FUNCTION {empty.misc.check}
+{ author empty$ title empty$ howpublished empty$
+  month empty$ year empty$ note empty$
+  and and and and and
+  key empty$ not and
+    { "all relevant fields are empty in " cite$ * warning$ }
+    'skip$
+  if$
+}
+
+FUNCTION {format.thesis.type}
+{ type empty$
+    'skip$
+    { pop$
+      type "t" change.case$
+    }
+  if$
+}
+
+FUNCTION {format.tr.number}
+{ type empty$
+    { "Technical Report" }
+    'type
+  if$
+  number empty$
+    { "t" change.case$ }
+    { number tie.or.space.connect }
+  if$
+}
+
+FUNCTION {format.article.crossref}
+{ key empty$
+    { journal empty$
+       { "need key or journal for " cite$ * " to crossref " * crossref *
+         warning$
+         ""
+       }
+       { "In {\em " journal * "\/}" * }
+      if$
+    }
+    { "In " key * }
+  if$
+  " \cite{" * crossref * "}" *
+}
+
+FUNCTION {format.crossref.editor}
+{ editor #1 "{vv~}{ll}" format.name$
+  editor num.names$ duplicate$
+  #2 >
+    { pop$ " et&nbsp;al." * }
+    { #2 <
+       'skip$
+       { editor #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" =
+           { " et&nbsp;al." * }
+           { " and " * editor #2 "{vv~}{ll}" format.name$ * }
+         if$
+       }
+      if$
+    }
+  if$
+}
+
+FUNCTION {format.book.crossref}
+{ volume empty$
+    { "empty volume in " cite$ * "'s crossref of " * crossref * warning$
+      "In "
+    }
+    { "Volume" volume tie.or.space.connect
+      " of " *
+    }
+  if$
+  editor empty$
+  editor field.or.null author field.or.null =
+  or
+    { key empty$
+       { series empty$
+           { "need editor, key, or series for " cite$ * " to crossref " *
+             crossref * warning$
+             "" *
+           }
+           { "{\em " * series * "\/}" * }
+         if$
+       }
+       { key * }
+      if$
+    }
+    { format.crossref.editor * }
+  if$
+  " \cite{" * crossref * "}" *
+}
+
+FUNCTION {format.incoll.inproc.crossref}
+{ editor empty$
+  editor field.or.null author field.or.null =
+  or
+    { key empty$
+       { booktitle empty$
+           { "need editor, key, or booktitle for " cite$ * " to crossref " *
+             crossref * warning$
+             ""
+           }
+           { "In {\em " booktitle * "\/}" * }
+         if$
+       }
+       { "In " key * }
+      if$
+    }
+    { "In " format.crossref.editor * }
+  if$
+  " \cite{" * crossref * "}" *
+}
+
+
+% DFK added
+% top of stack is the string we want to be a quoted paragraph
+FUNCTION {format.quotedParagraph}
+{ duplicate$ empty$
+    { skip$ }
+    { "<P><QUOTE> " swap$ * "  </QUOTE></P>" *}
+  if$
+}
+
+
+% DFK added, to support comment, private, keyword, etc
+% next-to-top is field name (eg, "Comment")
+% top is field value (eg, value of comment)
+% both are popped; resulting top is either empty, 
+%    or string describing field
+FUNCTION {format.dfkfield}
+{ duplicate$ empty$
+       { pop$ pop$ "" }
+       { swap$ 
+          "<strong> " swap$ * ":</strong> " * swap$ * }
+  if$
+}
+
+% DFK added
+FUNCTION {dfk.stuff}
+{ new.block
+  "Abstract" abstract format.dfkfield format.quotedParagraph write$ newline$
+  "Keyword" keyword format.dfkfield format.quotedParagraph write$ newline$
+  "Comment" comment format.dfkfield format.quotedParagraph write$ newline$
+}
+
+% DFK: added a call to dfk.stuff in all entry-type functions below
+
+FUNCTION {article}
+{ output.bibitem
+  format.authors "author" output.check
+  new.block
+  format.title "title" output.check
+  new.block
+  crossref missing$
+    { journal emphasize "journal" output.check
+      format.vol.num.pages output
+      format.date "year" output.check
+    }
+    { format.article.crossref output.nonnull
+      format.pages output
+    }
+  if$
+  new.block
+  note output
+  fin.entry
+  dfk.stuff
+}
+
+FUNCTION {book}
+{ output.bibitem
+  author empty$
+    { format.editors "author and editor" output.check }
+    { format.authors output.nonnull
+      crossref missing$
+       { "author and editor" editor either.or.check }
+       'skip$
+      if$
+    }
+  if$
+  new.block
+  format.btitle "title" output.check
+  crossref missing$
+    { format.bvolume output
+      new.block
+      format.number.series output
+      new.sentence
+      publisher "publisher" output.check
+      address output
+    }
+    { new.block
+      format.book.crossref output.nonnull
+    }
+  if$
+  format.edition output
+  format.date "year" output.check
+  new.block
+  note output
+  fin.entry
+  dfk.stuff
+}
+
+FUNCTION {booklet}
+{ output.bibitem
+  format.authors output
+  new.block
+  format.title "title" output.check
+  howpublished address new.block.checkb
+  howpublished output
+  address output
+  format.date output
+  new.block
+  note output
+  fin.entry
+  dfk.stuff
+}
+
+FUNCTION {inbook}
+{ output.bibitem
+  author empty$
+    { format.editors "author and editor" output.check }
+    { format.authors output.nonnull
+      crossref missing$
+       { "author and editor" editor either.or.check }
+       'skip$
+      if$
+    }
+  if$
+  new.block
+  format.btitle "title" output.check
+  crossref missing$
+    { format.bvolume output
+      format.chapter.pages "chapter and pages" output.check
+      new.block
+      format.number.series output
+      new.sentence
+      publisher "publisher" output.check
+      address output
+    }
+    { format.chapter.pages "chapter and pages" output.check
+      new.block
+      format.book.crossref output.nonnull
+    }
+  if$
+  format.edition output
+  format.date "year" output.check
+  new.block
+  note output
+  fin.entry
+  dfk.stuff
+}
+
+FUNCTION {incollection}
+{ output.bibitem
+  format.authors "author" output.check
+  new.block
+  format.title "title" output.check
+  new.block
+  crossref missing$
+    { format.in.ed.booktitle "booktitle" output.check
+      format.bvolume output
+      format.number.series output
+      format.chapter.pages output
+      new.sentence
+      publisher "publisher" output.check
+      address output
+      format.edition output
+      format.date "year" output.check
+    }
+    { format.incoll.inproc.crossref output.nonnull
+      format.chapter.pages output
+    }
+  if$
+  new.block
+  note output
+  fin.entry
+  dfk.stuff
+}
+
+FUNCTION {inproceedings}
+{ output.bibitem
+  format.authors "author" output.check
+  new.block
+  format.title "title" output.check
+  new.block
+  crossref missing$
+    { format.in.ed.booktitle "booktitle" output.check
+      format.bvolume output
+      format.number.series output
+      format.pages output
+      address empty$
+       { organization publisher new.sentence.checkb
+         organization output
+         publisher output
+         format.date "year" output.check
+       }
+       { address output.nonnull
+         format.date "year" output.check
+         new.sentence
+         organization output
+         publisher output
+       }
+      if$
+    }
+    { format.incoll.inproc.crossref output.nonnull
+      format.pages output
+    }
+  if$
+  new.block
+  note output
+  fin.entry
+  dfk.stuff
+}
+
+FUNCTION {conference} { inproceedings }
+
+FUNCTION {manual}
+{ output.bibitem
+  author empty$
+    { organization empty$
+       'skip$
+       { organization output.nonnull
+         address output
+       }
+      if$
+    }
+    { format.authors output.nonnull }
+  if$
+  new.block
+  format.btitle "title" output.check
+  author empty$
+    { organization empty$
+       { address new.block.checka
+         address output
+       }
+       'skip$
+      if$
+    }
+    { organization address new.block.checkb
+      organization output
+      address output
+    }
+  if$
+  format.edition output
+  format.date output
+  new.block
+  note output
+  fin.entry
+  dfk.stuff
+}
+
+FUNCTION {mastersthesis}
+{ output.bibitem
+  format.authors "author" output.check
+  new.block
+  format.title "title" output.check
+  new.block
+  "Master's thesis" format.thesis.type output.nonnull
+  school "school" output.check
+  address output
+  format.date "year" output.check
+  new.block
+  note output
+  fin.entry
+  dfk.stuff
+}
+
+FUNCTION {misc}
+{ output.bibitem
+  format.authors output
+  title howpublished new.block.checkb
+  format.title output
+  howpublished new.block.checka
+  howpublished output
+  format.date output
+  new.block
+  note output
+  fin.entry
+  dfk.stuff
+  empty.misc.check
+}
+
+FUNCTION {phdthesis}
+{ output.bibitem
+  format.authors "author" output.check
+  new.block
+  format.btitle "title" output.check
+  new.block
+  "PhD thesis" format.thesis.type output.nonnull
+  school "school" output.check
+  address output
+  format.date "year" output.check
+  new.block
+  note output
+  fin.entry
+  dfk.stuff
+}
+
+FUNCTION {proceedings}
+{ output.bibitem
+  editor empty$
+    { organization output }
+    { format.editors output.nonnull }
+  if$
+  new.block
+  format.btitle "title" output.check
+  format.bvolume output
+  format.number.series output
+  address empty$
+    { editor empty$
+       { publisher new.sentence.checka }
+       { organization publisher new.sentence.checkb
+         organization output
+       }
+      if$
+      publisher output
+      format.date "year" output.check
+    }
+    { address output.nonnull
+      format.date "year" output.check
+      new.sentence
+      editor empty$
+       'skip$
+       { organization output }
+      if$
+      publisher output
+    }
+  if$
+  new.block
+  note output
+  fin.entry
+  dfk.stuff
+}
+
+FUNCTION {techreport}
+{ output.bibitem
+  format.authors "author" output.check
+  new.block
+  format.title "title" output.check
+  new.block
+  format.tr.number output.nonnull
+  institution "institution" output.check
+  address output
+  format.date "year" output.check
+  new.block
+  note output
+  fin.entry
+  dfk.stuff
+}
+
+FUNCTION {unpublished}
+{ output.bibitem
+  format.authors "author" output.check
+  new.block
+  format.title "title" output.check
+  new.block
+  note "note" output.check
+  format.date output
+  fin.entry
+  dfk.stuff
+}
+
+FUNCTION {default.type} { misc }
+
+MACRO {jan} {"January"}
+
+MACRO {feb} {"February"}
+
+MACRO {mar} {"March"}
+
+MACRO {apr} {"April"}
+
+MACRO {may} {"May"}
+
+MACRO {jun} {"June"}
+
+MACRO {jul} {"July"}
+
+MACRO {aug} {"August"}
+
+MACRO {sep} {"September"}
+
+MACRO {oct} {"October"}
+
+MACRO {nov} {"November"}
+
+MACRO {dec} {"December"}
+
+MACRO {acmcs} {"ACM Computing Surveys"}
+
+MACRO {acta} {"Acta Informatica"}
+
+MACRO {cacm} {"Communications of the ACM"}
+
+MACRO {ibmjrd} {"IBM Journal of Research and Development"}
+
+MACRO {ibmsj} {"IBM Systems Journal"}
+
+MACRO {ieeese} {"IEEE Transactions on Software Engineering"}
+
+MACRO {ieeetc} {"IEEE Transactions on Computers"}
+
+MACRO {ieeetcad}
+ {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"}
+
+MACRO {ipl} {"Information Processing Letters"}
+
+MACRO {jacm} {"Journal of the ACM"}
+
+MACRO {jcss} {"Journal of Computer and System Sciences"}
+
+MACRO {scp} {"Science of Computer Programming"}
+
+MACRO {sicomp} {"SIAM Journal on Computing"}
+
+MACRO {tocs} {"ACM Transactions on Computer Systems"}
+
+MACRO {tods} {"ACM Transactions on Database Systems"}
+
+MACRO {tog} {"ACM Transactions on Graphics"}
+
+MACRO {toms} {"ACM Transactions on Mathematical Software"}
+
+MACRO {toois} {"ACM Transactions on Office Information Systems"}
+
+MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"}
+
+MACRO {tcs} {"Theoretical Computer Science"}
+
+READ
+
+FUNCTION {sortify}
+{ purify$
+  "l" change.case$
+}
+
+INTEGERS { len }
+
+FUNCTION {chop.word}
+{ 's :=
+  'len :=
+  s #1 len substring$ =
+    { s len #1 + global.max$ substring$ }
+    's
+  if$
+}
+
+INTEGERS { et.al.char.used }
+
+FUNCTION {initialize.et.al.char.used}
+{ #0 'et.al.char.used :=
+}
+
+EXECUTE {initialize.et.al.char.used}
+
+FUNCTION {format.lab.names}
+{ 's :=
+  s num.names$ 'numnames :=
+  numnames #1 >
+    { numnames #4 >
+       { #3 'namesleft := }
+       { numnames 'namesleft := }
+      if$
+      #1 'nameptr :=
+      ""
+       { namesleft #0 > }
+       { nameptr numnames =
+           { s nameptr "{ff }{vv }{ll}{ jj}" format.name$ "others" =
+               { "{\etalchar{+}}" *
+                 #1 'et.al.char.used :=
+               }
+               { s nameptr "{v{}}{l{}}" format.name$ * }
+             if$
+           }
+           { s nameptr "{v{}}{l{}}" format.name$ * }
+         if$
+         nameptr #1 + 'nameptr :=
+         namesleft #1 - 'namesleft :=
+       }
+      while$
+      numnames #4 >
+       { "{\etalchar{+}}" *
+         #1 'et.al.char.used :=
+       }
+       'skip$
+      if$
+    }
+    { s #1 "{v{}}{l{}}" format.name$
+      duplicate$ text.length$ #2 <
+       { pop$ s #1 "{ll}" format.name$ #3 text.prefix$ }
+       'skip$
+      if$
+    }
+  if$
+}
+
+FUNCTION {author.key.label}
+{ author empty$
+    { key empty$
+       { cite$ #1 #3 substring$ }
+       { key #3 text.prefix$ }
+      if$
+    }
+    { author format.lab.names }
+  if$
+}
+
+FUNCTION {author.editor.key.label}
+{ author empty$
+    { editor empty$
+       { key empty$
+           { cite$ #1 #3 substring$ }
+           { key #3 text.prefix$ }
+         if$
+       }
+       { editor format.lab.names }
+      if$
+    }
+    { author format.lab.names }
+  if$
+}
+
+FUNCTION {author.key.organization.label}
+{ author empty$
+    { key empty$
+       { organization empty$
+           { cite$ #1 #3 substring$ }
+           { "The " #4 organization chop.word #3 text.prefix$ }
+         if$
+       }
+       { key #3 text.prefix$ }
+      if$
+    }
+    { author format.lab.names }
+  if$
+}
+
+FUNCTION {editor.key.organization.label}
+{ editor empty$
+    { key empty$
+       { organization empty$
+           { cite$ #1 #3 substring$ }
+           { "The " #4 organization chop.word #3 text.prefix$ }
+         if$
+       }
+       { key #3 text.prefix$ }
+      if$
+    }
+    { editor format.lab.names }
+  if$
+}
+
+FUNCTION {calc.label}
+{ type$ "book" =
+  type$ "inbook" =
+  or
+    'author.editor.key.label
+    { type$ "proceedings" =
+       'editor.key.organization.label
+       { type$ "manual" =
+           'author.key.organization.label
+           'author.key.label
+         if$
+       }
+      if$
+    }
+  if$
+  duplicate$
+  year field.or.null purify$ #-1 #2 substring$
+  *
+  'label :=
+  year field.or.null purify$ #-1 #4 substring$
+  *
+  sortify 'sort.label :=
+}
+
+FUNCTION {sort.format.names}
+{ 's :=
+  #1 'nameptr :=
+  ""
+  s num.names$ 'numnames :=
+  numnames 'namesleft :=
+    { namesleft #0 > }
+    { nameptr #1 >
+       { "   " * }
+       'skip$
+      if$
+      s nameptr "{vv{ } }{ll{ }}{  ff{ }}{  jj{ }}" format.name$ 't :=
+      nameptr numnames = t "others" = and
+       { "et al" * }
+       { t sortify * }
+      if$
+      nameptr #1 + 'nameptr :=
+      namesleft #1 - 'namesleft :=
+    }
+  while$
+}
+
+FUNCTION {sort.format.title}
+{ 't :=
+  "A " #2
+    "An " #3
+      "The " #4 t chop.word
+    chop.word
+  chop.word
+  sortify
+  #1 global.max$ substring$
+}
+
+FUNCTION {author.sort}
+{ author empty$
+    { key empty$
+       { "to sort, need author or key in " cite$ * warning$
+         ""
+       }
+       { key sortify }
+      if$
+    }
+    { author sort.format.names }
+  if$
+}
+
+FUNCTION {author.editor.sort}
+{ author empty$
+    { editor empty$
+       { key empty$
+           { "to sort, need author, editor, or key in " cite$ * warning$
+             ""
+           }
+           { key sortify }
+         if$
+       }
+       { editor sort.format.names }
+      if$
+    }
+    { author sort.format.names }
+  if$
+}
+
+FUNCTION {author.organization.sort}
+{ author empty$
+    { organization empty$
+       { key empty$
+           { "to sort, need author, organization, or key in " cite$ * warning$
+             ""
+           }
+           { key sortify }
+         if$
+       }
+       { "The " #4 organization chop.word sortify }
+      if$
+    }
+    { author sort.format.names }
+  if$
+}
+
+FUNCTION {editor.organization.sort}
+{ editor empty$
+    { organization empty$
+       { key empty$
+           { "to sort, need editor, organization, or key in " cite$ * warning$
+             ""
+           }
+           { key sortify }
+         if$
+       }
+       { "The " #4 organization chop.word sortify }
+      if$
+    }
+    { editor sort.format.names }
+  if$
+}
+
+FUNCTION {presort}
+{ calc.label
+  sort.label
+  "    "
+  *
+  type$ "book" =
+  type$ "inbook" =
+  or
+    'author.editor.sort
+    { type$ "proceedings" =
+       'editor.organization.sort
+       { type$ "manual" =
+           'author.organization.sort
+           'author.sort
+         if$
+       }
+      if$
+    }
+  if$
+  *
+  "    "
+  *
+  year field.or.null sortify
+  *
+  "    "
+  *
+  title field.or.null
+  sort.format.title
+  *
+% DFK throw away stuff above and use cite$ for sort key
+  pop$
+  cite$
+  #1 entry.max$ substring$
+  'sort.key$ :=
+}
+
+ITERATE {presort}
+
+SORT
+
+STRINGS { longest.label last.sort.label next.extra }
+
+INTEGERS { longest.label.width last.extra.num }
+
+FUNCTION {initialize.longest.label}
+{ "" 'longest.label :=
+  #0 int.to.chr$ 'last.sort.label :=
+  "" 'next.extra :=
+  #0 'longest.label.width :=
+  #0 'last.extra.num :=
+}
+
+FUNCTION {forward.pass}
+{ last.sort.label sort.label =
+    { last.extra.num #1 + 'last.extra.num :=
+      last.extra.num int.to.chr$ 'extra.label :=
+    }
+    { "a" chr.to.int$ 'last.extra.num :=
+      "" 'extra.label :=
+      sort.label 'last.sort.label :=
+    }
+  if$
+}
+
+FUNCTION {reverse.pass}
+{ next.extra "b" =
+    { "a" 'extra.label := }
+    'skip$
+  if$
+  label extra.label * 'label :=
+  label width$ longest.label.width >
+    { label 'longest.label :=
+      label width$ 'longest.label.width :=
+    }
+    'skip$
+  if$
+  extra.label 'next.extra :=
+}
+
+EXECUTE {initialize.longest.label}
+
+ITERATE {forward.pass}
+
+REVERSE {reverse.pass}
+
+% DFK removed code about et.al.char
+% DFK changed to HTML
+FUNCTION {begin.bib}
+{ "<HTML>" write$ newline$
+  "<HEAD><TITLE> Bibliography </TITLE></HEAD>" write$ newline$
+  "<BODY BGCOLOR=#EEEEEE>" write$ newline$
+  "<DL>" write$ newline$
+}
+
+EXECUTE {begin.bib}
+
+EXECUTE {init.state.consts}
+
+ITERATE {call.type$}
+
+% DFK changed to HTML
+FUNCTION {end.bib}
+{ newline$
+  "</DL>" write$ newline$
+  "</BODY>" write$ newline$
+  "</HTML>" write$ newline$
+}
+
+EXECUTE {end.bib}
index 0f7791c577248d13f890472a80787b1554d99c2f..3876f3b648e66b36b661ee2e1ab95f9ca2c5978d 100644 (file)
@@ -35,23 +35,14 @@ documenting bugfixes.
 
 @lilypondfile[printfilename]{dots.ly}
 
 
 @lilypondfile[printfilename]{dots.ly}
 
+@lilypondfile[printfilename]{accidental.ly}
+
 @lilypondfile[printfilename]{multi-measure-rest.ly}
 
 @lilypondfile[printfilename]{mm-rests2.ly}
 
 @lilypondfile[printfilename]{multi-measure-rest.ly}
 
 @lilypondfile[printfilename]{mm-rests2.ly}
 
-
-@section Accidentals
-
-Accidentals are currently in a development stage.
-
-@lilypondfile[printfilename]{accidental.ly}
-
 @lilypondfile[printfilename]{accidental-single-double.ly}
 
 @lilypondfile[printfilename]{accidental-single-double.ly}
 
-@lilypondfile[printfilename]{accidentals.ly}
-
-@lilypondfile[printfilename]{accidental-octave.ly}
-
 
 @section Stems
 
 
 @section Stems
 
index 61cf08e3b9fcc8520169295b827655373f5d1a33..f50a1b821e5419a8ca3bf95f51bd7f8f832aff9f 100644 (file)
@@ -235,16 +235,6 @@ at
 @uref{ftp://swrinde.nde.swri.edu/pub/png/applications/pnmtopng-2.37.2.tar.gz,in
 the pnmtopng FTP site}.
 
 @uref{ftp://swrinde.nde.swri.edu/pub/png/applications/pnmtopng-2.37.2.tar.gz,in
 the pnmtopng FTP site}.
 
-@item @uref{http://www.lri.fr/~filliatr/ftp/bibtex2html/, Bibtex2html}, or
-@uref{http://www.uni-koblenz.de/ag-ki/ftp/bib2html/, Bib2html}.
-Bibtex2html is available in debian, while bib2html is in some rpm based
-distributions.
-Bib2html, in turn depends on man2html for proper installation.
-man2html can be had from @uref{http://askdonald.ask.uni-karlsruhe.de/hppd/hpux/Networking/WWW/Man2html-1.05,http://askdonald.ask.uni-karlsruhe.de/hppd/hpux/Networking/WWW/Man2html-1.05}.
-
-The website will build without bib converter utility, but you will not
-see our hypertextified bibliography.
-
 @item texinfo (a development release)
 The documentation will build with texinfo-4.0, but if you want split
 html pages, you're best off using the lates pretest version from
 @item texinfo (a development release)
 The documentation will build with texinfo-4.0, but if you want split
 html pages, you're best off using the lates pretest version from
@@ -491,7 +481,6 @@ in addition to the those needed for running:
 @item make, m4, flex, bison
 @item gettext
 @item groff, texinfo
 @item make, m4, flex, bison
 @item gettext
 @item groff, texinfo
-@item bibtex2html (not in Debian 2.2)
 @item tetex-base, tetex-bin, tetex-extra, libkpathsea-dev or tetex-dev
 @item dpkg-dev, debhelper, fakeroot
 @item gs, netpbm
 @item tetex-base, tetex-bin, tetex-extra, libkpathsea-dev or tetex-dev
 @item dpkg-dev, debhelper, fakeroot
 @item gs, netpbm
@@ -519,7 +508,7 @@ For Debian in development ("unstable", the future 2.3 or 3.0):
        apt-get install binutils cpp gcc libc6-dev \
                g++ libstdc++2.10-dev \
                python-base libguile-dev tetex-bin libkpathsea-dev \
        apt-get install binutils cpp gcc libc6-dev \
                g++ libstdc++2.10-dev \
                python-base libguile-dev tetex-bin libkpathsea-dev \
-               tetex-extra flex bison texinfo bibtex2html groff gs \
+               tetex-extra flex bison texinfo  groff gs \
                netpbm m4 gettext
 @end example
 
                netpbm m4 gettext
 @end example
 
index a2b3a793e12079ec6997de594ce44aab331ae0d2..176a50e06294a188b13bc3f047654e60773d3ee2 100644 (file)
@@ -231,17 +231,6 @@ issuing
    * pnmtopng. The original is at in the pnmtopng FTP site
      (ftp://swrinde.nde.swri.edu/pub/png/applications/pnmtopng-2.37.2.tar.gz).
 
    * pnmtopng. The original is at in the pnmtopng FTP site
      (ftp://swrinde.nde.swri.edu/pub/png/applications/pnmtopng-2.37.2.tar.gz).
 
-   * Bibtex2html (http://www.lri.fr/~filliatr/ftp/bibtex2html/), or
-     Bib2html (http://www.uni-koblenz.de/ag-ki/ftp/bib2html/).
-     Bibtex2html is available in debian, while bib2html is in some rpm
-     based distributions.  Bib2html, in turn depends on man2html for
-     proper installation.  man2html can be had from
-     http://askdonald.ask.uni-karlsruhe.de/hppd/hpux/Networking/WWW/Man2html-1.05
-     (http://askdonald.ask.uni-karlsruhe.de/hppd/hpux/Networking/WWW/Man2html-1.05).
-
-     The website will build without bib converter utility, but you will
-     not see our hypertextified bibliography.
-
    * texinfo (a development release) The documentation will build with
      texinfo-4.0, but if you want split html pages, you're best off
      using the lates pretest version from texinfo-4.0b
    * texinfo (a development release) The documentation will build with
      texinfo-4.0, but if you want split html pages, you're best off
      using the lates pretest version from texinfo-4.0b
@@ -462,8 +451,6 @@ in addition to the those needed for running:
 
    * groff, texinfo
 
 
    * groff, texinfo
 
-   * bibtex2html (not in Debian 2.2)
-
    * tetex-base, tetex-bin, tetex-extra, libkpathsea-dev or tetex-dev
 
    * dpkg-dev, debhelper, fakeroot
    * tetex-base, tetex-bin, tetex-extra, libkpathsea-dev or tetex-dev
 
    * dpkg-dev, debhelper, fakeroot
@@ -490,7 +477,7 @@ by running \`apt-get' as root before building the package:
        apt-get install binutils cpp gcc libc6-dev \
                g++ libstdc++2.10-dev \
                python-base libguile-dev tetex-bin libkpathsea-dev \
        apt-get install binutils cpp gcc libc6-dev \
                g++ libstdc++2.10-dev \
                python-base libguile-dev tetex-bin libkpathsea-dev \
-               tetex-extra flex bison texinfo bibtex2html groff gs \
+               tetex-extra flex bison texinfo  groff gs \
                netpbm m4 gettext
 
    And, just so that old fonts from previous versions of LilyPond won't
                netpbm m4 gettext
 
    And, just so that old fonts from previous versions of LilyPond won't
diff --git a/VERSION b/VERSION
index 319a3ad1243b6a1f74a68164083c1cd5f5176e02..65adfb75d9390e26193e459f1a300988d67a64d5 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1,8 +1,8 @@
 PACKAGE_NAME=LilyPond
 MAJOR_VERSION=1
 MINOR_VERSION=5
 PACKAGE_NAME=LilyPond
 MAJOR_VERSION=1
 MINOR_VERSION=5
-PATCH_LEVEL=24
-MY_PATCH_LEVEL=jcn2
+PATCH_LEVEL=25
+MY_PATCH_LEVEL=
 
 # use the above to send patches: MY_PATCH_LEVEL is always empty for a
 # released version.
 
 # use the above to send patches: MY_PATCH_LEVEL is always empty for a
 # released version.
diff --git a/buildscripts/bib2html.py b/buildscripts/bib2html.py
new file mode 100644 (file)
index 0000000..37bc469
--- /dev/null
@@ -0,0 +1,86 @@
+#!@PYTHON@
+import os
+import sys
+import getopt
+import tempfile
+import string
+
+# usage:
+def usage ():
+    print 'usage: %s [-s style] [-o <outfile>] BIBFILES...';
+
+
+
+(options, files) = getopt.getopt(sys.argv[1:], 's:o:', [])
+
+output = 'bib.html'
+style = 'long'
+for (o,a) in options:
+       if o == '-h' or o == '--help':
+               usage ()
+               sys.exit (0)
+       elif o == '-s' or o == '--style':
+               style = a
+       elif o == '-o' or o == '--output':
+               output = a
+       else:
+               raise 'unknown opt ', o
+
+
+if style not in ['alpha','index','long','longp','long-pario','short','short-pario','split']:
+    sys.stderr.write ("Unknown style \`%s'\n" % style)
+
+tempfile = tempfile.mktemp ('bib2html')
+
+if not files:
+    usage ()
+    sys.exit (2)
+
+
+def strip_extension (f, ext):
+       (p, e) = os.path.splitext (f)
+       if e == ext:
+               e = ''
+       return p + e
+
+nf = []
+for f in files:
+    nf.append (strip_extension(f, '.bib'))
+
+files = string.join (nf,',')
+
+open(tempfile + '.aux', 'w').write (r'''
+\relax 
+\citation{*}
+\bibstyle{html-%(style)s}
+\bibdata{%(files)s}''' % vars ()) 
+
+cmd = "bibtex %s" % tempfile;
+
+sys.stdout.write ("Invoking `%s'\n" % cmd)
+os.system (cmd) 
+
+
+#TODO: do tex -> html on output 
+
+bbl =open (tempfile + '.bbl').read ()
+
+open (output, 'w').write  (bbl)
+
+
+def cleanup (tempfile):
+    for a in ['aux','bbl', 'blg']:
+       os.unlink (tempfile + '.' + a)
+
+cleanup(tempfile)
+
+
+
+
+
+
+
+
+
+
+
index f08e5039654c04c1bc37d0bc195456f9449ab6f5..421625432fe3402a3113edf061edfbb8923aef48 100755 (executable)
--- a/configure
+++ b/configure
@@ -3175,50 +3175,6 @@ EOF
 
 
 
 
 
 
-    for ac_prog in bibtex2html bib2html
-do
-# Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3184: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_BIBTEX2HTML'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  if test -n "$BIBTEX2HTML"; then
-  ac_cv_prog_BIBTEX2HTML="$BIBTEX2HTML" # Let the user override the test.
-else
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
-  ac_dummy="$PATH"
-  for ac_dir in $ac_dummy; do
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$ac_word; then
-      ac_cv_prog_BIBTEX2HTML="$ac_prog"
-      break
-    fi
-  done
-  IFS="$ac_save_ifs"
-fi
-fi
-BIBTEX2HTML="$ac_cv_prog_BIBTEX2HTML"
-if test -n "$BIBTEX2HTML"; then
-  echo "$ac_t""$BIBTEX2HTML" 1>&6
-else
-  echo "$ac_t""no" 1>&6
-fi
-
-test -n "$BIBTEX2HTML" && break
-done
-test -n "$BIBTEX2HTML" || BIBTEX2HTML="error"
-
-    if test "$BIBTEX2HTML" = "bib2html"; then
-       BIBTEX2HTML_FLAGS='$< $(@)'
-    else
-       BIBTEX2HTML_FLAGS='-o $(@D)/$(*F) $<'
-    fi
-    
-    
-
-
 
 if test "$optimise_b" = yes; then
     DEFINES="$DEFINES -DSTRING_UTILS_INLINED"
 
 if test "$optimise_b" = yes; then
     DEFINES="$DEFINES -DSTRING_UTILS_INLINED"
@@ -3231,7 +3187,7 @@ fi
 
 
 echo $ac_n "checking for 8-bit clean memcmp""... $ac_c" 1>&6
 
 
 echo $ac_n "checking for 8-bit clean memcmp""... $ac_c" 1>&6
-echo "configure:3235: checking for 8-bit clean memcmp" >&5
+echo "configure:3191: checking for 8-bit clean memcmp" >&5
 if eval "test \"`echo '$''{'ac_cv_func_memcmp_clean'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
 if eval "test \"`echo '$''{'ac_cv_func_memcmp_clean'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3239,7 +3195,7 @@ else
   ac_cv_func_memcmp_clean=no
 else
   cat > conftest.$ac_ext <<EOF
   ac_cv_func_memcmp_clean=no
 else
   cat > conftest.$ac_ext <<EOF
-#line 3243 "configure"
+#line 3199 "configure"
 #include "confdefs.h"
 
 main()
 #include "confdefs.h"
 
 main()
@@ -3249,7 +3205,7 @@ main()
 }
 
 EOF
 }
 
 EOF
-if { (eval echo configure:3253: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:3209: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_func_memcmp_clean=yes
 else
 then
   ac_cv_func_memcmp_clean=yes
 else
@@ -3267,12 +3223,12 @@ echo "$ac_t""$ac_cv_func_memcmp_clean" 1>&6
 test $ac_cv_func_memcmp_clean = no && LIBOBJS="$LIBOBJS memcmp.${ac_objext}"
 
 echo $ac_n "checking for vprintf""... $ac_c" 1>&6
 test $ac_cv_func_memcmp_clean = no && LIBOBJS="$LIBOBJS memcmp.${ac_objext}"
 
 echo $ac_n "checking for vprintf""... $ac_c" 1>&6
-echo "configure:3271: checking for vprintf" >&5
+echo "configure:3227: checking for vprintf" >&5
 if eval "test \"`echo '$''{'ac_cv_func_vprintf'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
 if eval "test \"`echo '$''{'ac_cv_func_vprintf'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3276 "configure"
+#line 3232 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char vprintf(); below.  */
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char vprintf(); below.  */
@@ -3298,7 +3254,7 @@ vprintf();
 
 ; return 0; }
 EOF
 
 ; return 0; }
 EOF
-if { (eval echo configure:3302: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3258: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_vprintf=yes"
 else
   rm -rf conftest*
   eval "ac_cv_func_vprintf=yes"
 else
@@ -3322,12 +3278,12 @@ fi
 
 if test "$ac_cv_func_vprintf" != yes; then
 echo $ac_n "checking for _doprnt""... $ac_c" 1>&6
 
 if test "$ac_cv_func_vprintf" != yes; then
 echo $ac_n "checking for _doprnt""... $ac_c" 1>&6
-echo "configure:3326: checking for _doprnt" >&5
+echo "configure:3282: checking for _doprnt" >&5
 if eval "test \"`echo '$''{'ac_cv_func__doprnt'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
 if eval "test \"`echo '$''{'ac_cv_func__doprnt'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3331 "configure"
+#line 3287 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char _doprnt(); below.  */
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char _doprnt(); below.  */
@@ -3353,7 +3309,7 @@ _doprnt();
 
 ; return 0; }
 EOF
 
 ; return 0; }
 EOF
-if { (eval echo configure:3357: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3313: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func__doprnt=yes"
 else
   rm -rf conftest*
   eval "ac_cv_func__doprnt=yes"
 else
@@ -3380,12 +3336,12 @@ fi
 for ac_func in memmem snprintf vsnprintf gettext isinf
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
 for ac_func in memmem snprintf vsnprintf gettext isinf
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3384: checking for $ac_func" >&5
+echo "configure:3340: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3389 "configure"
+#line 3345 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -3411,7 +3367,7 @@ $ac_func();
 
 ; return 0; }
 EOF
 
 ; return 0; }
 EOF
-if { (eval echo configure:3415: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3371: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -3451,7 +3407,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3455: checking for $ac_word" >&5
+echo "configure:3411: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_MAKEINFO'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
 if eval "test \"`echo '$''{'ac_cv_prog_MAKEINFO'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3483,7 +3439,7 @@ test -n "$MAKEINFO" || MAKEINFO="error"
 
     if test "$MAKEINFO" != "error"; then
        echo $ac_n "checking whether makeinfo can split html by @node""... $ac_c" 1>&6
 
     if test "$MAKEINFO" != "error"; then
        echo $ac_n "checking whether makeinfo can split html by @node""... $ac_c" 1>&6
-echo "configure:3487: checking whether makeinfo can split html by @node" >&5
+echo "configure:3443: checking whether makeinfo can split html by @node" >&5
        mkdir -p out
        makeinfo --html --output=out/split <<EOF
 \input texinfo
        mkdir -p out
        makeinfo --html --output=out/split <<EOF
 \input texinfo
@@ -3511,7 +3467,7 @@ EOF
 # Extract the first word of "perl", so it can be a program name with args.
 set dummy perl; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
 # Extract the first word of "perl", so it can be a program name with args.
 set dummy perl; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3515: checking for $ac_word" >&5
+echo "configure:3471: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_PERL'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
 if eval "test \"`echo '$''{'ac_cv_path_PERL'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3549,17 +3505,17 @@ for ac_hdr in python2.1/Python.h python2.0/Python.h python2/Python.h python/Pyth
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:3553: checking for $ac_hdr" >&5
+echo "configure:3509: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3558 "configure"
+#line 3514 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3563: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3519: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -3783,8 +3739,6 @@ s%@GUILE_CFLAGS@%$GUILE_CFLAGS%g
 s%@GUILE_LDFLAGS@%$GUILE_LDFLAGS%g
 s%@GUILE@%$GUILE%g
 s%@KPATHSEA@%$KPATHSEA%g
 s%@GUILE_LDFLAGS@%$GUILE_LDFLAGS%g
 s%@GUILE@%$GUILE%g
 s%@KPATHSEA@%$KPATHSEA%g
-s%@BIBTEX2HTML@%$BIBTEX2HTML%g
-s%@BIBTEX2HTML_FLAGS@%$BIBTEX2HTML_FLAGS%g
 s%@LIBOBJS@%$LIBOBJS%g
 s%@MAKEINFO@%$MAKEINFO%g
 s%@SPLITTING_MAKEINFO@%$SPLITTING_MAKEINFO%g
 s%@LIBOBJS@%$LIBOBJS%g
 s%@MAKEINFO@%$MAKEINFO%g
 s%@SPLITTING_MAKEINFO@%$SPLITTING_MAKEINFO%g
index 1597831177a63eb43c8709ecab06c8629230fd32..687edd4e4a5877fa25c54fcd9ffb6d8c2265de4e 100644 (file)
@@ -29,7 +29,6 @@ AC_STEPMAKE_TEXMF
 AC_STEPMAKE_TEXMF_DIRS
 AC_STEPMAKE_GUILE
 AC_STEPMAKE_KPATHSEA
 AC_STEPMAKE_TEXMF_DIRS
 AC_STEPMAKE_GUILE
 AC_STEPMAKE_KPATHSEA
-AC_STEPMAKE_BIBTEX2HTML
 
 
 if test "$optimise_b" = yes; then
 
 
 if test "$optimise_b" = yes; then
diff --git a/input/regression/accidental-octave.ly b/input/regression/accidental-octave.ly
deleted file mode 100644 (file)
index 54ba4fb..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-\version "1.5.24.rz2"
-
-\header {
-texidoc="
-This shows how accidentals in different octaves are handled.
-"
-}
-
-#(define  (central-octave p)
-  (let* ((a (pitch-alteration p))
-         (n (pitch-notename p)))
-    (make-pitch 0 n a)))
-
-#(define (no-octaves music)
-  (let* ((es (ly-get-mus-property music 'elements))
-         (e (ly-get-mus-property music 'element))
-         (p (ly-get-mus-property music 'pitch)))
-
-    (if (pair? es)
-        (ly-set-mus-property
-         music 'elements
-         (map no-octaves es)))
-
-    (if (music? e)
-        (ly-set-mus-property
-         music 'element
-         (no-octaves e)))
-
-    (if (pitch? p)
-        (begin
-          (set! p (central-octave p))
-          (ly-set-mus-property music 'pitch p)))
-
-
-    music))
-
-
-\include "paper16.ly"
-
-mel = \notes \transpose c'' {
-  \time 4/4 \key d \major
-  gis4 g' g gis' | gis2 g' | g1 | gis | g | gis | g' |
-  fis4 f' f fis' | fis2 f' | f1 | fis | f | fis | f' |
-  \bar "|." \break
-}
-
-mus = \notes {
-  \mel
-   \property Score.oneMeasureLazy = ##t
-   \property Score.autoAccidentals = #'(same-octave)
-   < s1^"$\\backslash$property Score.autoAccidentals = \\#'(same-octave)" \mel >
-   \property Score.autoAccidentals = #'(lazy-same-octave)
-   < s1^"$\\backslash$property Score.autoAccidentals = \\#'(lazy-same-octave)" \mel >
-   \property Score.autoAccidentals = #'(any-octave)
-   < s1^"$\\backslash$property Score.autoAccidentals = \\#'(any-octave)" \mel >
-   \property Score.autoAccidentals = #'(lazy-any-octave)
-   < s1^"$\\backslash$property Score.autoAccidentals = \\#'(lazy-any-octave)" \mel >
-  \modernAccidentals
-  < s1^"$\\backslash$modernAccidentals" \mel >
-  \modernCautionaries
-  < s1^"$\\backslash$modernCautionaries" \mel >
-  \noResetKey
-  < s1^"$\\backslash$noResetKey" \mel >
-}
-
-
-\score {
-  < \context Staff \mus
-    \context NoteNames \apply #no-octaves \mus
-  >
-  \paper {
-    indent=0.0
-  }
-}
index cffcbac459c4b937ba82a6cfed8208e3c0f700fe..f7676f85caba78e35df1b767a8cb96aaf580252a 100644 (file)
@@ -13,12 +13,12 @@ thenotes =  \notes \relative cis' { \time 4/4
 gisis'4 gis gisis ges |
 geses ges geses gis |
 gisis g geses g |
 gisis'4 gis gisis ges |
 geses ges geses gis |
 gisis g geses g |
-gis ges gis g |
+gis g ges g |
 \key a \major
 gisis4 gis gisis ges |
 geses ges geses gis |
 gisis g geses g |
 \key a \major
 gisis4 gis gisis ges |
 geses ges geses gis |
 gisis g geses g |
-gis ges gis g |
+gis g ges g |
 }
 
 \score { < \context Staff \thenotes
 }
 
 \score { < \context Staff \thenotes
diff --git a/input/regression/accidentals.ly b/input/regression/accidentals.ly
deleted file mode 100644 (file)
index dbd2f02..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-\version "1.5.24.rz2"
-
-\header{
-texidoc="
-This shows how accidentals are handled.
-"
-}
-
-mel = \notes { \key d \major \time 4/4
- d4  dis dis8 dis, d4 | d dis disis8 d, dis4 | d des disis8 dis, d4 | dis deses d dis ~ | dis dis ~ dis8 d, dis4 ~ | \break
- dis dis cis c | c cis cisis cis | c ces cisis c | cis ceses c cis ~ | cis cis ~ cis cis \bar "|."  | \break
-}
-
-\score { \notes \context Staff \transpose c''' {
-   \mel
-   \property Score.oneMeasureLazy = ##t
-   \property Score.autoAccidentals = #'(same-octave)
-   < s1^"$\\backslash$property Score.autoAccidentals = \\#'(same-octave)" \mel >
-   \property Score.autoAccidentals = #'(lazy-same-octave)
-   < s1^"$\\backslash$property Score.autoAccidentals = \\#'(lazy-same-octave)" \mel >
-   \property Score.autoAccidentals = #'(any-octave)
-   < s1^"$\\backslash$property Score.autoAccidentals = \\#'(any-octave)" \mel >
-   \property Score.autoAccidentals = #'(lazy-any-octave)
-   < s1^"$\\backslash$property Score.autoAccidentals = \\#'(lazy-any-octave)" \mel >
-   \stoneAccidentals
-   < s1^"$\\backslash stoneAccidentals" \mel >
-   \stoneCautionaries
-   < s1^"$\\backslash stoneCautionaries" \mel >
-   \noResetKey
-   < s1^"$\\backslash noResetKey" \mel >
-  }
-  \paper {
-    indent = 0.0
-  }
-}
-
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..294ca11db3d970db2457ba26ed5555fdec334e03 100644 (file)
@@ -0,0 +1,23 @@
+% \version "1.5.15.rz1"
+
+mel = \notes {
+ d4  dis dis d | d dis disis dis | d des disis d | dis deses d dis ~ | dis dis ~ dis dis ~ | \break
+ dis dis cis c | c cis cisis cis | c ces cisis c | cis ceses c cis ~ | cis cis ~ cis cis \bar "|."  | \break
+}
+
+\score { \notes \context Staff \transpose c''' {
+   \key d \major
+   \mel
+   \property Score.autoReminders = #'cautionary
+   < s1^"$\\backslash$property Score.autoReminders = \\#'cautionary" \mel >
+   \property Score.autoReminders = #'accidental
+   < s1^"$\\backslash$property Score.autoReminders = \\#'accidental" \mel >
+   \property Score.autoReminders = ##f
+   \property Score.forgetAccidentals = ##t
+   < s1^"$\\backslash$property Score.forgetAccidentals = \\#\\#t" \mel >
+   \property Score.forgetAccidentals = ##f
+   \property Score.noResetKey = ##t
+   < s1^"$\\backslash$property Score.noResetKey = \\#\\#t" \mel >
+  }
+}
+
index baf3941591380799093e228cde74b905738c3b4d..65b83a1b611ca39563e546f1102286229a61d83e 100644 (file)
@@ -59,7 +59,6 @@ public:
 
 };
 
 
 };
 
-
 Accidental_engraver::Accidental_engraver ()
 {
   key_item_p_ =0;
 Accidental_engraver::Accidental_engraver ()
 {
   key_item_p_ =0;
@@ -80,22 +79,19 @@ Accidental_engraver::initialize ()
   *   Negative (-1 or -2) if accidental has changed.
   **/
 static int
   *   Negative (-1 or -2) if accidental has changed.
   **/
 static int
-number_accidentals (SCM sig, Note_req * note_l, bool ignore_octave_b)
+number_accidentals (SCM sig, Note_req * note_l)
 {
   Pitch *pitch = unsmob_pitch (note_l->get_mus_property ("pitch"));
   int n = pitch->notename_i_;
 {
   Pitch *pitch = unsmob_pitch (note_l->get_mus_property ("pitch"));
   int n = pitch->notename_i_;
-  int o = pitch->octave_i_;
+  int o = pitch->octave_i () ;
   int a = pitch->alteration_i_;
   
   int a = pitch->alteration_i_;
   
-  SCM prev;
-  if (ignore_octave_b)
-    prev = ly_assoc_cdr (gh_int2scm (n), sig);
-  else
-    prev = gh_assoc (gh_cons (gh_int2scm (o), gh_int2scm (n)), sig);
+  SCM prev = scm_assoc (gh_cons (gh_int2scm (o), gh_int2scm (n)), sig);
   if (prev == SCM_BOOL_F)
   if (prev == SCM_BOOL_F)
-    prev = gh_assoc (gh_int2scm (n), sig);
+    prev = scm_assoc (gh_int2scm (n), sig);
   SCM prev_acc = (prev == SCM_BOOL_F) ? gh_int2scm (0) : ly_cdr (prev);
 
   SCM prev_acc = (prev == SCM_BOOL_F) ? gh_int2scm (0) : ly_cdr (prev);
 
+  bool different = !gh_equal_p (prev_acc , gh_int2scm (a));
   int p = gh_number_p (prev_acc) ? gh_scm2int (prev_acc) : 0;
 
   int num;
   int p = gh_number_p (prev_acc) ? gh_scm2int (prev_acc) : 0;
 
   int num;
@@ -106,33 +102,6 @@ number_accidentals (SCM sig, Note_req * note_l, bool ignore_octave_b)
   return a==p ? num : -num;
 }
 
   return a==p ? num : -num;
 }
 
-static int
-number_accidentals (SCM localsig, SCM lazysig, Note_req * note_l, SCM accidentals_l) {
-  int number=0;
-  int diff=0;
-  if(gh_memq(ly_symbol2scm("same-octave"),accidentals_l)!=SCM_BOOL_F) {
-    int n = number_accidentals(localsig,note_l,false);
-    diff |= n<0;
-    number = max(number,abs(n));
-  }
-  if(gh_memq(ly_symbol2scm("lazy-same-octave"),accidentals_l)!=SCM_BOOL_F) {
-    int n = number_accidentals(lazysig,note_l,false);
-    diff |= n<0;
-    number = max(number,abs(n));
-  }
-  if(gh_memq(ly_symbol2scm("any-octave"),accidentals_l)!=SCM_BOOL_F) {
-    int n = number_accidentals(localsig,note_l,true);
-    diff |= n<0;
-    number = max(number,abs(n));
-  }
-  if(gh_memq(ly_symbol2scm("lazy-any-octave"),accidentals_l)!=SCM_BOOL_F) {
-    int n = number_accidentals(lazysig,note_l,true);
-    diff |= n<0;
-    number = max(number,abs(n));
-  }
-  return diff ? -number : number;
-}
-
 void
 Accidental_engraver::create_grobs ()
 {
 void
 Accidental_engraver::create_grobs ()
 {
@@ -140,25 +109,31 @@ Accidental_engraver::create_grobs ()
     {
       SCM localsig = get_property ("localKeySignature");
       SCM lazysig = get_property ("lazyKeySignature");
     {
       SCM localsig = get_property ("localKeySignature");
       SCM lazysig = get_property ("lazyKeySignature");
-      SCM accidentals_l =  get_property ("autoAccidentals");
-      SCM cautionaries_l =  get_property ("autoCautionaries");
-
-      bool extra_natural_b = get_property ("extraNatural")==SCM_BOOL_T;
 
       for (int i=0; i  < mel_l_arr_.size (); i++) 
        {
          Grob * support_l = support_l_arr_[i];
          Note_req * note_l = mel_l_arr_[i];
 
 
       for (int i=0; i  < mel_l_arr_.size (); i++) 
        {
          Grob * support_l = support_l_arr_[i];
          Note_req * note_l = mel_l_arr_[i];
 
-         int num = number_accidentals(localsig,lazysig,note_l,accidentals_l);
-         int num_caut = number_accidentals(localsig,lazysig,note_l,cautionaries_l);
+         int local_num = number_accidentals(localsig,note_l);
+         bool local_diff = local_num<0; local_num = abs(local_num);
+         int lazy_num = number_accidentals(lazysig,note_l);
+         bool lazy_diff = lazy_num<0; lazy_num = abs(lazy_num);
+
+         int num = local_num;;
+         bool different= local_diff;
          bool cautionary = to_boolean (note_l->get_mus_property ("cautionary"));
          bool cautionary = to_boolean (note_l->get_mus_property ("cautionary"));
-         if (abs(num_caut)>abs(num)) {
-           num=num_caut;
-           cautionary=true;
+         if (to_boolean (get_property ("noResetKey"))) {
+           num = lazy_num;
+           different = lazy_diff;
+         }
+         else if (gh_equal_p (get_property ("autoReminders"),ly_symbol2scm("cautionary"))
+                  || gh_equal_p (get_property ("autoReminders"),ly_symbol2scm("accidental"))) {
+           num = max(local_num,lazy_num);
+           if (gh_equal_p (get_property ("autoReminders"),ly_symbol2scm("cautionary"))
+               && lazy_num>local_num)
+             cautionary = true;
          }
          }
-         bool different=num<0;
-         num=abs(num);
 
          /* see if there's a tie that "changes" the accidental */
          /* works because if there's a tie, the note to the left
 
          /* see if there's a tie that "changes" the accidental */
          /* works because if there's a tie, the note to the left
@@ -201,7 +176,7 @@ Accidental_engraver::create_grobs ()
              
              Local_key_item::add_pitch (key_item_p_, *unsmob_pitch (note_l->get_mus_property ("pitch")),
                                         cautionary,
              
              Local_key_item::add_pitch (key_item_p_, *unsmob_pitch (note_l->get_mus_property ("pitch")),
                                         cautionary,
-                                        num==2 && extra_natural_b,
+                                        num==2,
                                         tie_break_reminder);
              Side_position_interface::add_support (key_item_p_,support_l);
            }
                                         tie_break_reminder);
              Side_position_interface::add_support (key_item_p_,support_l);
            }
@@ -213,8 +188,7 @@ Accidental_engraver::create_grobs ()
 
            Checking whether it is tied also works mostly, but will it
            always do the correct thing?
 
            Checking whether it is tied also works mostly, but will it
            always do the correct thing?
-           FIXME: 2nd accidental after broken-tie accidental should be junked.
-                  Remove broken-tie-support?
+           (???? -Rune )
           */
          
          Pitch *pitch = unsmob_pitch (note_l->get_mus_property ("pitch"));
           */
          
          Pitch *pitch = unsmob_pitch (note_l->get_mus_property ("pitch"));
@@ -229,8 +203,8 @@ Accidental_engraver::create_grobs ()
                Remember an alteration that is different both from
                that of the tied note and of the key signature.
               */
                Remember an alteration that is different both from
                that of the tied note and of the key signature.
               */
-             localsig = ly_assoc_front_x (localsig, on, SCM_BOOL_T);
-             lazysig = ly_assoc_front_x  (lazysig,  on, SCM_BOOL_T);
+             localsig = scm_assoc_set_x (localsig, on, SCM_BOOL_T); 
+             lazysig = scm_assoc_set_x  (lazysig,  on, SCM_BOOL_T); 
            }
          else if (!forget)
            {
            }
          else if (!forget)
            {
@@ -238,8 +212,8 @@ Accidental_engraver::create_grobs ()
                not really really correct if there are more than one
                noteheads with the same notename.
               */
                not really really correct if there are more than one
                noteheads with the same notename.
               */
-             localsig = ly_assoc_front_x (localsig, on, gh_int2scm (a)); 
-             lazysig = ly_assoc_front_x  (lazysig,  on, gh_int2scm (a)); 
+             localsig = scm_assoc_set_x (localsig, on, gh_int2scm (a)); 
+             lazysig = scm_assoc_set_x  (lazysig,  on, gh_int2scm (a)); 
            }
         }
   
            }
         }
   
@@ -247,7 +221,7 @@ Accidental_engraver::create_grobs ()
       daddy_trans_l_->set_property ("lazyKeySignature",   lazysig);
     }
   
       daddy_trans_l_->set_property ("lazyKeySignature",   lazysig);
     }
   
-  
+
   if (key_item_p_)
     {
       /*
   if (key_item_p_)
     {
       /*
@@ -333,11 +307,7 @@ Accidental_engraver::process_music ()
     }
   else if (!mp.to_bool () )
     {
     }
   else if (!mp.to_bool () )
     {
-      /* Use the old local sig as new lazy sig. This way the lazy sig will be one measure late */
-      if (get_property("oneMeasureLazy")==SCM_BOOL_T)
-       daddy_trans_l_->set_property ("lazyKeySignature",
-         daddy_trans_l_->get_property ("localKeySignature"));
-      daddy_trans_l_->set_property ("localKeySignature",  ly_deep_copy (sig));
+       daddy_trans_l_->set_property ("localKeySignature",  ly_deep_copy (sig));
     }
 }
 
     }
 }
 
@@ -351,5 +321,5 @@ events.  Due to interaction with ties (which don't come together
 with note heads), this needs to be in a context higher than Tie_engraver. FIXME",
 /* creats*/       "Accidentals",
 /* acks  */       "rhythmic-head-interface tie-interface arpeggio-interface",
 with note heads), this needs to be in a context higher than Tie_engraver. FIXME",
 /* creats*/       "Accidentals",
 /* acks  */       "rhythmic-head-interface tie-interface arpeggio-interface",
-/* reads */       "localKeySignature lazyKeySignature forgetAccidentals oneMeasureLazy extraNatural autoAccidentals autoCautionaries",
+/* reads */       "localKeySignature forgetAccidentals noResetKey autoReminders",
 /* write */       "");
 /* write */       "");
index afdd5482bd1d9961daa8a030688565aa4fd53bcf..ec516bb2afde65830b24b5ce241bdc64dad155ef 100644 (file)
@@ -129,7 +129,7 @@ Fingering_engraver::process_music ()
        {
          /*
            chuck out reqs that have no pitch.  We put them over the note by default.
        {
          /*
            chuck out reqs that have no pitch.  We put them over the note by default.
-       */
+         */
          up_reqs_.push (pitch_sorted_reqs [i]);
          pitch_sorted_reqs.del (i);
        }
          up_reqs_.push (pitch_sorted_reqs [i]);
          pitch_sorted_reqs.del (i);
        }
index 86914fcd0eab394751b69378dad3e74a73fa4e7d..4c9ef7c9fa6bc3fedbf6ec1cc5ea757c889dbeb9 100644 (file)
@@ -64,7 +64,7 @@ Gourlay_breaking::do_solve () const
 
   Real worst_force = 0.0;
   
 
   Real worst_force = 0.0;
   
-  for (  int break_idx=1; break_idx< breaks.size (); break_idx++) 
+  for (int break_idx=1; break_idx< breaks.size (); break_idx++) 
     {
       /*
        start with a short line, add measures. At some point 
     {
       /*
        start with a short line, add measures. At some point 
@@ -187,6 +187,10 @@ Gourlay_breaking::Gourlay_breaking ()
 
 /*
   TODO: uniformity parameter to control rel. importance of spacing differences.
 
 /*
   TODO: uniformity parameter to control rel. importance of spacing differences.
+
+  TODO:
+
+  mixing break penalties and constraint-failing solutions is confusing.
  */
 Real
 Gourlay_breaking::combine_demerits (Column_x_positions const &prev,
  */
 Real
 Gourlay_breaking::combine_demerits (Column_x_positions const &prev,
@@ -197,7 +201,7 @@ Gourlay_breaking::combine_demerits (Column_x_positions const &prev,
   if (pc->original_l_)
     {
       SCM pen = pc->get_grob_property ("penalty");
   if (pc->original_l_)
     {
       SCM pen = pc->get_grob_property ("penalty");
-      if (gh_number_p (pen))
+      if (gh_number_p (pen) && fabs (gh_scm2double (pen)) < 10000)
        {
          break_penalties += gh_scm2double (pen);
        }
        {
          break_penalties += gh_scm2double (pen);
        }
@@ -212,9 +216,12 @@ Gourlay_breaking::combine_demerits (Column_x_positions const &prev,
        /*
         If it doesn't satisfy constraints, we make this one
         really unattractive.
        /*
         If it doesn't satisfy constraints, we make this one
         really unattractive.
-       */
-       demerit += 10;
-       demerit *= 100;
+
+        add 20000 to the demerits, so that a break penalty
+        of -10000 won't change the result */
+       demerit = (demerit + 20000) >? 2000;
+       
+       demerit *= 10;
      }
 
    return demerit;
      }
 
    return demerit;
index 26c2a8a3001732a7ff94c2521813288dbbc52e11..55aafc98c7d8cdea7102233ab888d2544626ce58 100644 (file)
@@ -133,11 +133,9 @@ String ly_symbol2string (SCM);
 SCM ly_offset2scm (Offset);
 Offset ly_scm2offset (SCM);
 SCM ly_assoc_chain (SCM key, SCM achain);
 SCM ly_offset2scm (Offset);
 Offset ly_scm2offset (SCM);
 SCM ly_assoc_chain (SCM key, SCM achain);
-SCM ly_assoc_cdr (SCM key, SCM alist);
 Interval ly_scm2interval (SCM);
 SCM ly_interval2scm (Interval);
 
 Interval ly_scm2interval (SCM);
 SCM ly_interval2scm (Interval);
 
-
 SCM ly_parse_scm (char const* s, int* n);
 SCM ly_quote_scm (SCM s);
 SCM ly_type (SCM);
 SCM ly_parse_scm (char const* s, int* n);
 SCM ly_quote_scm (SCM s);
 SCM ly_type (SCM);
@@ -155,11 +153,6 @@ inline SCM ly_cddr (SCM x) { return SCM_CDDR (x); }
 inline SCM ly_caddr (SCM x) { return SCM_CADDR (x); }
 inline SCM ly_cdadr (SCM x) { return SCM_CDADR (x); }
 inline SCM ly_caadr (SCM x) { return SCM_CAADR (x); }
 inline SCM ly_caddr (SCM x) { return SCM_CADDR (x); }
 inline SCM ly_cdadr (SCM x) { return SCM_CDADR (x); }
 inline SCM ly_caadr (SCM x) { return SCM_CAADR (x); }
-/* inserts at front, removing dublicates */
-inline SCM ly_assoc_front_x(SCM alist, SCM key, SCM val)
-{
-  return scm_acons(key, val, scm_assoc_remove_x (alist, key));
-}
 inline bool ly_pair_p (SCM x) { return SCM_NFALSEP (scm_pair_p (x)); }
 inline bool ly_symbol_p (SCM x) { return SCM_SYMBOLP (x); }
 inline bool ly_number_p (SCM x) { return SCM_NUMBERP (x); }
 inline bool ly_pair_p (SCM x) { return SCM_NFALSEP (scm_pair_p (x)); }
 inline bool ly_symbol_p (SCM x) { return SCM_SYMBOLP (x); }
 inline bool ly_number_p (SCM x) { return SCM_NUMBERP (x); }
index 8115e25587d81df6221b0d83babe6b5187602397..80fd7f153d447a508468d28e046a7552c250cba8 100644 (file)
@@ -69,7 +69,7 @@ struct Simple_spacer
   Real indent_f_;
   Real line_len_f_;
   Real default_space_f_;
   Real indent_f_;
   Real line_len_f_;
   Real default_space_f_;
-
+  int active_count_;
 
   Simple_spacer ();
   
 
   Simple_spacer ();
   
index 2cf476fbbf587ff8c7ffccd1ac4de85917e95b71..a42715549180c18e07902fbcd6b479572fe0a00a 100644 (file)
@@ -22,7 +22,6 @@
 #include "direction.hh"
 #include "offset.hh"
 #include "interval.hh"
 #include "direction.hh"
 #include "offset.hh"
 #include "interval.hh"
-#include "pitch.hh"
 
 SCM
 ly_last (SCM list)
 
 SCM
 ly_last (SCM list)
@@ -520,23 +519,6 @@ ly_assoc_chain (SCM key, SCM achain)
     return SCM_BOOL_F;
 }
 
     return SCM_BOOL_F;
 }
 
-/* looks the key up in the cdrs of the alist-keys
-   - ignoring the car and ignoring non-pair keys.
-   Returns first match found. */
-SCM
-ly_assoc_cdr (SCM key, SCM alist)
-{
-  if (gh_pair_p (alist)) {
-    SCM trykey = ly_caar(alist);
-    if(gh_pair_p(trykey) && to_boolean(scm_equal_p(key,ly_cdr(trykey))))
-      return ly_car(alist);
-    else
-      return ly_assoc_cdr (key, ly_cdr (alist));
-  }
-  else
-    return SCM_BOOL_F;
-}
-
 /*
   LIST has the form "sym1 sym2 sym3" 
  */
 /*
   LIST has the form "sym1 sym2 sym3" 
  */
index 46013523fd454bc124e9295ca69129c0aff1964a..df4db48a8c0ba16197442ed24ba1eda3f8988ec6 100644 (file)
@@ -154,13 +154,13 @@ Pitch::str () const
   if (alteration_i_)
     s += String (accname[alteration_i_ + 2]);
 
   if (alteration_i_)
     s += String (accname[alteration_i_ + 2]);
 
-  if (octave_i_ > 0)
+  if (octave_i_ >= 0)
     {
       int o = octave_i_ + 1;
       while (o--)
        s += "'";
     }
     {
       int o = octave_i_ + 1;
       while (o--)
        s += "'";
     }
-  else if (octave_i_ <0)
+  else if (octave_i_ < 0)
     {
       int o = (-octave_i_) - 1;
       while (o--)
     {
       int o = (-octave_i_) - 1;
       while (o--)
index e5ecb8796091d0a391e58e49a35306706fc9a10e..7d8cdc7467f6495360e64f4976cfe3411e90b17d 100644 (file)
@@ -8,7 +8,7 @@
  */
 #include "script-column.hh"
 #include "side-position-interface.hh"
  */
 #include "script-column.hh"
 #include "side-position-interface.hh"
-
+#include "warn.hh"
 #include "group-interface.hh"
 
 void
 #include "group-interface.hh"
 
 void
@@ -46,8 +46,15 @@ Script_column::before_line_breaking (SCM smob)
                                     
   for (int i=0; i < staff_sided.size (); i++)
     {
                                     
   for (int i=0; i < staff_sided.size (); i++)
     {
-      arrs[Side_position_interface::get_direction (staff_sided[i])]
-       .push (staff_sided[i]);
+      Direction d = Side_position_interface::get_direction (staff_sided[i]);
+      if (!d)
+       {
+         programming_error ( "No direction for script?");
+         d = DOWN;
+         staff_sided[i]->set_grob_property ("direction", gh_int2scm (d));
+       }
+      
+      arrs[d].push (staff_sided[i]);
     }
 
   Direction d = DOWN;
     }
 
   Direction d = DOWN;
index e787fd091b92ae0c7f3ff31e721c5ec7d156814f..a98188569a0d7a40473dd09cad2ed1c24ca189f6 100644 (file)
@@ -24,6 +24,7 @@
 
 Simple_spacer::Simple_spacer ()
 {
 
 Simple_spacer::Simple_spacer ()
 {
+  active_count_ = 0;
   force_f_ = 0.;
   indent_f_ =0.0;
   default_space_f_ = 20 PT;
   force_f_ = 0.;
   indent_f_ =0.0;
   default_space_f_ = 20 PT;
@@ -100,8 +101,12 @@ Simple_spacer::set_active_states ()
   // safe, since
   // force is only copied.
   for (int i=0 ; i <springs_.size (); i++)
   // safe, since
   // force is only copied.
   for (int i=0 ; i <springs_.size (); i++)
-    if (springs_[i].block_force_f_ >= force_f_) 
-      springs_[i].active_b_ = false;
+    if (springs_[i].active_b_
+       && springs_[i].block_force_f_ >= force_f_)
+      {
+       springs_[i].active_b_ = false;
+       active_count_ --; 
+      }
 }   
 
 Real
 }   
 
 Real
@@ -125,10 +130,7 @@ Spring_description::length (Real f) const
 bool
 Simple_spacer::active_b () const
 {
 bool
 Simple_spacer::active_b () const
 {
-   for (int i=0; i < springs_.size (); i++)
-    if (springs_[i].active_b_)
-      return true;
-   return false;
+  return active_count_; 
 }
 
 void
 }
 
 void
@@ -216,6 +218,7 @@ Simple_spacer::add_columns (Link_array<Grob> cols)
       
       desc.block_force_f_ = - desc.hooke_f_ * desc.ideal_f_; // block at distance 0
       springs_.push (desc);
       
       desc.block_force_f_ = - desc.hooke_f_ * desc.ideal_f_; // block at distance 0
       springs_.push (desc);
+      active_count_ ++;
     }
   
   for (int i=0; i < cols.size () - 1; i++)
     }
   
   for (int i=0; i < cols.size () - 1; i++)
@@ -255,10 +258,35 @@ Simple_spacer::solve (Column_x_positions *positions) const
   positions->loose_cols_ = loose_cols_;
   
   positions->satisfies_constraints_b_ = (line_len_f_ < 0) || active_b ();
   positions->loose_cols_ = loose_cols_;
   
   positions->satisfies_constraints_b_ = (line_len_f_ < 0) || active_b ();
+
+
+  /*
+    Check if breaking constraints are met.
+   */
+  bool break_satisfy = true;
+  int sz =  positions->cols_.size ();
+  for (int i = sz; i--; )
+    {
+      SCM p = positions->cols_[i]->get_grob_property( "penalty");
+      if (gh_number_p (p))
+       {
+         if (gh_scm2double (p) < -9999)
+           break_satisfy = break_satisfy && (i == 0 || i == sz -1);
+         if (gh_scm2double (p) > 9999)
+           break_satisfy = break_satisfy && !(i == 0 || i == sz -1);
+       }
+      
+    }
+
+  positions->satisfies_constraints_b_ =
+    positions->satisfies_constraints_b_ && break_satisfy;
 }
 
 
 
 }
 
 
 
+
+
+
 Spring_description::Spring_description ()
 {
   ideal_f_ =0.0;
 Spring_description::Spring_description ()
 {
   ideal_f_ =0.0;
index 90949fc766f0274c72ecf5345fc1abab6fc402d3..8502c7581c558ccf8c1ffa2e97900cacb980135c 100644 (file)
@@ -586,15 +586,18 @@ Stem::brew_molecule (SCM smob)
   Real y1 = Staff_symbol_referencer::position_f (first_head (me));
   Real y2 = stem_end_position (me);
   
   Real y1 = Staff_symbol_referencer::position_f (first_head (me));
   Real y2 = stem_end_position (me);
   
-  Interval stem_y (y1,y2);
-  stem_y.unite (Interval (y2,y1));
+  Interval stem_y (y1 <? y2,y2 >? y1);
+
 
   // dy?
 
   // dy?
-  Real dy = Staff_symbol_referencer::staff_space (me)/2.0;
+  Real dy = Staff_symbol_referencer::staff_space (me) * 0.5;
     
   if (Grob *hed = support_head (me))
     {
     
   if (Grob *hed = support_head (me))
     {
-      Interval head_height = hed->extent (hed,Y_AXIS);
+      /*
+       must not take ledgers into account.
+       */
+      Interval head_height = Note_head::head_extent (hed,Y_AXIS);
       Real y_attach = Note_head::stem_attachment_coordinate ( hed, Y_AXIS);
 
       y_attach = head_height.linear_combination (y_attach);
       Real y_attach = Note_head::stem_attachment_coordinate ( hed, Y_AXIS);
 
       y_attach = head_height.linear_combination (y_attach);
index 9c8ffb0d3a5b4954e4f2ea11da2a3f0e75dd3fee..6d90f320be6655b6d14a033227ec542300c0c8ec 100644 (file)
@@ -12,7 +12,6 @@
 #include "translator-group.hh"
 #include "warn.hh"
 #include "music-output-def.hh"
 #include "translator-group.hh"
 #include "warn.hh"
 #include "music-output-def.hh"
-
 #include "ly-smobs.icc"
 
 int
 #include "ly-smobs.icc"
 
 int
@@ -41,17 +40,6 @@ Translator_def::mark_smob (SCM smob)
   return me->type_name_;
 }
 
   return me->type_name_;
 }
 
-SCM push_sym;
-SCM assign_sym;
-
-static void
-foo_init ()
-{
-  push_sym = scm_permanent_object (ly_symbol2scm ("push"));
-  assign_sym = scm_permanent_object (ly_symbol2scm ("assign"));
-}
-
-ADD_SCM_INIT_FUNC (transdef, foo_init);
 
 Translator_def::Translator_def ()
 {
 
 Translator_def::Translator_def ()
 {
@@ -138,14 +126,14 @@ Translator_def::add_last_element (SCM s)
 void
 Translator_def::add_push_property (SCM props, SCM syms,  SCM vals)
 {
 void
 Translator_def::add_push_property (SCM props, SCM syms,  SCM vals)
 {
-  this->property_ops_ = gh_cons (scm_list_n (push_sym, props, syms, vals, SCM_UNDEFINED),
+  this->property_ops_ = gh_cons (scm_list_n (ly_symbol2scm ("push"), props, syms, vals, SCM_UNDEFINED),
                                 this->property_ops_);
 }
 
 void
 Translator_def::add_pop_property (SCM props, SCM syms)
 {
                                 this->property_ops_);
 }
 
 void
 Translator_def::add_pop_property (SCM props, SCM syms)
 {
-  this->property_ops_ = gh_cons (scm_list_n (push_sym, props, syms, SCM_UNDEFINED),
+  this->property_ops_ = gh_cons (scm_list_n (ly_symbol2scm ("push"), props, syms, SCM_UNDEFINED),
                                 this->property_ops_);
 }
 
                                 this->property_ops_);
 }
 
@@ -248,6 +236,10 @@ Translator_def::instantiate (Music_output_def* md)
   tg->output_def_l_ = md;
   tg->definition_ = self_scm ();
   tg->type_str_ = ly_scm2string (type_name_);
   tg->output_def_l_ = md;
   tg->definition_ = self_scm ();
   tg->type_str_ = ly_scm2string (type_name_);
+
+  /*
+    TODO: ugh. we're reversing CONSISTS_NAME_LIST_ here
+   */
   SCM l1 = trans_list (consists_name_list_, tg);
   SCM l2 =trans_list (end_consists_name_list_,tg);
   l1 = scm_reverse_x (l1, l2);
   SCM l1 = trans_list (consists_name_list_, tg);
   SCM l2 =trans_list (end_consists_name_list_,tg);
   l1 = scm_reverse_x (l1, l2);
@@ -268,14 +260,14 @@ Translator_def::apply_property_operations (Translator_group*tg)
       SCM type = ly_car (entry);
       entry = ly_cdr (entry); 
       
       SCM type = ly_car (entry);
       entry = ly_cdr (entry); 
       
-      if (type == push_sym)
+      if (type == ly_symbol2scm ("push"))
        {
          SCM val = ly_cddr (entry);
          val = gh_pair_p (val) ? ly_car (val) : SCM_UNDEFINED;
 
          apply_pushpop_property (tg, ly_car (entry), ly_cadr (entry), val);
        }
        {
          SCM val = ly_cddr (entry);
          val = gh_pair_p (val) ? ly_car (val) : SCM_UNDEFINED;
 
          apply_pushpop_property (tg, ly_car (entry), ly_cadr (entry), val);
        }
-      else if (type == assign_sym)
+      else if (type == ly_symbol2scm ("assign"))
        {
          tg->internal_set_property (ly_car (entry), ly_cadr (entry));
        }
        {
          tg->internal_set_property (ly_car (entry), ly_cadr (entry));
        }
@@ -299,7 +291,7 @@ Translator_def::make_scm ()
 void
 Translator_def::add_property_assign (SCM nm, SCM val)
 {
 void
 Translator_def::add_property_assign (SCM nm, SCM val)
 {
-  this->property_ops_ = gh_cons (scm_list_n (assign_sym, scm_string_to_symbol (nm), val, SCM_UNDEFINED),
+  this->property_ops_ = gh_cons (scm_list_n (ly_symbol2scm ("assign"), scm_string_to_symbol (nm), val, SCM_UNDEFINED),
                                 this->property_ops_);
 }
 
                                 this->property_ops_);
 }
 
index 8ed003ee386bab90b64eeccab8832955b3f4105c..1df040265a1d63f58987dd0257d680542ede4f69 100644 (file)
@@ -141,9 +141,9 @@ VoiceContext = \translator {
  Must come before text_engraver, but after note_column engraver.
 
 %}
  Must come before text_engraver, but after note_column engraver.
 
 %}
+       \consists "Text_engraver"
        \consists "Dynamic_engraver"
        \consists "Fingering_engraver"
        \consists "Dynamic_engraver"
        \consists "Fingering_engraver"
-%      \consists "Text_engraver"
 
        \consists "Script_engraver"
        \consists "Script_column_engraver"
 
        \consists "Script_engraver"
        \consists "Script_column_engraver"
@@ -382,10 +382,6 @@ ScoreContext = \translator {
        tupletNumberFormatFunction = #denominator-tuplet-formatter
        
        subdivideBeams = ##f
        tupletNumberFormatFunction = #denominator-tuplet-formatter
        
        subdivideBeams = ##f
-       extraNatural = ##t
-       autoAccidentals = #'(same-octave)
-       autoCautionaries = #'()  
-
 
        keyAccidentalOrder = #'(
          (6 . -1) (2  . -1) (5 . -1 ) (1  . -1) (4  . -1) (0  . -1) (3  . -1)
 
        keyAccidentalOrder = #'(
          (6 . -1) (2  . -1) (5 . -1 ) (1  . -1) (4  . -1) (0  . -1) (3  . -1)
index 8fff8e7d9239613e08dd352f6b55890f86b4d9fb..1d26dc2a03b0107a4d5cbd102b6613c9e9a974f3 100644 (file)
@@ -160,38 +160,6 @@ fatText = \property Voice.textNonEmpty = ##t
 showStaffSwitch = \property PianoStaff.followVoice = ##t
 hideStaffSwitch = \property PianoStaff.followVoice = ##f
 
 showStaffSwitch = \property PianoStaff.followVoice = ##t
 hideStaffSwitch = \property PianoStaff.followVoice = ##f
 
-% FIXME: Move this docu (to where?)
-
-% accidentals as they were common in the 18th century.
-defaultAccidentals = {
-  \property Score.extraNatural = ##t
-  \property Score.autoAccidentals = #'(same-octave)
-  \property Score.autoCautionaries = #'()  
-}
-
-% accidentals as suggested by Kurt Stone, Music Notation in the 20th century.
-modernAccidentals = {
-  \property Score.extraNatural = ##f
-  \property Score.oneMeasureLazy = ##t
-  \property Score.autoAccidentals = #'(same-octave any-octave lazy-any-octave)
-  \property Score.autoCautionaries = #'()  
-}
-
-% the accidentals that Stone adds to the old standard as cautionaries
-modernCautionaries = {
-  \property Score.extraNatural = ##f
-  \property Score.oneMeasureLazy = ##t
-  \property Score.autoAccidentals = #'(same-octave)
-  \property Score.autoCautionaries = #'(any-octave lazy-any-octave)  
-}
-
-% accidentals not being reset at the bar-lines
-noResetKey = {
-  \property Score.oneMeasureLazy = ##f
-  \property Score.autoAccidentals = #'(lazy-same-octave)
-  \property Score.autoCautionaries = #'()
-}
-
 
 % To remove a Volta bracet or some other graphical object,
 % set it to turnOff. Example: \property Staff.VoltaBracket = \turnOff
 
 % To remove a Volta bracet or some other graphical object,
 % set it to turnOff. Example: \property Staff.VoltaBracket = \turnOff
index 5cf9f286fa8b64ad065df560ef167a500fe5a04e..28cc1a6459b7c53d6bd0f7de922d3e5052e56557 100644 (file)
@@ -1,15 +1,15 @@
 Begin3
 Title: LilyPond
 Begin3
 Title: LilyPond
-Version: 1.5.24
-Entered-date: 01DEC01
+Version: 1.5.25
+Entered-date: 05DEC01
 Description: @BLURB@
 Keywords: music notation typesetting midi fonts engraving
 Author: hanwen@cs.uu.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
 Description: @BLURB@
 Keywords: music notation typesetting midi fonts engraving
 Author: hanwen@cs.uu.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
-       1000k lilypond-1.5.24.tar.gz 
+       1000k lilypond-1.5.25.tar.gz 
 Original-site: ftp.cs.uu.nl /pub/GNU/LilyPond/development/
 Original-site: ftp.cs.uu.nl /pub/GNU/LilyPond/development/
-       1000k lilypond-1.5.24.tar.gz 
+       1000k lilypond-1.5.25.tar.gz 
 Copying-policy: GPL
 End
 Copying-policy: GPL
 End
index 6053f4d2c2033fc2b62a97c6983a48002044c784..7027054c8ccbafbc1102a463a58bef5af13e8528 100644 (file)
@@ -1,5 +1,5 @@
 %define name lilypond
 %define name lilypond
-%define version 1.5.24
+%define version 1.5.25
 %define release 1mdk
 
 Name: %{name}
 %define release 1mdk
 
 Name: %{name}
index 07da5dde40bfb37c925f881268e1f11a6a5d639f..c31da8a65ba67866b4d1dd3cc03c3e2f29721af5 100644 (file)
@@ -1,11 +1,11 @@
 %define info yes
 
 Name: lilypond
 %define info yes
 
 Name: lilypond
-Version: 1.5.24
+Version: 1.5.25
 Release: 1
 License: GPL
 Group: Applications/Publishing
 Release: 1
 License: GPL
 Group: Applications/Publishing
-Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.5.24.tar.gz
+Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.5.25.tar.gz
 Summary: Create and print music notation 
 URL: http://www.lilypond.org/
 BuildRoot: /tmp/lilypond-install
 Summary: Create and print music notation 
 URL: http://www.lilypond.org/
 BuildRoot: /tmp/lilypond-install
index 5bf5530c94dab94873867bea55b09bb5e68cba20..3a460b67b363005a804bd999aad9f7ba6c9368df 100644 (file)
 
 Distribution: SuSE Linux 7.0 (i386)
 Name: lilypond
 
 Distribution: SuSE Linux 7.0 (i386)
 Name: lilypond
-Version: 1.5.24
+Version: 1.5.25
 Release: 2
 Copyright:    GPL
 Group: Applications/Publishing
 Release: 2
 Copyright:    GPL
 Group: Applications/Publishing
-Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.5.24.tar.gz
+Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.5.25.tar.gz
 # music notation software for.. ?
 Summary: A program for printing sheet music.
 URL: http://www.lilypond.org/
 # music notation software for.. ?
 Summary: A program for printing sheet music.
 URL: http://www.lilypond.org/
index d16013e6c31e21790cfd563a8fd13df89d1f8b52..0df5480c15c2bb0bbce27f0810e8ec268f4230df 100644 (file)
@@ -258,6 +258,11 @@ more than this (in staffspace).")
 (grob-property-description 'padding number? "add this much extra space between objects that are next to each other.")
 (grob-property-description 'parallel-beam boolean? "internal: true if there is a beam just as wide as the bracket .")
 (grob-property-description 'paren-cautionaries boolean? "Whether to add parenthesis around cautionary accidentals.")
 (grob-property-description 'padding number? "add this much extra space between objects that are next to each other.")
 (grob-property-description 'parallel-beam boolean? "internal: true if there is a beam just as wide as the bracket .")
 (grob-property-description 'paren-cautionaries boolean? "Whether to add parenthesis around cautionary accidentals.")
+(grob-property-description 'penalty number? "Penalty for breaking at
+this column. 10000 or more means forbid linebreak, -10000 or less
+means force linebreak.  Other values influence linebreaking decisions
+as a real penalty.")
+
 (grob-property-description 'pitches list? "list of musical-pitch.")
 (grob-property-description 'porrectus-width number? "width of the porrectus ligature measured in staff space.")
 (grob-property-description 'raise number? "height for text to be raised (a negative value lowers the text.")
 (grob-property-description 'pitches list? "list of musical-pitch.")
 (grob-property-description 'porrectus-width number? "width of the porrectus ligature measured in staff space.")
 (grob-property-description 'raise number? "height for text to be raised (a negative value lowers the text.")
index 9050f64050b67f0a4413848c98fcaef45dd52bb8..1e2fda7b37705f4daabc44b4cdc3e8a08bfe1793 100644 (file)
@@ -594,7 +594,7 @@ contains-grace extra-space stretch-distance ))
    'spaceable-element-interface
    "An grob (generally a Paper_column) that takes part in the
 spacing problem. "
    'spaceable-element-interface
    "An grob (generally a Paper_column) that takes part in the
 spacing problem. "
-   '(
+   '(penalty 
      minimum-distances 
      ideal-distances  
      dir-list 
      minimum-distances 
      ideal-distances  
      dir-list 
index 6d2257b7e6c837362b14d0a171d3da7c00e6ceee..98127c076f23fb94654ba1c020141a108ee1b462 100644 (file)
@@ -14,6 +14,8 @@ This function replaces all repeats  with unfold repeats. It was
 written by Rune Zedeler. "
   (let* ((es (ly-get-mus-property music 'elements))
          (e (ly-get-mus-property music 'element))
 written by Rune Zedeler. "
   (let* ((es (ly-get-mus-property music 'elements))
          (e (ly-get-mus-property music 'element))
+         (body (ly-get-mus-property music 'body))
+         (alts (ly-get-mus-property music 'alternatives))
          (n  (ly-music-name music)))
 
     (if (equal? n "Repeated_music")
          (n  (ly-music-name music)))
 
     (if (equal? n "Repeated_music")
@@ -28,6 +30,16 @@ written by Rune Zedeler. "
          music 'elements
          (map unfold-repeats es)))
 
          music 'elements
          (map unfold-repeats es)))
 
+    (if (music? alts)
+        (ly-set-mus-property
+         music 'alternatives
+         (unfold-repeats alts)))
+
+    (if (music? body)
+        (ly-set-mus-property
+         music 'body
+         (unfold-repeats body)))
+
     (if (music? e)
         (ly-set-mus-property
          music 'element
     (if (music? e)
         (ly-set-mus-property
          music 'element
index 452154b0941a03d1a8d132672b75db593ba8d381..7400a25972196aa9acafe40e9eec27de260ba17e 100644 (file)
@@ -78,40 +78,21 @@ The head of the list:
 
 @end example")
 
 
 @end example")
 
-(translator-property-description 'autoAccidentals list? "List of
-different ways to typeset an accidental. All algorithms in the list
-are tried, and the one returning the most accidentals is used.
-The algorithms are:
-@table @samp
-@item same-octave: This is the default algorithm. Accidentals are
-typeset if the note changes the accidental of that note in that octave.
-@item any-octave: Accidentals are typeset if the note is different from 
-the previous note on the same pitch in any octave.
-@item lazy-same-octave: Shows accidentals as if the key signature does
-not get reset at every barline. This means that an alteration lasts until it is
-changed - perhaps many measures later. See oneMeasureLazy, though.
-@item lazy-any-octave: Yeah, you probably guessed that one.
-@end table
-")
-
-(translator-property-description 'autoCautionaries list? "List similar to
-autoAccidentals, but it controls cautionary accidentals rather than
-normal ones. Both lists are tried, and the one giving the most accidentals
-wins. In case of draw, a normal accidental is typeset.
-")
-
 (translator-property-description 'automaticPhrasing boolean? " If set,
 the @ref{Lyric_phrasing_engraver} will match note heads of context
 called Voice X to syllables from LyricsVoice called
 X-<something>. This feature is turned on by default. See the example
 file @file{lyrics-multi-stanza.ly}.
 (translator-property-description 'automaticPhrasing boolean? " If set,
 the @ref{Lyric_phrasing_engraver} will match note heads of context
 called Voice X to syllables from LyricsVoice called
 X-<something>. This feature is turned on by default. See the example
 file @file{lyrics-multi-stanza.ly}.
-")
 
 
+")
 (translator-property-description 'automaticMelismata boolean? " If
 set, \addlyrics will assume that beams, slurs and ties signal
 melismata, and align lyrics accordingly.
 ")
 
 (translator-property-description 'automaticMelismata boolean? " If
 set, \addlyrics will assume that beams, slurs and ties signal
 melismata, and align lyrics accordingly.
 ")
 
+(translator-property-description 'autoReminders symbol? "If set to @samp{accidental} or @samp{cautionary},
+a (reminder) accidental automatically is inserted whenever an accidental is reverted - even after a bar.")
+
 (translator-property-description 'barAlways boolean? " If set to true a bar line is drawn after each note.
 ")
 (translator-property-description 'barCheckNoSynchronize boolean? "If set, don't reset measurePosition when finding a bbarcheck. This
 (translator-property-description 'barAlways boolean? " If set to true a bar line is drawn after each note.
 ")
 (translator-property-description 'barCheckNoSynchronize boolean? "If set, don't reset measurePosition when finding a bbarcheck. This
@@ -197,10 +178,7 @@ procedure? "visibility-lambda function for explicit Key changes;
 \override of #'visibility-lambda will set the visibility for normal
 (ie. at the start of the line) key signatures.")
 
 \override of #'visibility-lambda will set the visibility for normal
 (ie. at the start of the line) key signatures.")
 
-(translator-property-description 'extraNatural boolean? "Whether to typeset an
-extra natural sign before accidentals changing from a non-natural to 
-another non-natural.
-")
+
 (translator-property-description 'followVoice boolean?
                                 "if set, note heads are tracked  across staff switches by a thin line")
 (translator-property-description 'fontSize integer?
 (translator-property-description 'followVoice boolean?
                                 "if set, note heads are tracked  across staff switches by a thin line")
 (translator-property-description 'fontSize integer?
@@ -238,11 +216,8 @@ The format is (NAME . ALTER), where NAME is from 0 .. 6 and ALTER from  -1, 1.
 (translator-property-description 'lastKeySignature list? "Last key
 signature before a key signature change.")
 
 (translator-property-description 'lastKeySignature list? "Last key
 signature before a key signature change.")
 
-(translator-property-description 'lazyKeySignature list? "a lazy version of
-localKeySignature, only being reset according to oneMeasureLazy."
-) 
 (translator-property-description 'localKeySignature list? "the key
 (translator-property-description 'localKeySignature list? "the key
-signature at this point in the measure.  The format is the same as for keySignature. Is reset at every bar line."
+signature at this point in the measure.  The format is the same as for keySignature. "
 ) 
 
 (translator-property-description 'measureLength moment? "Length of one
 ) 
 
 (translator-property-description 'measureLength moment? "Length of one
@@ -261,13 +236,15 @@ MIDI instrument to use ")
 (translator-property-description 'noAutoBeaming boolean? "If set to true then beams are not generated automatically.
 ")
 (translator-property-description 'noDirection boolean? "Don't set directions by a2-engraver when part-combining.")
 (translator-property-description 'noAutoBeaming boolean? "If set to true then beams are not generated automatically.
 ")
 (translator-property-description 'noDirection boolean? "Don't set directions by a2-engraver when part-combining.")
-(translator-property-description 'oneBeat moment? "  How long does one beat in the current time signature last?")
-(translator-property-description 'oneMeasureLazy boolean? "If false, the lazy
-time-signature is never reset, causing lazy accidentals (see
-autoAccidentals) to last until the next key change. If true, the lazy
-key signature only last one measure longer than the normal one - accidentals
-being reset at the end of the measure after the one in which they occur.
+(translator-property-description 'noResetKey boolean? "Do not
+reset local key to the value of keySignature at the start of a measure,
+as determined by measurePosition.
+
+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.
 ")
 ")
+(translator-property-description 'oneBeat moment? "  How long does one beat in the current time signature last?")
 (translator-property-description 'pedalSustainStrings list? "List of   string to print for sustain-pedal. Format is
  (UP UPDOWN DOWN), where each of the three is the string to print when
 this is done with the pedal.")
 (translator-property-description 'pedalSustainStrings list? "List of   string to print for sustain-pedal. Format is
  (UP UPDOWN DOWN), where each of the three is the string to print when
 this is done with the pedal.")
@@ -324,7 +301,7 @@ help with debugging large scores.")
 (translator-property-description 'squashedPosition integer? " Vertical position of
 squashing for Pitch_squash_engraver.")
 (translator-property-description 'stavesFound list? "list of all staff-symbols found.")
 (translator-property-description 'squashedPosition integer? " Vertical position of
 squashing for Pitch_squash_engraver.")
 (translator-property-description 'stavesFound list? "list of all staff-symbols found.")
-(translator-property-description 'stanza string? "Stanza `number' to print at start of a verse. Use in LyricsVoice context.")
+(translator-property-description 'stanza markup? "Stanza `number' to print at start of a verse. Use in LyricsVoice context.")
 
 
 (translator-property-description 'stemLeftBeamCount integer? "
 
 
 (translator-property-description 'stemLeftBeamCount integer? "
@@ -333,7 +310,7 @@ Overrides automatic beaming.  The value is only used once, and then it
 is erased.
 .")
 (translator-property-description 'stemRightBeamCount integer? "idem, for the right side.")
 is erased.
 .")
 (translator-property-description 'stemRightBeamCount integer? "idem, for the right side.")
-(translator-property-description 'stz string? "Abbreviated form for a stanza, see also Stanza property.")
+(translator-property-description 'stz markup? "Abbreviated form for a stanza, see also Stanza property.")
 (translator-property-description 'subdivideBeams boolean? "If set, multiple beams will be subdivided at beat
 positions - by only drawing one beam over the beat.")
 (translator-property-description 'textNonEmpty boolean? " If set
 (translator-property-description 'subdivideBeams boolean? "If set, multiple beams will be subdivided at beat
 positions - by only drawing one beam over the beat.")
 (translator-property-description 'textNonEmpty boolean? " If set
index 1857dcef5dbf7700bd8d9b19e29a22e8090b1d20..2a93542dd03281aa09adc8b412a66823149829d5 100644 (file)
@@ -1,4 +1,5 @@
 #!@PYTHON@
 #!@PYTHON@
+
 # Run lilypond, latex, dvips.
 #
 # This is the third incarnation of ly2dvi.
 # Run lilypond, latex, dvips.
 #
 # This is the third incarnation of ly2dvi.
@@ -14,7 +15,7 @@
 # TODO: should allow to switch off pk cache.
 #
 
 # TODO: should allow to switch off pk cache.
 #
 
-
+#
 # Note: gettext work best if we use ' for docstrings and "
 #       for gettextable strings.
 #       --> DO NOT USE """ for docstrings.
 # Note: gettext work best if we use ' for docstrings and "
 #       for gettextable strings.
 #       --> DO NOT USE """ for docstrings.
index 44535e503afa5a6e265c279d3788703c6ae7aa18..ed02750ebfdc1bf60dab78a07b182bb4680b5d65 100644 (file)
@@ -211,6 +211,12 @@ class Clef:
        def dump(self):
                return '\\clef %s' % self.type
 
        def dump(self):
                return '\\clef %s' % self.type
 
+class Key:
+       def __init__ (self, key):
+               self.type = key
+       def dump(self):
+               return '\\key %s' % self.type
+
 clef_table = {
        'b':'bass'  ,
        'r':'baritone',
 clef_table = {
        'b':'bass'  ,
        'r':'baritone',
@@ -220,7 +226,22 @@ clef_table = {
        's':'soprano',
        't':'treble',
        'f':'frenchviolin',
        's':'soprano',
        't':'treble',
        'f':'frenchviolin',
-       } 
+       }
+key_table = {
+       '+0':'c \major',
+       '+1':'g \major',
+       '+2':'d \major',
+       '+3':'a \major',
+       '+4':'e \major',
+       '+5':'b \major',
+       '+6':'fis \major',
+       '-1':'f \major',
+       '-2':'bes \major',
+       '-3':'ees \major',
+       '-4':'aes \major',
+       '-5':'des \major',
+       '-6':'ges \major'
+       }
 class Staff:
        def __init__ (self): 
                self.voices = (Voice (), Voice())
 class Staff:
        def __init__ (self): 
                self.voices = (Voice (), Voice())
@@ -228,6 +249,7 @@ class Staff:
                self.instrument = 0
                self.voice_idx = 0
                self.number = None
                self.instrument = 0
                self.voice_idx = 0
                self.number = None
+               self.key = 0
                
                i = 0
                for v  in self.voices:
                
                i = 0
                for v  in self.voices:
@@ -237,7 +259,8 @@ class Staff:
        def set_clef (self, letter):
                clstr = clef_table[letter]
                self.voices[0].add_nonchord (Clef (clstr))
        def set_clef (self, letter):
                clstr = clef_table[letter]
                self.voices[0].add_nonchord (Clef (clstr))
-               
+
+       
        def current_voice (self):
                return self.voices[self.voice_idx]
        def next_voice (self):
        def current_voice (self):
                return self.voices[self.voice_idx]
        def next_voice (self):
@@ -531,47 +554,62 @@ Huh? expected duration, found %d Left was `%s'""" % (durdigit, str[:20]))
                        str = str[1:]
                                        
                return str
                        str = str[1:]
                                        
                return str
-       
+
+       def parse_key (self, str):
+               key = ""
+               #The key is changed by a string of the form K[+-]<num>[+-]<num>
+               #where the first number is the transposition and the second number is the
+               #new key signature.  For now, we won't bother with the transposition.
+               if str[2] != '0':
+                       sys.stderr.write("Transposition not implemented yet: ")
+                       while str[0] in '+-0123456789':
+                               str = str[1:]
+               else:
+                       str=str[3:]
+                       key = ''
+                       while str[0] in '+-0123456789':
+                               key=key + str[0]
+                               str=str[1:]
+                       keystr = key_table[key]
+                       self.current_voice().add_nonchord (Key(keystr))
+               return(str)
+
 
        def parse_header  (self, ls):
 
        def parse_header  (self, ls):
-               while ls[0][0] == '%':
-                       ls = ls[1:]
+               def atonum(a):
+                       if re.search('\\.', a):
+                               return string.atof (a)
+                       else:
+                               return string.atoi (a)
 
 
-               opening = ls[0]
-               ls = ls[1:]
-               
-               opening = re.sub ('^[ \t]+', '', opening)
-               opening = re.sub ('[ \t]+$', '', opening)               
-               opening = re.split ('[\t ]+', opening)
-
-               (no_staffs, no_instruments, timesig_num,timesig_den, ptimesig_num,
-                ptimesig_den, pickup_beats,keysig_number) = opening
-               (no_staffs, no_instruments, timesig_num, timesig_den, ptimesig_num, ptimesig_den, keysig_number) = tuple (map (string.atoi , [no_staffs, no_instruments, timesig_num, timesig_den, ptimesig_num, ptimesig_den, keysig_number]))
-               try: 
-                       pickup_beats = string.atoi (pickup_beats)
-               except ValueError:
-                       pickup_beats = string.atof (pickup_beats)
-               
+               number_count = 12
+               numbers = []
 
 
-               while ls[0][0] == '%':
+               while len (numbers) < number_count:
+                       opening = ls[0]
                        ls = ls[1:]
                        ls = ls[1:]
-                       
-               opening = ls[0]
-               ls = ls[1:]
+
+                       opening = re.sub ('[ \t\n]+', ' ', opening)
+                       opening = re.sub ('^ ', '', opening)
+                       opening = re.sub (' $', '', opening)                                            
+                       if opening == '':
+                               continue
+                       opening = string.split (opening, ' ')
+
+                       numbers = numbers + map (atonum, opening)
+
+               (no_staffs, no_instruments, timesig_num, timesig_den, ptimesig_num,
+                ptimesig_den, pickup_beats,keysig_number) = tuple (numbers[0:8])
+               (no_pages,no_systems, musicsize, fracindent) = tuple (numbers[8:])
 
                # ignore this.
                # opening = map (string.atoi, re.split ('[\t ]+', opening))
 
                # ignore this.
                # opening = map (string.atoi, re.split ('[\t ]+', opening))
-               # (no_pages,no_systems, musicsize, fracindent) = tuple (opening)
-
+               
                instruments = []
                while len (instruments) < no_instruments:
                        instruments.append (ls[0])
                        ls = ls[1:]
 
                instruments = []
                while len (instruments) < no_instruments:
                        instruments.append (ls[0])
                        ls = ls[1:]
 
-
-               while ls[0][0] == '%':
-                       ls = ls[1:]
-
                l = ls[0]
                ls = ls[1:]
 
                l = ls[0]
                ls = ls[1:]
 
@@ -582,9 +620,6 @@ Huh? expected duration, found %d Left was `%s'""" % (durdigit, str[:20]))
                        l = l[1:]
 
                # dump path 
                        l = l[1:]
 
                # dump path 
-               while ls[0][0] == '%':
-                       ls = ls[1:]
-
                ls = ls[1:] 
 
                # dump more ?
                ls = ls[1:] 
 
                # dump more ?
@@ -691,6 +726,11 @@ Huh? expected duration, found %d Left was `%s'""" % (durdigit, str[:20]))
                                left = self.parse_ornament (left)
                        elif c == 'x':
                                left = self.parsex (left)
                                left = self.parse_ornament (left)
                        elif c == 'x':
                                left = self.parsex (left)
+                       elif c == 'C':
+                               self.current_staff().set_clef(str(left[1]))
+                               left = left[2:]
+                       elif c == 'K':
+                               left = self.parse_key (left)
                        elif c in "[]":
                                left = self.parse_beams (left)
                        elif left[:2] == "//":
                        elif c in "[]":
                                left = self.parse_beams (left)
                        elif left[:2] == "//":
@@ -722,6 +762,9 @@ Huh? Unknown directive `%s', before `%s'""" % (c, left[:20] ))
 
        def parse (self,fn):
                ls = open (fn).readlines ()
 
        def parse (self,fn):
                ls = open (fn).readlines ()
+               def subst(s):
+                       return re.sub ('%.*$', '', s)
+               ls = map (subst, ls)
                ls = self.parse_header (ls)
                left = string.join (ls, ' ')
 
                ls = self.parse_header (ls)
                left = string.join (ls, ' ')
 
diff --git a/tex/feta11.tex b/tex/feta11.tex
new file mode 100644 (file)
index 0000000..106744d
--- /dev/null
@@ -0,0 +1,250 @@
+\def\fetawholerest{\char0}
+\def\fetahalfrest{\char1}
+\def\fetaoutsidewholerest{\char2}
+\def\fetaoutsidehalfrest{\char3}
+\def\fetabreverest{\char4}
+\def\fetalongarest{\char5}
+\def\fetamultirest{\char6}
+\def\fetaquartrest{\char7}
+\def\fetaeighthrest{\char8}
+\def\fetasixteenthrest{\char9}
+\def\fetathirtysecondrest{\char10}
+\def\fetasixtyfourthrest{\char11}
+\def\fetahundredtwentyeighthrest{\char12}
+\def\fetaneomenslongarest{\char13}
+\def\fetaneomensbreverest{\char14}
+\def\fetaneomenssemibrevisrest{\char15}
+\def\fetaneomensminimahalfrest{\char16}
+\def\fetaneomenssemiminimarest{\char17}
+\def\fetaneomensfusarest{\char18}
+\def\fetaneomenssemifusarest{\char19}
+\def\fetamenslongarest{\char20}
+\def\fetamensbreverest{\char21}
+\def\fetamenssemibrevisrest{\char22}
+\def\fetamensminimahalfrest{\char23}
+\def\fetamenssemiminimarest{\char24}
+\def\fetamensfusarest{\char25}
+\def\fetamenssemifusarest{\char26}
+\def\fetasharp{\char27}
+\def\fetanatural{\char28}
+\def\fetaflat{\char29}
+\def\fetaflatflat{\char30}
+\def\fetasharpsharp{\char31}
+\def\fetarightparen{\char32}
+\def\fetaleftparen{\char33}
+\def\fetamedicaeaflat{\char34}
+\def\fetavaticanaflat{\char35}
+\def\fetavaticananatural{\char36}
+\def\fetamensuralsharp{\char37}
+\def\fetamensuralflat{\char38}
+\def\fetahufnagelflat{\char39}
+\def\fetadot{\char40}
+\def\fetamensuralmaximahead{\char41}
+\def\fetamensurallongahead{\char42}
+\def\fetamensuralbrevishead{\char43}
+\def\fetaneomensuralminimhead{\char44}
+\def\fetaneomensuralsemiminimhead{\char45}
+\def\fetaneofusahead{\char46}
+\def\fetamensuralminimhead{\char47}
+\def\fetamensuralsemiminimhead{\char48}
+\def\fetafusahead{\char49}
+\def\fetaledgerending{\char50}
+\def\fetabrevishead{\char51}
+\def\fetawholehead{\char52}
+\def\fetahalfhead{\char53}
+\def\fetaquarthead{\char54}
+\def\fetawholediamondhead{\char55}
+\def\fetahalfdiamondhead{\char56}
+\def\fetadiamondhead{\char57}
+\def\fetawholetrianglehead{\char58}
+\def\fetahalftrianglehead{\char59}
+\def\fetatrianglehead{\char60}
+\def\fetawholeslashhead{\char61}
+\def\fetahalfslashhead{\char62}
+\def\fetaquartslashhead{\char63}
+\def\fetawholecrossedhead{\char64}
+\def\fetahalfcrossedhead{\char65}
+\def\fetacrossedhead{\char66}
+\def\fetaxcircledhead{\char67}
+\def\fetavatsubbipunctumhead{\char68}
+\def\fetavatpunctumhead{\char69}
+\def\fetavatvirgahead{\char70}
+\def\fetavatrvirgahead{\char71}
+\def\fetavatlpeshead{\char72}
+\def\fetavatupeshead{\char73}
+\def\fetavatvupeshead{\char74}
+\def\fetavatplicahead{\char75}
+\def\fetavatepiphonushead{\char76}
+\def\fetavatcephalicushead{\char77}
+\def\fetavatquilismahead{\char78}
+\def\fetamedsubbipunctumhead{\char79}
+\def\fetamedpunctumhead{\char80}
+\def\fetamedrvirgahead{\char81}
+\def\fetamedvirgahead{\char82}
+\def\fetahufpunctumhead{\char83}
+\def\fetahufvirgahead{\char84}
+\def\fetahuflpeshead{\char85}
+\def\fetaufermata{\char86}
+\def\fetadfermata{\char87}
+\def\fetathumb{\char88}
+\def\fetasforzatoaccent{\char89}
+\def\fetastaccato{\char90}
+\def\fetaustaccatissimo{\char91}
+\def\fetadstaccatissimo{\char92}
+\def\fetatenuto{\char93}
+\def\fetauportato{\char94}
+\def\fetadportato{\char95}
+\def\fetaumarcato{\char96}
+\def\fetadmarcato{\char97}
+\def\fetaouvert{\char98}
+\def\fetaplusstop{\char99}
+\def\fetaupbow{\char100}
+\def\fetadownbow{\char101}
+\def\fetareverseturn{\char102}
+\def\fetaturn{\char103}
+\def\fetatrill{\char104}
+\def\fetaupedalheel{\char105}
+\def\fetadpedalheel{\char106}
+\def\fetaupedaltoe{\char107}
+\def\fetadpedaltoe{\char108}
+\def\fetaflageolet{\char109}
+\def\fetasegno{\char110}
+\def\fetacoda{\char111}
+\def\fetarcomma{\char112}
+\def\fetalcomma{\char113}
+\def\fetaarpeggio{\char114}
+\def\fetatrill-element{\char115}
+\def\fetaarpeggioarrowdown{\char116}
+\def\fetaarpeggioarrowup{\char117}
+\def\fetatrilelement{\char118}
+\def\fetaprall{\char119}
+\def\fetamordent{\char120}
+\def\fetaprallprall{\char121}
+\def\fetaprallmordent{\char122}
+\def\fetaupprall{\char123}
+\def\fetadownprall{\char124}
+\def\fetaupmordent{\char125}
+\def\fetadownmordent{\char126}
+\def\fetalineprall{\char127}
+\def\fetapralldown{\char128}
+\def\fetaprallup{\char129}
+\def\fetaeighthflag{\char130}
+\def\fetasixteenthflag{\char131}
+\def\fetathirtysecondflag{\char132}
+\def\fetasixtyfourthflag{\char133}
+\def\fetadeighthflag{\char134}
+\def\fetamenseighthflag{\char135}
+\def\fetamens1eighthflag{\char136}
+\def\fetamensdeighthflag{\char137}
+\def\fetamensd1eighthflag{\char138}
+\def\fetamenssixteenthflag{\char139}
+\def\fetamens1sixteenthflag{\char140}
+\def\fetamensdsixteenthflag{\char141}
+\def\fetamensd1sixteenthflag{\char142}
+\def\fetamensthirtysecondflag{\char143}
+\def\fetamens1thirtysecondflag{\char144}
+\def\fetamensdthirtysecondflag{\char145}
+\def\fetamensd1thirtysecondflag{\char146}
+\def\fetamenssixtyfourthflag{\char147}
+\def\fetamens1sixtyfourthflag{\char148}
+\def\fetamensdsixtyfourthflag{\char149}
+\def\fetamensd1sixtyfourthflag{\char150}
+\def\fetagracedash{\char151}
+\def\fetadsixteenthflag{\char152}
+\def\fetadthirtysecondflag{\char153}
+\def\fetadsixtyfourthflag{\char154}
+\def\fetamenseighthflag{\char155}
+\def\fetamens1eighthflag{\char156}
+\def\fetamensdeighthflag{\char157}
+\def\fetamensd1eighthflag{\char158}
+\def\fetamenssixteenthflag{\char159}
+\def\fetamens1sixteenthflag{\char160}
+\def\fetamensdsixteenthflag{\char161}
+\def\fetamensd1sixteenthflag{\char162}
+\def\fetamensthirtysecondflag{\char163}
+\def\fetamens1thirtysecondflag{\char164}
+\def\fetamensdthirtysecondflag{\char165}
+\def\fetamensd1thirtysecondflag{\char166}
+\def\fetamenssixtyfourthflag{\char167}
+\def\fetamens1sixtyfourthflag{\char168}
+\def\fetamensdsixtyfourthflag{\char169}
+\def\fetamensd1sixtyfourthflag{\char170}
+\def\fetagracedash{\char171}
+\def\fetadgracedash{\char172}
+\def\fetastem{\char173}
+\def\fetadstem{\char174}
+\def\fetaaltoclef{\char175}
+\def\fetacaltoclef{\char176}
+\def\fetabassclef{\char177}
+\def\fetacbassclef{\char178}
+\def\fetatrebleclef{\char179}
+\def\fetactrebleclef{\char180}
+\def\fetavatdoclef{\char181}
+\def\fetavatcdoclef{\char182}
+\def\fetavatfaclef{\char183}
+\def\fetavatcfaclef{\char184}
+\def\fetameddoclef{\char185}
+\def\fetacmeddoclef{\char186}
+\def\fetamedfaclef{\char187}
+\def\fetacmedfaclef{\char188}
+\def\fetaneomenscclef{\char189}
+\def\fetacneomenscclef{\char190}
+\def\fetapetruccicclef{\char191}
+\def\fetacpetruccicclef{\char192}
+\def\fetamenscclef{\char193}
+\def\fetacmenscclef{\char194}
+\def\fetapetruccifclef{\char195}
+\def\fetacpetruccifclef{\char196}
+\def\fetamensfclef{\char197}
+\def\fetacmensfclef{\char198}
+\def\fetamensgclef{\char199}
+\def\fetacmensgclef{\char200}
+\def\fetapetruccigclef{\char201}
+\def\fetacpetruccigclef{\char202}
+\def\fetahufnageldoclef{\char203}
+\def\fetachufnageldoclef{\char204}
+\def\fetahufnagelfaclef{\char205}
+\def\fetachufnagelfaclef{\char206}
+\def\fetahufnageldofaclef{\char207}
+\def\fetachufnageldofaclef{\char208}
+\def\fetapercussionclef{\char209}
+\def\fetacpercussionclef{\char210}
+\def\fetatabclef{\char211}
+\def\fetactabclef{\char212}
+\def\fetafourfourmeter{\char213}
+\def\fetaallabreve{\char214}
+\def\fetaoldfourfourmeter{\char215}
+\def\fetaoldallabreve{\char216}
+\def\fetaoldthreetwometer{\char217}
+\def\fetaoldsixfourmeter{\char218}
+\def\fetaoldninefourmeter{\char219}
+\def\fetaoldthreefourmeter{\char220}
+\def\fetaoldsixeightmeter{\char221}
+\def\fetaoldnineeight{\char222}
+\def\fetaoldfoureightmeter{\char223}
+\def\fetaoldsixeightmeteralt{\char224}
+\def\fetaoldtwofourmeter{\char225}
+\def\fetapedal-asterisk{\char226}
+\def\fetapedal-dash{\char227}
+\def\fetapedal-dot{\char228}
+\def\fetapedal-P{\char229}
+\def\fetapedal-d{\char230}
+\def\fetapedal-e{\char231}
+\def\fetapedal-Ped{\char232}
+\def\fetaaccDiscant{\char233}
+\def\fetaaccDot{\char234}
+\def\fetaaccFreebase{\char235}
+\def\fetaaccStdbase{\char236}
+\def\fetaaccBayanbase{\char237}
+\def\fetaaccSB{\char238}
+\def\fetaaccBB{\char239}
+\def\fetaaccOldEE{\char240}
+\def\fetaaccOldEES{\char241}
+\def\fetahufnagel{\char242}
+\def\fetarhufnagel{\char243}
+\def\fetamedicaea{\char244}
+\def\fetarmedicaea{\char245}
+\def\fetavaticana{\char246}
+\def\fetarvaticana{\char247}
+\def\fetamensural{\char248}
+\def\fetarmensural{\char249}
diff --git a/tex/feta13.tex b/tex/feta13.tex
new file mode 100644 (file)
index 0000000..106744d
--- /dev/null
@@ -0,0 +1,250 @@
+\def\fetawholerest{\char0}
+\def\fetahalfrest{\char1}
+\def\fetaoutsidewholerest{\char2}
+\def\fetaoutsidehalfrest{\char3}
+\def\fetabreverest{\char4}
+\def\fetalongarest{\char5}
+\def\fetamultirest{\char6}
+\def\fetaquartrest{\char7}
+\def\fetaeighthrest{\char8}
+\def\fetasixteenthrest{\char9}
+\def\fetathirtysecondrest{\char10}
+\def\fetasixtyfourthrest{\char11}
+\def\fetahundredtwentyeighthrest{\char12}
+\def\fetaneomenslongarest{\char13}
+\def\fetaneomensbreverest{\char14}
+\def\fetaneomenssemibrevisrest{\char15}
+\def\fetaneomensminimahalfrest{\char16}
+\def\fetaneomenssemiminimarest{\char17}
+\def\fetaneomensfusarest{\char18}
+\def\fetaneomenssemifusarest{\char19}
+\def\fetamenslongarest{\char20}
+\def\fetamensbreverest{\char21}
+\def\fetamenssemibrevisrest{\char22}
+\def\fetamensminimahalfrest{\char23}
+\def\fetamenssemiminimarest{\char24}
+\def\fetamensfusarest{\char25}
+\def\fetamenssemifusarest{\char26}
+\def\fetasharp{\char27}
+\def\fetanatural{\char28}
+\def\fetaflat{\char29}
+\def\fetaflatflat{\char30}
+\def\fetasharpsharp{\char31}
+\def\fetarightparen{\char32}
+\def\fetaleftparen{\char33}
+\def\fetamedicaeaflat{\char34}
+\def\fetavaticanaflat{\char35}
+\def\fetavaticananatural{\char36}
+\def\fetamensuralsharp{\char37}
+\def\fetamensuralflat{\char38}
+\def\fetahufnagelflat{\char39}
+\def\fetadot{\char40}
+\def\fetamensuralmaximahead{\char41}
+\def\fetamensurallongahead{\char42}
+\def\fetamensuralbrevishead{\char43}
+\def\fetaneomensuralminimhead{\char44}
+\def\fetaneomensuralsemiminimhead{\char45}
+\def\fetaneofusahead{\char46}
+\def\fetamensuralminimhead{\char47}
+\def\fetamensuralsemiminimhead{\char48}
+\def\fetafusahead{\char49}
+\def\fetaledgerending{\char50}
+\def\fetabrevishead{\char51}
+\def\fetawholehead{\char52}
+\def\fetahalfhead{\char53}
+\def\fetaquarthead{\char54}
+\def\fetawholediamondhead{\char55}
+\def\fetahalfdiamondhead{\char56}
+\def\fetadiamondhead{\char57}
+\def\fetawholetrianglehead{\char58}
+\def\fetahalftrianglehead{\char59}
+\def\fetatrianglehead{\char60}
+\def\fetawholeslashhead{\char61}
+\def\fetahalfslashhead{\char62}
+\def\fetaquartslashhead{\char63}
+\def\fetawholecrossedhead{\char64}
+\def\fetahalfcrossedhead{\char65}
+\def\fetacrossedhead{\char66}
+\def\fetaxcircledhead{\char67}
+\def\fetavatsubbipunctumhead{\char68}
+\def\fetavatpunctumhead{\char69}
+\def\fetavatvirgahead{\char70}
+\def\fetavatrvirgahead{\char71}
+\def\fetavatlpeshead{\char72}
+\def\fetavatupeshead{\char73}
+\def\fetavatvupeshead{\char74}
+\def\fetavatplicahead{\char75}
+\def\fetavatepiphonushead{\char76}
+\def\fetavatcephalicushead{\char77}
+\def\fetavatquilismahead{\char78}
+\def\fetamedsubbipunctumhead{\char79}
+\def\fetamedpunctumhead{\char80}
+\def\fetamedrvirgahead{\char81}
+\def\fetamedvirgahead{\char82}
+\def\fetahufpunctumhead{\char83}
+\def\fetahufvirgahead{\char84}
+\def\fetahuflpeshead{\char85}
+\def\fetaufermata{\char86}
+\def\fetadfermata{\char87}
+\def\fetathumb{\char88}
+\def\fetasforzatoaccent{\char89}
+\def\fetastaccato{\char90}
+\def\fetaustaccatissimo{\char91}
+\def\fetadstaccatissimo{\char92}
+\def\fetatenuto{\char93}
+\def\fetauportato{\char94}
+\def\fetadportato{\char95}
+\def\fetaumarcato{\char96}
+\def\fetadmarcato{\char97}
+\def\fetaouvert{\char98}
+\def\fetaplusstop{\char99}
+\def\fetaupbow{\char100}
+\def\fetadownbow{\char101}
+\def\fetareverseturn{\char102}
+\def\fetaturn{\char103}
+\def\fetatrill{\char104}
+\def\fetaupedalheel{\char105}
+\def\fetadpedalheel{\char106}
+\def\fetaupedaltoe{\char107}
+\def\fetadpedaltoe{\char108}
+\def\fetaflageolet{\char109}
+\def\fetasegno{\char110}
+\def\fetacoda{\char111}
+\def\fetarcomma{\char112}
+\def\fetalcomma{\char113}
+\def\fetaarpeggio{\char114}
+\def\fetatrill-element{\char115}
+\def\fetaarpeggioarrowdown{\char116}
+\def\fetaarpeggioarrowup{\char117}
+\def\fetatrilelement{\char118}
+\def\fetaprall{\char119}
+\def\fetamordent{\char120}
+\def\fetaprallprall{\char121}
+\def\fetaprallmordent{\char122}
+\def\fetaupprall{\char123}
+\def\fetadownprall{\char124}
+\def\fetaupmordent{\char125}
+\def\fetadownmordent{\char126}
+\def\fetalineprall{\char127}
+\def\fetapralldown{\char128}
+\def\fetaprallup{\char129}
+\def\fetaeighthflag{\char130}
+\def\fetasixteenthflag{\char131}
+\def\fetathirtysecondflag{\char132}
+\def\fetasixtyfourthflag{\char133}
+\def\fetadeighthflag{\char134}
+\def\fetamenseighthflag{\char135}
+\def\fetamens1eighthflag{\char136}
+\def\fetamensdeighthflag{\char137}
+\def\fetamensd1eighthflag{\char138}
+\def\fetamenssixteenthflag{\char139}
+\def\fetamens1sixteenthflag{\char140}
+\def\fetamensdsixteenthflag{\char141}
+\def\fetamensd1sixteenthflag{\char142}
+\def\fetamensthirtysecondflag{\char143}
+\def\fetamens1thirtysecondflag{\char144}
+\def\fetamensdthirtysecondflag{\char145}
+\def\fetamensd1thirtysecondflag{\char146}
+\def\fetamenssixtyfourthflag{\char147}
+\def\fetamens1sixtyfourthflag{\char148}
+\def\fetamensdsixtyfourthflag{\char149}
+\def\fetamensd1sixtyfourthflag{\char150}
+\def\fetagracedash{\char151}
+\def\fetadsixteenthflag{\char152}
+\def\fetadthirtysecondflag{\char153}
+\def\fetadsixtyfourthflag{\char154}
+\def\fetamenseighthflag{\char155}
+\def\fetamens1eighthflag{\char156}
+\def\fetamensdeighthflag{\char157}
+\def\fetamensd1eighthflag{\char158}
+\def\fetamenssixteenthflag{\char159}
+\def\fetamens1sixteenthflag{\char160}
+\def\fetamensdsixteenthflag{\char161}
+\def\fetamensd1sixteenthflag{\char162}
+\def\fetamensthirtysecondflag{\char163}
+\def\fetamens1thirtysecondflag{\char164}
+\def\fetamensdthirtysecondflag{\char165}
+\def\fetamensd1thirtysecondflag{\char166}
+\def\fetamenssixtyfourthflag{\char167}
+\def\fetamens1sixtyfourthflag{\char168}
+\def\fetamensdsixtyfourthflag{\char169}
+\def\fetamensd1sixtyfourthflag{\char170}
+\def\fetagracedash{\char171}
+\def\fetadgracedash{\char172}
+\def\fetastem{\char173}
+\def\fetadstem{\char174}
+\def\fetaaltoclef{\char175}
+\def\fetacaltoclef{\char176}
+\def\fetabassclef{\char177}
+\def\fetacbassclef{\char178}
+\def\fetatrebleclef{\char179}
+\def\fetactrebleclef{\char180}
+\def\fetavatdoclef{\char181}
+\def\fetavatcdoclef{\char182}
+\def\fetavatfaclef{\char183}
+\def\fetavatcfaclef{\char184}
+\def\fetameddoclef{\char185}
+\def\fetacmeddoclef{\char186}
+\def\fetamedfaclef{\char187}
+\def\fetacmedfaclef{\char188}
+\def\fetaneomenscclef{\char189}
+\def\fetacneomenscclef{\char190}
+\def\fetapetruccicclef{\char191}
+\def\fetacpetruccicclef{\char192}
+\def\fetamenscclef{\char193}
+\def\fetacmenscclef{\char194}
+\def\fetapetruccifclef{\char195}
+\def\fetacpetruccifclef{\char196}
+\def\fetamensfclef{\char197}
+\def\fetacmensfclef{\char198}
+\def\fetamensgclef{\char199}
+\def\fetacmensgclef{\char200}
+\def\fetapetruccigclef{\char201}
+\def\fetacpetruccigclef{\char202}
+\def\fetahufnageldoclef{\char203}
+\def\fetachufnageldoclef{\char204}
+\def\fetahufnagelfaclef{\char205}
+\def\fetachufnagelfaclef{\char206}
+\def\fetahufnageldofaclef{\char207}
+\def\fetachufnageldofaclef{\char208}
+\def\fetapercussionclef{\char209}
+\def\fetacpercussionclef{\char210}
+\def\fetatabclef{\char211}
+\def\fetactabclef{\char212}
+\def\fetafourfourmeter{\char213}
+\def\fetaallabreve{\char214}
+\def\fetaoldfourfourmeter{\char215}
+\def\fetaoldallabreve{\char216}
+\def\fetaoldthreetwometer{\char217}
+\def\fetaoldsixfourmeter{\char218}
+\def\fetaoldninefourmeter{\char219}
+\def\fetaoldthreefourmeter{\char220}
+\def\fetaoldsixeightmeter{\char221}
+\def\fetaoldnineeight{\char222}
+\def\fetaoldfoureightmeter{\char223}
+\def\fetaoldsixeightmeteralt{\char224}
+\def\fetaoldtwofourmeter{\char225}
+\def\fetapedal-asterisk{\char226}
+\def\fetapedal-dash{\char227}
+\def\fetapedal-dot{\char228}
+\def\fetapedal-P{\char229}
+\def\fetapedal-d{\char230}
+\def\fetapedal-e{\char231}
+\def\fetapedal-Ped{\char232}
+\def\fetaaccDiscant{\char233}
+\def\fetaaccDot{\char234}
+\def\fetaaccFreebase{\char235}
+\def\fetaaccStdbase{\char236}
+\def\fetaaccBayanbase{\char237}
+\def\fetaaccSB{\char238}
+\def\fetaaccBB{\char239}
+\def\fetaaccOldEE{\char240}
+\def\fetaaccOldEES{\char241}
+\def\fetahufnagel{\char242}
+\def\fetarhufnagel{\char243}
+\def\fetamedicaea{\char244}
+\def\fetarmedicaea{\char245}
+\def\fetavaticana{\char246}
+\def\fetarvaticana{\char247}
+\def\fetamensural{\char248}
+\def\fetarmensural{\char249}
diff --git a/tex/feta16.tex b/tex/feta16.tex
new file mode 100644 (file)
index 0000000..106744d
--- /dev/null
@@ -0,0 +1,250 @@
+\def\fetawholerest{\char0}
+\def\fetahalfrest{\char1}
+\def\fetaoutsidewholerest{\char2}
+\def\fetaoutsidehalfrest{\char3}
+\def\fetabreverest{\char4}
+\def\fetalongarest{\char5}
+\def\fetamultirest{\char6}
+\def\fetaquartrest{\char7}
+\def\fetaeighthrest{\char8}
+\def\fetasixteenthrest{\char9}
+\def\fetathirtysecondrest{\char10}
+\def\fetasixtyfourthrest{\char11}
+\def\fetahundredtwentyeighthrest{\char12}
+\def\fetaneomenslongarest{\char13}
+\def\fetaneomensbreverest{\char14}
+\def\fetaneomenssemibrevisrest{\char15}
+\def\fetaneomensminimahalfrest{\char16}
+\def\fetaneomenssemiminimarest{\char17}
+\def\fetaneomensfusarest{\char18}
+\def\fetaneomenssemifusarest{\char19}
+\def\fetamenslongarest{\char20}
+\def\fetamensbreverest{\char21}
+\def\fetamenssemibrevisrest{\char22}
+\def\fetamensminimahalfrest{\char23}
+\def\fetamenssemiminimarest{\char24}
+\def\fetamensfusarest{\char25}
+\def\fetamenssemifusarest{\char26}
+\def\fetasharp{\char27}
+\def\fetanatural{\char28}
+\def\fetaflat{\char29}
+\def\fetaflatflat{\char30}
+\def\fetasharpsharp{\char31}
+\def\fetarightparen{\char32}
+\def\fetaleftparen{\char33}
+\def\fetamedicaeaflat{\char34}
+\def\fetavaticanaflat{\char35}
+\def\fetavaticananatural{\char36}
+\def\fetamensuralsharp{\char37}
+\def\fetamensuralflat{\char38}
+\def\fetahufnagelflat{\char39}
+\def\fetadot{\char40}
+\def\fetamensuralmaximahead{\char41}
+\def\fetamensurallongahead{\char42}
+\def\fetamensuralbrevishead{\char43}
+\def\fetaneomensuralminimhead{\char44}
+\def\fetaneomensuralsemiminimhead{\char45}
+\def\fetaneofusahead{\char46}
+\def\fetamensuralminimhead{\char47}
+\def\fetamensuralsemiminimhead{\char48}
+\def\fetafusahead{\char49}
+\def\fetaledgerending{\char50}
+\def\fetabrevishead{\char51}
+\def\fetawholehead{\char52}
+\def\fetahalfhead{\char53}
+\def\fetaquarthead{\char54}
+\def\fetawholediamondhead{\char55}
+\def\fetahalfdiamondhead{\char56}
+\def\fetadiamondhead{\char57}
+\def\fetawholetrianglehead{\char58}
+\def\fetahalftrianglehead{\char59}
+\def\fetatrianglehead{\char60}
+\def\fetawholeslashhead{\char61}
+\def\fetahalfslashhead{\char62}
+\def\fetaquartslashhead{\char63}
+\def\fetawholecrossedhead{\char64}
+\def\fetahalfcrossedhead{\char65}
+\def\fetacrossedhead{\char66}
+\def\fetaxcircledhead{\char67}
+\def\fetavatsubbipunctumhead{\char68}
+\def\fetavatpunctumhead{\char69}
+\def\fetavatvirgahead{\char70}
+\def\fetavatrvirgahead{\char71}
+\def\fetavatlpeshead{\char72}
+\def\fetavatupeshead{\char73}
+\def\fetavatvupeshead{\char74}
+\def\fetavatplicahead{\char75}
+\def\fetavatepiphonushead{\char76}
+\def\fetavatcephalicushead{\char77}
+\def\fetavatquilismahead{\char78}
+\def\fetamedsubbipunctumhead{\char79}
+\def\fetamedpunctumhead{\char80}
+\def\fetamedrvirgahead{\char81}
+\def\fetamedvirgahead{\char82}
+\def\fetahufpunctumhead{\char83}
+\def\fetahufvirgahead{\char84}
+\def\fetahuflpeshead{\char85}
+\def\fetaufermata{\char86}
+\def\fetadfermata{\char87}
+\def\fetathumb{\char88}
+\def\fetasforzatoaccent{\char89}
+\def\fetastaccato{\char90}
+\def\fetaustaccatissimo{\char91}
+\def\fetadstaccatissimo{\char92}
+\def\fetatenuto{\char93}
+\def\fetauportato{\char94}
+\def\fetadportato{\char95}
+\def\fetaumarcato{\char96}
+\def\fetadmarcato{\char97}
+\def\fetaouvert{\char98}
+\def\fetaplusstop{\char99}
+\def\fetaupbow{\char100}
+\def\fetadownbow{\char101}
+\def\fetareverseturn{\char102}
+\def\fetaturn{\char103}
+\def\fetatrill{\char104}
+\def\fetaupedalheel{\char105}
+\def\fetadpedalheel{\char106}
+\def\fetaupedaltoe{\char107}
+\def\fetadpedaltoe{\char108}
+\def\fetaflageolet{\char109}
+\def\fetasegno{\char110}
+\def\fetacoda{\char111}
+\def\fetarcomma{\char112}
+\def\fetalcomma{\char113}
+\def\fetaarpeggio{\char114}
+\def\fetatrill-element{\char115}
+\def\fetaarpeggioarrowdown{\char116}
+\def\fetaarpeggioarrowup{\char117}
+\def\fetatrilelement{\char118}
+\def\fetaprall{\char119}
+\def\fetamordent{\char120}
+\def\fetaprallprall{\char121}
+\def\fetaprallmordent{\char122}
+\def\fetaupprall{\char123}
+\def\fetadownprall{\char124}
+\def\fetaupmordent{\char125}
+\def\fetadownmordent{\char126}
+\def\fetalineprall{\char127}
+\def\fetapralldown{\char128}
+\def\fetaprallup{\char129}
+\def\fetaeighthflag{\char130}
+\def\fetasixteenthflag{\char131}
+\def\fetathirtysecondflag{\char132}
+\def\fetasixtyfourthflag{\char133}
+\def\fetadeighthflag{\char134}
+\def\fetamenseighthflag{\char135}
+\def\fetamens1eighthflag{\char136}
+\def\fetamensdeighthflag{\char137}
+\def\fetamensd1eighthflag{\char138}
+\def\fetamenssixteenthflag{\char139}
+\def\fetamens1sixteenthflag{\char140}
+\def\fetamensdsixteenthflag{\char141}
+\def\fetamensd1sixteenthflag{\char142}
+\def\fetamensthirtysecondflag{\char143}
+\def\fetamens1thirtysecondflag{\char144}
+\def\fetamensdthirtysecondflag{\char145}
+\def\fetamensd1thirtysecondflag{\char146}
+\def\fetamenssixtyfourthflag{\char147}
+\def\fetamens1sixtyfourthflag{\char148}
+\def\fetamensdsixtyfourthflag{\char149}
+\def\fetamensd1sixtyfourthflag{\char150}
+\def\fetagracedash{\char151}
+\def\fetadsixteenthflag{\char152}
+\def\fetadthirtysecondflag{\char153}
+\def\fetadsixtyfourthflag{\char154}
+\def\fetamenseighthflag{\char155}
+\def\fetamens1eighthflag{\char156}
+\def\fetamensdeighthflag{\char157}
+\def\fetamensd1eighthflag{\char158}
+\def\fetamenssixteenthflag{\char159}
+\def\fetamens1sixteenthflag{\char160}
+\def\fetamensdsixteenthflag{\char161}
+\def\fetamensd1sixteenthflag{\char162}
+\def\fetamensthirtysecondflag{\char163}
+\def\fetamens1thirtysecondflag{\char164}
+\def\fetamensdthirtysecondflag{\char165}
+\def\fetamensd1thirtysecondflag{\char166}
+\def\fetamenssixtyfourthflag{\char167}
+\def\fetamens1sixtyfourthflag{\char168}
+\def\fetamensdsixtyfourthflag{\char169}
+\def\fetamensd1sixtyfourthflag{\char170}
+\def\fetagracedash{\char171}
+\def\fetadgracedash{\char172}
+\def\fetastem{\char173}
+\def\fetadstem{\char174}
+\def\fetaaltoclef{\char175}
+\def\fetacaltoclef{\char176}
+\def\fetabassclef{\char177}
+\def\fetacbassclef{\char178}
+\def\fetatrebleclef{\char179}
+\def\fetactrebleclef{\char180}
+\def\fetavatdoclef{\char181}
+\def\fetavatcdoclef{\char182}
+\def\fetavatfaclef{\char183}
+\def\fetavatcfaclef{\char184}
+\def\fetameddoclef{\char185}
+\def\fetacmeddoclef{\char186}
+\def\fetamedfaclef{\char187}
+\def\fetacmedfaclef{\char188}
+\def\fetaneomenscclef{\char189}
+\def\fetacneomenscclef{\char190}
+\def\fetapetruccicclef{\char191}
+\def\fetacpetruccicclef{\char192}
+\def\fetamenscclef{\char193}
+\def\fetacmenscclef{\char194}
+\def\fetapetruccifclef{\char195}
+\def\fetacpetruccifclef{\char196}
+\def\fetamensfclef{\char197}
+\def\fetacmensfclef{\char198}
+\def\fetamensgclef{\char199}
+\def\fetacmensgclef{\char200}
+\def\fetapetruccigclef{\char201}
+\def\fetacpetruccigclef{\char202}
+\def\fetahufnageldoclef{\char203}
+\def\fetachufnageldoclef{\char204}
+\def\fetahufnagelfaclef{\char205}
+\def\fetachufnagelfaclef{\char206}
+\def\fetahufnageldofaclef{\char207}
+\def\fetachufnageldofaclef{\char208}
+\def\fetapercussionclef{\char209}
+\def\fetacpercussionclef{\char210}
+\def\fetatabclef{\char211}
+\def\fetactabclef{\char212}
+\def\fetafourfourmeter{\char213}
+\def\fetaallabreve{\char214}
+\def\fetaoldfourfourmeter{\char215}
+\def\fetaoldallabreve{\char216}
+\def\fetaoldthreetwometer{\char217}
+\def\fetaoldsixfourmeter{\char218}
+\def\fetaoldninefourmeter{\char219}
+\def\fetaoldthreefourmeter{\char220}
+\def\fetaoldsixeightmeter{\char221}
+\def\fetaoldnineeight{\char222}
+\def\fetaoldfoureightmeter{\char223}
+\def\fetaoldsixeightmeteralt{\char224}
+\def\fetaoldtwofourmeter{\char225}
+\def\fetapedal-asterisk{\char226}
+\def\fetapedal-dash{\char227}
+\def\fetapedal-dot{\char228}
+\def\fetapedal-P{\char229}
+\def\fetapedal-d{\char230}
+\def\fetapedal-e{\char231}
+\def\fetapedal-Ped{\char232}
+\def\fetaaccDiscant{\char233}
+\def\fetaaccDot{\char234}
+\def\fetaaccFreebase{\char235}
+\def\fetaaccStdbase{\char236}
+\def\fetaaccBayanbase{\char237}
+\def\fetaaccSB{\char238}
+\def\fetaaccBB{\char239}
+\def\fetaaccOldEE{\char240}
+\def\fetaaccOldEES{\char241}
+\def\fetahufnagel{\char242}
+\def\fetarhufnagel{\char243}
+\def\fetamedicaea{\char244}
+\def\fetarmedicaea{\char245}
+\def\fetavaticana{\char246}
+\def\fetarvaticana{\char247}
+\def\fetamensural{\char248}
+\def\fetarmensural{\char249}
diff --git a/tex/feta19.tex b/tex/feta19.tex
new file mode 100644 (file)
index 0000000..106744d
--- /dev/null
@@ -0,0 +1,250 @@
+\def\fetawholerest{\char0}
+\def\fetahalfrest{\char1}
+\def\fetaoutsidewholerest{\char2}
+\def\fetaoutsidehalfrest{\char3}
+\def\fetabreverest{\char4}
+\def\fetalongarest{\char5}
+\def\fetamultirest{\char6}
+\def\fetaquartrest{\char7}
+\def\fetaeighthrest{\char8}
+\def\fetasixteenthrest{\char9}
+\def\fetathirtysecondrest{\char10}
+\def\fetasixtyfourthrest{\char11}
+\def\fetahundredtwentyeighthrest{\char12}
+\def\fetaneomenslongarest{\char13}
+\def\fetaneomensbreverest{\char14}
+\def\fetaneomenssemibrevisrest{\char15}
+\def\fetaneomensminimahalfrest{\char16}
+\def\fetaneomenssemiminimarest{\char17}
+\def\fetaneomensfusarest{\char18}
+\def\fetaneomenssemifusarest{\char19}
+\def\fetamenslongarest{\char20}
+\def\fetamensbreverest{\char21}
+\def\fetamenssemibrevisrest{\char22}
+\def\fetamensminimahalfrest{\char23}
+\def\fetamenssemiminimarest{\char24}
+\def\fetamensfusarest{\char25}
+\def\fetamenssemifusarest{\char26}
+\def\fetasharp{\char27}
+\def\fetanatural{\char28}
+\def\fetaflat{\char29}
+\def\fetaflatflat{\char30}
+\def\fetasharpsharp{\char31}
+\def\fetarightparen{\char32}
+\def\fetaleftparen{\char33}
+\def\fetamedicaeaflat{\char34}
+\def\fetavaticanaflat{\char35}
+\def\fetavaticananatural{\char36}
+\def\fetamensuralsharp{\char37}
+\def\fetamensuralflat{\char38}
+\def\fetahufnagelflat{\char39}
+\def\fetadot{\char40}
+\def\fetamensuralmaximahead{\char41}
+\def\fetamensurallongahead{\char42}
+\def\fetamensuralbrevishead{\char43}
+\def\fetaneomensuralminimhead{\char44}
+\def\fetaneomensuralsemiminimhead{\char45}
+\def\fetaneofusahead{\char46}
+\def\fetamensuralminimhead{\char47}
+\def\fetamensuralsemiminimhead{\char48}
+\def\fetafusahead{\char49}
+\def\fetaledgerending{\char50}
+\def\fetabrevishead{\char51}
+\def\fetawholehead{\char52}
+\def\fetahalfhead{\char53}
+\def\fetaquarthead{\char54}
+\def\fetawholediamondhead{\char55}
+\def\fetahalfdiamondhead{\char56}
+\def\fetadiamondhead{\char57}
+\def\fetawholetrianglehead{\char58}
+\def\fetahalftrianglehead{\char59}
+\def\fetatrianglehead{\char60}
+\def\fetawholeslashhead{\char61}
+\def\fetahalfslashhead{\char62}
+\def\fetaquartslashhead{\char63}
+\def\fetawholecrossedhead{\char64}
+\def\fetahalfcrossedhead{\char65}
+\def\fetacrossedhead{\char66}
+\def\fetaxcircledhead{\char67}
+\def\fetavatsubbipunctumhead{\char68}
+\def\fetavatpunctumhead{\char69}
+\def\fetavatvirgahead{\char70}
+\def\fetavatrvirgahead{\char71}
+\def\fetavatlpeshead{\char72}
+\def\fetavatupeshead{\char73}
+\def\fetavatvupeshead{\char74}
+\def\fetavatplicahead{\char75}
+\def\fetavatepiphonushead{\char76}
+\def\fetavatcephalicushead{\char77}
+\def\fetavatquilismahead{\char78}
+\def\fetamedsubbipunctumhead{\char79}
+\def\fetamedpunctumhead{\char80}
+\def\fetamedrvirgahead{\char81}
+\def\fetamedvirgahead{\char82}
+\def\fetahufpunctumhead{\char83}
+\def\fetahufvirgahead{\char84}
+\def\fetahuflpeshead{\char85}
+\def\fetaufermata{\char86}
+\def\fetadfermata{\char87}
+\def\fetathumb{\char88}
+\def\fetasforzatoaccent{\char89}
+\def\fetastaccato{\char90}
+\def\fetaustaccatissimo{\char91}
+\def\fetadstaccatissimo{\char92}
+\def\fetatenuto{\char93}
+\def\fetauportato{\char94}
+\def\fetadportato{\char95}
+\def\fetaumarcato{\char96}
+\def\fetadmarcato{\char97}
+\def\fetaouvert{\char98}
+\def\fetaplusstop{\char99}
+\def\fetaupbow{\char100}
+\def\fetadownbow{\char101}
+\def\fetareverseturn{\char102}
+\def\fetaturn{\char103}
+\def\fetatrill{\char104}
+\def\fetaupedalheel{\char105}
+\def\fetadpedalheel{\char106}
+\def\fetaupedaltoe{\char107}
+\def\fetadpedaltoe{\char108}
+\def\fetaflageolet{\char109}
+\def\fetasegno{\char110}
+\def\fetacoda{\char111}
+\def\fetarcomma{\char112}
+\def\fetalcomma{\char113}
+\def\fetaarpeggio{\char114}
+\def\fetatrill-element{\char115}
+\def\fetaarpeggioarrowdown{\char116}
+\def\fetaarpeggioarrowup{\char117}
+\def\fetatrilelement{\char118}
+\def\fetaprall{\char119}
+\def\fetamordent{\char120}
+\def\fetaprallprall{\char121}
+\def\fetaprallmordent{\char122}
+\def\fetaupprall{\char123}
+\def\fetadownprall{\char124}
+\def\fetaupmordent{\char125}
+\def\fetadownmordent{\char126}
+\def\fetalineprall{\char127}
+\def\fetapralldown{\char128}
+\def\fetaprallup{\char129}
+\def\fetaeighthflag{\char130}
+\def\fetasixteenthflag{\char131}
+\def\fetathirtysecondflag{\char132}
+\def\fetasixtyfourthflag{\char133}
+\def\fetadeighthflag{\char134}
+\def\fetamenseighthflag{\char135}
+\def\fetamens1eighthflag{\char136}
+\def\fetamensdeighthflag{\char137}
+\def\fetamensd1eighthflag{\char138}
+\def\fetamenssixteenthflag{\char139}
+\def\fetamens1sixteenthflag{\char140}
+\def\fetamensdsixteenthflag{\char141}
+\def\fetamensd1sixteenthflag{\char142}
+\def\fetamensthirtysecondflag{\char143}
+\def\fetamens1thirtysecondflag{\char144}
+\def\fetamensdthirtysecondflag{\char145}
+\def\fetamensd1thirtysecondflag{\char146}
+\def\fetamenssixtyfourthflag{\char147}
+\def\fetamens1sixtyfourthflag{\char148}
+\def\fetamensdsixtyfourthflag{\char149}
+\def\fetamensd1sixtyfourthflag{\char150}
+\def\fetagracedash{\char151}
+\def\fetadsixteenthflag{\char152}
+\def\fetadthirtysecondflag{\char153}
+\def\fetadsixtyfourthflag{\char154}
+\def\fetamenseighthflag{\char155}
+\def\fetamens1eighthflag{\char156}
+\def\fetamensdeighthflag{\char157}
+\def\fetamensd1eighthflag{\char158}
+\def\fetamenssixteenthflag{\char159}
+\def\fetamens1sixteenthflag{\char160}
+\def\fetamensdsixteenthflag{\char161}
+\def\fetamensd1sixteenthflag{\char162}
+\def\fetamensthirtysecondflag{\char163}
+\def\fetamens1thirtysecondflag{\char164}
+\def\fetamensdthirtysecondflag{\char165}
+\def\fetamensd1thirtysecondflag{\char166}
+\def\fetamenssixtyfourthflag{\char167}
+\def\fetamens1sixtyfourthflag{\char168}
+\def\fetamensdsixtyfourthflag{\char169}
+\def\fetamensd1sixtyfourthflag{\char170}
+\def\fetagracedash{\char171}
+\def\fetadgracedash{\char172}
+\def\fetastem{\char173}
+\def\fetadstem{\char174}
+\def\fetaaltoclef{\char175}
+\def\fetacaltoclef{\char176}
+\def\fetabassclef{\char177}
+\def\fetacbassclef{\char178}
+\def\fetatrebleclef{\char179}
+\def\fetactrebleclef{\char180}
+\def\fetavatdoclef{\char181}
+\def\fetavatcdoclef{\char182}
+\def\fetavatfaclef{\char183}
+\def\fetavatcfaclef{\char184}
+\def\fetameddoclef{\char185}
+\def\fetacmeddoclef{\char186}
+\def\fetamedfaclef{\char187}
+\def\fetacmedfaclef{\char188}
+\def\fetaneomenscclef{\char189}
+\def\fetacneomenscclef{\char190}
+\def\fetapetruccicclef{\char191}
+\def\fetacpetruccicclef{\char192}
+\def\fetamenscclef{\char193}
+\def\fetacmenscclef{\char194}
+\def\fetapetruccifclef{\char195}
+\def\fetacpetruccifclef{\char196}
+\def\fetamensfclef{\char197}
+\def\fetacmensfclef{\char198}
+\def\fetamensgclef{\char199}
+\def\fetacmensgclef{\char200}
+\def\fetapetruccigclef{\char201}
+\def\fetacpetruccigclef{\char202}
+\def\fetahufnageldoclef{\char203}
+\def\fetachufnageldoclef{\char204}
+\def\fetahufnagelfaclef{\char205}
+\def\fetachufnagelfaclef{\char206}
+\def\fetahufnageldofaclef{\char207}
+\def\fetachufnageldofaclef{\char208}
+\def\fetapercussionclef{\char209}
+\def\fetacpercussionclef{\char210}
+\def\fetatabclef{\char211}
+\def\fetactabclef{\char212}
+\def\fetafourfourmeter{\char213}
+\def\fetaallabreve{\char214}
+\def\fetaoldfourfourmeter{\char215}
+\def\fetaoldallabreve{\char216}
+\def\fetaoldthreetwometer{\char217}
+\def\fetaoldsixfourmeter{\char218}
+\def\fetaoldninefourmeter{\char219}
+\def\fetaoldthreefourmeter{\char220}
+\def\fetaoldsixeightmeter{\char221}
+\def\fetaoldnineeight{\char222}
+\def\fetaoldfoureightmeter{\char223}
+\def\fetaoldsixeightmeteralt{\char224}
+\def\fetaoldtwofourmeter{\char225}
+\def\fetapedal-asterisk{\char226}
+\def\fetapedal-dash{\char227}
+\def\fetapedal-dot{\char228}
+\def\fetapedal-P{\char229}
+\def\fetapedal-d{\char230}
+\def\fetapedal-e{\char231}
+\def\fetapedal-Ped{\char232}
+\def\fetaaccDiscant{\char233}
+\def\fetaaccDot{\char234}
+\def\fetaaccFreebase{\char235}
+\def\fetaaccStdbase{\char236}
+\def\fetaaccBayanbase{\char237}
+\def\fetaaccSB{\char238}
+\def\fetaaccBB{\char239}
+\def\fetaaccOldEE{\char240}
+\def\fetaaccOldEES{\char241}
+\def\fetahufnagel{\char242}
+\def\fetarhufnagel{\char243}
+\def\fetamedicaea{\char244}
+\def\fetarmedicaea{\char245}
+\def\fetavaticana{\char246}
+\def\fetarvaticana{\char247}
+\def\fetamensural{\char248}
+\def\fetarmensural{\char249}
diff --git a/tex/feta20.tex b/tex/feta20.tex
new file mode 100644 (file)
index 0000000..106744d
--- /dev/null
@@ -0,0 +1,250 @@
+\def\fetawholerest{\char0}
+\def\fetahalfrest{\char1}
+\def\fetaoutsidewholerest{\char2}
+\def\fetaoutsidehalfrest{\char3}
+\def\fetabreverest{\char4}
+\def\fetalongarest{\char5}
+\def\fetamultirest{\char6}
+\def\fetaquartrest{\char7}
+\def\fetaeighthrest{\char8}
+\def\fetasixteenthrest{\char9}
+\def\fetathirtysecondrest{\char10}
+\def\fetasixtyfourthrest{\char11}
+\def\fetahundredtwentyeighthrest{\char12}
+\def\fetaneomenslongarest{\char13}
+\def\fetaneomensbreverest{\char14}
+\def\fetaneomenssemibrevisrest{\char15}
+\def\fetaneomensminimahalfrest{\char16}
+\def\fetaneomenssemiminimarest{\char17}
+\def\fetaneomensfusarest{\char18}
+\def\fetaneomenssemifusarest{\char19}
+\def\fetamenslongarest{\char20}
+\def\fetamensbreverest{\char21}
+\def\fetamenssemibrevisrest{\char22}
+\def\fetamensminimahalfrest{\char23}
+\def\fetamenssemiminimarest{\char24}
+\def\fetamensfusarest{\char25}
+\def\fetamenssemifusarest{\char26}
+\def\fetasharp{\char27}
+\def\fetanatural{\char28}
+\def\fetaflat{\char29}
+\def\fetaflatflat{\char30}
+\def\fetasharpsharp{\char31}
+\def\fetarightparen{\char32}
+\def\fetaleftparen{\char33}
+\def\fetamedicaeaflat{\char34}
+\def\fetavaticanaflat{\char35}
+\def\fetavaticananatural{\char36}
+\def\fetamensuralsharp{\char37}
+\def\fetamensuralflat{\char38}
+\def\fetahufnagelflat{\char39}
+\def\fetadot{\char40}
+\def\fetamensuralmaximahead{\char41}
+\def\fetamensurallongahead{\char42}
+\def\fetamensuralbrevishead{\char43}
+\def\fetaneomensuralminimhead{\char44}
+\def\fetaneomensuralsemiminimhead{\char45}
+\def\fetaneofusahead{\char46}
+\def\fetamensuralminimhead{\char47}
+\def\fetamensuralsemiminimhead{\char48}
+\def\fetafusahead{\char49}
+\def\fetaledgerending{\char50}
+\def\fetabrevishead{\char51}
+\def\fetawholehead{\char52}
+\def\fetahalfhead{\char53}
+\def\fetaquarthead{\char54}
+\def\fetawholediamondhead{\char55}
+\def\fetahalfdiamondhead{\char56}
+\def\fetadiamondhead{\char57}
+\def\fetawholetrianglehead{\char58}
+\def\fetahalftrianglehead{\char59}
+\def\fetatrianglehead{\char60}
+\def\fetawholeslashhead{\char61}
+\def\fetahalfslashhead{\char62}
+\def\fetaquartslashhead{\char63}
+\def\fetawholecrossedhead{\char64}
+\def\fetahalfcrossedhead{\char65}
+\def\fetacrossedhead{\char66}
+\def\fetaxcircledhead{\char67}
+\def\fetavatsubbipunctumhead{\char68}
+\def\fetavatpunctumhead{\char69}
+\def\fetavatvirgahead{\char70}
+\def\fetavatrvirgahead{\char71}
+\def\fetavatlpeshead{\char72}
+\def\fetavatupeshead{\char73}
+\def\fetavatvupeshead{\char74}
+\def\fetavatplicahead{\char75}
+\def\fetavatepiphonushead{\char76}
+\def\fetavatcephalicushead{\char77}
+\def\fetavatquilismahead{\char78}
+\def\fetamedsubbipunctumhead{\char79}
+\def\fetamedpunctumhead{\char80}
+\def\fetamedrvirgahead{\char81}
+\def\fetamedvirgahead{\char82}
+\def\fetahufpunctumhead{\char83}
+\def\fetahufvirgahead{\char84}
+\def\fetahuflpeshead{\char85}
+\def\fetaufermata{\char86}
+\def\fetadfermata{\char87}
+\def\fetathumb{\char88}
+\def\fetasforzatoaccent{\char89}
+\def\fetastaccato{\char90}
+\def\fetaustaccatissimo{\char91}
+\def\fetadstaccatissimo{\char92}
+\def\fetatenuto{\char93}
+\def\fetauportato{\char94}
+\def\fetadportato{\char95}
+\def\fetaumarcato{\char96}
+\def\fetadmarcato{\char97}
+\def\fetaouvert{\char98}
+\def\fetaplusstop{\char99}
+\def\fetaupbow{\char100}
+\def\fetadownbow{\char101}
+\def\fetareverseturn{\char102}
+\def\fetaturn{\char103}
+\def\fetatrill{\char104}
+\def\fetaupedalheel{\char105}
+\def\fetadpedalheel{\char106}
+\def\fetaupedaltoe{\char107}
+\def\fetadpedaltoe{\char108}
+\def\fetaflageolet{\char109}
+\def\fetasegno{\char110}
+\def\fetacoda{\char111}
+\def\fetarcomma{\char112}
+\def\fetalcomma{\char113}
+\def\fetaarpeggio{\char114}
+\def\fetatrill-element{\char115}
+\def\fetaarpeggioarrowdown{\char116}
+\def\fetaarpeggioarrowup{\char117}
+\def\fetatrilelement{\char118}
+\def\fetaprall{\char119}
+\def\fetamordent{\char120}
+\def\fetaprallprall{\char121}
+\def\fetaprallmordent{\char122}
+\def\fetaupprall{\char123}
+\def\fetadownprall{\char124}
+\def\fetaupmordent{\char125}
+\def\fetadownmordent{\char126}
+\def\fetalineprall{\char127}
+\def\fetapralldown{\char128}
+\def\fetaprallup{\char129}
+\def\fetaeighthflag{\char130}
+\def\fetasixteenthflag{\char131}
+\def\fetathirtysecondflag{\char132}
+\def\fetasixtyfourthflag{\char133}
+\def\fetadeighthflag{\char134}
+\def\fetamenseighthflag{\char135}
+\def\fetamens1eighthflag{\char136}
+\def\fetamensdeighthflag{\char137}
+\def\fetamensd1eighthflag{\char138}
+\def\fetamenssixteenthflag{\char139}
+\def\fetamens1sixteenthflag{\char140}
+\def\fetamensdsixteenthflag{\char141}
+\def\fetamensd1sixteenthflag{\char142}
+\def\fetamensthirtysecondflag{\char143}
+\def\fetamens1thirtysecondflag{\char144}
+\def\fetamensdthirtysecondflag{\char145}
+\def\fetamensd1thirtysecondflag{\char146}
+\def\fetamenssixtyfourthflag{\char147}
+\def\fetamens1sixtyfourthflag{\char148}
+\def\fetamensdsixtyfourthflag{\char149}
+\def\fetamensd1sixtyfourthflag{\char150}
+\def\fetagracedash{\char151}
+\def\fetadsixteenthflag{\char152}
+\def\fetadthirtysecondflag{\char153}
+\def\fetadsixtyfourthflag{\char154}
+\def\fetamenseighthflag{\char155}
+\def\fetamens1eighthflag{\char156}
+\def\fetamensdeighthflag{\char157}
+\def\fetamensd1eighthflag{\char158}
+\def\fetamenssixteenthflag{\char159}
+\def\fetamens1sixteenthflag{\char160}
+\def\fetamensdsixteenthflag{\char161}
+\def\fetamensd1sixteenthflag{\char162}
+\def\fetamensthirtysecondflag{\char163}
+\def\fetamens1thirtysecondflag{\char164}
+\def\fetamensdthirtysecondflag{\char165}
+\def\fetamensd1thirtysecondflag{\char166}
+\def\fetamenssixtyfourthflag{\char167}
+\def\fetamens1sixtyfourthflag{\char168}
+\def\fetamensdsixtyfourthflag{\char169}
+\def\fetamensd1sixtyfourthflag{\char170}
+\def\fetagracedash{\char171}
+\def\fetadgracedash{\char172}
+\def\fetastem{\char173}
+\def\fetadstem{\char174}
+\def\fetaaltoclef{\char175}
+\def\fetacaltoclef{\char176}
+\def\fetabassclef{\char177}
+\def\fetacbassclef{\char178}
+\def\fetatrebleclef{\char179}
+\def\fetactrebleclef{\char180}
+\def\fetavatdoclef{\char181}
+\def\fetavatcdoclef{\char182}
+\def\fetavatfaclef{\char183}
+\def\fetavatcfaclef{\char184}
+\def\fetameddoclef{\char185}
+\def\fetacmeddoclef{\char186}
+\def\fetamedfaclef{\char187}
+\def\fetacmedfaclef{\char188}
+\def\fetaneomenscclef{\char189}
+\def\fetacneomenscclef{\char190}
+\def\fetapetruccicclef{\char191}
+\def\fetacpetruccicclef{\char192}
+\def\fetamenscclef{\char193}
+\def\fetacmenscclef{\char194}
+\def\fetapetruccifclef{\char195}
+\def\fetacpetruccifclef{\char196}
+\def\fetamensfclef{\char197}
+\def\fetacmensfclef{\char198}
+\def\fetamensgclef{\char199}
+\def\fetacmensgclef{\char200}
+\def\fetapetruccigclef{\char201}
+\def\fetacpetruccigclef{\char202}
+\def\fetahufnageldoclef{\char203}
+\def\fetachufnageldoclef{\char204}
+\def\fetahufnagelfaclef{\char205}
+\def\fetachufnagelfaclef{\char206}
+\def\fetahufnageldofaclef{\char207}
+\def\fetachufnageldofaclef{\char208}
+\def\fetapercussionclef{\char209}
+\def\fetacpercussionclef{\char210}
+\def\fetatabclef{\char211}
+\def\fetactabclef{\char212}
+\def\fetafourfourmeter{\char213}
+\def\fetaallabreve{\char214}
+\def\fetaoldfourfourmeter{\char215}
+\def\fetaoldallabreve{\char216}
+\def\fetaoldthreetwometer{\char217}
+\def\fetaoldsixfourmeter{\char218}
+\def\fetaoldninefourmeter{\char219}
+\def\fetaoldthreefourmeter{\char220}
+\def\fetaoldsixeightmeter{\char221}
+\def\fetaoldnineeight{\char222}
+\def\fetaoldfoureightmeter{\char223}
+\def\fetaoldsixeightmeteralt{\char224}
+\def\fetaoldtwofourmeter{\char225}
+\def\fetapedal-asterisk{\char226}
+\def\fetapedal-dash{\char227}
+\def\fetapedal-dot{\char228}
+\def\fetapedal-P{\char229}
+\def\fetapedal-d{\char230}
+\def\fetapedal-e{\char231}
+\def\fetapedal-Ped{\char232}
+\def\fetaaccDiscant{\char233}
+\def\fetaaccDot{\char234}
+\def\fetaaccFreebase{\char235}
+\def\fetaaccStdbase{\char236}
+\def\fetaaccBayanbase{\char237}
+\def\fetaaccSB{\char238}
+\def\fetaaccBB{\char239}
+\def\fetaaccOldEE{\char240}
+\def\fetaaccOldEES{\char241}
+\def\fetahufnagel{\char242}
+\def\fetarhufnagel{\char243}
+\def\fetamedicaea{\char244}
+\def\fetarmedicaea{\char245}
+\def\fetavaticana{\char246}
+\def\fetarvaticana{\char247}
+\def\fetamensural{\char248}
+\def\fetarmensural{\char249}
diff --git a/tex/feta23.tex b/tex/feta23.tex
new file mode 100644 (file)
index 0000000..106744d
--- /dev/null
@@ -0,0 +1,250 @@
+\def\fetawholerest{\char0}
+\def\fetahalfrest{\char1}
+\def\fetaoutsidewholerest{\char2}
+\def\fetaoutsidehalfrest{\char3}
+\def\fetabreverest{\char4}
+\def\fetalongarest{\char5}
+\def\fetamultirest{\char6}
+\def\fetaquartrest{\char7}
+\def\fetaeighthrest{\char8}
+\def\fetasixteenthrest{\char9}
+\def\fetathirtysecondrest{\char10}
+\def\fetasixtyfourthrest{\char11}
+\def\fetahundredtwentyeighthrest{\char12}
+\def\fetaneomenslongarest{\char13}
+\def\fetaneomensbreverest{\char14}
+\def\fetaneomenssemibrevisrest{\char15}
+\def\fetaneomensminimahalfrest{\char16}
+\def\fetaneomenssemiminimarest{\char17}
+\def\fetaneomensfusarest{\char18}
+\def\fetaneomenssemifusarest{\char19}
+\def\fetamenslongarest{\char20}
+\def\fetamensbreverest{\char21}
+\def\fetamenssemibrevisrest{\char22}
+\def\fetamensminimahalfrest{\char23}
+\def\fetamenssemiminimarest{\char24}
+\def\fetamensfusarest{\char25}
+\def\fetamenssemifusarest{\char26}
+\def\fetasharp{\char27}
+\def\fetanatural{\char28}
+\def\fetaflat{\char29}
+\def\fetaflatflat{\char30}
+\def\fetasharpsharp{\char31}
+\def\fetarightparen{\char32}
+\def\fetaleftparen{\char33}
+\def\fetamedicaeaflat{\char34}
+\def\fetavaticanaflat{\char35}
+\def\fetavaticananatural{\char36}
+\def\fetamensuralsharp{\char37}
+\def\fetamensuralflat{\char38}
+\def\fetahufnagelflat{\char39}
+\def\fetadot{\char40}
+\def\fetamensuralmaximahead{\char41}
+\def\fetamensurallongahead{\char42}
+\def\fetamensuralbrevishead{\char43}
+\def\fetaneomensuralminimhead{\char44}
+\def\fetaneomensuralsemiminimhead{\char45}
+\def\fetaneofusahead{\char46}
+\def\fetamensuralminimhead{\char47}
+\def\fetamensuralsemiminimhead{\char48}
+\def\fetafusahead{\char49}
+\def\fetaledgerending{\char50}
+\def\fetabrevishead{\char51}
+\def\fetawholehead{\char52}
+\def\fetahalfhead{\char53}
+\def\fetaquarthead{\char54}
+\def\fetawholediamondhead{\char55}
+\def\fetahalfdiamondhead{\char56}
+\def\fetadiamondhead{\char57}
+\def\fetawholetrianglehead{\char58}
+\def\fetahalftrianglehead{\char59}
+\def\fetatrianglehead{\char60}
+\def\fetawholeslashhead{\char61}
+\def\fetahalfslashhead{\char62}
+\def\fetaquartslashhead{\char63}
+\def\fetawholecrossedhead{\char64}
+\def\fetahalfcrossedhead{\char65}
+\def\fetacrossedhead{\char66}
+\def\fetaxcircledhead{\char67}
+\def\fetavatsubbipunctumhead{\char68}
+\def\fetavatpunctumhead{\char69}
+\def\fetavatvirgahead{\char70}
+\def\fetavatrvirgahead{\char71}
+\def\fetavatlpeshead{\char72}
+\def\fetavatupeshead{\char73}
+\def\fetavatvupeshead{\char74}
+\def\fetavatplicahead{\char75}
+\def\fetavatepiphonushead{\char76}
+\def\fetavatcephalicushead{\char77}
+\def\fetavatquilismahead{\char78}
+\def\fetamedsubbipunctumhead{\char79}
+\def\fetamedpunctumhead{\char80}
+\def\fetamedrvirgahead{\char81}
+\def\fetamedvirgahead{\char82}
+\def\fetahufpunctumhead{\char83}
+\def\fetahufvirgahead{\char84}
+\def\fetahuflpeshead{\char85}
+\def\fetaufermata{\char86}
+\def\fetadfermata{\char87}
+\def\fetathumb{\char88}
+\def\fetasforzatoaccent{\char89}
+\def\fetastaccato{\char90}
+\def\fetaustaccatissimo{\char91}
+\def\fetadstaccatissimo{\char92}
+\def\fetatenuto{\char93}
+\def\fetauportato{\char94}
+\def\fetadportato{\char95}
+\def\fetaumarcato{\char96}
+\def\fetadmarcato{\char97}
+\def\fetaouvert{\char98}
+\def\fetaplusstop{\char99}
+\def\fetaupbow{\char100}
+\def\fetadownbow{\char101}
+\def\fetareverseturn{\char102}
+\def\fetaturn{\char103}
+\def\fetatrill{\char104}
+\def\fetaupedalheel{\char105}
+\def\fetadpedalheel{\char106}
+\def\fetaupedaltoe{\char107}
+\def\fetadpedaltoe{\char108}
+\def\fetaflageolet{\char109}
+\def\fetasegno{\char110}
+\def\fetacoda{\char111}
+\def\fetarcomma{\char112}
+\def\fetalcomma{\char113}
+\def\fetaarpeggio{\char114}
+\def\fetatrill-element{\char115}
+\def\fetaarpeggioarrowdown{\char116}
+\def\fetaarpeggioarrowup{\char117}
+\def\fetatrilelement{\char118}
+\def\fetaprall{\char119}
+\def\fetamordent{\char120}
+\def\fetaprallprall{\char121}
+\def\fetaprallmordent{\char122}
+\def\fetaupprall{\char123}
+\def\fetadownprall{\char124}
+\def\fetaupmordent{\char125}
+\def\fetadownmordent{\char126}
+\def\fetalineprall{\char127}
+\def\fetapralldown{\char128}
+\def\fetaprallup{\char129}
+\def\fetaeighthflag{\char130}
+\def\fetasixteenthflag{\char131}
+\def\fetathirtysecondflag{\char132}
+\def\fetasixtyfourthflag{\char133}
+\def\fetadeighthflag{\char134}
+\def\fetamenseighthflag{\char135}
+\def\fetamens1eighthflag{\char136}
+\def\fetamensdeighthflag{\char137}
+\def\fetamensd1eighthflag{\char138}
+\def\fetamenssixteenthflag{\char139}
+\def\fetamens1sixteenthflag{\char140}
+\def\fetamensdsixteenthflag{\char141}
+\def\fetamensd1sixteenthflag{\char142}
+\def\fetamensthirtysecondflag{\char143}
+\def\fetamens1thirtysecondflag{\char144}
+\def\fetamensdthirtysecondflag{\char145}
+\def\fetamensd1thirtysecondflag{\char146}
+\def\fetamenssixtyfourthflag{\char147}
+\def\fetamens1sixtyfourthflag{\char148}
+\def\fetamensdsixtyfourthflag{\char149}
+\def\fetamensd1sixtyfourthflag{\char150}
+\def\fetagracedash{\char151}
+\def\fetadsixteenthflag{\char152}
+\def\fetadthirtysecondflag{\char153}
+\def\fetadsixtyfourthflag{\char154}
+\def\fetamenseighthflag{\char155}
+\def\fetamens1eighthflag{\char156}
+\def\fetamensdeighthflag{\char157}
+\def\fetamensd1eighthflag{\char158}
+\def\fetamenssixteenthflag{\char159}
+\def\fetamens1sixteenthflag{\char160}
+\def\fetamensdsixteenthflag{\char161}
+\def\fetamensd1sixteenthflag{\char162}
+\def\fetamensthirtysecondflag{\char163}
+\def\fetamens1thirtysecondflag{\char164}
+\def\fetamensdthirtysecondflag{\char165}
+\def\fetamensd1thirtysecondflag{\char166}
+\def\fetamenssixtyfourthflag{\char167}
+\def\fetamens1sixtyfourthflag{\char168}
+\def\fetamensdsixtyfourthflag{\char169}
+\def\fetamensd1sixtyfourthflag{\char170}
+\def\fetagracedash{\char171}
+\def\fetadgracedash{\char172}
+\def\fetastem{\char173}
+\def\fetadstem{\char174}
+\def\fetaaltoclef{\char175}
+\def\fetacaltoclef{\char176}
+\def\fetabassclef{\char177}
+\def\fetacbassclef{\char178}
+\def\fetatrebleclef{\char179}
+\def\fetactrebleclef{\char180}
+\def\fetavatdoclef{\char181}
+\def\fetavatcdoclef{\char182}
+\def\fetavatfaclef{\char183}
+\def\fetavatcfaclef{\char184}
+\def\fetameddoclef{\char185}
+\def\fetacmeddoclef{\char186}
+\def\fetamedfaclef{\char187}
+\def\fetacmedfaclef{\char188}
+\def\fetaneomenscclef{\char189}
+\def\fetacneomenscclef{\char190}
+\def\fetapetruccicclef{\char191}
+\def\fetacpetruccicclef{\char192}
+\def\fetamenscclef{\char193}
+\def\fetacmenscclef{\char194}
+\def\fetapetruccifclef{\char195}
+\def\fetacpetruccifclef{\char196}
+\def\fetamensfclef{\char197}
+\def\fetacmensfclef{\char198}
+\def\fetamensgclef{\char199}
+\def\fetacmensgclef{\char200}
+\def\fetapetruccigclef{\char201}
+\def\fetacpetruccigclef{\char202}
+\def\fetahufnageldoclef{\char203}
+\def\fetachufnageldoclef{\char204}
+\def\fetahufnagelfaclef{\char205}
+\def\fetachufnagelfaclef{\char206}
+\def\fetahufnageldofaclef{\char207}
+\def\fetachufnageldofaclef{\char208}
+\def\fetapercussionclef{\char209}
+\def\fetacpercussionclef{\char210}
+\def\fetatabclef{\char211}
+\def\fetactabclef{\char212}
+\def\fetafourfourmeter{\char213}
+\def\fetaallabreve{\char214}
+\def\fetaoldfourfourmeter{\char215}
+\def\fetaoldallabreve{\char216}
+\def\fetaoldthreetwometer{\char217}
+\def\fetaoldsixfourmeter{\char218}
+\def\fetaoldninefourmeter{\char219}
+\def\fetaoldthreefourmeter{\char220}
+\def\fetaoldsixeightmeter{\char221}
+\def\fetaoldnineeight{\char222}
+\def\fetaoldfoureightmeter{\char223}
+\def\fetaoldsixeightmeteralt{\char224}
+\def\fetaoldtwofourmeter{\char225}
+\def\fetapedal-asterisk{\char226}
+\def\fetapedal-dash{\char227}
+\def\fetapedal-dot{\char228}
+\def\fetapedal-P{\char229}
+\def\fetapedal-d{\char230}
+\def\fetapedal-e{\char231}
+\def\fetapedal-Ped{\char232}
+\def\fetaaccDiscant{\char233}
+\def\fetaaccDot{\char234}
+\def\fetaaccFreebase{\char235}
+\def\fetaaccStdbase{\char236}
+\def\fetaaccBayanbase{\char237}
+\def\fetaaccSB{\char238}
+\def\fetaaccBB{\char239}
+\def\fetaaccOldEE{\char240}
+\def\fetaaccOldEES{\char241}
+\def\fetahufnagel{\char242}
+\def\fetarhufnagel{\char243}
+\def\fetamedicaea{\char244}
+\def\fetarmedicaea{\char245}
+\def\fetavaticana{\char246}
+\def\fetarvaticana{\char247}
+\def\fetamensural{\char248}
+\def\fetarmensural{\char249}
diff --git a/tex/feta26.tex b/tex/feta26.tex
new file mode 100644 (file)
index 0000000..106744d
--- /dev/null
@@ -0,0 +1,250 @@
+\def\fetawholerest{\char0}
+\def\fetahalfrest{\char1}
+\def\fetaoutsidewholerest{\char2}
+\def\fetaoutsidehalfrest{\char3}
+\def\fetabreverest{\char4}
+\def\fetalongarest{\char5}
+\def\fetamultirest{\char6}
+\def\fetaquartrest{\char7}
+\def\fetaeighthrest{\char8}
+\def\fetasixteenthrest{\char9}
+\def\fetathirtysecondrest{\char10}
+\def\fetasixtyfourthrest{\char11}
+\def\fetahundredtwentyeighthrest{\char12}
+\def\fetaneomenslongarest{\char13}
+\def\fetaneomensbreverest{\char14}
+\def\fetaneomenssemibrevisrest{\char15}
+\def\fetaneomensminimahalfrest{\char16}
+\def\fetaneomenssemiminimarest{\char17}
+\def\fetaneomensfusarest{\char18}
+\def\fetaneomenssemifusarest{\char19}
+\def\fetamenslongarest{\char20}
+\def\fetamensbreverest{\char21}
+\def\fetamenssemibrevisrest{\char22}
+\def\fetamensminimahalfrest{\char23}
+\def\fetamenssemiminimarest{\char24}
+\def\fetamensfusarest{\char25}
+\def\fetamenssemifusarest{\char26}
+\def\fetasharp{\char27}
+\def\fetanatural{\char28}
+\def\fetaflat{\char29}
+\def\fetaflatflat{\char30}
+\def\fetasharpsharp{\char31}
+\def\fetarightparen{\char32}
+\def\fetaleftparen{\char33}
+\def\fetamedicaeaflat{\char34}
+\def\fetavaticanaflat{\char35}
+\def\fetavaticananatural{\char36}
+\def\fetamensuralsharp{\char37}
+\def\fetamensuralflat{\char38}
+\def\fetahufnagelflat{\char39}
+\def\fetadot{\char40}
+\def\fetamensuralmaximahead{\char41}
+\def\fetamensurallongahead{\char42}
+\def\fetamensuralbrevishead{\char43}
+\def\fetaneomensuralminimhead{\char44}
+\def\fetaneomensuralsemiminimhead{\char45}
+\def\fetaneofusahead{\char46}
+\def\fetamensuralminimhead{\char47}
+\def\fetamensuralsemiminimhead{\char48}
+\def\fetafusahead{\char49}
+\def\fetaledgerending{\char50}
+\def\fetabrevishead{\char51}
+\def\fetawholehead{\char52}
+\def\fetahalfhead{\char53}
+\def\fetaquarthead{\char54}
+\def\fetawholediamondhead{\char55}
+\def\fetahalfdiamondhead{\char56}
+\def\fetadiamondhead{\char57}
+\def\fetawholetrianglehead{\char58}
+\def\fetahalftrianglehead{\char59}
+\def\fetatrianglehead{\char60}
+\def\fetawholeslashhead{\char61}
+\def\fetahalfslashhead{\char62}
+\def\fetaquartslashhead{\char63}
+\def\fetawholecrossedhead{\char64}
+\def\fetahalfcrossedhead{\char65}
+\def\fetacrossedhead{\char66}
+\def\fetaxcircledhead{\char67}
+\def\fetavatsubbipunctumhead{\char68}
+\def\fetavatpunctumhead{\char69}
+\def\fetavatvirgahead{\char70}
+\def\fetavatrvirgahead{\char71}
+\def\fetavatlpeshead{\char72}
+\def\fetavatupeshead{\char73}
+\def\fetavatvupeshead{\char74}
+\def\fetavatplicahead{\char75}
+\def\fetavatepiphonushead{\char76}
+\def\fetavatcephalicushead{\char77}
+\def\fetavatquilismahead{\char78}
+\def\fetamedsubbipunctumhead{\char79}
+\def\fetamedpunctumhead{\char80}
+\def\fetamedrvirgahead{\char81}
+\def\fetamedvirgahead{\char82}
+\def\fetahufpunctumhead{\char83}
+\def\fetahufvirgahead{\char84}
+\def\fetahuflpeshead{\char85}
+\def\fetaufermata{\char86}
+\def\fetadfermata{\char87}
+\def\fetathumb{\char88}
+\def\fetasforzatoaccent{\char89}
+\def\fetastaccato{\char90}
+\def\fetaustaccatissimo{\char91}
+\def\fetadstaccatissimo{\char92}
+\def\fetatenuto{\char93}
+\def\fetauportato{\char94}
+\def\fetadportato{\char95}
+\def\fetaumarcato{\char96}
+\def\fetadmarcato{\char97}
+\def\fetaouvert{\char98}
+\def\fetaplusstop{\char99}
+\def\fetaupbow{\char100}
+\def\fetadownbow{\char101}
+\def\fetareverseturn{\char102}
+\def\fetaturn{\char103}
+\def\fetatrill{\char104}
+\def\fetaupedalheel{\char105}
+\def\fetadpedalheel{\char106}
+\def\fetaupedaltoe{\char107}
+\def\fetadpedaltoe{\char108}
+\def\fetaflageolet{\char109}
+\def\fetasegno{\char110}
+\def\fetacoda{\char111}
+\def\fetarcomma{\char112}
+\def\fetalcomma{\char113}
+\def\fetaarpeggio{\char114}
+\def\fetatrill-element{\char115}
+\def\fetaarpeggioarrowdown{\char116}
+\def\fetaarpeggioarrowup{\char117}
+\def\fetatrilelement{\char118}
+\def\fetaprall{\char119}
+\def\fetamordent{\char120}
+\def\fetaprallprall{\char121}
+\def\fetaprallmordent{\char122}
+\def\fetaupprall{\char123}
+\def\fetadownprall{\char124}
+\def\fetaupmordent{\char125}
+\def\fetadownmordent{\char126}
+\def\fetalineprall{\char127}
+\def\fetapralldown{\char128}
+\def\fetaprallup{\char129}
+\def\fetaeighthflag{\char130}
+\def\fetasixteenthflag{\char131}
+\def\fetathirtysecondflag{\char132}
+\def\fetasixtyfourthflag{\char133}
+\def\fetadeighthflag{\char134}
+\def\fetamenseighthflag{\char135}
+\def\fetamens1eighthflag{\char136}
+\def\fetamensdeighthflag{\char137}
+\def\fetamensd1eighthflag{\char138}
+\def\fetamenssixteenthflag{\char139}
+\def\fetamens1sixteenthflag{\char140}
+\def\fetamensdsixteenthflag{\char141}
+\def\fetamensd1sixteenthflag{\char142}
+\def\fetamensthirtysecondflag{\char143}
+\def\fetamens1thirtysecondflag{\char144}
+\def\fetamensdthirtysecondflag{\char145}
+\def\fetamensd1thirtysecondflag{\char146}
+\def\fetamenssixtyfourthflag{\char147}
+\def\fetamens1sixtyfourthflag{\char148}
+\def\fetamensdsixtyfourthflag{\char149}
+\def\fetamensd1sixtyfourthflag{\char150}
+\def\fetagracedash{\char151}
+\def\fetadsixteenthflag{\char152}
+\def\fetadthirtysecondflag{\char153}
+\def\fetadsixtyfourthflag{\char154}
+\def\fetamenseighthflag{\char155}
+\def\fetamens1eighthflag{\char156}
+\def\fetamensdeighthflag{\char157}
+\def\fetamensd1eighthflag{\char158}
+\def\fetamenssixteenthflag{\char159}
+\def\fetamens1sixteenthflag{\char160}
+\def\fetamensdsixteenthflag{\char161}
+\def\fetamensd1sixteenthflag{\char162}
+\def\fetamensthirtysecondflag{\char163}
+\def\fetamens1thirtysecondflag{\char164}
+\def\fetamensdthirtysecondflag{\char165}
+\def\fetamensd1thirtysecondflag{\char166}
+\def\fetamenssixtyfourthflag{\char167}
+\def\fetamens1sixtyfourthflag{\char168}
+\def\fetamensdsixtyfourthflag{\char169}
+\def\fetamensd1sixtyfourthflag{\char170}
+\def\fetagracedash{\char171}
+\def\fetadgracedash{\char172}
+\def\fetastem{\char173}
+\def\fetadstem{\char174}
+\def\fetaaltoclef{\char175}
+\def\fetacaltoclef{\char176}
+\def\fetabassclef{\char177}
+\def\fetacbassclef{\char178}
+\def\fetatrebleclef{\char179}
+\def\fetactrebleclef{\char180}
+\def\fetavatdoclef{\char181}
+\def\fetavatcdoclef{\char182}
+\def\fetavatfaclef{\char183}
+\def\fetavatcfaclef{\char184}
+\def\fetameddoclef{\char185}
+\def\fetacmeddoclef{\char186}
+\def\fetamedfaclef{\char187}
+\def\fetacmedfaclef{\char188}
+\def\fetaneomenscclef{\char189}
+\def\fetacneomenscclef{\char190}
+\def\fetapetruccicclef{\char191}
+\def\fetacpetruccicclef{\char192}
+\def\fetamenscclef{\char193}
+\def\fetacmenscclef{\char194}
+\def\fetapetruccifclef{\char195}
+\def\fetacpetruccifclef{\char196}
+\def\fetamensfclef{\char197}
+\def\fetacmensfclef{\char198}
+\def\fetamensgclef{\char199}
+\def\fetacmensgclef{\char200}
+\def\fetapetruccigclef{\char201}
+\def\fetacpetruccigclef{\char202}
+\def\fetahufnageldoclef{\char203}
+\def\fetachufnageldoclef{\char204}
+\def\fetahufnagelfaclef{\char205}
+\def\fetachufnagelfaclef{\char206}
+\def\fetahufnageldofaclef{\char207}
+\def\fetachufnageldofaclef{\char208}
+\def\fetapercussionclef{\char209}
+\def\fetacpercussionclef{\char210}
+\def\fetatabclef{\char211}
+\def\fetactabclef{\char212}
+\def\fetafourfourmeter{\char213}
+\def\fetaallabreve{\char214}
+\def\fetaoldfourfourmeter{\char215}
+\def\fetaoldallabreve{\char216}
+\def\fetaoldthreetwometer{\char217}
+\def\fetaoldsixfourmeter{\char218}
+\def\fetaoldninefourmeter{\char219}
+\def\fetaoldthreefourmeter{\char220}
+\def\fetaoldsixeightmeter{\char221}
+\def\fetaoldnineeight{\char222}
+\def\fetaoldfoureightmeter{\char223}
+\def\fetaoldsixeightmeteralt{\char224}
+\def\fetaoldtwofourmeter{\char225}
+\def\fetapedal-asterisk{\char226}
+\def\fetapedal-dash{\char227}
+\def\fetapedal-dot{\char228}
+\def\fetapedal-P{\char229}
+\def\fetapedal-d{\char230}
+\def\fetapedal-e{\char231}
+\def\fetapedal-Ped{\char232}
+\def\fetaaccDiscant{\char233}
+\def\fetaaccDot{\char234}
+\def\fetaaccFreebase{\char235}
+\def\fetaaccStdbase{\char236}
+\def\fetaaccBayanbase{\char237}
+\def\fetaaccSB{\char238}
+\def\fetaaccBB{\char239}
+\def\fetaaccOldEE{\char240}
+\def\fetaaccOldEES{\char241}
+\def\fetahufnagel{\char242}
+\def\fetarhufnagel{\char243}
+\def\fetamedicaea{\char244}
+\def\fetarmedicaea{\char245}
+\def\fetavaticana{\char246}
+\def\fetarvaticana{\char247}
+\def\fetamensural{\char248}
+\def\fetarmensural{\char249}