From: Han-Wen Nienhuys Date: Wed, 29 Apr 1998 01:29:36 +0000 (+0200) Subject: release: 0.1.60 X-Git-Tag: release/0.1.60 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=2059367f59496fb11796bd2cf239f6b58625231e;p=lilypond.git release: 0.1.60 --- diff --git a/.dstreamrc b/.dstreamrc index dedc100f50..1e6bbc084b 100644 --- a/.dstreamrc +++ b/.dstreamrc @@ -23,20 +23,27 @@ Vector 0 # lily Atom 0 +Axis_group_administration 0 Bar 0 Beam 0 +Bow 0 +Bezier_bow 1 Change_iterator 0 Chord 0 Chord_iterator 0 Clef_item 0 Col_configuration 0 +Col_hpositions 0 Colinfo 0 Colinfo 0 Collision 0 +Column_rod 0 Engraver 0 Engraver_group_engraver 0 +Graphical_element 0 Group_change_req 0 Head_column 0 +Horizontal_align_item 0 Idealspacing 0 Ineq_constrained_qp 0 Input_translator 0 @@ -50,9 +57,12 @@ Midistrings 0 Mixed_qp 0 Music 0 Music_iterator 0 +Music_output_def 0 +Note_column 0 Note_head 0 Note_performer 0 Note_req 0 +Paper_column 0 Paper_score 1 Paper_def 0 Performer 0 @@ -62,6 +72,7 @@ Request_iterator 0 Rest_collision 0 Rest_collision_engraver 0 Rest_req 0 +Rhythmic_head 0 Rhythmic_req 0 Score 1 Score_column 0 @@ -71,12 +82,15 @@ Score_performer 0 Script_column 0 Script_def 0 Script_req 0 +Single_malt_grouping_item 0 Slur 0 +Spacer_rod 0 Spacing_problem 0 Spanner 0 Spring_spacer 0 Staff 0 Staff_commands 0 +Staff_symbol 0 Stem 0 Stem 0 Stem_req 0 @@ -86,22 +100,13 @@ Symtables 0 Text_def 0 Text_req 0 Time_description 0 +Translation_property 0 +Translator 0 +Translator_group 0 Voice 0 Voice_iterator 0 Word_wrap 0 + delete_identifiers 0 parse_duration 0 parse_pitchmod 0 -Translator_group 0 -Translator 0 -Music_output_def 0 -Graphical_element 0 -Axis_group_administration 0 -Horizontal_align_item 0 -Single_malt_grouping_item 0 -Note_column 0 -Rhythmic_head 0 -Paper_column 0 -Paper_column 0 -Staff_symbol 0 -Column_rod 0 diff --git a/Documentation/Makefile b/Documentation/Makefile index 27248c9ad8..44f2d7792e 100644 --- a/Documentation/Makefile +++ b/Documentation/Makefile @@ -8,7 +8,7 @@ depth = .. # identify module: # NAME = Documentation -SUBDIRS=man +SUBDIRS=man tex # @@ -22,13 +22,10 @@ include ./$(depth)/make/Docrules.make # -DOCFILES = $(wildcard *.doc) -OUTPODFILES = $(addprefix $(outdir)/,$(PODFILES)) -BIBFILES= $(wildcard *.bib) TEXTFILES = $(OUTPODFILES:.pod=.txt) GROFFFILES = $(OUTPODFILES:.pod=.1) HTMLFILES = $(OUTPODFILES:.pod=.html) -DVIFILES = $(addprefix $(outdir)/, $(DOCFILES:.doc=.dvi)) + default: do-doc @@ -41,15 +38,13 @@ giffiles=$(XPMS:.xpm=.gif) gifs: $(addprefix $(outdir)/, $(giffiles)) -EXTRA_DISTFILES = $(XPMS) $(DOCFILES) vocabulary-data vocabulary-forms.el fonts.tex automake.urgh $(BIBFILES) +EXTRA_DISTFILES = $(XPMS) vocabulary-data vocabulary-forms.el automake.urgh # don't do DVI files. They can only be made if lily is installed do-doc: $(TEXTFILES) html: $(HTMLFILES) -dvi: $(DVIFILES) - # generic targets and rules: # include $(depth)/make/Targets.make diff --git a/Documentation/PATCHES.pod b/Documentation/PATCHES.pod index 7fbc7480c0..45089c039f 100644 --- a/Documentation/PATCHES.pod +++ b/Documentation/PATCHES.pod @@ -94,6 +94,20 @@ The Lily directory structure, which looks like: =back +=head1 APPLYING PATCHES + +If you're following LilyPond development regularly, you probably want to +download just the patch for each subsequent release. +After downloading the patch (into the patches directory, of course), simply +apply it: + + gzip -dc ../patches/patch-0.1.49.gz | patch -p1 -E + +and don't forget to make automatically generated files: + + autoconf 1) + configure + =head1 SYNCHRONISE If you're not very quick with sending your patch, there's a good chance @@ -104,10 +118,15 @@ Your best bet is to download the latest release, and apply your patch against this new source tree: cd lilypond-0.1.49 - zpatch -p0 -E < ../patches/patch-0.1.48.jcn1.gz + gzip -dc ../patches/patch-0.1.48.jcn1.gz | patch -p1 -E + autoconf 1) + configure Then, make a patch as shown above. +1) patches don't include automatically generated files, i.e. F + and files generated by F. + =head1 MAINTAINER Han-Wen Nienhuys diff --git a/Documentation/colorado.bib b/Documentation/colorado.bib deleted file mode 100644 index 2955972393..0000000000 --- a/Documentation/colorado.bib +++ /dev/null @@ -1,452 +0,0 @@ -% -% from the University of Colorado Engraving page (by Alyssa Lamb) -% - -@Book { -author ={Jacob, Archibald}, -year={ 1947}, -title = {Musical handwriting : or, How to put music on paper : A handbook for all musicians, professional and amateur}, -address ={ London} -publisher ={Oxford University Press}, -subject = { Musical notation}, -} - -@Book { -author ={Brandt, Carl, and Roemer, Clinton}, -title = {Standardized Chord Symbol Notation}, -address={Sherman Oaks, CA} -publisher={Roerick Music Co.} -} - -@Book { -author = {Johnson, Harold M}, -year = {1946}, -title = {How to write music manuscript an exercise-method handbook for the music student, copyist, arranger, composer, teacher}, -publisher={ Carl Fischer, Inc. } -address= {New York} -subject = {Musical notation --Handbooks, manuals}, -} - -@Book { -title = {Music Printing & Publishing}, -editedby={ Donald W. Krummel \& Stanley Sadie}, -author = {?} -year = {1990}, -series={ The Norton/Grove Handbooks in Music.} -publisher={W.W. Norton} -} - -@Book { -author={Foss, Hubert}, -title = {Music Printing}, -series = {Practical Printing and Binding}, -address={ London}, -publisher={ Oldhams Press Ltd., Long Acre.} -} - -@Book { -author = {Steele, Robert}, -year = {1903}, -title = {The Earliest English Music Printing}, -address={ London}, -} -@Book { -author={Austin, Ernest}, -title = {The Story of Music Printing}, -address={ London}, -publisher={Lowe and Brydone Printers, Ltd.} -} - -} - -@Book { -title = {Pictoral History of Music Printing}, -address={E;lhardt, Indiana} -publisher={H. and A. Selmer, Inc.} -} - -@Book { -author = {Scholderer, Victor}, -year = {1963}, -title = {Johann Gutenberg}, -address={ London}, -publisher={ British Museum}, -} - -@Book{ -author = {Wintermitz, Emmanuel}, -year = {1955}, -title = {Musical Autographs from Monteverdi to Hindemith}, -address={Princeton} -publisher={Princeton University Press}, -} - -@Book{ -author = {Wolf, Johannes}, -year = {1919}, -title = {Handbuch der Notationskunde}, -address={Leipzig}, -publisher={ Breitkopf & Hartel.} -} -@Book{ - -author = {Novello, A}, -year = {1847}, -title = {Some Account of the Methods of Musick Printing, with Specimens of the Various Sizes of Moveable Types and of Other Matters}, -address={ London}. -} - -@Book{ -author={Chrsander, F.} -year={18??} -title={A Sketch of the HIstory of Music printing, from the 15th to the 16th century}, -} -@Book{ -author = {Squire, W}, -year = {1897}, -title = {Notes on Early Music Printing}, -, title = {Bibliographica}, -, iii, 99. -} - -@Book{ -author = {Meyer, K. and O'Meara, J}, -year = {1935}, -title = {The Printing of Music, 1473-1934}, -, title = {The Dolphin}, -, ii, p.171-207. - -@Book{ -author = {Pattison, B}, -year = {1939}, -title = {Notes on Early Music Printing}, -,title = {The Library}, -, 4th ver., xix, p.389-421. -} - -@Book{ -author = {Barksdale, A}, -year = {1957}, -title = {The Printed Note: 500 Years of Music Printing and Engraving}, -address={Toledo, Ohio} -note={(exhibition catalogue, the Toledo Museum of Art).} -} - -@Book{ -author = {King, H}, -year = {1964}, -title = {Four Hundred Years of Music Printing}, -London. -} - -@Book{ -Gamble, W. 1923 (Rev. 1971). title = {Music Engraving and Pinting, Historical And Technical Treatise}, -Londond. - -Deutsch, O.F. 1946 (Rev.1961). title = {Music Publishers' Numbers}, -London. -} - -@Book{ -author = {Marco, G.A}, -year = {1962}, -title = {The Earliest Music Printers of Continental Europe: a Checklist of Facsimiles Illustrating Their Work}, -Charlottesville, Virginia. -} - -@Book{ -author = {Kinkeldey, O}, -year = {1932}, -title = {Music And Music Printing in Incunabula}, -, title = {Papers of the Bibliographical Society of America}, -, xxvi, p.89-118. -} - -@Book{ -author = {Oldman, C.B}, -year = {1934}, -title = {Collecting Musical First Editions}, -London. -Also in: Carter, J. 1934. title = {New Paths in Book Collecting}, -London. - -Krummel, D.W. 1958-9. title = {Graphic Analysis in Application to Early American Engraved Music}, -, title = {Notes}, -, xvi, p.213. -} - -@Book{ -author = {Krummel, D.W}, -year = {1971}, -title = {Oblong Format in Early Music Books}, -, title = {The Library}, -, 5th ser., xxvi, p.312. -} - -@Book{ -author = {King, A.H}, -year = {1973}, -title = {The 50th Anniversary of Music Printing}, -, title = {M_________}, -, cxiv. -} - -@Book{ -Rastall, Richard. 1982. title = {The notation of Western music : an introduction}, -New York, N.Y.: St. Martin's Press. -subject = { Musical notation}, - - -} - -@Book{ -author = {Tappelot, Willy}, -year = {1947}, -title = {La Notation Musicale}, -Paris: Neuchatel. -} - -@Book{ -author = {Williams, C.F. Abdy}, -year = {1903}, -title = {The Story of Notation}, -New York: Charles Scribner's Sons. -} - -@Book{ -author = {Rosenthal, Carl A}, -year = {1967}, -title = {A Practical Guide to Music Notation}, -New York: MCA Music. - -
    } - -@Book{ -Apel, Willi. 1953. title = {The notation of polyphonic music, 900-1600.}, -Cambridge, Mass.: Mediaeval Academy of America. -subject = {Musical notation}, -} - -@Book{ - - -Berger, Anna Maria Busse. 1993. title = {Mensuration and proportion signs : origins and evolution}, -Oxford, England: Clarendon Press; New York: Oxford University Press . -} - -@Book{ -Parrish, Carl. 1957. title = {The notation of medieval music}, -New York : Norton. -subject = {Musical notation}, - - -} - -@Book{ -author = {Parrish, Carl}, -year = {1946}, -title = { The Notation of Medieval Music}, -New York: Carl Fischer, Inc. -} - -@Book{ -author = {Patch, Harry}, -year = {1949}, -title = { Genesis of a Music}, -Madison: University of Wisconsin Press. -} - -@Book{ -Cage, John. 1969. title = {Notations}, -New York: Something Else Press. -subject = { Music, Manuscripts, Facsimiles}, - -(Facsimiles of holographs from the Foundation for Contemporary Performance Arts, with text by 269 composers, but rearranged using title = {chance operations.}, -) -} - -@Book{ -author = {Gaburo, Virginia}, -year = {1977}, -title = {Notation}, -publisher= {Lingua Press: La Jolla, California}. -subject = { A Lecture about notation, new ideas about}, - - -} - -@Book{ -author = {Risatti, Howard}, -year = {1975}, -title = {New Music Vocabulary}, -Urbana, Illinois: University of Illinois Press. -subject = { A Guide to Notational Signs for Contemporary Music}, - - -} - -@Book{ -author = {Boehm, Laszlo}, -year = {1961}, -Modern Music Notation. New York: G. Schirmer, Inc. -} - -@Book{ -author = {Cowell, Henry}, -year = {1930}, -title = {New Musical Resources}, -New York: Alfred A. Knopf, Inc. - -author = {Cowell, Henry}, -year = {1927}, -title = {Our Inadequate Notation}, -,title = {Modern Music}, -, Vol. 4, No. 3. -} - -@Book{ -author = {Bowers, Roger}, -year = {1992}, -title = {Music & Letters}, -v73, n3, August, p347(52) - -Some reflection upon notation and proportion in Monteverdi's mass and vespers. -} - -@Book{ -author = {Brainard, Paul}, -year = {1992}, -title = {Current Musicology}, -n50, July-Dec, p21(26) - -Proportional notation in the music of Schutz and his contemporaries in the 17th Century.} - -@Book{ - -author = {Monelle, Raymond}, -year = {1989}, -title = {Comparative Literature}, -v41, n3, Summer, p252(18) - -Music notation and the poetic foot. -} - -@Book{ -author = {Pinegar, Sandra}, -year = {1993}, -title = {Current Musicology}, -n53, July, p99(10) -The seeds of notation and music paleography. - -author = {Smith, Norman E}, -year = {1990}, -title = {Current Musicology}, -n45-47, Jan-Dec, p283(22) - -The notation of fractio modi. -} - -@Book{ -author = {Treitler, Leo}, -year = {1992}, -title = {The Journal of Musicology}, -v10, n2, Spring, p131(61) - -The title = {unwritten}, -and title = {written transmission}, -of medieval chant and the start-up of musical notation. - -Notational practice developed in medieval music to address the written tradition for chant which interacted with the unwritten vocal tradition... -} - -@Book{ -author = {West, M.L}, -year = {1994}, -title = {Music & Letters}, -v75, n2, May, p161(19) -The Babylonian musical notation and the Hurrian melodic texts. - -A new way of deciphering the ancient Babylonian musical notation... - -} - -@Book{ -author = {Brown, Earle}, -year = {1986}, -title = {Musical Quarterly}, -v72, Spr, p180(22) - -The notation and performance of new music. -} - -@Book{ -author = {Eggleston, Suzanne}, -year = {1994}, - -title = {Notes}, -v51, n2, Dec, p657(7) - -New periodicals - -A list of new music periodicals covering the period Jun.-Dec. 1994. Includes aims, formats and a description of the contents of each listed periodical. Includes title = {Music Notation News}, - -} - -@Book{ - -author = {Fuller, David}, -year = {1989}, -title = {The Journal of Musicology}, -v7, n1, Wntr, p21(8) - -Notes and inegales unjoined: defending a definition. (written-out inequalities in music notation). -} - -@Book{ - -author = {Jones, David Evan}, -year = {1990}, -title = {Perspectives of New Music}, - - -Speech extrapolated. (includes notation) - -} - -@Book{ - -author = {Lependorf, Jeffrey}, -year = {1989}, -I>Perspectives of New Music v27, n2, Summer, p232(20) - -Contemporary notation for the shakuhachi: a primer for composers. (Tradition and Renewal in the Music of Japan) - -} - -@Book{ -author = {Rastall, Richard}, -year = {1993}, -title = {Music & Letters}, -v74, n4, Nov, p639(2) -Equal Temperament Music Notation: The Ailler-Brennink Chromatic Notation. Results and Conclusions of the Music Notation Refor by the Chroma Foundation (book reviews). -} - -@Book{ -
      -Francois, Jean-Charles.title = {Perspectives of New Music}, -v30, n1, Wntr, p6(15) - -1992. -Writing without representation, and unreadable notation. by Jean-Charles Francois. -Modern music has outgrown notation. While the computer is used to write down music with accuracy never before achieved, the range of modern sounds has surpassed the relevance of the computer... -} - -@Book{ -author = {Hamel, Keith A}, -year = {1989}, - -title = {Perspectives of New Music}, -v27, n1, Wntr, p70(14) - -A design for music editing and printing software based on notational syntax. (computer music) - diff --git a/Documentation/engraving.bib b/Documentation/engraving.bib deleted file mode 100644 index ad34b6a0a3..0000000000 --- a/Documentation/engraving.bib +++ /dev/null @@ -1,561 +0,0 @@ -@Book{rastall, - author = {Richard Rastall}, - ALTeditor = {}, - title = {The Notation of Western Music: an - Introduction}, - publisher = {J. M. Dent \6& Sons London}, - year = {1983}, - key = {}, - volume = {}, - number = {}, - series = {}, - address = {}, - edition = {}, - month = {}, - note = {}, - comment = {Interesting account of the evolution and origin of common notation starting from neumes, and ending with modern innovations HWN}, - annote = {}, -} - -@Book{ross, - author = {Ted Ross}, - title = {Teach yourself the art of music engraving and processing}, - publisher = {Hansen House}, - year = {1987}, - key = {}, - volume = {}, - number = {}, - series = {}, - address = {}, - edition = {}, - month = {}, - comment = {This is about engraving, i.e. professional typesetting. It contains - directions on good typesetting, but the sections on reproduction - technicalities, how to use pens and history are interesting. - Especially the section on Music Typewriters is amusing HWN}, - annote = {}, -} - -@Article{blostein94, - author = {Dorothea Blostein and Lippold Haken}, - title = {The Lime Music Editor: A Diagram Editor Involving Complex - Translations}, - journal = {Software Practice and Experience}, - year = {1994}, - key = {}, - volume = {24}, - number = {3}, - month = {march}, - pages = {289--306}, - note = {}, - annote = {}, - comment = {A description of various conversions, decisions and issues relating to this interactive editor HWN}, -} - - - -@Book {wanske, - comment = {I. A very thorough overview of engraving practices of various craftsmen. It includes detailed specs of characters, dimensions etc. II. a thorough overview of a anonymous (by now antiquated) automated system. EDV Means e(lektronischen) D(aten)v(erarbeitung), electronic data processing HWN}, - year = {1988}, - title = {Musiknotation --- Von der Syntax des Notenstichs zum EDV-gesteuerten Notensatz}, - author = {Helene Wanske}, - publisher = {Schott-Verlag}, - address = {Mainz}, - isbn = {ISBN 3-7957-2886-x}, -} - - - - -@Book{, - ALTauthor = {}, - ALTeditor = {}, - title = {}, - publisher = {}, - year = {}, - key = {}, - volume = {}, - number = {}, - series = {}, - address = {}, - edition = {}, - month = {}, - note = {}, - annote = {}, -} - - - -@Book {, - year = {1993}, - title = {Standard Music Notation Practice}, - author = {Maxwell Weaner and Walter Boelke}, - totalentry = {revised edition by Arnold Broido and Daniel Dorff.}, - publisher = { Music Publisher's Association of the United States Inc}, - address = {New York} -} - - - -@Book {, - comment = {Sound (boring) review of the various hairy rhythmic notations used by avant-garde composers HWN}, - year = {1978}, - title = {Modern Rhythmic Notation}, - author = {Gardner Read}, - publisher = {Indiana University Press}, -} - - -@Book {, - comment = {This is as close to the ``standard'' reference work for music notation issues as one is likely to get. MB}, - title = {Music Notation: a Manual of Modern Practice}, - author = {Gardner Read}, - totalentry = {(2nd edition)}, - publisher ={Taplinger Publishing}, - address ={New York}, - note = { (Out of print)}, -} - - -@Book{, - ALTauthor = {}, - ALTeditor = {}, - title = {}, - publisher = {}, - year = {}, - OPTkey = {}, - OPTvolume = {}, - OPTnumber = {}, - OPTseries = {}, - OPTaddress = {}, - OPTedition = {}, - OPTmonth = {}, - OPTnote = {}, - OPTannote = {} -} - -@Book {, - year = {1948}, - title = {Aus der Werkstatt eines Notenstechers}, - author = {Karl Hader}, - publisher = {Waldheim--Eberle Verlag}, - address ={Vienna}, - - comment = {Hader was the chief-engraver of the Waldheim-Eberle music - publishers. This book contains the most important rules on engraving -(according to [Chlapik])}, - -} - - - -@Booklet {, - comment = {Pamphlet explaining some fine points in music font design HWN}, - year = {1996}, - title = {Standard music notation specifications for computer programming. }, - month = {December}, - publisher = {MPA}, -} - -@TechReport{, - comment = {Rules on formatting music formulated for use in computers. Mainly distilled from [Ross] HWN}, - year = {1988}, - title = {Music Formatting Guidelines,}, - author = {D. Roush}, - note={Technical Report OSU-CISRC-3/88-TR10}, - institution ={Department of Computer and Information Science, The Ohio State University}, -} - - - -@PhdThesis {, - year = {1985}, - title = {Music Notation by Computer}, - author = {Donald Byrd}, - institution = {Dissertation Indiana University}, -} - - -@Article {, - year = {1974}, - title = {A System for Music Printing by Computer}, - author = {Donald Byrd}, - journal = {Computers and the Humanities}, - volume ={ 8}, - pages ={161-72}, -} - - -@Book {, - comment = {If I remember correctly, this was concerned more with an input language than with the typography. SP}, - year = {1973}, - title = {Editing and Printing Music by Computer}, - author = {Leland Smith}, - totalentry = {Journal of Music Theory}, - volume={ 17}, - pages ={292-309}, -} - - -@PhdThesis {, - year = {1975}, - title = {A Computer-Oriented System for Music Printing}, - author = {David A Gomberg}, - school = {Washington University}, -} - - -@Book {, - comment = {Annual editions since 1985, many containing surveys of music typesetting technology. SP}, - title = {Directory of Computer Assisted Research in Musicology}, - author = {Walter B Hewlett. and Eleanor Selfridge-Field}, - totalentry = {Menlo Park, CA: Center for Computer Assisted Research in the Humanities}, -} - - -@Book {, - title = {A Computer-oriented System for Music Printing}, - author = {David A. Gomberg; }, - - journal = {Computers and the Humanities}, - volume={11}, - pages = {63-80}, -} - - -@TechReport {, - comment = {Algorithm for generating spacing in one line of (polyphonic) music, tailored for use with MusiCopy. LilyPond uses a variant of it (as of pl 76) HWN}, - year = {1987}, - title = {Spacing a Line of Music,}, - author = {John S. Gourlay}, - totalentry = {OSU-CISRC-10/87-TR35}, - institution ={ Department of Computer and Information Science, The Ohio State University}, -} - - -@TechReport {, - comment = {A brief overview of MusiCopy HWN}, - year = {1987}, - title = {MusiCopy: An automated Music Formatting System}, - author = {Allen Parish, Wael A. Hegazy, John S. Gourlay, Dean K. Roush and F. Javier Sola}, - totalentry = {OSU-CISRC-10/87-TR29}, - institution ={ Department of Computer and Information Science, The Ohio State University}, -} - - -@TechReport {, - comment = {This paper discusses the development of algorithms for the formatting of musical scores (from abstract). It also appeared at PROTEXT III, Ireland 1986}, - year = {1987}, - title = {Computer Formatting of Music,}, - author = {John S. Gourlay, A. Parrish, D. Roush, F. Sola, Y. Tien}, - totalentry = {OSU-CISRC-2/87-TR3}, - institution ={Department of Computer and Information Science, The Ohio State University}, -} - - -@TechReport {, - comment = {Describes the "parser" which converts MusiCopy MDL to MusiCopy Simultaneities & columns HWN}, - year = {1987}, - title = {On the Implementation of the MusiCopy Language Processor,}, - author = {Wael A. Hegazy}, - number = { OSU-CISRC-10/87-TR34}, - institution={ Department of Computer and Information Science, The Ohio State University}, -} - - -@TechReport {, - comment = {This generalizes TeX's breaking algorithm to music. It also appeared in Document Manipulation and Typography, J.C. van Vliet (ed) 1988. HWN}, - year = {1987}, - title = {Optimal line breaking in music}, - author = {Wael A. Hegazy and John S. Gourlay}, - totalentry = { OSU-CISRC-8/87-TR33}, - institution={Department of Computer and Information Science, The Ohio State University, }, -} - - -@TechReport {, - comment = {User manual of MusiCopy. Includes an impressive example piece. HWN}, - year = {1987}, - title = {Using MusiCopy}, - author = {Dean K. Roush}, - totalentry = { OSU-CISRC-18/87-TR31}, - institution={ Department of Computer and Information Science, The Ohio State University}, -} - - -@TechReport {, - comment = {Placement of balls, stems, dots which occur at the same moment ("Simultaneity") HWN}, - year = {1987}, - title = {Computer Formatting of Musical Simultaneities,}, - author = {A. Parrish and John S. Gourlay}, - institution={ Department of Computer and Information Science, The Ohio State University}, -} - totalentry = { OSU-CISRC-10/87-TR28}, -} - - -@TechReport {, - comment = {Overview of a procedure for generating slurs HWN}, - year = {1987}, - title = {Computer Design of Musical Slurs, Ties and Phrase Marks,}, - author = {F. Sola}, - institution={ Department of Computer and Information Science, The Ohio State University}, - totalentry = { OSU-CISRC-10/87-TR32}, -} - - -@TechReport {, - institution={ Department of Computer and Information Science, The Ohio State University}, - comment = {Calculating beam slopes HWN}, - year = {1987}, - title = {Design of Musical Beams,}, - author = {F. Sola and D. Roush}, - totalentry = { OSU-CISRC-10/87-TR30}, -} - - -@Article {, - comment = {This paper describes the MusiCopy musicsetting system and an input language to go with it. HWN}, - year = {1986}, - title = {A language for music printing}, - author = {John. S. Gourlay}, - journal = { Communications of the ACM}, - volume= { 29 }, - number ={5}, - pages = {388--401}, -} - - - - -@Article {, - comment = {A description of Lime internals (which resemble older (before 0.0.68pre) LilyPond data structures somewhat) HWN}, - year = {1993}, - title = {The Tilia Music Representation: Extensibility, Abstraction, and Notation Contexts for the Lime Music Editor}, - author = {Lippold Haken and Dorothea Blostein}, - journal = { Computer Music Journal}, - volume= {17}, - number={ 3}, - pages = {43--58}, -} - - -@Article {, - comment = {This describes an algorithm which uses springs between adjacent columns. This algorithm is a "subclass" of the LilyPond algorithm. HWN}, - year = {1995}, - title = {A New Algorithm for Horizontal Spacing of Printed Music}, - author = {Lippold Haken and Dorothea Blostein}, - totalentry = {Lippold Haken and Dorothea Blostein. ``A New Algorithm for Horizontal Spacing of Printed Music'', International Computer Music Conference, Banff, Sept. 1995}, - pages = {118-119}, -} - -@Article {, - comment = {This paper provides a shallow overview of the algorithm used in LIME for spacing individual lines. HWN}, - year = {1991}, - title = {Justification of Printed Music}, - author = {Dorothea Blostein and Lippold Haken}, - totalentry = {Communications of the ACM}, - volume={J34}, - number={ 3},month={ March}, pages = {88-99}, -} - - -@Article {, - comment = {Describes a system called MusicEase, and explains that it uses "constraints" (which go unexplained) to automatically position various elements. HWN}, - year = {1996}, - title = {Creating Printed Music Automatically}, - author = {Gary M. Rader}, - journal = {Computer}, - volume={ 29}, - number={6}, - month={June}, pages = {61--69}}, - - -@PhdThesis {, - comment = {Don't ask Stephen for a copy. Write to the Bodleian Library, Oxford, or to the British Library, instead. SP}, - year = {1988}, - title = {Computer Tools for Music Information Retrieval}, - author = {Stephen Dowland Page}, - school ={ Dissertation University of Oxford}, -} - -@MastersThesis{, - comment = {This dutch thesis describes a simplistic (monophonic) typesetting system, and focuses on the breaking algorithm, which is taken from Hegazy & Gourlay HWN}, - year = {1991}, - title = {Een Geautomatiseerd Systeem voor het Afdrukken van Muziek}, - author = {Ren\'e Roelofs}, - totalentry = {Ren\'e Roelofs. ``Een Geautomatiseerd Systeem voor het Afdrukken van Muziek'' afstudeerscriptie Bestuurlijke informatica, no 45327, Erasmus universiteit Rotterdam, 1991. (``An automated system for printing music'' Master's Thesis Managerial Computer Science.)}, -} - - -@Article {, - year = {1993}, - title = {Representation and manipulation of music documents in SceX}, - author = {Miguel Filgueiras and Jos\'e Paulo Leal}, - journal= { Electronic Publishing}, - volume={ 6}, - number={4}, pages = {507--518}, - -} - - -@Article {, - comment = {A paper on a TROFF preprocessor to typeset music. The output shown is not very sophisticated, and contains some typographical atrocities HWN}, - year = {1987}, - title = {Music --- A language for typesetting music scores}, - author = {Eric Foxley, }, - journal={ Software --- Practice and Experience, }, - volume={ 17}, - number={8}, pages = {485-502}, - -} - - -@Book {, - year = {1996}, - title = {Implementing a Symbolic Music Processing System}, - author = {Miguel Filgueiras}, - totalentry = {LIACC, Universidade do Porto, 1996; submitted}, -} - -@Book {, - title = {Some Music Typesetting Algorithms}, - author = {Miguel Filgueiras}, - totalentry = {Miguel Filgueiras. ``Some Music Typesetting Algorithms''. LIACC, Universidade do Porto, forthcoming}, -} - - -@Book {, - comment = {A concise, alphabetically ordered list of typesetting and music (notation) issues with a rather simplistic attitude but in most cases "good-enough" answers JCN}, - year = {1996}, - title = {Essential Dictionary of Music Notation}, - author = {Tom Gerou and Linda Lusk}, - publisher = {Alfred Publishing}, - address ={Van Nuys CA}, - isbn ={ ISBN 0-88284-768-6}, -} - - -@Book {, - comment = {An clearly written book for the casually interested reader. It shows some of the conventions and difficulties in printing music HWN}, - year = {1987}, - title = {Die Praxis des Notengraphikers}, - author = {Herbert Chlapik}, - publisher = {Doblinger}, - isbn ={ ISBN 3-9000 035-96-2}, -} - - -@Book {, - comment = {Webpages about engraving (designed with finale users in mind) (sic) HWN}, - institution = {The University of Colorado}, - title ={The University of Colorado Music Engraving page.}, - url={http://obenamots.cc.colorado.edu/Musicpress/engraving.html}, -} - - - - -@Book {, - year = {1963}, - author = {Anthony Donato}, - title ={ Preparing Music Manuscript}, - address ={ Englewood Cliffs, NJ}, - publisher={Prentice-Hall}, -} - - -@Book {, - year = {1900}, - title = {Uitgeven van muziek}, - author = {Donemus}, - publisher= {Donemus Amsterdam}, -} - - -@Book {, - year = {1987}, - title = {The Norton Manual of Music Notation}, - author = {George Heussenstamm}, - address= { New York}, - publisher={ Norton}, -} - - -@Book {, - year = {1972}, - title = {Notation in New Music; a critical guide to interpretation and realisation}, - author = {Erdhard Karkoshka}, - translator={Ruth Koenig}, - publisher={Praeger Publishers}, - address={ New York}, - note ={(Out of print)}, -} - - -@Book {, - year = {1973}, - title = {The Art of Music Copying}, - author = {Clinton Roemer}, - publisher={ Roerick music co.}, - address= { Sherman Oaks (CA)}, -} - - -@Book {, - year = {1979}, - title = {Music Notation Primer}, - author = {Glen Rosecrans}, - publisher={Passantino}, - address={New York}, -} - - -@Book {, - year = {1980}, - title = {Music Notation in the Twentieth Century}, - author = {Kurt Stone}, - publisher= {Norton}, - address={New York}, - note ={(Out of print)}, - -} - - -@Book {, - comment = {This paper deals with some command-line tools for music editing and playback. It doesn't mention notation issues, but does come with the grand idea (not) of using music to monitor complex systems. Imagine your nuclear plant supervisor to use AC/DC for checking the reactor HWN}, - year = {1990}, - title = {Unix music tools at Bellcore}, - author = {Peter S. Langston}, - journal={ Software --- Practice and Experience}, - volume={20}, - number={S1}, - pages={47--61}, -} - - - -@URL {, - comment = {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}, - url={ http://wabakimi.carleton.ca/~phacket2/guitar/tabfaq.html}, -} - - -@URL {, - comment = {Specs for NIFF, a comprehensive but binary (yuk) format for notation HWN}, - year = {1995}, - title = {NIFF6a Notation Interchange File Format}, - author = {Cindy Grande, }, - publisher={Grande Software Inc.}, - url={http://www.jtauber.com/music/encoding/niff/}, -} - - -@URL {, - title = {SMDL, Standard Musical Description Language}, - url={ftp://ftp.ornl.gov/pub/sgml/wg8/smdl/10743.pdf}, - note={ISO/IEC DIS 10743}, -} diff --git a/Documentation/faq.pod b/Documentation/faq.pod index 9611c995d0..01ff8a6d89 100644 --- a/Documentation/faq.pod +++ b/Documentation/faq.pod @@ -26,6 +26,19 @@ forget to remove the stale F as well. If the problem persists, then please mail me. +Q: I upgraded by applying a patch, and now my configure/build breaks. + +A: Patches don't include automatically generated files, i.e. F + and files generated by F. Regenerate them yourself: + + autoconf + configure + +You might need to create some extra "out" directories. Do this +with + + make outdirs + Q: Some of your neat scripts fail, what directories do you use: A: [This only applies if you don't do C, and develop out diff --git a/Documentation/fonts.tex b/Documentation/fonts.tex deleted file mode 100644 index a9e1940fbe..0000000000 --- a/Documentation/fonts.tex +++ /dev/null @@ -1,210 +0,0 @@ -\documentclass{article} -\def\kdots{,\ldots,} -\title{Not the Font-En-Tja font} -\author{HWN \& JCN} -\begin{document} -\maketitle - - -\section{Introduction} - -This document are some design notes of the Feta font. Feta (not an -abbreviation of Font-En-Tja) is a font of music symbols. All MetaFont -sources are original. The symbols are modelled after various editions -of music, notably -\begin{itemize} -\item B\"arenreiter -\item Hofmeister -\item Breitkopf -\item Durand \& C'ie -\end{itemize} - -The best references on Music engraving are Wanske\cite{wanske} and -Ross\cite{ross} quite some of their insights were used. Although it -is a matter of taste, I'd say that B\"arenreiter has the finest -typography of all. - - -\section{Bezier curves for slurs} - -Objective: slurs in music are curved objects designating that notes -should fluently bound. They are drawn as smooth curves, with their -center thicker and the endings tapered. - -There are some variants: the simplest slur shape only has the width as -parameter. Then we give some suggestions for tuning the shapes. The -simple slur algorithm is used for drawing ties as well. - - - -\subsection{Simple slurs} - -Long slurs are flat, whereas short slurs look like small circle arcs. -Details are given in Wanske\cite{ross} and Ross\cite{wanske}. The -shape of a slur can be given as a Bezier curve with four control -points: - -\begin{eqnarray*} - B(t) &=& (1-t)^3c_1 +3(1-t)^2tc_2 + 3(1-t)t^2c_3 + t^3c_4. -\end{eqnarray*} - -We will assume that the slur connects two notes of the same -pitch. Different slurs can be created by rotating the derived shape. -We will also assume that the slur has a vertical axis of symmetry -through its center. The left point will be the origin. So we have -the following equations for the control points $c_1\kdots c_4$. - -\begin{eqnarray*} -c_1&=& (0,0)\\ -c_2&=& (i, h)\\ -c_3&=& (b-i, h)\\ -c_4&=& (b, 0) -\end{eqnarray*} - -The quantity $b$ is given, it is the width of the slur. The -conditions on the shape of the slur for small and large $b$ transform -to -\begin{eqnarray*} - h \to h_{\infty} , &&\quad b \to \infty\\ - h \approx r_{0} b, &&\quad b \to 0. -\end{eqnarray*} -To tackle this, we will assume that $h = F(b)$, for some kind of -$F(\cdot)$. One function that satisfies the above conditions is -$$ -F(b) = h_{\infty} \frac{2}{\pi} \arctan \left( \frac{\pi r_0}{2 -h_{\infty}} b \right). -$$ - -For satisfying results we choose $h_{\infty} = 2\cdot \texttt{interline}$ -and $r_0 = \frac 13$. - -\subsection{Height correction} - -Aside from being a smooth curve, slurs should avoid crossing -enclosed notes and their stems. - -An easy way to achieve this is to extend the slur's height, -so that the slur will curve just above any disturbing notes. - -The parameter $i$ determines the flatness of the curve. Satisfying -results have been obtained with $i = h$. - -The formula can be generalised to allow for corrections in the shape, -\begin{eqnarray*} -c_1&=& (0,0)\\ -c_2&=& (i', h')\\ -c_3&=& (b-i', h')\\ -c_4&=& (b, 0) -\end{eqnarray*} -Where -$$ -i' = h(b) (1 + i_{corr}), \quad h' = h(b) (1 + h_{corr}). -$$ - -The default values for these corrections are $0$. A $h_{corr}$ that is -negative, makes the curve flatter in the center. A $h_{corr}$ that is -positive make the curve higher. - -At every encompassed note's x position the difference $\delta _y$ -between the slur's height and the note is calculated. The greatest -$\delta _y$ is used to calculate $h_{corr}$ is by lineair extrapolation. - -However, this simple method produces satisfactory results only for -small and symmetric disturbances. - - -\subsection{Tangent method correction} - -A somewhat more elaborate\footnote{While staying in the realm -of emperic computer science} way of having a slur avoid -disturbing notes is by first defining the slur's ideal shape -and then using the height correction. The ideal shape of a -slur can be guessed by calculating the tangents of the disturbing -notes: -% a picture wouldn't hurt... -\begin{eqnarray*} - y_{disturb,l} &=& \rm{rc}_l x\\ - y_{disturb,r} &=& \rm{rc}_r + c_{3,x}, -\end{eqnarray*} -where -\begin{eqnarray*} - \rm{rc}_l &=& \frac{y_{disturb,l} - y_{encompass,1}} - {x_{disturb,l} - x_{encompass,1}}\dot x\\ - \rm{rc}_r &=& \frac{y_{encompass,n} - y_{disturb,r}} - {x_{encompass,n} - x_{disturb,r}} \dot x + c_{3,x}. -\end{eqnarray*} - -We assume that having the control points $c_2$ and $c_3$ located -on tangent$_1$ and tangent$_2$ resp. -% t: tangent -\begin{eqnarray*} - y_{tangent,l} &=& \alpha \rm{rc}_l x\\ - y_{tangent,r} &=& \alpha \rm{rc}_r + c_{3,x}. -\end{eqnarray*} - -Beautiful slurs have rather strong curvature at the extreme -control points. That's why we'll have $\alpha > 1$. -Satisfactory resulsts have been obtained with -$$ - \alpha \approx 2.4. -$$ - -The positions of control points $c_2$ and $c_3$ are obtained -by solving with the height-line -\begin{eqnarray*} - y_h &=& \rm{rc}_h + c_h. -\end{eqnarray*} - -The top-line runs through the points disturb$_{left}$ and -disturb$_{right}$. In the case that -$$ -z_{disturb,l} = z_{disturb,r}, -$$ -we'll have -$$ - \angle(y_{tangent,l},y_h) = \angle(y_{tangent,r},y_h). -$$ - - - -\section{Sizes} - -Traditional engraving uses a set of 9 standardised sizes for Staffs -(running from 0 to 8). - -We have tried to measure these (helped by a magnifying glass), and -found the staffsizes in table~\ref{fonts:staff-size}. One should note that -these are estimates, so I think there could be a measuring error of ~ -.5 pt. Moreover [Ross] states that not all engravers use exactly -those sizes. - -\begin{table}[h] - \begin{center} - \begin{tabular}{lll} -Staffsize &Numbers &Name\\ -\hline\\ -26.2pt &No. 0\\ -22.6pt &No. 1 &Giant/English\\ -21.3pt &No. 2 &Giant/English\\ -19.9pt &No. 3 &Regular, Ordinary, Common\\ -19.1pt &No. 4 &Peter\\ -17.1pt &No. 5 &Large middle\\ -15.9pt &No. 6 &Small middle\\ -13.7pt &No. 7 &Cadenza\\ -11.1pt &No. 8 &Pearl\\ - - \end{tabular} - \caption{Foo} - \label{fonts:staff-size} - \end{center} -\end{table} - -Ross states that the dies (the stamps to make the symbols) come in -12 different sizes. - -\bibliographystyle{plain} -\bibliography{engraving} - - - -\end{document} diff --git a/Documentation/index.pod b/Documentation/index.pod index 3470425b5b..cc2376a15e 100644 --- a/Documentation/index.pod +++ b/Documentation/index.pod @@ -20,7 +20,7 @@ version this was. =over 4 -=item http://sca.uwaterloo.ca/~praetzel/lilypond/ +=item http://sca.uwaterloo.ca/lilypond/ Eric Praetzel was kind enough to provide a mirror of both the website and the ftp site. @@ -131,7 +131,7 @@ The lilypond logo (medium size, format: .gif) =back -=head2 Documentation: manpages, manuals +=head2 Documentation: manuals =over 4 @@ -144,41 +144,6 @@ PS documents about LilyPond > -=item * - -manual page for mi2mu, the MIDI convertor. - - -=item * - -The manual page - - -=item * - -Easy titling for LilyPond - - -=item * - -The mudela convertor: convert-mudela - - -=item * - -mudela in TeX: mudela-book - - =back =head2 The program diff --git a/Documentation/man/Makefile b/Documentation/man/Makefile index 67d1357ae6..dd1319b14d 100644 --- a/Documentation/man/Makefile +++ b/Documentation/man/Makefile @@ -13,3 +13,5 @@ INSTALLATION_OUT_FILES=$(MANGROFF) INSTALLATION_DIR=$(mandir)/man$(SECTION) include $(depth)/make/Install_outfiles.make + +WWW: $(OUTPODFILES:.pod=.html) diff --git a/Documentation/man/index.pod b/Documentation/man/index.pod new file mode 100644 index 0000000000..e633352326 --- /dev/null +++ b/Documentation/man/index.pod @@ -0,0 +1,50 @@ +=head1 NAME + +The Manuals of LilyPond -- the GNU Project music typesetter + +=head1 DESCRIPTION + +These are the manpages that document LilyPond. + + +=head2 Documentation: manpages, manuals + + +=over 4 + +=item * + +manual page for mi2mu, the MIDI convertor. + + +=item * + +The manual page + + +=item * + +Easy titling for LilyPond + + +=item * + +The mudela convertor: convert-mudela + + +=item * + +mudela in TeX: mudela-book + + +=back diff --git a/Documentation/mudela.doc b/Documentation/mudela.doc deleted file mode 100644 index 60d906ac77..0000000000 --- a/Documentation/mudela.doc +++ /dev/null @@ -1,1166 +0,0 @@ -% -*-tex-*- - -% this document should be run through the mudela-book script after lilypond -% has been installed. The rules have been precooked into the -% Documentation/Rules.make file; do -% -% make out/introduction.dvi -% -% or -% -% mudela-book --outdir=out/ --outname=introduction.mudtex introduction.doc -% latex '\nonstopmode \input out/introduction.mudtex' - -% Hoi Tim, hier staan wat 'enge' commando's (die dingen met een '\' -% zoals \documentclass en \def\mudela...). -% Daar moet je je niets van aantrekken, ga gewoon naar Introduction -% en begin te tiepen. - -\documentclass{report} -\usepackage{a4wide} -\title{Mudela} -\author{Jan Nieuwenhuizen \& Han-Wen Nienhuys} -\date{March 2, 1998} - -\def\file#1{\verb+#1+} - -% ugh: trick to get examples not generate par -% these are for 16pt -\def\mudelapaperlinewidth{-28.452756}% -\def\mudelapaperindent{28.452756}% -\def\mudelapaperrulethickness{0.400000}% -\def\mudelapaperbarsize{16.000000}% -\def\mudelapaperinterline{4.000000}% -\def\mudelapapernotewidth{5.930000}% -\def\mudelapaperwholewidth{8.640000}% -\def\mudelapaperunitspace{22.000000}% -\def\mudelapaperbasicspace{4.000000}% -\def\mudelapapergeometric{0.000000}% -\def\mudelapaperarithmetic_basicspace{2.000000}% -\def\mudelapaperarithmetic_multiplier{4.800000}% -\def\mudelapaperinterbeam{3.140000}% -\def\mudelapapergourlay_energybound{100000.000000}% -\def\mudelapapergourlay_maxmeasures{14.000000}% -% huh? -% \def\exampleheight{2\mudelapaperbarsize pt} -\def\exampleheight{2cm} - -% ful of pars, needs the above -\input lilyponddefs -% generates par -\musixsixteendefs -\def\musixsixteendefs{} -% generates par -\turnOnPostScript% -\def\turnOnPostScript{} -% generates par -\def\interscoreline{} -% - -\begin{document} -\maketitle - -%\def\interexample{\hskip15mm$\Longrightarrow$\hskip15mm} -%\def\interexample{\hbox to10mm{\hfill\hbox to0pt{\hss\vbox to\exampleheight{\vss$\Longrightarrow$\vss}\hss}\hfill}} -\def\interexample{} -\def\preexample{\par} -\def\postexample{\par\medskip} - -\def\file#1{{\texttt{#1}}} -\setcounter{secnumdepth}{-1} - -\chapter{A tutorial} - -\emph{\Large ***Under construction***} - -\section{Introduction} - -This chapter is a gentle introduction to using LilyPond to typeset -simple music. - -LilyPond is a so called ``batch'' program. This means, that you use a -text editor (such as \texttt{emacs} or \texttt{vi}) to create an input -file. When you are done editing your input file, you save it, and you -run LilyPond on the file. If Lily finds any errors in your input file -then she\footnote{ We're sure that if computer programs could have -gender, LilyPond would be a female computer program. So we will refer -to the program as a she. This gender-bending is not to tease you, dear -reader. We do it in real life as well. In the past two years LilyPond -has become sort of a baby daughter to us, keeping us awake at night, -but also providing us lots of joy. We hope you do not mind our little -aberration from computer-manual tradition. -% -% The name LilyPond is actually sort of a girl's name. Can you guess which -% one ? -% -} will complain. If everything is well, than she'll generate a file, that -you can process further to view or print. - -Using LilyPond to print or view some music is a procedure with four -steps. To get you started we'll run down the full procedure for you -once. - -\begin{enumerate} -\item -Fire up your favourite editor (if you know none, try \texttt{joe silly.ly}), -and key in the following text: -\begin{verbatim} -\score { - < - \type Staff = aStaff \melodic { g'2 e'4 } - \type Lyrics = yell \lyric { Air2 ball!4 } - > - \paper {} -} -\end{verbatim} - -Save your file as \file{silly.ly}. - -%The input files for LilyPond have the default extension \file{.ly}. - -\item -Run LilyPond on your newly created file: enter \verb+lilypond silly+. -LilyPond will then print all kinds of mumbo jumbo that can safely be -ignored. You might see something like this: -\begin{verbatim} -GNU LilyPond 0.1.55/FlowerLib 1.1.39 -Parsing ... [/home/hanwen/musix/spacer/init/lily-init.ly[/home/hanwen/ - - ... stuff left out here ... - - Documentation/silly.ly] -Interpreting music ...[1] (time: 0.04 seconds) -Preprocessing elements... -Calculating column positions ... [2] -Approximated: 1 lines, (with an average of 4.0 columns) -Time: 0.01 seconds -warning: Can not solve this casting problem exactly; revert to Word_wrap -[2]Time: 0.00 seconds - -Postprocessing elements... -TeX output to silly.tex ... -\end{verbatim} -All has gone well; there were some warning but no errors. The output -is a TeX file, and it is called \file{silly.tex}. \file{TeX} is -usually spelled as \TeX. It is batch program for typesetting text, -developed by the great programmer and scientist Donald Knuth to -typeset his famous The Art of Computer Programming bookseries. As you -can see \TeX\ can be adapted to do a lot more. In fact, the document -that you are reading now was also done with \TeX. -\item - To do something useful with the output you have to run \TeX\ on it - first. Run the command \verb+tex silly+. The output should resemble this: -\begin{verbatim} -This is TeX, Version 3.14159 (C version 6.1) -(silly.tex -Babel and hyphenation patterns for american, dutch, loaded. -(/home/hanwen/lib/texmf/tex/lilypond/lilyponddefs.tex -(/home/hanwen/lib/texmf/tex/lilypond/dyndefs.tex) -(/home/hanwen/lib/texmf/tex/lilypond/fetdefs.tex -(/home/hanwen/lib/texmf/tex/lilypond/feta20.tex) -(/home/hanwen/lib/texmf/tex/lilypond/lily-ps-defs.tex))) [1] ) -Output written on silly.dvi (1 page, 3084 bytes). -Transcript written on silly.log. -\end{verbatim} - The human translation is ``everything went OK, the result is one - page long, and I put it in \file{silly.dvi}.'' - -\item The \file{silly.dvi} file is a description of how a piece of -text looks when it is printed. You can view it, or print it. If you -are using a Unix system equipped with X-Windows, then you can issue -the command \file{xdvi silly} to view the result. If this is not the -case, consult your local \TeX\ guru on printing and viewing DVI files. -What is in your window should look like this: -\begin{mudela} -\score { - < - \type Staff = aStaff \melodic { g'2 e'4 } - \type Lyrics = yell \lyric { Air2 ball!4 } - > -} -\end{mudela} -\end{enumerate} - -The remainder of this document is not about \TeX, and mostly not even -about LilyPond. What you entered into your text editor in step~1. and -fed to LilyPond is a special kind of file composed of notenames, -special words and punctation. The remainder of this document explains -how to combine these elements to express a piece of music in the -language that LilyPond understands. In other words, we try to explain -how to use LilyPond, and not how LilyPond works. For want of a better -name we call this language Mudela (short for Music Description -Language). - -This document does not cover all of Mudela. Due to technical details, -the precise working of Mudela is coupled to the innards of LilyPond. -If you really want to know all the details, your best bet would be to -get the sources to LilyPond and read the parser and scanner source. -They are in \file{lilypond-x.y.z/lily/parser.y}, -\file{lilypond-x.y.z/lily/lexer.l\footnote{Of course, it would be even -better if you would improve LilyPond and send the resulting diffs to -us. But that would a really different ballpark (And we haven't -started with the programming guide yet.)} - -In the following sections the basic elements of Mudela are presented. -We don't want to bore you too much with details, so we will leave-out -some red tape that's needed for a valid piece of Mudela: to be -precise, we will write \verb+X Y Z+, when we really mean -\begin{verbatim} -\score { - \melodic { X Y Z } - \paper {} -} -\end{verbatim} -Usually, we will also print the resulting fragment of music on the -right just as it was produced by LilyPond. - -For the remainder we will assume that you can carry out steps 1 to 4 -from the above instruction. We will also assume that you know how -music notation works. If you are not familiar with the English terms -for music notation, then you should consult XXXX [FIXME], it contains -a glossary of musical terms. - -\section{Music copying versus music definition} - -If you have done music copying before, then using LilyPond may seem -awkward to you in the beginning. The purpose of LilyPond is informally -explained by the term ``music typesetter.'' - -This may give the impression that the program is like a drawing tool -that lets you control precisely how the music is formatted. This is -not the case: not only does the program print musical symbols, -LilyPond also tries to make esthetic decisions---to be precise, we -programmed her to do what we find pretty. You do not have complete -control over what is happening. On the other hand, good engraving is -a very complex trade, so it is a Good Thing that you do not have to -worry about what is happening. - -Secondly, LilyPond operates on musical definitions. This really is -something different from graphical definitions. If you copy music by -hand from a printed score, you don't have to know what the score -means; you just copy the symbols. With LilyPond such a thing is not -possible: we expect you to enter the meaning of the score, not the -score itself. If put more concretely: you do not enter ``black -notehead without flag, fourth staff line'', but ``a quarter note, -pitch d$^2$''. LilyPond will figure out from the musical info what -kind of graphic presentation is needed. - -This has some drawbacks: most notably, it is difficult to enter sheet -music that you cannot read. On the other hand, any piece of music -once entered can be played and transposed automatically. - - -\section{When you know the notes to print\ldots} - -The basic building block of music is the note. You can have LilyPond -print a note by specifying its pitch and the duration. The pitch of -the central C, also known as c$^1$, is written as \verb+c'+. A quarter -note duration is written as \verb+4+. So, to print quarter note with -central C pitch, you enter the following -\begin[fragment,verbatim,center]{mudela} -c'4 -\end{mudela} -The pitch \verb+c'+ actually consists of two parts: one for the note -name, and one part for the octave. The number of apostrophes -specifies the octave to use, and the letter which note name to use. -The note names simply are the letters \verb+a+ to \verb+g+. - -For example, -\begin[fragment,verbatim]{mudela} - c'4 d'4 e'4 c'4 c''4 d''4 e''4 f''4 g''4 a''4 b''4 c'''4 -\end{mudela} - -The duration of a note is specified as a number: a whole note is -denoted by 1, the half note by 2, the quarter by 4, and so on. Here -are some random notes to show how it works -\begin[fragment,verbatim]{mudela} -'c8 c8 c'16 c''32 d''64 b'64 c'''2 c1 c'4 d'4 e'4 f'4 g'4 a'4 -\end{mudela} - -This gives us already enough material to make simple songs: -\begin[fragment,verbatim]{mudela} - c''4 d''4 e''4 c''4 - e''4 f''4 g''2 - g''8 a''8 g''8 f''8 e''4 c''4 - c''4 g'4 c''2 -\end{mudela} - -There is only one part about pitches that we haven't told you: -chromatically altered pitches. The names ``a'' to ``g'' for typing -pitches are convenient: they are short, pronounceable and they -resemble the normal vocabulary for pitches. - -Enter flats and sharps. In English there is no standard terse word -for C sharp or C flat. For this reason, we implemented a different, -non-english convention for entering altered pitches, see -table~\ref{notename-tab}: one makes a note sharp by adding the suffix -``--is'' to the name, one makes the a note flat by adding the suffix -``--es.'' For a double sharp you simply add another ``--is'' suffix, -flats ditto. - - -\begin{table}[h] - \begin{center} - \caption{Defaults note names}\label{notename-tab} - \begin{tabular}{ll} - english &LilyPond\\ - \hline\\ - c double flat &ceses\\ - c flat &ces\\ - c natural &c\\ - c sharp &cis\\ - c double sharp &cisis\\ - \end{tabular} - - \end{center} -\end{table} - -Variations on this convention are used in a number of germanic -languages, notably Dutch, German, Swedish, and Norwegian. To be -precise, LilyPond actually defaults to dutch notenames, with aes, -aeses, ees and eeses added for consistency. - -If you are not comfortable with these names, you can make your own -names. Included with the example initialisation files are note names -for different languages, among others English (C sharp is abbreviated -to cs), Italian, Swedish, Norwegian - -\section{Hairy rhythms} - -\section{Handy input} - -% \subsection{Durations} - -However, having only quarter notes may get a bit dull. -Durations are entered as their reciproce values -% a1 a2 a4 a a8 a a16 a a32 a a64 a a a a -\begin[fragment,verbatim,center]{mudela} -a1 a2 a4 a a8 a a16 a32 a64 -\end{mudela} -note that you only have to specify -the duration when it changes: -Lily assumes a note has the same duration as the previous one. - -Now we can already write a little tune -\begin[fragment,verbatim,center]{mudela} -c d e c | c d e c | e f g2 -\end{mudela} -As you'll probably have guessed, -the vertical bar (pipe) \verb+|+ may be used to mark -measures. - -In the scale shown above -we left-out the last c note of the next octave. -Postfixing the pitch with a quote \verb+'+ -produces a note by one octave higher -\begin[fragment,verbatim,center]{mudela} -c c' c'' -\end{mudela} - -Prefixing the pitch with a quote \verb+'+ -produces a note by one octave lower -\begin[fragment,verbatim,center]{mudela} -a 'a ''a -\end{mudela} - -\section{Slurs and Ties} - -A tie connects two adjacent noteheads - -\begin[fragment,verbatim,center]{mudela} -e' ~ e -\end{mudela} - -Whereas a slur rather connects `chords', -and tries to avoid crossing stems - -\begin[fragment,verbatim,center]{mudela} -e'( )e -\end{mudela} - -And of course, such a (legato) slur can span several notes -\begin[fragment,verbatim,center]{mudela} -c( d e )f -\end{mudela} - -\section{Beams and Plets} - -A beam is -\begin[fragment,verbatim,center]{mudela} -[a8 a] [a16 a a a] -\end{mudela} - -Here's a beamed triplet -\begin[fragment,verbatim,center]{mudela} -[/3 a8 a a]/1 -\end{mudela} - -a triplet without a beam -\begin[fragment,verbatim,center]{mudela} -\[/3 a4 a8\] -\end{mudela} - -and a combination -\begin[fragment,verbatim,center]{mudela} -[/3 a8 a16 a] a8 \] -\end{mudela} - -Abbreviations -\begin[fragment,verbatim,center]{mudela} -c1:16 [:16 e1 g] -\end{mudela} - -\begin[fragment,verbatim,center]{mudela} -c4:32 [:16 c8 d8] -\end{mudela} - -\section{Notenames} - -Lily has predefined sets of notenames -for various languages% -\footnote{These are Dutch, English, German, Italian and Swedish. -Simply include the language specific init file \file{}.}. -The default set are the ones we like best are the Dutch notenames. - -A sharp is formed by adding \verb+is+ -\begin[fragment,verbatim,center]{mudela} -cis dis eis fis gis ais bis -\end{mudela} - -and a flat is formed by adding \verb+es+% -%\footnote{Exceptions: \verb+es+ and \verb+as+.} -\footnote{Exceptions: {\tt es} and {\tt as}.} -\begin[fragment,verbatim,center]{mudela} -ces des es fes ges as bes -\end{mudela} - -With the obvious names for double sharps -\begin[fragment,verbatim,center]{mudela} -cisis disis eisis fisis gisis aisis bisis -\end{mudela} - -and double flats -\begin[fragment,verbatim,center]{mudela} -ceses deses eses feses geses ases beses -\end{mudela} -See why we like-em? - -There are two special `notenames', the rest -\begin[fragment,verbatim,center]{mudela} -r16 [a a a] -\end{mudela} - -and the space -\begin[fragment,verbatim,center]{mudela} -a2 s-"diminuendo" | a -\end{mudela} - - -\section{Commands} - -\begin[fragment,verbatim,center]{mudela} -\clef "bass"; 'c -\end{mudela} - -and a clef-change -\begin[fragment,verbatim,center]{mudela} -\clef "violin"; f' e' \clef "alto"; d' c' -\end{mudela} - -\begin[fragment,verbatim,center]{mudela} -\meter 3/4; c g g | -\end{mudela} - -\begin[fragment,verbatim,center]{mudela} -\key fis cis; -'g 'a 'b cis d e fis g' -\end{mudela} -Note how Mudela allows you to -convey a musical message -rather than forces you to produce a list of typesetting commands. -If the music a \verb+cis+, you type a \verb+cis+. -Depending on the key and context of the note -Lily will determine what accidentals to typeset. - -A reminder accidental can be forced by -using an exclamation mark \verb+!+ -on a pitch a reminder accidental -\begin[fragment,verbatim,center]{mudela} -cis d e cis | c! d e c | -\end{mudela} - -\begin[fragment,verbatim,center]{mudela} -\meter 2/4; -\bar "|:"; c c \bar ":|:"; c c \bar ":|"; c c \bar "|."; -\end{mudela} - -\section{Chords and Voices} - -Here's a simple chord -\begin[fragment,verbatim,center]{mudela} - -\end{mudela} - -here are a few -\begin[fragment,verbatim,center]{mudela} -< - { c()d()c } - { e()f()e } - { g()a()g } -> -\end{mudela} - -and similarly voices -\begin[fragment,verbatim,center]{mudela} -< - { \voiceone c g c g } - { \voicetwo 'c2 'g2 } -> -\end{mudela} - - -\section{A complete example} -%\label{se:complete} - -A Mudela file needs some red tape - -\begin[verbatim,center]{mudela} -\score{ - \melodic { - \octave c'; - c d e c | - c d e c | - e f g2 | - } -} -\end{mudela} - -\section{Lyrics} - -\begin[verbatim,center]{mudela} -\score{ - < - \melodic{ - \octave c'; - c d e c | c d e c | - e f g2 | e4 f g2 - \bar "|."; - } - \type Lyrics \lyric{ - Fr\`e-4 re Ja- que - Fr\`e- re Ja- que - Dor- mez vous?2 - Dor-4 mez vous?2 - } - > -} -\end{mudela} - -\section{Variables} - - -\section{Ly2dvi} -Check-out this handy little script -that not only may save you quite some keystrokes, -but produces titles and takes care of -margins and (hopefully) papersizes. -See \file{ly2dvi (1)}. - -\chapter{Input format reference} - -October 8, 1997 - -This document describes the the GNU LilyPond input format, which is an -effective language for defining music. We call this language (rather -arrogantly) The Musical Definition Language or Mudela, for -short.\footnote{If anybody comes up with a better name, we'd gladly - take this. Gourlay already uses Musical Description Language, - G-Sharp Score Definition Language. ISO standard 10743 defines a - Standard Music Description Language. We're not being original here} - -The first aim of Mudela is to define a piece of music, being complete -from both from a musical typesetting, as from a musical performing -point of view. - -The Musical Definition Language (Mudela), has a logical structure, -making use of identifiers, that allows for flexible input, and -definition reuse. See \file{MANIFESTO} for reasons and design considerations. - -The below included for explanatory purposes only (i.e., for a complete -and up-to-date definition, see \file{lily/parser.y} and -\file{lily/lexer.l}): - -As a related note, you should take a look at the examples and the init -files, as this document does not cover every aspect of mudela yet, and -may be out of date.\footnote{Ok, I am being pessimistic here. This - just is a disclaimer. Docs usually are written after the program - itself.} This document intends to give an idea of how it works, it -is not a guide on how to use it. - - -\section{Basic elements} - -\subsection{Files} - -The de-facto extension of Mudela is \file{.ly}. Files may be included by -entering \verb+\include+ at the start of a line: - -\begin{verbatim} -\include "a_file.ly" -\end{verbatim} - - -\subsection{Comments} - -Line comments are introduced by a -\verb+%+. -Block comments are delimited -by -\verb+%{+ -and -\verb+%}+. -They do not nest. - -\subsection{Versions} - -Occasionally, small changes in syntax across different versions of -Mudela might give syntax errors. To warn you about possible -incompatibilities, you can specify the Mudela version for which the -inputfile was written, -\begin{verbatim} -\version "0.0.50"; -\end{verbatim} - -A perl-script which tries to convert to newer versions -(\file{convert-mudela}) is included in the LilyPond distribution. - -\subsection{Words} - -Keywords are preceded by a backslash: \verb+\+. They contain -alphabetic characters only. - -Identifiers in their normal form consist start with a backslash, a -alpha character, followed by alpha-numerics. Identifiers can contain -any characters (except whitespace, - and \verb+%+), if you use this construct: - -\begin{verbatim} -\$i'm_a_weird!!!identifier -\end{verbatim} - -(which is the identifier with the name -\verb+i'm_a_weird!!!identifier+). \verb+$+ Takes any sequence of -characters which are not whitespace, \verb+$+ and \verb+%+. -\verb+$i'm_a_weird!!!string+ -\def\foobar{$} % silly fontlock mode - -\subsection{Nesting characters} - -Mudela uses the brace (\verb+{+ and \verb+}+) for most hierarchical -structures. For chords the \verb+<+ and the \verb+>+ are used as -nesting braces. - -\subsection{Constants} - -Please note that -.5 is not a Real. - -\begin{verbatim} -"I am a string" --1.2e3 % a real -12 % an int -\end{verbatim} - - -\subsection{Identifiers} - -When assigning identifiers you use - -\begin{verbatim} -string = ... -\end{verbatim} - -If you reuse identifiers, then the previous contents will be thrown -away after the right hand is evaluated, eg -\begin{verbatim} -bla = \melodic { \bla } -\end{verbatim} -is legal - -When using identifiers they have to be escaped: - -\begin{verbatim} -oboe = \melodic { ... } -\score{ \melodic { \oboe }} -\end{verbatim} - -The left-hand part of the assignment is really a string, so -\begin{verbatim} -"Foo bar 4 2 " = \melodic { .. } -\end{verbatim} - -is also a valid assignment (but you would have trouble referencing to it) - - -\subsection{Hierarchical structures} - -The general structure consists of declarations: -\begin{verbatim} -IDENTIFIER = \TYPE{ - -} -\end{verbatim} -and instantiations: - -\begin{verbatim} -\TYPE{ } -\end{verbatim} - -(Currently, \verb+\score+ is the only type that can be instantiated -at top level. Currently declarations can only be done at top level) - -Most instantiations that use an IDENTIFIER are specified as follows: - -\begin{verbatim} -\TYPE{ IDENTIFIER [...] } -\end{verbatim} - -Some exceptions on this rule have been made to prevent inputting -Mudela becoming tedious - - -\subsection{Modes:} - -To simplify different aspects of music definition (entering the notes -and manipulating them) Mudela has a number of different input "modes": - -\begin{description} - - -\item[Normal mode] - -At the start of parsing, Mudela assumes normal mode. -In Normal mode, a word is looked up in the following order: -\begin{description} -\item{\verb+word+} string -\item{\verb|"string"|} string -\item{\verb|\word|} keyword, identifier -\end{description} -In normal mode, a word is assumed to start with an alphabetic -character, followed by alpha-numeric characters. - -\item[Note mode] Note mode is introduced by the keyword - \verb+\melodic+. In Note mode, a word is looked up in the following - order: -\begin{description} -\item{\verb+word+} notename, string -\item{\verb|"string"|} string -\item{\verb|\word|} keyword, identifier -\end{description} - -In Note mode a word is considered to have alphabetic characters only, -so the underscore (\_) is illegal. If you accidently mistype a -notename, the parser will assume that you are entering a string (and -it will most likely complain that you should be in \verb|\lyrics| mode to -do lyrics) - - -\item[Lyric mode] Lyrics mode (and thus Simple mudela) is introduced - by the keyword \verb+\lyrics+. Because of the various control - characters that can appear in lyrics, eg, ``foreign language'' - accents, the inputting a string containing these has been made very - easy. - -In Lyrics mode, a word is looked up in the following order: -\begin{description} -\item{\verb+word+} string (thus a lyric) -\item{\verb|"string"|} string -\item{\verb|\word|} keyword, identifier -\end{description} - -In Lyric mode every sequence of non-digit and non-white characters -starting with an alphabetic character or the \_ is considered a word. - -\begin{verbatim} -a&@&@&TSI|{[ % a word -1THtrhortho % not a "word" -Leise Fl\"u\ss{}teren meine Sapfe % 4 words -_ _ _ _ % 4 words: 4 spaces -\end{verbatim} -\end{description} - -These modes are of a lexical nature. Normal and Note mode largely -resemble each other, save the possibility of entering Reals, -meaning of \verb+_+ and the resolution of words - -\subsection{Notes} - -You enter a note by giving the name and the reciprocal of the duration: - -\begin[fragment,verbatim]{mudela} -a'4 % Dutch names -\end{mudela} - -is a A-1 pitched crotchet. The ' signifies an octave change. A-1 is 440 -Hz concert-pitch. \verb+c'+ is also known as the central c. More examples: - -\begin[fragment,verbatim]{mudela} - 'a % 110 - a % 220 - A % 110, uppercase octavates down - a' % 440 - a'' % 880 - 'as4.*2/3 -\end{mudela} - -The last one is an A flat, (just below 110 Hz concert-pitch). The \verb+*2/3+ -signifies that this note is part of a triplet (3 in stead of 2). The -duration is one and a half quarter note (\verb+4.+) times 2/3. - -Notenames are just a special kind of identifiers, and can be declared -for any language appropriate (see \file{init/dutch.ly}). The default language -for notenames is defined to be Dutch. In Dutch, the notenames are -a,b,c,d,e,f and g. Sharps are formed by adding the extension "is", -flats by adding ``es'' - -\begin{verbatim} -% double sharp -cisis disis eisis fisis gisis aisis bisis -% sharps -cis dis eis fis gis ais bis -% naturals -c d e f g a b -% flats -ces des es fes ges as bes -% double flats -ceses deses eses feses geses ases beses -\end{verbatim} - -Rests are named r or s -\begin{verbatim} -r % print a rest -s % a "space" rest, nothing is printed. -\end{verbatim} - -These notenames along with duration are enough material to construct -simple melodies: - -\begin[verbatim,fragment]{mudela} -\octave c'; -c4 c4 g4 g4 a4 a4 g2 -f4 f4 e4 e4 d4 d4 c2 -\end{mudela} - -Music is able to express more. generally speaking, the other -'features' are either connected between notes (slurs, beams: spanning -requests) or attached to notes (eg. accents). The former are -implemented as START and STOP stop features and then attached to the note. - -\begin{description} -\item{[ and ]} start and stop a beam -\item{( and )} start and stop a slur -\end{description} - -example: -\begin[verbatim,fragment]{mudela} - \octave c'; - [c8 () d8 () e8 - e8(] [)g8 % NO nesting! - [2/3 c8 c8 c8]1/1 % a triplet -\end{mudela} - -Please note that these two characters do \emph{not} necessarrily nest, -they should be attached to the note. For this reason, the construct -\verb+[ ]+ will generate a parse error. - -\subsection{Slurs and Ties} - -Ties connect the noteheads of adjacent notes. They are entered as follows: - -\begin[verbatim,fragment]{mudela} -a'4 ~ a''4 -\end{mudela} - -Slurs connect whole chords, and try to avoid crossing stems. They are -entered as follows: - -\begin[verbatim,fragment]{mudela} -a'4( )a''4 -\end{mudela} - -\subsection{Scripts} - -Symbols which can be put at either side (above or below) of a staff -are entered as follows: -\begin[verbatim,fragment]{mudela} - a-^ % marcato, direction: default - %a^- % portato, direction: above note - a_. % staccato, direction: below note - a^\fermata % predefined identifier - c_"marcato" % add a text - c^"marcato" - c-"marcato" -\end{mudela} - -If you want to define your own scripts refer to \file{init/script.ly} for -details. - - -Dynamics can be put after the notename: -\begin{verbatim} -a4 \dynamic { 0 } % 0 = fff, 7 = ppp -\end{verbatim} - -Mudela defines the following dynamic identifiers: - -\begin{verbatim} -ppp pp p mp mf f ff fff sfz fz fp -\end{verbatim} -and the following abbreviations: -\begin{verbatim} -\< %start crescendo -\> % start decrescendo -\! % end crescendo/decrescendo -\end{verbatim} - -\subsection{Defaults} - -If omit the duration of a note, a default value is substituted. For -this default value mudela uses the last duration explicitly entered. - -Thus the following inputs are equivalent -\begin{verbatim} -c4 c4 c16 c16 c16 s16 c4 c16 -c4 c c16 c c c c4 c16 -\end{verbatim} - -If you are typing music which does not lie in the "small" and "large" -octave, you can prevent having to type \verb+'+ all the time by using the -\verb+\octave+ command: These two lines have the same pitch. -\begin{verbatim} -c'' d'' e'' c d e c d e -\octave c''; c d e ''c ''d ''e \octave c; c d e -\end{verbatim} - -By default the setting of \verb+\octave+ is 0. - -\subsection{Lyrics} - -Lyrics in Mudela resemble Simple mudela a lot, with notes substituted -by text. - -All syllables are entered separately, separated by whitespace -\begin{verbatim} -Twin-4 kle4 twin-4 kle4 ... -\end{verbatim} - -Two syllables or words that compose a single -duration entry are bound together using an underscore -\begin{verbatim} -He_could4 not4 -\end{verbatim} - -\section{Composition: forming bigger structures} - -The previous examples tacitly assumed that a sequence of notes is -printed in a left to right manner. This is not entirely correct, you -will get the bigger picture in this section. - -In mathematics you can form expressions by combining expressions, -which are ultimately some kind of atom or terminal symbol. The same -goes for mudela: there are some basic building blocks, and by -combining those you create complex music. - -You can combine music in three ways: -\begin{itemize} -\item If you enclose a sequence of music-elements in braces ( \verb+{+ - and \verb+}+ ), then you form another kind of music called (Voice) with those pieces. - The duration of the Voice is the sum of the durations of its elements -\begin{verbatim} -{ c c g g a a g2 } % twinkle twinkle -{ { c c g g} { a a g2 } } -\end{verbatim} -\item You can stack music by enclosing a sequence of music elements - with \verb+<+ and \verb+>+. This is called a Chord. The duration of a Chord is - the union of the durations of its elements Example: -\begin{verbatim} - % a-major chord -\end{verbatim} -\item - You can form music by transposing music: -\begin{verbatim} -\transpose - d % from c to the d that's one octave down - { e4 f4 } % the horizontal music -\end{verbatim} -\end{itemize} - -Of course you can also combine these three mechanisms. -\begin{verbatim} -{ c } % 4 increasing chords -\end{verbatim} - -The basic building block in Mudela is called Request. Examples of -Requests are: Timing (such as Meter), Rhythmic, Melodic, Note (which is a combination of -Rhythmic and Melodic), Musicscript (put an accent over a note or -rest), etc. For the actual up to date listing, you should consult the -LilyPond source code: the Request types form a big class hierarchy. - -Normally you don't enter Requests directly, since that would be -tedious. Mudela has standard abbreviations for the most common -combination of Requests. If you enter \verb+c4+, this is an -abbreviation for: -\begin{verbatim} -Request_chord{ - Note_req{ - notename: 0 acc: 0 oct: -1 - duration { 4} - } - Stem_req{ - duration { 4} - } -} -\end{verbatim} - -The \verb+Request_chord+ is a special kind of chord which only allows -Requests as its elements. The examples of the previous section were -processed with \verb+{+ and \verb+}+ enclosing the input. - -\subsection{Durations} - -A duration always starts with the duration type (1,2,4 etc), and then -any optional multipliers/dots. Old fashioned durations can be entered -as follows -\begin{verbatim} -'c\breve -gis'\longa -\end{verbatim} - - - -\subsection{Meters/groupings} - -A meter has this form: -\begin{verbatim} -\meter 3/4 ; -\end{verbatim} - -Rhythmic grouping is a concept closely associated with this. For -example, in a 5/8 meter, the counts are grouped 2+3. In mudela this is -entered as -\begin{verbatim} -\grouping 8*2 8*3 ; -\end{verbatim} -You can start the piece with a partial measure, the command takes the -same syntax as grouping: -\begin{verbatim} -\partial 16*3 4; -\end{verbatim} - -Make the piece start with a upstep [english translation?] -lasting 1 3/4 quarter notes. - -These commands are also "voice elements", and constitute ``Music'' -(consisting of stuff with duration 0). - - -\subsection{Voicegroups} - - -[OUTDATED] - -If more than one "voice" is in a staff, then you have the option of -putting the different voices into so called voicegroups: members of -the same voicegroup share certain characteristics, among others: - - - dynamics - - text - - beams and stems - - scripts - -For the actual list, see the init file \file{init/register.ly} - -Putting different musical lines in to the same voicegroup effectively -makes LilyPond try to form chords of all those lines. Putting -different musical lines in to different voicegroups effectively makes -LilyPond try to set those lines as independently as possible. - -[adsolete. Has to be fixed in lily] - -You can set the voicegroup of a voice with the command \verb+\group+, e.g., - -\begin{verbatim} - oboeI = \melodic { - \group "oboes"; - [e8 f8 - \group "+solo"; - [g16 a16 g16 fis16] - \group "-"; - g8 f8 - } - oboeII = \melodic { \group "oboes"; - c8 d8] - e4 - e8 d8 - } - /// ... - - \staff { - melodicregs \melodic{ oboeI } - \melodic { oboeII} -} -\end{verbatim} - -In this example, the two oboe voices share one staff and are initially -in the voicegroup called "oboes". They will share beams, dynamics etc. -After two quarter notes, oboeI "pushes" its group: a new voicegroup is -created, called "oboes+solo". The \verb+\group "-"+ command makes the -voice enter "oboes" again. - -Please do note that [] are voicegroup wide; the previous input is -valid: the beam, started in oboeI, voicegroup "oboes" is also ended in -voicegroup "oboes", albeit not in oboeI but oboeII - -This concept may seem contorted, but it allows you to set the separate -oboe parts without changing the \verb+oboeI+ and \verb+oboeII+ (assuming that -you edit the [] in the example.) - -The construct -\begin{verbatim} -< { .... } {......} > -\end{verbatim} -makes a chord (all horizontal parts are in the same voicegroup). The construct -\begin{verbatim} -\multi 2 < { ....} { .... } > -\end{verbatim} -creates horizontal parts which behave independently. You will have to -set voicegroup features by hand (\verb+\stem+ and \verb+\hshift+. See examples) - -The construct -\begin{verbatim} -\multi 3 < { ....} { .... } > -\end{verbatim} -creates a chord with each part in a different staff - - -\subsection{Examples} - -Examples are included with the GNU LilyPond distribution. For the sake of -maintenance no long examples are included in this document. - - -\section{History} - -This language has a number of roots. First and foremost, GNU -LilyPond's predecessor mpp was the inspiration of the Note-mode input. -Secondly, the hierarchical structure looks a lot like Rayce's (Rayce -is a raytracer that I've written as a hobby project. ), which in turn -owes a lot to POVRay. - -Now, we know, musictypesetting and raytracing do not necessarily -require the same input format, and we know that a lot more ways exist -to convert music to ASCII, but we did give this language some -thoughts. As always suggestions are appreciated. - -\end{document} - - diff --git a/Documentation/tex/Makefile b/Documentation/tex/Makefile new file mode 100644 index 0000000000..8d2ea583d9 --- /dev/null +++ b/Documentation/tex/Makefile @@ -0,0 +1,15 @@ + +depth=../.. +include ./$(depth)/make/Include.make +include ./$(depth)/make/Docrules.make +# + +DOCFILES = $(wildcard *.doc) +OUTDOCFILES = $(addprefix $(outdir)/, $(DOCFILES)) +BIBFILES= $(wildcard *.bib) +EXTRA_DISTFILES= $(BIBFILES) $(DOCFILES) + +dvi: $(DVIFILES) + +local-WWW: $(OUTDOCFILES:.doc=.ps.gz) + ls-latex --extension .ps.gz $(DOCFILES) > $(outdir)/index.html diff --git a/Documentation/tex/colorado.bib b/Documentation/tex/colorado.bib new file mode 100644 index 0000000000..2955972393 --- /dev/null +++ b/Documentation/tex/colorado.bib @@ -0,0 +1,452 @@ +% +% from the University of Colorado Engraving page (by Alyssa Lamb) +% + +@Book { +author ={Jacob, Archibald}, +year={ 1947}, +title = {Musical handwriting : or, How to put music on paper : A handbook for all musicians, professional and amateur}, +address ={ London} +publisher ={Oxford University Press}, +subject = { Musical notation}, +} + +@Book { +author ={Brandt, Carl, and Roemer, Clinton}, +title = {Standardized Chord Symbol Notation}, +address={Sherman Oaks, CA} +publisher={Roerick Music Co.} +} + +@Book { +author = {Johnson, Harold M}, +year = {1946}, +title = {How to write music manuscript an exercise-method handbook for the music student, copyist, arranger, composer, teacher}, +publisher={ Carl Fischer, Inc. } +address= {New York} +subject = {Musical notation --Handbooks, manuals}, +} + +@Book { +title = {Music Printing & Publishing}, +editedby={ Donald W. Krummel \& Stanley Sadie}, +author = {?} +year = {1990}, +series={ The Norton/Grove Handbooks in Music.} +publisher={W.W. Norton} +} + +@Book { +author={Foss, Hubert}, +title = {Music Printing}, +series = {Practical Printing and Binding}, +address={ London}, +publisher={ Oldhams Press Ltd., Long Acre.} +} + +@Book { +author = {Steele, Robert}, +year = {1903}, +title = {The Earliest English Music Printing}, +address={ London}, +} +@Book { +author={Austin, Ernest}, +title = {The Story of Music Printing}, +address={ London}, +publisher={Lowe and Brydone Printers, Ltd.} +} + +} + +@Book { +title = {Pictoral History of Music Printing}, +address={E;lhardt, Indiana} +publisher={H. and A. Selmer, Inc.} +} + +@Book { +author = {Scholderer, Victor}, +year = {1963}, +title = {Johann Gutenberg}, +address={ London}, +publisher={ British Museum}, +} + +@Book{ +author = {Wintermitz, Emmanuel}, +year = {1955}, +title = {Musical Autographs from Monteverdi to Hindemith}, +address={Princeton} +publisher={Princeton University Press}, +} + +@Book{ +author = {Wolf, Johannes}, +year = {1919}, +title = {Handbuch der Notationskunde}, +address={Leipzig}, +publisher={ Breitkopf & Hartel.} +} +@Book{ + +author = {Novello, A}, +year = {1847}, +title = {Some Account of the Methods of Musick Printing, with Specimens of the Various Sizes of Moveable Types and of Other Matters}, +address={ London}. +} + +@Book{ +author={Chrsander, F.} +year={18??} +title={A Sketch of the HIstory of Music printing, from the 15th to the 16th century}, +} +@Book{ +author = {Squire, W}, +year = {1897}, +title = {Notes on Early Music Printing}, +, title = {Bibliographica}, +, iii, 99. +} + +@Book{ +author = {Meyer, K. and O'Meara, J}, +year = {1935}, +title = {The Printing of Music, 1473-1934}, +, title = {The Dolphin}, +, ii, p.171-207. + +@Book{ +author = {Pattison, B}, +year = {1939}, +title = {Notes on Early Music Printing}, +,title = {The Library}, +, 4th ver., xix, p.389-421. +} + +@Book{ +author = {Barksdale, A}, +year = {1957}, +title = {The Printed Note: 500 Years of Music Printing and Engraving}, +address={Toledo, Ohio} +note={(exhibition catalogue, the Toledo Museum of Art).} +} + +@Book{ +author = {King, H}, +year = {1964}, +title = {Four Hundred Years of Music Printing}, +London. +} + +@Book{ +Gamble, W. 1923 (Rev. 1971). title = {Music Engraving and Pinting, Historical And Technical Treatise}, +Londond. + +Deutsch, O.F. 1946 (Rev.1961). title = {Music Publishers' Numbers}, +London. +} + +@Book{ +author = {Marco, G.A}, +year = {1962}, +title = {The Earliest Music Printers of Continental Europe: a Checklist of Facsimiles Illustrating Their Work}, +Charlottesville, Virginia. +} + +@Book{ +author = {Kinkeldey, O}, +year = {1932}, +title = {Music And Music Printing in Incunabula}, +, title = {Papers of the Bibliographical Society of America}, +, xxvi, p.89-118. +} + +@Book{ +author = {Oldman, C.B}, +year = {1934}, +title = {Collecting Musical First Editions}, +London. +Also in: Carter, J. 1934. title = {New Paths in Book Collecting}, +London. + +Krummel, D.W. 1958-9. title = {Graphic Analysis in Application to Early American Engraved Music}, +, title = {Notes}, +, xvi, p.213. +} + +@Book{ +author = {Krummel, D.W}, +year = {1971}, +title = {Oblong Format in Early Music Books}, +, title = {The Library}, +, 5th ser., xxvi, p.312. +} + +@Book{ +author = {King, A.H}, +year = {1973}, +title = {The 50th Anniversary of Music Printing}, +, title = {M_________}, +, cxiv. +} + +@Book{ +Rastall, Richard. 1982. title = {The notation of Western music : an introduction}, +New York, N.Y.: St. Martin's Press. +subject = { Musical notation}, + + +} + +@Book{ +author = {Tappelot, Willy}, +year = {1947}, +title = {La Notation Musicale}, +Paris: Neuchatel. +} + +@Book{ +author = {Williams, C.F. Abdy}, +year = {1903}, +title = {The Story of Notation}, +New York: Charles Scribner's Sons. +} + +@Book{ +author = {Rosenthal, Carl A}, +year = {1967}, +title = {A Practical Guide to Music Notation}, +New York: MCA Music. + +
        } + +@Book{ +Apel, Willi. 1953. title = {The notation of polyphonic music, 900-1600.}, +Cambridge, Mass.: Mediaeval Academy of America. +subject = {Musical notation}, +} + +@Book{ + + +Berger, Anna Maria Busse. 1993. title = {Mensuration and proportion signs : origins and evolution}, +Oxford, England: Clarendon Press; New York: Oxford University Press . +} + +@Book{ +Parrish, Carl. 1957. title = {The notation of medieval music}, +New York : Norton. +subject = {Musical notation}, + + +} + +@Book{ +author = {Parrish, Carl}, +year = {1946}, +title = { The Notation of Medieval Music}, +New York: Carl Fischer, Inc. +} + +@Book{ +author = {Patch, Harry}, +year = {1949}, +title = { Genesis of a Music}, +Madison: University of Wisconsin Press. +} + +@Book{ +Cage, John. 1969. title = {Notations}, +New York: Something Else Press. +subject = { Music, Manuscripts, Facsimiles}, + +(Facsimiles of holographs from the Foundation for Contemporary Performance Arts, with text by 269 composers, but rearranged using title = {chance operations.}, +) +} + +@Book{ +author = {Gaburo, Virginia}, +year = {1977}, +title = {Notation}, +publisher= {Lingua Press: La Jolla, California}. +subject = { A Lecture about notation, new ideas about}, + + +} + +@Book{ +author = {Risatti, Howard}, +year = {1975}, +title = {New Music Vocabulary}, +Urbana, Illinois: University of Illinois Press. +subject = { A Guide to Notational Signs for Contemporary Music}, + + +} + +@Book{ +author = {Boehm, Laszlo}, +year = {1961}, +Modern Music Notation. New York: G. Schirmer, Inc. +} + +@Book{ +author = {Cowell, Henry}, +year = {1930}, +title = {New Musical Resources}, +New York: Alfred A. Knopf, Inc. + +author = {Cowell, Henry}, +year = {1927}, +title = {Our Inadequate Notation}, +,title = {Modern Music}, +, Vol. 4, No. 3. +} + +@Book{ +author = {Bowers, Roger}, +year = {1992}, +title = {Music & Letters}, +v73, n3, August, p347(52) + +Some reflection upon notation and proportion in Monteverdi's mass and vespers. +} + +@Book{ +author = {Brainard, Paul}, +year = {1992}, +title = {Current Musicology}, +n50, July-Dec, p21(26) + +Proportional notation in the music of Schutz and his contemporaries in the 17th Century.} + +@Book{ + +author = {Monelle, Raymond}, +year = {1989}, +title = {Comparative Literature}, +v41, n3, Summer, p252(18) + +Music notation and the poetic foot. +} + +@Book{ +author = {Pinegar, Sandra}, +year = {1993}, +title = {Current Musicology}, +n53, July, p99(10) +The seeds of notation and music paleography. + +author = {Smith, Norman E}, +year = {1990}, +title = {Current Musicology}, +n45-47, Jan-Dec, p283(22) + +The notation of fractio modi. +} + +@Book{ +author = {Treitler, Leo}, +year = {1992}, +title = {The Journal of Musicology}, +v10, n2, Spring, p131(61) + +The title = {unwritten}, +and title = {written transmission}, +of medieval chant and the start-up of musical notation. + +Notational practice developed in medieval music to address the written tradition for chant which interacted with the unwritten vocal tradition... +} + +@Book{ +author = {West, M.L}, +year = {1994}, +title = {Music & Letters}, +v75, n2, May, p161(19) +The Babylonian musical notation and the Hurrian melodic texts. + +A new way of deciphering the ancient Babylonian musical notation... + +} + +@Book{ +author = {Brown, Earle}, +year = {1986}, +title = {Musical Quarterly}, +v72, Spr, p180(22) + +The notation and performance of new music. +} + +@Book{ +author = {Eggleston, Suzanne}, +year = {1994}, + +title = {Notes}, +v51, n2, Dec, p657(7) + +New periodicals + +A list of new music periodicals covering the period Jun.-Dec. 1994. Includes aims, formats and a description of the contents of each listed periodical. Includes title = {Music Notation News}, + +} + +@Book{ + +author = {Fuller, David}, +year = {1989}, +title = {The Journal of Musicology}, +v7, n1, Wntr, p21(8) + +Notes and inegales unjoined: defending a definition. (written-out inequalities in music notation). +} + +@Book{ + +author = {Jones, David Evan}, +year = {1990}, +title = {Perspectives of New Music}, + + +Speech extrapolated. (includes notation) + +} + +@Book{ + +author = {Lependorf, Jeffrey}, +year = {1989}, +I>Perspectives of New Music v27, n2, Summer, p232(20) + +Contemporary notation for the shakuhachi: a primer for composers. (Tradition and Renewal in the Music of Japan) + +} + +@Book{ +author = {Rastall, Richard}, +year = {1993}, +title = {Music & Letters}, +v74, n4, Nov, p639(2) +Equal Temperament Music Notation: The Ailler-Brennink Chromatic Notation. Results and Conclusions of the Music Notation Refor by the Chroma Foundation (book reviews). +} + +@Book{ +
          +Francois, Jean-Charles.title = {Perspectives of New Music}, +v30, n1, Wntr, p6(15) + +1992. +Writing without representation, and unreadable notation. by Jean-Charles Francois. +Modern music has outgrown notation. While the computer is used to write down music with accuracy never before achieved, the range of modern sounds has surpassed the relevance of the computer... +} + +@Book{ +author = {Hamel, Keith A}, +year = {1989}, + +title = {Perspectives of New Music}, +v27, n1, Wntr, p70(14) + +A design for music editing and printing software based on notational syntax. (computer music) + diff --git a/Documentation/tex/engraving.bib b/Documentation/tex/engraving.bib new file mode 100644 index 0000000000..ad34b6a0a3 --- /dev/null +++ b/Documentation/tex/engraving.bib @@ -0,0 +1,561 @@ +@Book{rastall, + author = {Richard Rastall}, + ALTeditor = {}, + title = {The Notation of Western Music: an + Introduction}, + publisher = {J. M. Dent \6& Sons London}, + year = {1983}, + key = {}, + volume = {}, + number = {}, + series = {}, + address = {}, + edition = {}, + month = {}, + note = {}, + comment = {Interesting account of the evolution and origin of common notation starting from neumes, and ending with modern innovations HWN}, + annote = {}, +} + +@Book{ross, + author = {Ted Ross}, + title = {Teach yourself the art of music engraving and processing}, + publisher = {Hansen House}, + year = {1987}, + key = {}, + volume = {}, + number = {}, + series = {}, + address = {}, + edition = {}, + month = {}, + comment = {This is about engraving, i.e. professional typesetting. It contains + directions on good typesetting, but the sections on reproduction + technicalities, how to use pens and history are interesting. + Especially the section on Music Typewriters is amusing HWN}, + annote = {}, +} + +@Article{blostein94, + author = {Dorothea Blostein and Lippold Haken}, + title = {The Lime Music Editor: A Diagram Editor Involving Complex + Translations}, + journal = {Software Practice and Experience}, + year = {1994}, + key = {}, + volume = {24}, + number = {3}, + month = {march}, + pages = {289--306}, + note = {}, + annote = {}, + comment = {A description of various conversions, decisions and issues relating to this interactive editor HWN}, +} + + + +@Book {wanske, + comment = {I. A very thorough overview of engraving practices of various craftsmen. It includes detailed specs of characters, dimensions etc. II. a thorough overview of a anonymous (by now antiquated) automated system. EDV Means e(lektronischen) D(aten)v(erarbeitung), electronic data processing HWN}, + year = {1988}, + title = {Musiknotation --- Von der Syntax des Notenstichs zum EDV-gesteuerten Notensatz}, + author = {Helene Wanske}, + publisher = {Schott-Verlag}, + address = {Mainz}, + isbn = {ISBN 3-7957-2886-x}, +} + + + + +@Book{, + ALTauthor = {}, + ALTeditor = {}, + title = {}, + publisher = {}, + year = {}, + key = {}, + volume = {}, + number = {}, + series = {}, + address = {}, + edition = {}, + month = {}, + note = {}, + annote = {}, +} + + + +@Book {, + year = {1993}, + title = {Standard Music Notation Practice}, + author = {Maxwell Weaner and Walter Boelke}, + totalentry = {revised edition by Arnold Broido and Daniel Dorff.}, + publisher = { Music Publisher's Association of the United States Inc}, + address = {New York} +} + + + +@Book {, + comment = {Sound (boring) review of the various hairy rhythmic notations used by avant-garde composers HWN}, + year = {1978}, + title = {Modern Rhythmic Notation}, + author = {Gardner Read}, + publisher = {Indiana University Press}, +} + + +@Book {, + comment = {This is as close to the ``standard'' reference work for music notation issues as one is likely to get. MB}, + title = {Music Notation: a Manual of Modern Practice}, + author = {Gardner Read}, + totalentry = {(2nd edition)}, + publisher ={Taplinger Publishing}, + address ={New York}, + note = { (Out of print)}, +} + + +@Book{, + ALTauthor = {}, + ALTeditor = {}, + title = {}, + publisher = {}, + year = {}, + OPTkey = {}, + OPTvolume = {}, + OPTnumber = {}, + OPTseries = {}, + OPTaddress = {}, + OPTedition = {}, + OPTmonth = {}, + OPTnote = {}, + OPTannote = {} +} + +@Book {, + year = {1948}, + title = {Aus der Werkstatt eines Notenstechers}, + author = {Karl Hader}, + publisher = {Waldheim--Eberle Verlag}, + address ={Vienna}, + + comment = {Hader was the chief-engraver of the Waldheim-Eberle music + publishers. This book contains the most important rules on engraving +(according to [Chlapik])}, + +} + + + +@Booklet {, + comment = {Pamphlet explaining some fine points in music font design HWN}, + year = {1996}, + title = {Standard music notation specifications for computer programming. }, + month = {December}, + publisher = {MPA}, +} + +@TechReport{, + comment = {Rules on formatting music formulated for use in computers. Mainly distilled from [Ross] HWN}, + year = {1988}, + title = {Music Formatting Guidelines,}, + author = {D. Roush}, + note={Technical Report OSU-CISRC-3/88-TR10}, + institution ={Department of Computer and Information Science, The Ohio State University}, +} + + + +@PhdThesis {, + year = {1985}, + title = {Music Notation by Computer}, + author = {Donald Byrd}, + institution = {Dissertation Indiana University}, +} + + +@Article {, + year = {1974}, + title = {A System for Music Printing by Computer}, + author = {Donald Byrd}, + journal = {Computers and the Humanities}, + volume ={ 8}, + pages ={161-72}, +} + + +@Book {, + comment = {If I remember correctly, this was concerned more with an input language than with the typography. SP}, + year = {1973}, + title = {Editing and Printing Music by Computer}, + author = {Leland Smith}, + totalentry = {Journal of Music Theory}, + volume={ 17}, + pages ={292-309}, +} + + +@PhdThesis {, + year = {1975}, + title = {A Computer-Oriented System for Music Printing}, + author = {David A Gomberg}, + school = {Washington University}, +} + + +@Book {, + comment = {Annual editions since 1985, many containing surveys of music typesetting technology. SP}, + title = {Directory of Computer Assisted Research in Musicology}, + author = {Walter B Hewlett. and Eleanor Selfridge-Field}, + totalentry = {Menlo Park, CA: Center for Computer Assisted Research in the Humanities}, +} + + +@Book {, + title = {A Computer-oriented System for Music Printing}, + author = {David A. Gomberg; }, + + journal = {Computers and the Humanities}, + volume={11}, + pages = {63-80}, +} + + +@TechReport {, + comment = {Algorithm for generating spacing in one line of (polyphonic) music, tailored for use with MusiCopy. LilyPond uses a variant of it (as of pl 76) HWN}, + year = {1987}, + title = {Spacing a Line of Music,}, + author = {John S. Gourlay}, + totalentry = {OSU-CISRC-10/87-TR35}, + institution ={ Department of Computer and Information Science, The Ohio State University}, +} + + +@TechReport {, + comment = {A brief overview of MusiCopy HWN}, + year = {1987}, + title = {MusiCopy: An automated Music Formatting System}, + author = {Allen Parish, Wael A. Hegazy, John S. Gourlay, Dean K. Roush and F. Javier Sola}, + totalentry = {OSU-CISRC-10/87-TR29}, + institution ={ Department of Computer and Information Science, The Ohio State University}, +} + + +@TechReport {, + comment = {This paper discusses the development of algorithms for the formatting of musical scores (from abstract). It also appeared at PROTEXT III, Ireland 1986}, + year = {1987}, + title = {Computer Formatting of Music,}, + author = {John S. Gourlay, A. Parrish, D. Roush, F. Sola, Y. Tien}, + totalentry = {OSU-CISRC-2/87-TR3}, + institution ={Department of Computer and Information Science, The Ohio State University}, +} + + +@TechReport {, + comment = {Describes the "parser" which converts MusiCopy MDL to MusiCopy Simultaneities & columns HWN}, + year = {1987}, + title = {On the Implementation of the MusiCopy Language Processor,}, + author = {Wael A. Hegazy}, + number = { OSU-CISRC-10/87-TR34}, + institution={ Department of Computer and Information Science, The Ohio State University}, +} + + +@TechReport {, + comment = {This generalizes TeX's breaking algorithm to music. It also appeared in Document Manipulation and Typography, J.C. van Vliet (ed) 1988. HWN}, + year = {1987}, + title = {Optimal line breaking in music}, + author = {Wael A. Hegazy and John S. Gourlay}, + totalentry = { OSU-CISRC-8/87-TR33}, + institution={Department of Computer and Information Science, The Ohio State University, }, +} + + +@TechReport {, + comment = {User manual of MusiCopy. Includes an impressive example piece. HWN}, + year = {1987}, + title = {Using MusiCopy}, + author = {Dean K. Roush}, + totalentry = { OSU-CISRC-18/87-TR31}, + institution={ Department of Computer and Information Science, The Ohio State University}, +} + + +@TechReport {, + comment = {Placement of balls, stems, dots which occur at the same moment ("Simultaneity") HWN}, + year = {1987}, + title = {Computer Formatting of Musical Simultaneities,}, + author = {A. Parrish and John S. Gourlay}, + institution={ Department of Computer and Information Science, The Ohio State University}, +} + totalentry = { OSU-CISRC-10/87-TR28}, +} + + +@TechReport {, + comment = {Overview of a procedure for generating slurs HWN}, + year = {1987}, + title = {Computer Design of Musical Slurs, Ties and Phrase Marks,}, + author = {F. Sola}, + institution={ Department of Computer and Information Science, The Ohio State University}, + totalentry = { OSU-CISRC-10/87-TR32}, +} + + +@TechReport {, + institution={ Department of Computer and Information Science, The Ohio State University}, + comment = {Calculating beam slopes HWN}, + year = {1987}, + title = {Design of Musical Beams,}, + author = {F. Sola and D. Roush}, + totalentry = { OSU-CISRC-10/87-TR30}, +} + + +@Article {, + comment = {This paper describes the MusiCopy musicsetting system and an input language to go with it. HWN}, + year = {1986}, + title = {A language for music printing}, + author = {John. S. Gourlay}, + journal = { Communications of the ACM}, + volume= { 29 }, + number ={5}, + pages = {388--401}, +} + + + + +@Article {, + comment = {A description of Lime internals (which resemble older (before 0.0.68pre) LilyPond data structures somewhat) HWN}, + year = {1993}, + title = {The Tilia Music Representation: Extensibility, Abstraction, and Notation Contexts for the Lime Music Editor}, + author = {Lippold Haken and Dorothea Blostein}, + journal = { Computer Music Journal}, + volume= {17}, + number={ 3}, + pages = {43--58}, +} + + +@Article {, + comment = {This describes an algorithm which uses springs between adjacent columns. This algorithm is a "subclass" of the LilyPond algorithm. HWN}, + year = {1995}, + title = {A New Algorithm for Horizontal Spacing of Printed Music}, + author = {Lippold Haken and Dorothea Blostein}, + totalentry = {Lippold Haken and Dorothea Blostein. ``A New Algorithm for Horizontal Spacing of Printed Music'', International Computer Music Conference, Banff, Sept. 1995}, + pages = {118-119}, +} + +@Article {, + comment = {This paper provides a shallow overview of the algorithm used in LIME for spacing individual lines. HWN}, + year = {1991}, + title = {Justification of Printed Music}, + author = {Dorothea Blostein and Lippold Haken}, + totalentry = {Communications of the ACM}, + volume={J34}, + number={ 3},month={ March}, pages = {88-99}, +} + + +@Article {, + comment = {Describes a system called MusicEase, and explains that it uses "constraints" (which go unexplained) to automatically position various elements. HWN}, + year = {1996}, + title = {Creating Printed Music Automatically}, + author = {Gary M. Rader}, + journal = {Computer}, + volume={ 29}, + number={6}, + month={June}, pages = {61--69}}, + + +@PhdThesis {, + comment = {Don't ask Stephen for a copy. Write to the Bodleian Library, Oxford, or to the British Library, instead. SP}, + year = {1988}, + title = {Computer Tools for Music Information Retrieval}, + author = {Stephen Dowland Page}, + school ={ Dissertation University of Oxford}, +} + +@MastersThesis{, + comment = {This dutch thesis describes a simplistic (monophonic) typesetting system, and focuses on the breaking algorithm, which is taken from Hegazy & Gourlay HWN}, + year = {1991}, + title = {Een Geautomatiseerd Systeem voor het Afdrukken van Muziek}, + author = {Ren\'e Roelofs}, + totalentry = {Ren\'e Roelofs. ``Een Geautomatiseerd Systeem voor het Afdrukken van Muziek'' afstudeerscriptie Bestuurlijke informatica, no 45327, Erasmus universiteit Rotterdam, 1991. (``An automated system for printing music'' Master's Thesis Managerial Computer Science.)}, +} + + +@Article {, + year = {1993}, + title = {Representation and manipulation of music documents in SceX}, + author = {Miguel Filgueiras and Jos\'e Paulo Leal}, + journal= { Electronic Publishing}, + volume={ 6}, + number={4}, pages = {507--518}, + +} + + +@Article {, + comment = {A paper on a TROFF preprocessor to typeset music. The output shown is not very sophisticated, and contains some typographical atrocities HWN}, + year = {1987}, + title = {Music --- A language for typesetting music scores}, + author = {Eric Foxley, }, + journal={ Software --- Practice and Experience, }, + volume={ 17}, + number={8}, pages = {485-502}, + +} + + +@Book {, + year = {1996}, + title = {Implementing a Symbolic Music Processing System}, + author = {Miguel Filgueiras}, + totalentry = {LIACC, Universidade do Porto, 1996; submitted}, +} + +@Book {, + title = {Some Music Typesetting Algorithms}, + author = {Miguel Filgueiras}, + totalentry = {Miguel Filgueiras. ``Some Music Typesetting Algorithms''. LIACC, Universidade do Porto, forthcoming}, +} + + +@Book {, + comment = {A concise, alphabetically ordered list of typesetting and music (notation) issues with a rather simplistic attitude but in most cases "good-enough" answers JCN}, + year = {1996}, + title = {Essential Dictionary of Music Notation}, + author = {Tom Gerou and Linda Lusk}, + publisher = {Alfred Publishing}, + address ={Van Nuys CA}, + isbn ={ ISBN 0-88284-768-6}, +} + + +@Book {, + comment = {An clearly written book for the casually interested reader. It shows some of the conventions and difficulties in printing music HWN}, + year = {1987}, + title = {Die Praxis des Notengraphikers}, + author = {Herbert Chlapik}, + publisher = {Doblinger}, + isbn ={ ISBN 3-9000 035-96-2}, +} + + +@Book {, + comment = {Webpages about engraving (designed with finale users in mind) (sic) HWN}, + institution = {The University of Colorado}, + title ={The University of Colorado Music Engraving page.}, + url={http://obenamots.cc.colorado.edu/Musicpress/engraving.html}, +} + + + + +@Book {, + year = {1963}, + author = {Anthony Donato}, + title ={ Preparing Music Manuscript}, + address ={ Englewood Cliffs, NJ}, + publisher={Prentice-Hall}, +} + + +@Book {, + year = {1900}, + title = {Uitgeven van muziek}, + author = {Donemus}, + publisher= {Donemus Amsterdam}, +} + + +@Book {, + year = {1987}, + title = {The Norton Manual of Music Notation}, + author = {George Heussenstamm}, + address= { New York}, + publisher={ Norton}, +} + + +@Book {, + year = {1972}, + title = {Notation in New Music; a critical guide to interpretation and realisation}, + author = {Erdhard Karkoshka}, + translator={Ruth Koenig}, + publisher={Praeger Publishers}, + address={ New York}, + note ={(Out of print)}, +} + + +@Book {, + year = {1973}, + title = {The Art of Music Copying}, + author = {Clinton Roemer}, + publisher={ Roerick music co.}, + address= { Sherman Oaks (CA)}, +} + + +@Book {, + year = {1979}, + title = {Music Notation Primer}, + author = {Glen Rosecrans}, + publisher={Passantino}, + address={New York}, +} + + +@Book {, + year = {1980}, + title = {Music Notation in the Twentieth Century}, + author = {Kurt Stone}, + publisher= {Norton}, + address={New York}, + note ={(Out of print)}, + +} + + +@Book {, + comment = {This paper deals with some command-line tools for music editing and playback. It doesn't mention notation issues, but does come with the grand idea (not) of using music to monitor complex systems. Imagine your nuclear plant supervisor to use AC/DC for checking the reactor HWN}, + year = {1990}, + title = {Unix music tools at Bellcore}, + author = {Peter S. Langston}, + journal={ Software --- Practice and Experience}, + volume={20}, + number={S1}, + pages={47--61}, +} + + + +@URL {, + comment = {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}, + url={ http://wabakimi.carleton.ca/~phacket2/guitar/tabfaq.html}, +} + + +@URL {, + comment = {Specs for NIFF, a comprehensive but binary (yuk) format for notation HWN}, + year = {1995}, + title = {NIFF6a Notation Interchange File Format}, + author = {Cindy Grande, }, + publisher={Grande Software Inc.}, + url={http://www.jtauber.com/music/encoding/niff/}, +} + + +@URL {, + title = {SMDL, Standard Musical Description Language}, + url={ftp://ftp.ornl.gov/pub/sgml/wg8/smdl/10743.pdf}, + note={ISO/IEC DIS 10743}, +} diff --git a/Documentation/tex/fonts.doc b/Documentation/tex/fonts.doc new file mode 100644 index 0000000000..a9e1940fbe --- /dev/null +++ b/Documentation/tex/fonts.doc @@ -0,0 +1,210 @@ +\documentclass{article} +\def\kdots{,\ldots,} +\title{Not the Font-En-Tja font} +\author{HWN \& JCN} +\begin{document} +\maketitle + + +\section{Introduction} + +This document are some design notes of the Feta font. Feta (not an +abbreviation of Font-En-Tja) is a font of music symbols. All MetaFont +sources are original. The symbols are modelled after various editions +of music, notably +\begin{itemize} +\item B\"arenreiter +\item Hofmeister +\item Breitkopf +\item Durand \& C'ie +\end{itemize} + +The best references on Music engraving are Wanske\cite{wanske} and +Ross\cite{ross} quite some of their insights were used. Although it +is a matter of taste, I'd say that B\"arenreiter has the finest +typography of all. + + +\section{Bezier curves for slurs} + +Objective: slurs in music are curved objects designating that notes +should fluently bound. They are drawn as smooth curves, with their +center thicker and the endings tapered. + +There are some variants: the simplest slur shape only has the width as +parameter. Then we give some suggestions for tuning the shapes. The +simple slur algorithm is used for drawing ties as well. + + + +\subsection{Simple slurs} + +Long slurs are flat, whereas short slurs look like small circle arcs. +Details are given in Wanske\cite{ross} and Ross\cite{wanske}. The +shape of a slur can be given as a Bezier curve with four control +points: + +\begin{eqnarray*} + B(t) &=& (1-t)^3c_1 +3(1-t)^2tc_2 + 3(1-t)t^2c_3 + t^3c_4. +\end{eqnarray*} + +We will assume that the slur connects two notes of the same +pitch. Different slurs can be created by rotating the derived shape. +We will also assume that the slur has a vertical axis of symmetry +through its center. The left point will be the origin. So we have +the following equations for the control points $c_1\kdots c_4$. + +\begin{eqnarray*} +c_1&=& (0,0)\\ +c_2&=& (i, h)\\ +c_3&=& (b-i, h)\\ +c_4&=& (b, 0) +\end{eqnarray*} + +The quantity $b$ is given, it is the width of the slur. The +conditions on the shape of the slur for small and large $b$ transform +to +\begin{eqnarray*} + h \to h_{\infty} , &&\quad b \to \infty\\ + h \approx r_{0} b, &&\quad b \to 0. +\end{eqnarray*} +To tackle this, we will assume that $h = F(b)$, for some kind of +$F(\cdot)$. One function that satisfies the above conditions is +$$ +F(b) = h_{\infty} \frac{2}{\pi} \arctan \left( \frac{\pi r_0}{2 +h_{\infty}} b \right). +$$ + +For satisfying results we choose $h_{\infty} = 2\cdot \texttt{interline}$ +and $r_0 = \frac 13$. + +\subsection{Height correction} + +Aside from being a smooth curve, slurs should avoid crossing +enclosed notes and their stems. + +An easy way to achieve this is to extend the slur's height, +so that the slur will curve just above any disturbing notes. + +The parameter $i$ determines the flatness of the curve. Satisfying +results have been obtained with $i = h$. + +The formula can be generalised to allow for corrections in the shape, +\begin{eqnarray*} +c_1&=& (0,0)\\ +c_2&=& (i', h')\\ +c_3&=& (b-i', h')\\ +c_4&=& (b, 0) +\end{eqnarray*} +Where +$$ +i' = h(b) (1 + i_{corr}), \quad h' = h(b) (1 + h_{corr}). +$$ + +The default values for these corrections are $0$. A $h_{corr}$ that is +negative, makes the curve flatter in the center. A $h_{corr}$ that is +positive make the curve higher. + +At every encompassed note's x position the difference $\delta _y$ +between the slur's height and the note is calculated. The greatest +$\delta _y$ is used to calculate $h_{corr}$ is by lineair extrapolation. + +However, this simple method produces satisfactory results only for +small and symmetric disturbances. + + +\subsection{Tangent method correction} + +A somewhat more elaborate\footnote{While staying in the realm +of emperic computer science} way of having a slur avoid +disturbing notes is by first defining the slur's ideal shape +and then using the height correction. The ideal shape of a +slur can be guessed by calculating the tangents of the disturbing +notes: +% a picture wouldn't hurt... +\begin{eqnarray*} + y_{disturb,l} &=& \rm{rc}_l x\\ + y_{disturb,r} &=& \rm{rc}_r + c_{3,x}, +\end{eqnarray*} +where +\begin{eqnarray*} + \rm{rc}_l &=& \frac{y_{disturb,l} - y_{encompass,1}} + {x_{disturb,l} - x_{encompass,1}}\dot x\\ + \rm{rc}_r &=& \frac{y_{encompass,n} - y_{disturb,r}} + {x_{encompass,n} - x_{disturb,r}} \dot x + c_{3,x}. +\end{eqnarray*} + +We assume that having the control points $c_2$ and $c_3$ located +on tangent$_1$ and tangent$_2$ resp. +% t: tangent +\begin{eqnarray*} + y_{tangent,l} &=& \alpha \rm{rc}_l x\\ + y_{tangent,r} &=& \alpha \rm{rc}_r + c_{3,x}. +\end{eqnarray*} + +Beautiful slurs have rather strong curvature at the extreme +control points. That's why we'll have $\alpha > 1$. +Satisfactory resulsts have been obtained with +$$ + \alpha \approx 2.4. +$$ + +The positions of control points $c_2$ and $c_3$ are obtained +by solving with the height-line +\begin{eqnarray*} + y_h &=& \rm{rc}_h + c_h. +\end{eqnarray*} + +The top-line runs through the points disturb$_{left}$ and +disturb$_{right}$. In the case that +$$ +z_{disturb,l} = z_{disturb,r}, +$$ +we'll have +$$ + \angle(y_{tangent,l},y_h) = \angle(y_{tangent,r},y_h). +$$ + + + +\section{Sizes} + +Traditional engraving uses a set of 9 standardised sizes for Staffs +(running from 0 to 8). + +We have tried to measure these (helped by a magnifying glass), and +found the staffsizes in table~\ref{fonts:staff-size}. One should note that +these are estimates, so I think there could be a measuring error of ~ +.5 pt. Moreover [Ross] states that not all engravers use exactly +those sizes. + +\begin{table}[h] + \begin{center} + \begin{tabular}{lll} +Staffsize &Numbers &Name\\ +\hline\\ +26.2pt &No. 0\\ +22.6pt &No. 1 &Giant/English\\ +21.3pt &No. 2 &Giant/English\\ +19.9pt &No. 3 &Regular, Ordinary, Common\\ +19.1pt &No. 4 &Peter\\ +17.1pt &No. 5 &Large middle\\ +15.9pt &No. 6 &Small middle\\ +13.7pt &No. 7 &Cadenza\\ +11.1pt &No. 8 &Pearl\\ + + \end{tabular} + \caption{Foo} + \label{fonts:staff-size} + \end{center} +\end{table} + +Ross states that the dies (the stamps to make the symbols) come in +12 different sizes. + +\bibliographystyle{plain} +\bibliography{engraving} + + + +\end{document} diff --git a/Documentation/tex/mudela.doc b/Documentation/tex/mudela.doc new file mode 100644 index 0000000000..1d3e303bd5 --- /dev/null +++ b/Documentation/tex/mudela.doc @@ -0,0 +1,1166 @@ +% -*-tex-*- + +% this document should be run through the mudela-book script after lilypond +% has been installed. The rules have been precooked into the +% Documentation/Rules.make file; do +% +% make out/introduction.dvi +% +% or +% +% mudela-book --outdir=out/ --outname=introduction.mudtex introduction.doc +% latex '\nonstopmode \input out/introduction.mudtex' + +% Hoi Tim, hier staan wat 'enge' commando's (die dingen met een '\' +% zoals \documentclass en \def\mudela...). +% Daar moet je je niets van aantrekken, ga gewoon naar Introduction +% en begin te tiepen. + +\documentclass{report} +\usepackage{a4wide} +\title{Mudela} +\author{Jan Nieuwenhuizen \& Han-Wen Nienhuys} +\date{March 2, 1998} + +\def\file#1{\verb+#1+} + +% ugh: trick to get examples not generate par +% these are for 16pt +\def\mudelapaperlinewidth{-28.452756}% +\def\mudelapaperindent{28.452756}% +\def\mudelapaperrulethickness{0.400000}% +\def\mudelapaperbarsize{16.000000}% +\def\mudelapaperinterline{4.000000}% +\def\mudelapapernotewidth{5.930000}% +\def\mudelapaperwholewidth{8.640000}% +\def\mudelapaperunitspace{22.000000}% +\def\mudelapaperbasicspace{4.000000}% +\def\mudelapapergeometric{0.000000}% +\def\mudelapaperarithmetic_basicspace{2.000000}% +\def\mudelapaperarithmetic_multiplier{4.800000}% +\def\mudelapaperinterbeam{3.140000}% +\def\mudelapapergourlay_energybound{100000.000000}% +\def\mudelapapergourlay_maxmeasures{14.000000}% +% huh? +% \def\exampleheight{2\mudelapaperbarsize pt} +\def\exampleheight{2cm} + +% ful of pars, needs the above +\input lilyponddefs +% generates par +\musixsixteendefs +\def\musixsixteendefs{} +% generates par +\turnOnPostScript% +\def\turnOnPostScript{} +% generates par +\def\interscoreline{} +% + +\begin{document} +\maketitle + +%\def\interexample{\hskip15mm$\Longrightarrow$\hskip15mm} +%\def\interexample{\hbox to10mm{\hfill\hbox to0pt{\hss\vbox to\exampleheight{\vss$\Longrightarrow$\vss}\hss}\hfill}} +\def\interexample{} +\def\preexample{\par} +\def\postexample{\par\medskip} + +\def\file#1{{\texttt{#1}}} +\setcounter{secnumdepth}{-1} + +\chapter{A tutorial} + +\emph{\Large ***Under construction***} + +\section{Introduction} + +This chapter is a gentle introduction to using LilyPond to typeset +simple music. + +LilyPond is a so called ``batch'' program. This means, that you use a +text editor (such as \texttt{emacs} or \texttt{vi}) to create an input +file. When you are done editing your input file, you save it, and you +run LilyPond on the file. If Lily finds any errors in your input file +then she\footnote{ We're sure that if computer programs could have +gender, LilyPond would be a female computer program. So we will refer +to the program as a she. This gender-bending is not to tease you, dear +reader. We do it in real life as well. In the past two years LilyPond +has become sort of a baby daughter to us, keeping us awake at night, +but also providing us lots of joy. We hope you do not mind our little +aberration from computer-manual tradition. +% +% The name LilyPond is actually sort of a girl's name. Can you guess which +% one ? +% +} will complain. If everything is well, than she'll generate a file, that +you can process further to view or print. + +Using LilyPond to print or view some music is a procedure with four +steps. To get you started we'll run down the full procedure for you +once. + +\begin{enumerate} +\item +Fire up your favourite editor (if you know none, try \texttt{joe silly.ly}), +and key in the following text: +\begin{verbatim} +\score { + < + \type Staff = aStaff \melodic { g'2 e'4 } + \type Lyrics = yell \lyric { Air2 ball!4 } + > + \paper {} +} +\end{verbatim} + +Save your file as \file{silly.ly}. + +%The input files for LilyPond have the default extension \file{.ly}. + +\item +Run LilyPond on your newly created file: enter \verb+lilypond silly+. +LilyPond will then print all kinds of mumbo jumbo that can safely be +ignored. You might see something like this: +\begin{verbatim} +GNU LilyPond 0.1.55/FlowerLib 1.1.39 +Parsing ... [/home/hanwen/musix/spacer/init/lily-init.ly[/home/hanwen/ + + ... stuff left out here ... + + Documentation/silly.ly] +Interpreting music ...[1] (time: 0.04 seconds) +Preprocessing elements... +Calculating column positions ... [2] +Approximated: 1 lines, (with an average of 4.0 columns) +Time: 0.01 seconds +warning: Can not solve this casting problem exactly; revert to Word_wrap +[2]Time: 0.00 seconds + +Postprocessing elements... +TeX output to silly.tex ... +\end{verbatim} +All has gone well; there were some warning but no errors. The output +is a TeX file, and it is called \file{silly.tex}. \file{TeX} is +usually spelled as \TeX. It is batch program for typesetting text, +developed by the great programmer and scientist Donald Knuth to +typeset his famous The Art of Computer Programming bookseries. As you +can see \TeX\ can be adapted to do a lot more. In fact, the document +that you are reading now was also done with \TeX. +\item + To do something useful with the output you have to run \TeX\ on it + first. Run the command \verb+tex silly+. The output should resemble this: +\begin{verbatim} +This is TeX, Version 3.14159 (C version 6.1) +(silly.tex +Babel and hyphenation patterns for american, dutch, loaded. +(/home/hanwen/lib/texmf/tex/lilypond/lilyponddefs.tex +(/home/hanwen/lib/texmf/tex/lilypond/dyndefs.tex) +(/home/hanwen/lib/texmf/tex/lilypond/fetdefs.tex +(/home/hanwen/lib/texmf/tex/lilypond/feta20.tex) +(/home/hanwen/lib/texmf/tex/lilypond/lily-ps-defs.tex))) [1] ) +Output written on silly.dvi (1 page, 3084 bytes). +Transcript written on silly.log. +\end{verbatim} + The human translation is ``everything went OK, the result is one + page long, and I put it in \file{silly.dvi}.'' + +\item The \file{silly.dvi} file is a description of how a piece of +text looks when it is printed. You can view it, or print it. If you +are using a Unix system equipped with X-Windows, then you can issue +the command \file{xdvi silly} to view the result. If this is not the +case, consult your local \TeX\ guru on printing and viewing DVI files. +What is in your window should look like this: +\begin{mudela} +\score { + < + \type Staff = aStaff \melodic { g'2 e'4 } + \type Lyrics = yell \lyric { Air2 ball!4 } + > +} +\end{mudela} +\end{enumerate} + +The remainder of this document is not about \TeX, and mostly not even +about LilyPond. What you entered into your text editor in step~1. and +fed to LilyPond is a special kind of file composed of notenames, +special words and punctation. The remainder of this document explains +how to combine these elements to express a piece of music in the +language that LilyPond understands. In other words, we try to explain +how to use LilyPond, and not how LilyPond works. For want of a better +name we call this language Mudela (short for Music Description +Language). + +This document does not cover all of Mudela. Due to technical details, +the precise working of Mudela is coupled to the innards of LilyPond. +If you really want to know all the details, your best bet would be to +get the sources to LilyPond and read the parser and scanner source. +They are in \file{lilypond-x.y.z/lily/parser.y}, +\file{lilypond-x.y.z/lily/lexer.l}\footnote{Of course, it would be even +better if you would improve LilyPond and send the resulting diffs to +us. But that would a really different ballpark (And we haven't +started with the programming guide yet.)} + +In the following sections the basic elements of Mudela are presented. +We don't want to bore you too much with details, so we will leave-out +some red tape that's needed for a valid piece of Mudela: to be +precise, we will write \verb+X Y Z+, when we really mean +\begin{verbatim} +\score { + \melodic { X Y Z } + \paper {} +} +\end{verbatim} +Usually, we will also print the resulting fragment of music on the +right just as it was produced by LilyPond. + +For the remainder we will assume that you can carry out steps 1 to 4 +from the above instruction. We will also assume that you know how +music notation works. If you are not familiar with the English terms +for music notation, then you should consult XXXX [FIXME], it contains +a glossary of musical terms. + +\section{Music copying versus music definition} + +If you have done music copying before, then using LilyPond may seem +awkward to you in the beginning. The purpose of LilyPond is informally +explained by the term ``music typesetter.'' + +This may give the impression that the program is like a drawing tool +that lets you control precisely how the music is formatted. This is +not the case: not only does the program print musical symbols, +LilyPond also tries to make esthetic decisions---to be precise, we +programmed her to do what we find pretty. You do not have complete +control over what is happening. On the other hand, good engraving is +a very complex trade, so it is a Good Thing that you do not have to +worry about what is happening. + +Secondly, LilyPond operates on musical definitions. This really is +something different from graphical definitions. If you copy music by +hand from a printed score, you don't have to know what the score +means; you just copy the symbols. With LilyPond such a thing is not +possible: we expect you to enter the meaning of the score, not the +score itself. If put more concretely: you do not enter ``black +notehead without flag, fourth staff line'', but ``a quarter note, +pitch d$^2$''. LilyPond will figure out from the musical info what +kind of graphic presentation is needed. + +This has some drawbacks: most notably, it is difficult to enter sheet +music that you cannot read. On the other hand, any piece of music +once entered can be played and transposed automatically. + + +\section{When you know the notes to print\ldots} + +The basic building block of music is the note. You can have LilyPond +print a note by specifying its pitch and the duration. The pitch of +the central C, also known as c$^1$, is written as \verb+c'+. A quarter +note duration is written as \verb+4+. So, to print quarter note with +central C pitch, you enter the following +\begin[fragment,verbatim,center]{mudela} +c'4 +\end{mudela} +The pitch \verb+c'+ actually consists of two parts: one for the note +name, and one part for the octave. The number of apostrophes +specifies the octave to use, and the letter which note name to use. +The note names simply are the letters \verb+a+ to \verb+g+. + +For example, +\begin[fragment,verbatim]{mudela} + c'4 d'4 e'4 c'4 c''4 d''4 e''4 f''4 g''4 a''4 b''4 c'''4 +\end{mudela} + +The duration of a note is specified as a number: a whole note is +denoted by 1, the half note by 2, the quarter by 4, and so on. Here +are some random notes to show how it works +\begin[fragment,verbatim]{mudela} +'c8 c8 c'16 c''32 d''64 b'64 c'''2 c1 c'4 d'4 e'4 f'4 g'4 a'4 +\end{mudela} + +This gives us already enough material to make simple songs: +\begin[fragment,verbatim]{mudela} + c''4 d''4 e''4 c''4 + e''4 f''4 g''2 + g''8 a''8 g''8 f''8 e''4 c''4 + c''4 g'4 c''2 +\end{mudela} + +There is only one part about pitches that we haven't told you: +chromatically altered pitches. The names ``a'' to ``g'' for typing +pitches are convenient: they are short, pronounceable and they +resemble the normal vocabulary for pitches. + +Enter flats and sharps. In English there is no standard terse word +for C sharp or C flat. For this reason, we implemented a different, +non-english convention for entering altered pitches, see +table~\ref{notename-tab}: one makes a note sharp by adding the suffix +``--is'' to the name, one makes the a note flat by adding the suffix +``--es.'' For a double sharp you simply add another ``--is'' suffix, +flats ditto. + + +\begin{table}[h] + \begin{center} + \caption{Defaults note names}\label{notename-tab} + \begin{tabular}{ll} + english &LilyPond\\ + \hline\\ + c double flat &ceses\\ + c flat &ces\\ + c natural &c\\ + c sharp &cis\\ + c double sharp &cisis\\ + \end{tabular} + + \end{center} +\end{table} + +Variations on this convention are used in a number of germanic +languages, notably Dutch, German, Swedish, and Norwegian. To be +precise, LilyPond actually defaults to dutch notenames, with aes, +aeses, ees and eeses added for consistency. + +If you are not comfortable with these names, you can make your own +names. Included with the example initialisation files are note names +for different languages, among others English (C sharp is abbreviated +to cs), Italian, Swedish, Norwegian + +\section{Hairy rhythms} + +\section{Handy input} + +% \subsection{Durations} + +However, having only quarter notes may get a bit dull. +Durations are entered as their reciproce values +% a1 a2 a4 a a8 a a16 a a32 a a64 a a a a +\begin[fragment,verbatim,center]{mudela} +a1 a2 a4 a a8 a a16 a32 a64 +\end{mudela} +note that you only have to specify +the duration when it changes: +Lily assumes a note has the same duration as the previous one. + +Now we can already write a little tune +\begin[fragment,verbatim,center]{mudela} +c d e c | c d e c | e f g2 +\end{mudela} +As you'll probably have guessed, +the vertical bar (pipe) \verb+|+ may be used to mark +measures. + +In the scale shown above +we left-out the last c note of the next octave. +Postfixing the pitch with a quote \verb+'+ +produces a note by one octave higher +\begin[fragment,verbatim,center]{mudela} +c c' c'' +\end{mudela} + +Prefixing the pitch with a quote \verb+'+ +produces a note by one octave lower +\begin[fragment,verbatim,center]{mudela} +a 'a ''a +\end{mudela} + +\section{Slurs and Ties} + +A tie connects two adjacent noteheads + +\begin[fragment,verbatim,center]{mudela} +e' ~ e +\end{mudela} + +Whereas a slur rather connects `chords', +and tries to avoid crossing stems + +\begin[fragment,verbatim,center]{mudela} +e'( )e +\end{mudela} + +And of course, such a (legato) slur can span several notes +\begin[fragment,verbatim,center]{mudela} +c( d e )f +\end{mudela} + +\section{Beams and Plets} + +A beam is +\begin[fragment,verbatim,center]{mudela} +[a8 a] [a16 a a a] +\end{mudela} + +Here's a beamed triplet +\begin[fragment,verbatim,center]{mudela} +[/3 a8 a a]/1 +\end{mudela} + +a triplet without a beam +\begin[fragment,verbatim,center]{mudela} +\[/3 a4 a8\] +\end{mudela} + +and a combination +\begin[fragment,verbatim,center]{mudela} +[/3 a8 a16 a] a8 \] +\end{mudela} + +Abbreviations +\begin[fragment,verbatim,center]{mudela} +c1:16 [:16 e1 g] +\end{mudela} + +\begin[fragment,verbatim,center]{mudela} +c4:32 [:16 c8 d8] +\end{mudela} + +\section{Notenames} + +Lily has predefined sets of notenames +for various languages% +\footnote{These are Dutch, English, German, Italian and Swedish. +Simply include the language specific init file \file{}.}. +The default set are the ones we like best are the Dutch notenames. + +A sharp is formed by adding \verb+is+ +\begin[fragment,verbatim,center]{mudela} +cis dis eis fis gis ais bis +\end{mudela} + +and a flat is formed by adding \verb+es+% +%\footnote{Exceptions: \verb+es+ and \verb+as+.} +\footnote{Exceptions: {\tt es} and {\tt as}.} +\begin[fragment,verbatim,center]{mudela} +ces des es fes ges as bes +\end{mudela} + +With the obvious names for double sharps +\begin[fragment,verbatim,center]{mudela} +cisis disis eisis fisis gisis aisis bisis +\end{mudela} + +and double flats +\begin[fragment,verbatim,center]{mudela} +ceses deses eses feses geses ases beses +\end{mudela} +See why we like-em? + +There are two special `notenames', the rest +\begin[fragment,verbatim,center]{mudela} +r16 [a a a] +\end{mudela} + +and the space +\begin[fragment,verbatim,center]{mudela} +a2 s-"diminuendo" | a +\end{mudela} + + +\section{Commands} + +\begin[fragment,verbatim,center]{mudela} +\clef "bass"; 'c +\end{mudela} + +and a clef-change +\begin[fragment,verbatim,center]{mudela} +\clef "violin"; f' e' \clef "alto"; d' c' +\end{mudela} + +\begin[fragment,verbatim,center]{mudela} +\meter 3/4; c g g | +\end{mudela} + +\begin[fragment,verbatim,center]{mudela} +\key fis cis; +'g 'a 'b cis d e fis g' +\end{mudela} +Note how Mudela allows you to +convey a musical message +rather than forces you to produce a list of typesetting commands. +If the music a \verb+cis+, you type a \verb+cis+. +Depending on the key and context of the note +Lily will determine what accidentals to typeset. + +A reminder accidental can be forced by +using an exclamation mark \verb+!+ +on a pitch a reminder accidental +\begin[fragment,verbatim,center]{mudela} +cis d e cis | c! d e c | +\end{mudela} + +\begin[fragment,verbatim,center]{mudela} +\meter 2/4; +\bar "|:"; c c \bar ":|:"; c c \bar ":|"; c c \bar "|."; +\end{mudela} + +\section{Chords and Voices} + +Here's a simple chord +\begin[fragment,verbatim,center]{mudela} + +\end{mudela} + +here are a few +\begin[fragment,verbatim,center]{mudela} +< + { c()d()c } + { e()f()e } + { g()a()g } +> +\end{mudela} + +and similarly voices +\begin[fragment,verbatim,center]{mudela} +< + { \voiceone c g c g } + { \voicetwo 'c2 'g2 } +> +\end{mudela} + + +\section{A complete example} +%\label{se:complete} + +A Mudela file needs some red tape + +\begin[verbatim,center]{mudela} +\score{ + \melodic { + \octave c'; + c d e c | + c d e c | + e f g2 | + } +} +\end{mudela} + +\section{Lyrics} + +\begin[verbatim,center]{mudela} +\score{ + < + \melodic{ + \octave c'; + c d e c | c d e c | + e f g2 | e4 f g2 + \bar "|."; + } + \type Lyrics \lyric{ + Fr\`e-4 re Ja- que + Fr\`e- re Ja- que + Dor- mez vous?2 + Dor-4 mez vous?2 + } + > +} +\end{mudela} + +\section{Variables} + + +\section{Ly2dvi} +Check-out this handy little script +that not only may save you quite some keystrokes, +but produces titles and takes care of +margins and (hopefully) papersizes. +See \file{ly2dvi (1)}. + +\chapter{Input format reference} + +October 8, 1997 + +This document describes the the GNU LilyPond input format, which is an +effective language for defining music. We call this language (rather +arrogantly) The Musical Definition Language or Mudela, for +short.\footnote{If anybody comes up with a better name, we'd gladly + take this. Gourlay already uses Musical Description Language, + G-Sharp Score Definition Language. ISO standard 10743 defines a + Standard Music Description Language. We're not being original here} + +The first aim of Mudela is to define a piece of music, being complete +from both from a musical typesetting, as from a musical performing +point of view. + +The Musical Definition Language (Mudela), has a logical structure, +making use of identifiers, that allows for flexible input, and +definition reuse. See \file{MANIFESTO} for reasons and design considerations. + +The below included for explanatory purposes only (i.e., for a complete +and up-to-date definition, see \file{lily/parser.y} and +\file{lily/lexer.l}): + +As a related note, you should take a look at the examples and the init +files, as this document does not cover every aspect of mudela yet, and +may be out of date.\footnote{Ok, I am being pessimistic here. This + just is a disclaimer. Docs usually are written after the program + itself.} This document intends to give an idea of how it works, it +is not a guide on how to use it. + + +\section{Basic elements} + +\subsection{Files} + +The de-facto extension of Mudela is \file{.ly}. Files may be included by +entering \verb+\include+ at the start of a line: + +\begin{verbatim} +\include "a_file.ly" +\end{verbatim} + + +\subsection{Comments} + +Line comments are introduced by a +\verb+%+. +Block comments are delimited +by +\verb+%{+ +and +\verb+%}+. +They do not nest. + +\subsection{Versions} + +Occasionally, small changes in syntax across different versions of +Mudela might give syntax errors. To warn you about possible +incompatibilities, you can specify the Mudela version for which the +inputfile was written, +\begin{verbatim} +\version "0.0.50"; +\end{verbatim} + +A perl-script which tries to convert to newer versions +(\file{convert-mudela}) is included in the LilyPond distribution. + +\subsection{Words} + +Keywords are preceded by a backslash: \verb+\+. They contain +alphabetic characters only. + +Identifiers in their normal form consist start with a backslash, a +alpha character, followed by alpha-numerics. Identifiers can contain +any characters (except whitespace, + and \verb+%+), if you use this construct: + +\begin{verbatim} +\$i'm_a_weird!!!identifier +\end{verbatim} + +(which is the identifier with the name +\verb+i'm_a_weird!!!identifier+). \verb+$+ Takes any sequence of +characters which are not whitespace, \verb+$+ and \verb+%+. +\verb+$i'm_a_weird!!!string+ +\def\foobar{$} % silly fontlock mode + +\subsection{Nesting characters} + +Mudela uses the brace (\verb+{+ and \verb+}+) for most hierarchical +structures. For chords the \verb+<+ and the \verb+>+ are used as +nesting braces. + +\subsection{Constants} + +Please note that -.5 is not a Real. + +\begin{verbatim} +"I am a string" +-1.2e3 % a real +12 % an int +\end{verbatim} + + +\subsection{Identifiers} + +When assigning identifiers you use + +\begin{verbatim} +string = ... +\end{verbatim} + +If you reuse identifiers, then the previous contents will be thrown +away after the right hand is evaluated, eg +\begin{verbatim} +bla = \melodic { \bla } +\end{verbatim} +is legal + +When using identifiers they have to be escaped: + +\begin{verbatim} +oboe = \melodic { ... } +\score{ \melodic { \oboe }} +\end{verbatim} + +The left-hand part of the assignment is really a string, so +\begin{verbatim} +"Foo bar 4 2 " = \melodic { .. } +\end{verbatim} + +is also a valid assignment (but you would have trouble referencing to it) + + +\subsection{Hierarchical structures} + +The general structure consists of declarations: +\begin{verbatim} +IDENTIFIER = \TYPE{ + +} +\end{verbatim} +and instantiations: + +\begin{verbatim} +\TYPE{ } +\end{verbatim} + +(Currently, \verb+\score+ is the only type that can be instantiated +at top level. Currently declarations can only be done at top level) + +Most instantiations that use an IDENTIFIER are specified as follows: + +\begin{verbatim} +\TYPE{ IDENTIFIER [...] } +\end{verbatim} + +Some exceptions on this rule have been made to prevent inputting +Mudela becoming tedious + + +\subsection{Modes:} + +To simplify different aspects of music definition (entering the notes +and manipulating them) Mudela has a number of different input "modes": + +\begin{description} + + +\item[Normal mode] + +At the start of parsing, Mudela assumes normal mode. +In Normal mode, a word is looked up in the following order: +\begin{description} +\item{\verb+word+} string +\item{\verb|"string"|} string +\item{\verb|\word|} keyword, identifier +\end{description} +In normal mode, a word is assumed to start with an alphabetic +character, followed by alpha-numeric characters. + +\item[Note mode] Note mode is introduced by the keyword + \verb+\melodic+. In Note mode, a word is looked up in the following + order: +\begin{description} +\item{\verb+word+} notename, string +\item{\verb|"string"|} string +\item{\verb|\word|} keyword, identifier +\end{description} + +In Note mode a word is considered to have alphabetic characters only, +so the underscore (\_) is illegal. If you accidently mistype a +notename, the parser will assume that you are entering a string (and +it will most likely complain that you should be in \verb|\lyrics| mode to +do lyrics) + + +\item[Lyric mode] Lyrics mode (and thus Simple mudela) is introduced + by the keyword \verb+\lyrics+. Because of the various control + characters that can appear in lyrics, eg, ``foreign language'' + accents, the inputting a string containing these has been made very + easy. + +In Lyrics mode, a word is looked up in the following order: +\begin{description} +\item{\verb+word+} string (thus a lyric) +\item{\verb|"string"|} string +\item{\verb|\word|} keyword, identifier +\end{description} + +In Lyric mode every sequence of non-digit and non-white characters +starting with an alphabetic character or the \_ is considered a word. + +\begin{verbatim} +a&@&@&TSI|{[ % a word +1THtrhortho % not a "word" +Leise Fl\"u\ss{}teren meine Sapfe % 4 words +_ _ _ _ % 4 words: 4 spaces +\end{verbatim} +\end{description} + +These modes are of a lexical nature. Normal and Note mode largely +resemble each other, save the possibility of entering Reals, +meaning of \verb+_+ and the resolution of words + +\subsection{Notes} + +You enter a note by giving the name and the reciprocal of the duration: + +\begin[fragment,verbatim]{mudela} +a'4 % Dutch names +\end{mudela} + +is a A-1 pitched crotchet. The ' signifies an octave change. A-1 is 440 +Hz concert-pitch. \verb+c'+ is also known as the central c. More examples: + +\begin[fragment,verbatim]{mudela} + 'a % 110 + a % 220 + A % 110, uppercase octavates down + a' % 440 + a'' % 880 + 'as4.*2/3 +\end{mudela} + +The last one is an A flat, (just below 110 Hz concert-pitch). The \verb+*2/3+ +signifies that this note is part of a triplet (3 in stead of 2). The +duration is one and a half quarter note (\verb+4.+) times 2/3. + +Notenames are just a special kind of identifiers, and can be declared +for any language appropriate (see \file{init/dutch.ly}). The default language +for notenames is defined to be Dutch. In Dutch, the notenames are +a,b,c,d,e,f and g. Sharps are formed by adding the extension "is", +flats by adding ``es'' + +\begin{verbatim} +% double sharp +cisis disis eisis fisis gisis aisis bisis +% sharps +cis dis eis fis gis ais bis +% naturals +c d e f g a b +% flats +ces des es fes ges as bes +% double flats +ceses deses eses feses geses ases beses +\end{verbatim} + +Rests are named r or s +\begin{verbatim} +r % print a rest +s % a "space" rest, nothing is printed. +\end{verbatim} + +These notenames along with duration are enough material to construct +simple melodies: + +\begin[verbatim,fragment]{mudela} +\octave c'; +c4 c4 g4 g4 a4 a4 g2 +f4 f4 e4 e4 d4 d4 c2 +\end{mudela} + +Music is able to express more. generally speaking, the other +'features' are either connected between notes (slurs, beams: spanning +requests) or attached to notes (eg. accents). The former are +implemented as START and STOP stop features and then attached to the note. + +\begin{description} +\item{[ and ]} start and stop a beam +\item{( and )} start and stop a slur +\end{description} + +example: +\begin[verbatim,fragment]{mudela} + \octave c'; + [c8 () d8 () e8 + e8(] [)g8 % NO nesting! + [2/3 c8 c8 c8]1/1 % a triplet +\end{mudela} + +Please note that these two characters do \emph{not} necessarrily nest, +they should be attached to the note. For this reason, the construct +\verb+[ ]+ will generate a parse error. + +\subsection{Slurs and Ties} + +Ties connect the noteheads of adjacent notes. They are entered as follows: + +\begin[verbatim,fragment]{mudela} +a'4 ~ a''4 +\end{mudela} + +Slurs connect whole chords, and try to avoid crossing stems. They are +entered as follows: + +\begin[verbatim,fragment]{mudela} +a'4( )a''4 +\end{mudela} + +\subsection{Scripts} + +Symbols which can be put at either side (above or below) of a staff +are entered as follows: +\begin[verbatim,fragment]{mudela} + a-^ % marcato, direction: default + %a^- % portato, direction: above note + a_. % staccato, direction: below note + a^\fermata % predefined identifier + c_"marcato" % add a text + c^"marcato" + c-"marcato" +\end{mudela} + +If you want to define your own scripts refer to \file{init/script.ly} for +details. + + +Dynamics can be put after the notename: +\begin{verbatim} +a4 \dynamic { 0 } % 0 = fff, 7 = ppp +\end{verbatim} + +Mudela defines the following dynamic identifiers: + +\begin{verbatim} +ppp pp p mp mf f ff fff sfz fz fp +\end{verbatim} +and the following abbreviations: +\begin{verbatim} +\< %start crescendo +\> % start decrescendo +\! % end crescendo/decrescendo +\end{verbatim} + +\subsection{Defaults} + +If omit the duration of a note, a default value is substituted. For +this default value mudela uses the last duration explicitly entered. + +Thus the following inputs are equivalent +\begin{verbatim} +c4 c4 c16 c16 c16 s16 c4 c16 +c4 c c16 c c c c4 c16 +\end{verbatim} + +If you are typing music which does not lie in the "small" and "large" +octave, you can prevent having to type \verb+'+ all the time by using the +\verb+\octave+ command: These two lines have the same pitch. +\begin{verbatim} +c'' d'' e'' c d e c d e +\octave c''; c d e ''c ''d ''e \octave c; c d e +\end{verbatim} + +By default the setting of \verb+\octave+ is 0. + +\subsection{Lyrics} + +Lyrics in Mudela resemble Simple mudela a lot, with notes substituted +by text. + +All syllables are entered separately, separated by whitespace +\begin{verbatim} +Twin-4 kle4 twin-4 kle4 ... +\end{verbatim} + +Two syllables or words that compose a single +duration entry are bound together using an underscore +\begin{verbatim} +He_could4 not4 +\end{verbatim} + +\section{Composition: forming bigger structures} + +The previous examples tacitly assumed that a sequence of notes is +printed in a left to right manner. This is not entirely correct, you +will get the bigger picture in this section. + +In mathematics you can form expressions by combining expressions, +which are ultimately some kind of atom or terminal symbol. The same +goes for mudela: there are some basic building blocks, and by +combining those you create complex music. + +You can combine music in three ways: +\begin{itemize} +\item If you enclose a sequence of music-elements in braces ( \verb+{+ + and \verb+}+ ), then you form another kind of music called (Voice) with those pieces. + The duration of the Voice is the sum of the durations of its elements +\begin{verbatim} +{ c c g g a a g2 } % twinkle twinkle +{ { c c g g} { a a g2 } } +\end{verbatim} +\item You can stack music by enclosing a sequence of music elements + with \verb+<+ and \verb+>+. This is called a Chord. The duration of a Chord is + the union of the durations of its elements Example: +\begin{verbatim} + % a-major chord +\end{verbatim} +\item + You can form music by transposing music: +\begin{verbatim} +\transpose + d % from c to the d that's one octave down + { e4 f4 } % the horizontal music +\end{verbatim} +\end{itemize} + +Of course you can also combine these three mechanisms. +\begin{verbatim} +{ c } % 4 increasing chords +\end{verbatim} + +The basic building block in Mudela is called Request. Examples of +Requests are: Timing (such as Meter), Rhythmic, Melodic, Note (which is a combination of +Rhythmic and Melodic), Musicscript (put an accent over a note or +rest), etc. For the actual up to date listing, you should consult the +LilyPond source code: the Request types form a big class hierarchy. + +Normally you don't enter Requests directly, since that would be +tedious. Mudela has standard abbreviations for the most common +combination of Requests. If you enter \verb+c4+, this is an +abbreviation for: +\begin{verbatim} +Request_chord{ + Note_req{ + notename: 0 acc: 0 oct: -1 + duration { 4} + } + Stem_req{ + duration { 4} + } +} +\end{verbatim} + +The \verb+Request_chord+ is a special kind of chord which only allows +Requests as its elements. The examples of the previous section were +processed with \verb+{+ and \verb+}+ enclosing the input. + +\subsection{Durations} + +A duration always starts with the duration type (1,2,4 etc), and then +any optional multipliers/dots. Old fashioned durations can be entered +as follows +\begin{verbatim} +'c\breve +gis'\longa +\end{verbatim} + + + +\subsection{Meters/groupings} + +A meter has this form: +\begin{verbatim} +\meter 3/4 ; +\end{verbatim} + +Rhythmic grouping is a concept closely associated with this. For +example, in a 5/8 meter, the counts are grouped 2+3. In mudela this is +entered as +\begin{verbatim} +\grouping 8*2 8*3 ; +\end{verbatim} +You can start the piece with a partial measure, the command takes the +same syntax as grouping: +\begin{verbatim} +\partial 16*3 4; +\end{verbatim} + +Make the piece start with a upstep [english translation?] +lasting 1 3/4 quarter notes. + +These commands are also "voice elements", and constitute ``Music'' +(consisting of stuff with duration 0). + + +\subsection{Voicegroups} + + +[OUTDATED] + +If more than one "voice" is in a staff, then you have the option of +putting the different voices into so called voicegroups: members of +the same voicegroup share certain characteristics, among others: + + - dynamics + - text + - beams and stems + - scripts + +For the actual list, see the init file \file{init/register.ly} + +Putting different musical lines in to the same voicegroup effectively +makes LilyPond try to form chords of all those lines. Putting +different musical lines in to different voicegroups effectively makes +LilyPond try to set those lines as independently as possible. + +[adsolete. Has to be fixed in lily] + +You can set the voicegroup of a voice with the command \verb+\group+, e.g., + +\begin{verbatim} + oboeI = \melodic { + \group "oboes"; + [e8 f8 + \group "+solo"; + [g16 a16 g16 fis16] + \group "-"; + g8 f8 + } + oboeII = \melodic { \group "oboes"; + c8 d8] + e4 + e8 d8 + } + /// ... + + \staff { + melodicregs \melodic{ oboeI } + \melodic { oboeII} +} +\end{verbatim} + +In this example, the two oboe voices share one staff and are initially +in the voicegroup called "oboes". They will share beams, dynamics etc. +After two quarter notes, oboeI "pushes" its group: a new voicegroup is +created, called "oboes+solo". The \verb+\group "-"+ command makes the +voice enter "oboes" again. + +Please do note that [] are voicegroup wide; the previous input is +valid: the beam, started in oboeI, voicegroup "oboes" is also ended in +voicegroup "oboes", albeit not in oboeI but oboeII + +This concept may seem contorted, but it allows you to set the separate +oboe parts without changing the \verb+oboeI+ and \verb+oboeII+ (assuming that +you edit the [] in the example.) + +The construct +\begin{verbatim} +< { .... } {......} > +\end{verbatim} +makes a chord (all horizontal parts are in the same voicegroup). The construct +\begin{verbatim} +\multi 2 < { ....} { .... } > +\end{verbatim} +creates horizontal parts which behave independently. You will have to +set voicegroup features by hand (\verb+\stem+ and \verb+\hshift+. See examples) + +The construct +\begin{verbatim} +\multi 3 < { ....} { .... } > +\end{verbatim} +creates a chord with each part in a different staff + + +\subsection{Examples} + +Examples are included with the GNU LilyPond distribution. For the sake of +maintenance no long examples are included in this document. + + +\section{History} + +This language has a number of roots. First and foremost, GNU +LilyPond's predecessor mpp was the inspiration of the Note-mode input. +Secondly, the hierarchical structure looks a lot like Rayce's (Rayce +is a raytracer that I've written as a hobby project. ), which in turn +owes a lot to POVRay. + +Now, we know, musictypesetting and raytracing do not necessarily +require the same input format, and we know that a lot more ways exist +to convert music to ASCII, but we did give this language some +thoughts. As always suggestions are appreciated. + +\end{document} + + diff --git a/Documentation/tex/out/dummy.dep b/Documentation/tex/out/dummy.dep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/INSTALL.txt b/INSTALL.txt index d52fa09d70..d1baab3015 100644 --- a/INSTALL.txt +++ b/INSTALL.txt @@ -61,7 +61,7 @@ RECOMMENDED -27/Apr/98 LilyPond 0.1.59 1 +25/Apr/98 LilyPond 0.1.59 1 @@ -127,7 +127,7 @@ CONFIGURING and COMPILING -27/Apr/98 LilyPond 0.1.59 2 +25/Apr/98 LilyPond 0.1.59 2 @@ -193,7 +193,7 @@ CONFIGURING FOR MULTIPLE PLATFORMS -27/Apr/98 LilyPond 0.1.59 3 +25/Apr/98 LilyPond 0.1.59 3 @@ -259,7 +259,7 @@ EXAMPLE -27/Apr/98 LilyPond 0.1.59 4 +25/Apr/98 LilyPond 0.1.59 4 @@ -325,6 +325,6 @@ AUTHORS -27/Apr/98 LilyPond 0.1.59 5 +25/Apr/98 LilyPond 0.1.59 5 diff --git a/NEWS b/NEWS index 7fc5f9bcb5..4a4d8ad0b5 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,40 @@ +************** +pl 60 + - mats patches: use Latex font stuff. + - fixes to the .59 patch release (jcn) + - make website|examples target + +pl 59.jcn3 + - bf: preludes-5 + - no inline compiler warnings by default + - bf: gcc 2.8 compile bow.cc + - moved functions with loops from varray.hh to varray.cc + - bf: minimum length for tie + - slur clipping standard + - bf: second broken slur minimum length + +pl 59.jcn2 + - added some to .dstream + - bf: second part of broken slur + - slur encompassing noteheads adjust + - bwv'd preludes + - bf: make-patch -d + - doc'd rerunning of autoconf + - rest of real standje (rename and move simplified standchen to + input/test?) + - bf: clipping + - bit better bar number placement + +pl 59.jcn1 + - more INLINE + - bf: multi-measure rest + +pl 58.jcn7 + - los-toros: do multi-bar rest + + + +*************** pl 59 - ly2dvi 0.9.hwn1, -K switch, - doc: moved manpages in separate directory. diff --git a/PATCHES.txt b/PATCHES.txt index a608193dc0..70d234cbd7 100644 --- a/PATCHES.txt +++ b/PATCHES.txt @@ -61,7 +61,7 @@ PREREQUISITES -20/Apr/98 LilyPond 0.1.59 1 +28/Apr/98 LilyPond 0.1.60 1 @@ -89,6 +89,20 @@ PATCHES(1) LilyPond documentation PATCHES(1) test/ + If you're following LilyPond development regularly, you + probably want to download just the patch for each + subsequent release. After downloading the patch (into the + patches directory, of course), simply apply it: + + gzip -dc ../patches/patch-0.1.49.gz | patch -p1 -E + + and don't forget to make automatically generated files: + + autoconf 1) + configure + + +SYNCHRONISE If you're not very quick with sending your patch, there's a good chance that an new release of LilyPond comes available. In such a case (and sometimes for other unkown @@ -98,13 +112,30 @@ PATCHES(1) LilyPond documentation PATCHES(1) against this new source tree: cd lilypond-0.1.49 - zpatch -p0 -E < ../patches/patch-0.1.48.jcn1.gz + gzip -dc ../patches/patch-0.1.48.jcn1.gz | patch -p1 -E + autoconf 1) + configure Then, make a patch as shown above. + 1) patches don't include automatically generated files, + i.e. configure + and files generated by configure. + MAINTAINER Han-Wen Nienhuys + + +28/Apr/98 LilyPond 0.1.60 2 + + + + + +PATCHES(1) LilyPond documentation PATCHES(1) + + Just keep on sending those patches! @@ -127,6 +158,41 @@ MAINTAINER -20/Apr/98 LilyPond 0.1.59 2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +28/Apr/98 LilyPond 0.1.60 3 diff --git a/TODO b/TODO index 4d189db612..06720105d2 100644 --- a/TODO +++ b/TODO @@ -20,6 +20,10 @@ grep for TODO and ugh/ug * robustify Beam (in case of no stems, 32nd notes) + * fix [c8 c16 c16] (mustn't slope) + + * fix silly " "2*12 a4 (=4*12) sticky plet + * check for groff / troff/ nroff et * latex quirk? @@ -180,9 +184,13 @@ languages: * add to MIDI output: - tempo change + - ornaments (and trills?) - repeat - slurs - - dynamics etc. + - accents + - dynamics + - account for rhythmic position in measure + - etc. * grace notes - make separate class for Grace_*_engravers diff --git a/VERSION b/VERSION index ca4b0d8662..5256cfd8a8 100644 --- a/VERSION +++ b/VERSION @@ -1,6 +1,6 @@ MAJOR_VERSION=0 MINOR_VERSION=1 -PATCH_LEVEL=59 +PATCH_LEVEL=60 MY_PATCH_LEVEL= # use the above to send patches, always empty for released version: diff --git a/bin/genheader.py b/bin/genheader.py old mode 100644 new mode 100755 diff --git a/bin/ls-latex.py b/bin/ls-latex.py new file mode 100644 index 0000000000..1f53bb81f5 --- /dev/null +++ b/bin/ls-latex.py @@ -0,0 +1,82 @@ +#!@PYTHON@ + +import sys +import os + +lilypath ='' +try: + lilypath = os.environ['LILYPOND_SOURCEDIR'] + '/' +except KeyError: + print 'Please set LILYPOND_SOURCEDIR to the toplevel source, eg LILYPOND_SOURCEDIR=/home/foobar/lilypond-1.2.3/' + sys.exit(1) + +lilypath = lilypath + '/bin/' +sys.path.append(lilypath) + +from lilypython import * +import __main__ +import glob + + + +latex_author_re = regex.compile('\\author{\([^}]+\)}') +latex_title_re = regex.compile('\\title{\([^}]+\)}') + +class Latex_head: + def __init__ (self): + self.author = '' + self.title = '' + self.date = '' + self.site = '' + + +def read_latex_header (fn): + s = gulp_file (fn) + i = regex.search( '\\\\begin{document}', s) + if i < 0: + raise 'huh?' + s = s[:i] + s = regsub.gsub('%.*$', '', s) + s = regsub.gsub('\n', ' ', s) + if latex_author_re.search (s) == -1 : + raise 'huh?' + + header = Latex_head() + header.filename= fn; + header.author = latex_author_re.group (1) + if latex_title_re.search (s) == -1: + raise 'huh?' + header.title = latex_title_re.group (1) + return header + +def print_html_head (l,o,h): + (pre, ext) = o + out = regsub.gsub ('\.[^.]+$', ext, h.filename) + l.write ('
        • %s

          by %s

          ' % (pre + out, h.title, h.author )) + l.write ('
        • ') + + +import getopt + +(cl_options, files) = getopt.getopt(sys.argv[1:], + 'e:h', ['help', 'prefix=' ,'extension=']) + +tex = '' +output ='' +pre = '' + +for opt in cl_options: + o = opt[0] + a = opt[1] + if o == '--extension' or o == '-e': + ext = a + if o == '--prefix' or o == '-p': + pre = a + +l = sys.stdout + +l.write ('TeX documents

          TeX documents

            ') + +for x in files: + print_html_head (l, (pre,ext), read_latex_header (x)) +l.write ('
          ') diff --git a/bin/make-patch.py b/bin/make-patch.py index 69e14b0cc2..d6c8502d9e 100755 --- a/bin/make-patch.py +++ b/bin/make-patch.py @@ -53,7 +53,7 @@ usage \n\ cd lilypond-source-dir; patch -E -p1 < %s\n\ \n\ Patches do not contain automatically generated files, \n\ -i.e. you should rerun configure\n\n' +i.e. you should rerun autoconf and configure\n\n' # ugh, how to get rid of .tex files generated by lily? pats = ['*.lsm', 'configure', '*.txt', 'lilypond.spec'] @@ -144,8 +144,9 @@ def main(): sys.stderr.write('copying ' + srcdir + ' to ' + diffdir + '\n') # os.system('cp -pr %s %s' % (srcdir, diffdir)) os.system('mkdir -p %s '% (diffdir)) - os.system('tar cf - --exclude out %s | tar -xf - -C %s' - % (srcdir, '/tmp/make-patch')) + os.chdir (srcdir) + os.system('tar cf - --exclude out . | tar -xf - -C %s' + % diffdir) if to_b != 0: os.chdir ('/tmp/make-patch') @@ -156,8 +157,9 @@ def main(): sys.stderr.write('copying ' + srcdir + ' to ' + diffdir + '\n') os.system('mkdir -p %s '% (diffdir)) # os.system('cp -pr %s %s' (srcdir, diffdir))% - os.system('tar -cf - --exclude out %s | tar -xf - -C %s ' - % (srcdir, '/tmp/make-patch')) + os.chdir (srcdir) + os.system('tar -cf - --exclude out . | tar -xf - -C %s ' + % diffdir) os.chdir('/tmp/make-patch') os.chdir(todir) diff --git a/bin/make-website.py b/bin/make-website.py index ccff8df603..ac6d865af6 100755 --- a/bin/make-website.py +++ b/bin/make-website.py @@ -55,6 +55,7 @@ include_path=[ 'input', 'mutopia' , 'mutopia/J.S.Bach', 'mutopia/Coriolan', def set_vars(): __main__.lilyversion = version_tuple_to_str(lilydirs.version_tuple()) os.environ["TEXINPUTS"] = os.environ["TEXINPUTS"] + ":%s/input/:" % depth; + os.environ["CONFIGSUFFIX"] = 'www'; os.environ["LILYINCLUDE"] = join (':', __main__.include_path) +':'+ os.environ["LILYINCLUDE"]; os.environ["LILYTOP"] = depth; diff --git a/bin/mf-to-table.py b/bin/mf-to-table.py index e3827346ca..4c6e542890 100755 --- a/bin/mf-to-table.py +++ b/bin/mf-to-table.py @@ -27,8 +27,6 @@ except KeyError: except KeyError: print 'Please set LILYPOND_SOURCEDIR to the toplevel source, eg LILYPOND_SOURCEDIR=/home/foobar/lilypond-1.2.3/' - sys.exit(1) - lilypath = lilypath + '/bin/' sys.path.append(lilypath) @@ -178,7 +176,6 @@ class Log_reader: raise 'unknown label: ' + label def writedeps (self, deps): - filename = deps[0] split = os.path.splitext(filename) basename=split[0]; diff --git a/bin/mutopia-index.py b/bin/mutopia-index.py index a268cded6e..ba178fdb72 100644 --- a/bin/mutopia-index.py +++ b/bin/mutopia-index.py @@ -16,16 +16,29 @@ from lilypython import * -def gen_list(inputs, filename): +def gen_list(inputs, subdir, filename): + (pre, subdirs, post)=subdir print "generating HTML list %s\n" % filename list = open(filename, 'w') - list.write ('Rendered Examples\n' - 'These example files are taken from the LilyPond distribution.\n' + list.write ('Rendered Examples\n') + list.write ('') + if len(subdirs): + list.write ('

          subdirectories

          ') + list.write ('
            ') + for ex in subdirs: + print 'subdir %s ' % ex + list.write ('
          • Subdirectory: %s
          • \n' % (pre + ex + post , ex)) + + list.write ('
          ') + + list.write('

          Contents of this directory

          \n'); + list.write ('These example files are taken from the LilyPond distribution.\n' 'LilyPond currently only outputs TeX and MIDI. The pictures and\n' 'PostScript files were generated using TeX, Ghostscript and some\n' 'graphics tools. The papersize used for these examples is A4. The GIF\n' 'files have been scaled to eliminate aliasing.\n'); + for ex in inputs: print '%s, ' % ex header = read_mudela_header(ex + '.ly.txt') @@ -65,4 +78,22 @@ def gen_list(inputs, filename): allfiles = multiple_find (['*.ly.txt'], '.') -gen_list (sys.argv[1:], 'index.html') +import getopt + +(cl_options, files) = getopt.getopt(sys.argv[1:], + 'hs:', ['help', 'subdirs=', 'suffix=', 'prefix=']) +subdir_pre='' +subdir_suf ='' + +subdirs =[] +for opt in cl_options: + o = opt[0] + a = opt[1] + if o == '--subdirs' or o == '-s': + subdirs.append (a) + elif o == '--prefix': + subdir_pre = a + elif o == '--suffix': + subdir_suf = a + +gen_list (files, (subdir_pre, subdirs, subdir_suf), 'index.html') diff --git a/configure b/configure index 0b529a29cc..9bec2ccabc 100755 --- a/configure +++ b/configure @@ -758,17 +758,21 @@ fi if test "$printing_b" = no; then + # ugh cat >> confdefs.h <<\EOF #define NPRINT 1 EOF + DEFINES="$DEFINES -DNPRINT" fi if test "$checking_b" = no; then + # ugh cat >> confdefs.h <<\EOF #define NDEBUG 1 EOF + DEFINES="$DEFINES -DNDEBUG" fi if test "$optimise_b" = yes; then @@ -822,7 +826,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 -echo "configure:826: checking for $ac_word" >&5 +echo "configure:830: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CXX'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -853,7 +857,7 @@ test -n "$CXX" || CXX="gcc" echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:857: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works" >&5 +echo "configure:861: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works" >&5 ac_ext=C # CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. @@ -863,11 +867,11 @@ ac_link='${CXX-g++} -o conftest $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $L cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:875: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then ac_cv_prog_cxx_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then @@ -887,12 +891,12 @@ if test $ac_cv_prog_cxx_works = no; then { echo "configure: error: installation or configuration problem: C++ compiler cannot create executables." 1>&2; exit 1; } fi echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 -echo "configure:891: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:895: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler" >&5 echo "$ac_t""$ac_cv_prog_cxx_cross" 1>&6 cross_compiling=$ac_cv_prog_cxx_cross echo $ac_n "checking whether we are using GNU C++""... $ac_c" 1>&6 -echo "configure:896: checking whether we are using GNU C++" >&5 +echo "configure:900: checking whether we are using GNU C++" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gxx'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -901,7 +905,7 @@ else yes; #endif EOF -if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:905: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then +if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:909: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gxx=yes else ac_cv_prog_gxx=no @@ -916,7 +920,7 @@ if test $ac_cv_prog_gxx = yes; then ac_save_CXXFLAGS="$CXXFLAGS" CXXFLAGS= echo $ac_n "checking whether ${CXX-g++} accepts -g""... $ac_c" 1>&6 -echo "configure:920: checking whether ${CXX-g++} accepts -g" >&5 +echo "configure:924: checking whether ${CXX-g++} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cxx_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -946,7 +950,7 @@ fi # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:950: checking for $ac_word" >&5 +echo "configure:954: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -983,7 +987,7 @@ fi # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 -echo "configure:987: checking for a BSD compatible install" >&5 +echo "configure:991: checking for a BSD compatible install" >&5 if test -z "$INSTALL"; then if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1037,7 +1041,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 -echo "configure:1041: checking for $ac_word" >&5 +echo "configure:1045: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_TAR'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1071,7 +1075,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 -echo "configure:1075: checking for $ac_word" >&5 +echo "configure:1079: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_FIND'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1112,7 +1116,7 @@ test -n "$FIND" || FIND="error" echo $ac_n "checking for 8-bit clean memcmp""... $ac_c" 1>&6 -echo "configure:1116: checking for 8-bit clean memcmp" >&5 +echo "configure:1120: 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 @@ -1120,7 +1124,7 @@ else ac_cv_func_memcmp_clean=no else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null +if { (eval echo configure:1141: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then ac_cv_func_memcmp_clean=yes else @@ -1151,12 +1155,12 @@ echo "$ac_t""$ac_cv_func_memcmp_clean" 1>&6 test $ac_cv_func_memcmp_clean = no && LIBOBJS="$LIBOBJS memcmp.o" echo $ac_n "checking for vprintf""... $ac_c" 1>&6 -echo "configure:1155: checking for vprintf" >&5 +echo "configure:1159: 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 <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:1190: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_vprintf=yes" else @@ -1206,12 +1210,12 @@ fi if test "$ac_cv_func_vprintf" != yes; then echo $ac_n "checking for _doprnt""... $ac_c" 1>&6 -echo "configure:1210: checking for _doprnt" >&5 +echo "configure:1214: 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 <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:1245: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func__doprnt=yes" else @@ -1264,12 +1268,12 @@ fi for ac_func in memmem snprintf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:1268: checking for $ac_func" >&5 +echo "configure:1272: 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 <&5; (eval $ac_link) 2>&5; } && test -s conftest; then +if { (eval echo configure:1303: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -1372,7 +1376,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 -echo "configure:1376: checking for $ac_word" >&5 +echo "configure:1380: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_BISON'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1406,7 +1410,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 -echo "configure:1410: checking for $ac_word" >&5 +echo "configure:1414: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_FLEX'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1440,7 +1444,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 -echo "configure:1444: checking for $ac_word" >&5 +echo "configure:1448: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_MAKE'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1472,7 +1476,7 @@ test -n "$MAKE" || MAKE="error" # 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:1476: checking for $ac_word" >&5 +echo "configure:1480: 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 @@ -1504,7 +1508,7 @@ fi # Extract the first word of "python", so it can be a program name with args. set dummy python; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1508: checking for $ac_word" >&5 +echo "configure:1512: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_PYTHON'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1538,7 +1542,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 -echo "configure:1542: checking for $ac_word" >&5 +echo "configure:1546: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_POD2HTML'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1572,7 +1576,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 -echo "configure:1576: checking for $ac_word" >&5 +echo "configure:1580: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_POD2MAN'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1608,7 +1612,7 @@ if test "x$TEXPREFIX" = xauto ; then echo $ac_n "checking TeX/MF root dir directory""... $ac_c" 1>&6 -echo "configure:1612: checking TeX/MF root dir directory" >&5 +echo "configure:1616: checking TeX/MF root dir directory" >&5 find_root_prefix="$prefix" @@ -1649,7 +1653,7 @@ if test "x$MFDIR" = xauto; then echo $ac_n "checking MF input directory""... $ac_c" 1>&6 -echo "configure:1653: checking MF input directory" >&5 +echo "configure:1657: checking MF input directory" >&5 find_dirdir=`(cd $find_texprefix; $FIND ./ -type d -a -name source -print |sort|head -1|sed 's#^\./##')` @@ -1674,7 +1678,7 @@ if test "x$TEXDIR" = xauto ; then echo $ac_n "checking TeX input directory""... $ac_c" 1>&6 -echo "configure:1678: checking TeX input directory" >&5 +echo "configure:1682: checking TeX input directory" >&5 find_dirdir=`(cd $find_texprefix; $FIND ./ -type d -a -name tex -print |sort|head -1|sed 's#^\./##')` @@ -1791,7 +1795,7 @@ else fi echo $ac_n "checking how to run the C++ preprocessor""... $ac_c" 1>&6 -echo "configure:1795: checking how to run the C++ preprocessor" >&5 +echo "configure:1799: checking how to run the C++ preprocessor" >&5 if test -z "$CXXCPP"; then if eval "test \"`echo '$''{'ac_cv_prog_CXXCPP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1804,12 +1808,12 @@ ac_link='${CXX-g++} -o conftest $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $L cross_compiling=$ac_cv_prog_cxx_cross CXXCPP="${CXX-g++} -E" cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1813: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1817: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then : @@ -1829,17 +1833,17 @@ echo "$ac_t""$CXXCPP" 1>&6 ac_safe=`echo "FlexLexer.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for FlexLexer.h""... $ac_c" 1>&6 -echo "configure:1833: checking for FlexLexer.h" >&5 +echo "configure:1837: checking for FlexLexer.h" >&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 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1843: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1847: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then rm -rf conftest* diff --git a/configure.in b/configure.in index 5b00c8f99d..c1d2bb5cce 100644 --- a/configure.in +++ b/configure.in @@ -106,11 +106,15 @@ AC_ARG_ENABLE(config, if test "$printing_b" = no; then + # ugh AC_DEFINE(NPRINT) + DEFINES="$DEFINES -DNPRINT" fi if test "$checking_b" = no; then + # ugh AC_DEFINE(NDEBUG) + DEFINES="$DEFINES -DNDEBUG" fi if test "$optimise_b" = yes; then diff --git a/flower/NEWS b/flower/NEWS index 111717025e..eda8c8ccf4 100644 --- a/flower/NEWS +++ b/flower/NEWS @@ -1,3 +1,7 @@ +pl 41.jcn1 + trying to get rid of 2.8 ice: + - moved functions with loops from varray.hh to varray.cc + pl 41 - matrix fixes; more inlining no virtual methods diff --git a/flower/VERSION b/flower/VERSION index 53f4cca490..3ab55969ef 100644 --- a/flower/VERSION +++ b/flower/VERSION @@ -4,4 +4,4 @@ PATCH_LEVEL=41 # use to send patches, always empty for released version: # -MY_PATCH_LEVEL= +MY_PATCH_LEVEL=jcn1 diff --git a/flower/include/config.hh b/flower/include/config.hh deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/flower/include/full-storage.hh b/flower/include/full-storage.hh index 8fec189c73..10438e3a7e 100644 --- a/flower/include/full-storage.hh +++ b/flower/include/full-storage.hh @@ -13,6 +13,10 @@ #include "varray.hh" #include "real.hh" +#ifndef INLINE +#define INLINE inline +#endif + /// simplest matrix storage. refer to its baseclass for the doco. class Full_storage { @@ -26,9 +30,9 @@ class Full_storage /// the storage Real** els_p_p_; - void init() ; + INLINE void init() ; - bool valid (int i, int j) const ; + INLINE bool valid (int i, int j) const ; void resize_rows (int); void resize_cols (int); @@ -40,13 +44,13 @@ public: void OK() const; /// height of matrix - int rows() const; + INLINE int rows() const; /// width of matrix - int cols() const; + INLINE int cols() const; /// size if square - int dim() const; + INLINE int dim() const; /** set the size. contents lost. PRE @@ -87,10 +91,10 @@ public: in the 0-part of a sparse matrix. */ - Real& elem (int i,int j); + INLINE Real& elem (int i,int j); /// access a element, no modify - Real elem (int i, int j) const; + INLINE Real elem (int i, int j) const; Array row (int i) const ; Array column (int j) const; @@ -124,7 +128,7 @@ public: .. */ - bool mult_ok (int i, int j) const; + INLINE bool mult_ok (int i, int j) const; /** walk through matrix (regular multiply). @@ -134,12 +138,12 @@ public: PRE mult_ok (i,j) */ - void mult_next (int &i, int &j) const; + INLINE void mult_next (int &i, int &j) const; /** valid matrix entry. return false if at end of row */ - bool trans_ok (int i, int j) const; + INLINE bool trans_ok (int i, int j) const; /** walk through matrix (transposed multiply). @@ -149,22 +153,18 @@ public: ver_ok (i,j) */ - void trans_next (int &i, int &j) const; + INLINE void trans_next (int &i, int &j) const; - Full_storage(); - Full_storage (int i, int j); - Full_storage (Full_storage const&); - Full_storage (int i); + INLINE Full_storage(); + INLINE Full_storage (int i, int j); + INLINE Full_storage (Full_storage const&); + INLINE Full_storage (int i); void operator=(Full_storage const &); ~Full_storage(); }; -#ifndef INLINE -#define INLINE inline -#endif - #include "full-storage.icc" diff --git a/flower/include/varray.hh b/flower/include/varray.hh index 82106ca8d6..ce9c2217e7 100644 --- a/flower/include/varray.hh +++ b/flower/include/varray.hh @@ -8,13 +8,12 @@ #define ARRAY_H #include -/// copy a bare (C-)array from #src# to #dest# sized #count# -template -inline void arrcpy (T*dest, T*src, int count) { - for (int i_shadows_local=0; i_shadows_local < count ; i_shadows_local++) - *dest++ = *src++; -} +#ifndef INLINE +#define INLINE inline +#endif +/// copy a bare (C-)array from #src# to #dest# sized #count# +template void arrcpy (T*dest, T*src, int count); /** Scaleable array/stack template, for a type T with default constructor. @@ -187,14 +186,8 @@ public: } bool empty() const { return !size_; } - void insert (T k, int j) - { - assert (j >=0 && j<= size_); - set_size (size_+1); - for (int i=size_-1; i > j; i--) - array_p_[i] = array_p_[i-1]; - array_p_[j] = k; - } + + void insert (T k, int j); /** remove i-th element, and return it. */ @@ -218,24 +211,7 @@ public: } // quicksort. void sort (int (*compare)(T const&,T const&), - int lower = -1, int upper = -1) - { - if (lower < 0) - { - lower = 0 ; - upper = size()-1; - } - if (lower >= upper) - return; - swap (lower, (lower+upper)/2); - int last = lower; - for (int i= lower +1; i <= upper; i++) - if (compare (array_p_[i], array_p_[lower]) < 0) - swap (++last,i); - swap (lower, last); - sort (compare, lower, last-1); - sort (compare, last+1, upper); - } + int lower = -1, int upper = -1); void concat (Array const &src) { int s = size_; @@ -251,12 +227,9 @@ public: arrcpy (r.array_p_, array_p_ + lower, s); return r; } - void reverse() - { - int h = size_/2; - for (int i =0,j = size_-1; i < h; i++,j--) - swap (i,j); - } + void reverse(); }; +#include "varray.icc" + #endif diff --git a/flower/include/varray.icc b/flower/include/varray.icc new file mode 100644 index 0000000000..4d8ccb9387 --- /dev/null +++ b/flower/include/varray.icc @@ -0,0 +1,66 @@ +/* + (c) Han-Wen Nienhuys 1995,96,97,98 + + Distributed under GNU GPL +*/ + + +#if 0 +#include "varray.hh" +#ifdef INLINE +#undef INLINE +#endif + +#define INLINE +#endif + +/* + functions with loops don't inline + */ + +template INLINE void +arrcpy (T*dest, T*src, int count) +{ + for (int i_shadows_local=0; i_shadows_local < count ; i_shadows_local++) + *dest++ = *src++; +} + +template INLINE void +Array::insert (T k, int j) +{ + assert (j >=0 && j<= size_); + set_size (size_+1); + for (int i=size_-1; i > j; i--) + array_p_[i] = array_p_[i-1]; + array_p_[j] = k; +} + +template INLINE void +Array::sort (int (*compare)(T const&,T const&), + int lower = -1, int upper = -1) +{ + if (lower < 0) + { + lower = 0 ; + upper = size () - 1; + } + if (lower >= upper) + return; + swap (lower, (lower+upper)/2); + int last = lower; + for (int i= lower +1; i <= upper; i++) + if (compare (array_p_[i], array_p_[lower]) < 0) + swap (++last,i); + swap (lower, last); + sort (compare, lower, last-1); + sort (compare, last+1, upper); +} + +template INLINE void +Array::reverse () +{ + int h = size_/2; + for (int i =0,j = size_-1; i < h; i++,j--) + swap (i,j); +} + diff --git a/init/feta11.ly b/init/feta11.ly new file mode 100644 index 0000000000..404a216c1b --- /dev/null +++ b/init/feta11.ly @@ -0,0 +1,178 @@ +% Creator: mf-to-table.py version 0.6 +% Automatically generated on +% Do not edit +% input from out/feta11.log +% name=\symboltables { + "rests" = \table { + "0" "\\wholerest" 0.00\pt 4.12\pt -1.72\pt 0.00\pt + "1" "\\halfrest" 0.00\pt 4.12\pt 0.00\pt 1.72\pt + "0o" "\\outsidewholerest" -1.72\pt 5.84\pt -1.72\pt 0.28\pt + "1o" "\\outsidehalfrest" -1.72\pt 5.84\pt -0.28\pt 1.72\pt + "2" "\\quartrest" 0.00\pt 2.97\pt 2.06\pt 9.90\pt + "3" "\\eighthrest" 0.00\pt 3.67\pt 2.75\pt 7.81\pt + "4" "\\sixteenthrest" 0.00\pt 4.27\pt 0.00\pt 7.81\pt + "5" "\\thirtysecondrest" 0.00\pt 4.81\pt 0.00\pt 10.56\pt + "6" "\\sixtyfourthrest" 0.00\pt 5.16\pt 0.00\pt 13.31\pt + "7" "\\hundredtwentyeighthrest" 0.00\pt 5.75\pt 0.00\pt 16.06\pt + } + "accidentals" = \table { + "1" "\\sharp" 0.00\pt 3.03\pt -4.12\pt 4.12\pt + "0" "\\natural" 0.00\pt 1.83\pt -4.12\pt 4.12\pt + "-1" "\\flat" -0.33\pt 2.20\pt -1.38\pt 5.50\pt + "-2" "\\flatflat" -0.33\pt 3.99\pt -1.38\pt 5.50\pt + "2" "\\sharpsharp" 0.00\pt 2.75\pt -1.38\pt 1.38\pt + } + "dots" = \table { + "dot" "\\dot" 0.00\pt 1.24\pt -0.62\pt 0.62\pt + "repeatcolon" "\\repeatcolon" 0.00\pt 1.24\pt -1.38\pt 1.38\pt + } + "balls" = \table { + "-1" "\\brevisball" 0.00\pt 5.50\pt -1.51\pt 1.51\pt + "-1l" "\\brevisledger" -1.38\pt 6.88\pt -0.28\pt 0.28\pt + "-2" "\\longaball" 0.00\pt 5.50\pt -1.51\pt 1.51\pt + "-2l" "\\longaledger" -1.38\pt 6.88\pt -0.28\pt 0.28\pt + "0" "\\wholeball" 0.00\pt 5.45\pt -1.51\pt 1.51\pt + "0l" "\\wholeledger" -1.36\pt 6.81\pt -0.28\pt 0.28\pt + "1" "\\halfball" 0.00\pt 3.79\pt -1.51\pt 1.51\pt + "1l" "\\halfledger" -0.95\pt 4.74\pt -0.28\pt 0.28\pt + "2" "\\quartball" 0.00\pt 3.63\pt -1.51\pt 1.51\pt + "2l" "\\quartledger" -0.91\pt 4.54\pt -0.28\pt 0.28\pt + } + "scripts" = \table { + "ufermata" "\\ufermata" -3.64\pt 3.64\pt -0.21\pt 3.99\pt + "dfermata" "\\dfermata" -3.64\pt 3.64\pt -3.99\pt 0.21\pt + "sforzato" "\\sforzatoaccent" -2.47\pt 2.47\pt -1.38\pt 1.38\pt + "staccato" "\\staccato" -0.41\pt 0.41\pt -0.41\pt 0.41\pt + "ustaccatissimo" "\\ustaccatissimo" -0.55\pt 0.55\pt -0.20\pt 2.75\pt + "dstaccatissimo" "\\dstaccatissimo" -0.55\pt 0.55\pt -2.75\pt 0.20\pt + "tenuto" "\\tenuto" -2.47\pt 2.47\pt -0.17\pt 0.17\pt + "umarcato" "\\umarcato" -1.38\pt 1.38\pt 0.00\pt 3.03\pt + "dmarcato" "\\dmarcato" -1.38\pt 1.38\pt -3.03\pt 0.00\pt + "open" "\\ouvert" -1.10\pt 1.10\pt -1.38\pt 1.38\pt + "stopped" "\\plusstop" -1.51\pt 1.51\pt -1.51\pt 1.51\pt + "upbow" "\\upbow" -1.79\pt 1.79\pt 0.00\pt 5.72\pt + "downbow" "\\downbow" -2.06\pt 2.06\pt 0.00\pt 3.67\pt + "reverseturn" "\\reverseturn" -3.01\pt 3.01\pt -1.46\pt 1.46\pt + "turn" "\\turn" -3.01\pt 3.01\pt -1.46\pt 1.46\pt + "trill" "\\trill" -2.75\pt 2.75\pt 0.00\pt 6.19\pt + "upedalheel" "\\upedalheel" -1.38\pt 1.38\pt -1.38\pt 1.83\pt + "dpedalheel" "\\dpedalheel" -1.38\pt 1.38\pt -1.83\pt 1.38\pt + "upedaltoe" "\\upedaltoe" -1.38\pt 1.38\pt 0.00\pt 4.12\pt + "dpedaltoe" "\\dpedaltoe" -1.38\pt 1.38\pt -4.12\pt 0.00\pt + "flageolet" "\\flageolet" -1.47\pt 1.47\pt -1.47\pt 1.47\pt + "trilelement" "\\trilelement" -1.83\pt 0.72\pt -1.38\pt 1.38\pt + "prall" "\\prall" -3.11\pt 3.11\pt -1.38\pt 1.38\pt + "mordent" "\\mordent" -3.11\pt 3.11\pt -1.38\pt 1.38\pt + "prallprall" "\\prallprall" -4.39\pt 4.39\pt -1.38\pt 1.38\pt + "prallmordent" "\\prallmordent" -4.39\pt 4.39\pt -1.38\pt 1.38\pt + "upprall" "\\upprall" -4.39\pt 4.39\pt -1.38\pt 1.38\pt + "downprall" "\\downprall" -4.39\pt 4.39\pt -1.38\pt 1.38\pt + } + "flags" = \table { + "u3" "\\eighthflag" -0.14\pt 3.39\pt -8.43\pt 0.14\pt + "u4" "\\sixteenthflag" -0.14\pt 3.39\pt -9.80\pt 0.14\pt + "u5" "\\thirtysecondflag" -0.14\pt 3.39\pt -11.87\pt 0.14\pt + "u6" "\\sixtyfourthflag" -0.14\pt 3.39\pt -14.62\pt 0.14\pt + "d3" "\\deighthflag" -0.14\pt 3.76\pt -0.14\pt 8.02\pt + "d4" "\\dsixteenthflag" -0.14\pt 3.76\pt -0.14\pt 8.43\pt + "d5" "\\dthirtysecondflag" -0.14\pt 3.76\pt -0.14\pt 10.77\pt + "d6" "\\dsixtyfourthflag" -0.14\pt 3.76\pt -0.14\pt 12.14\pt + } + "clefs" = \table { + "alto" "\\altoclef" -2.75\pt 10.24\pt -5.50\pt 5.50\pt + "alto_change" "\\caltoclef" -2.20\pt 8.19\pt -4.40\pt 4.40\pt + "bass" "\\bassclef" -1.38\pt 9.90\pt -6.88\pt 2.75\pt + "bass_change" "\\cbassclef" -1.10\pt 7.92\pt -5.50\pt 2.20\pt + "violin" "\\violinclef" -2.40\pt 10.28\pt -8.25\pt 13.75\pt + "violin_change" "\\cviolinclef" -2.08\pt 8.06\pt -6.60\pt 11.00\pt + } + % } % $name +% Creator: mf-to-table.py version 0.6 +% Automatically generated on +% Do not edit +% input from out/feta11.log +% name=\symboltables { + "rests" = \table { + "0" "\\wholerest" 0.00\pt 4.12\pt -1.72\pt 0.00\pt + "1" "\\halfrest" 0.00\pt 4.12\pt 0.00\pt 1.72\pt + "0o" "\\outsidewholerest" -1.72\pt 5.84\pt -1.72\pt 0.28\pt + "1o" "\\outsidehalfrest" -1.72\pt 5.84\pt -0.28\pt 1.72\pt + "2" "\\quartrest" 0.00\pt 2.97\pt 2.06\pt 9.90\pt + "3" "\\eighthrest" 0.00\pt 3.67\pt 2.75\pt 7.81\pt + "4" "\\sixteenthrest" 0.00\pt 4.27\pt 0.00\pt 7.81\pt + "5" "\\thirtysecondrest" 0.00\pt 4.81\pt 0.00\pt 10.56\pt + "6" "\\sixtyfourthrest" 0.00\pt 5.16\pt 0.00\pt 13.31\pt + "7" "\\hundredtwentyeighthrest" 0.00\pt 5.75\pt 0.00\pt 16.06\pt + } + "accidentals" = \table { + "1" "\\sharp" 0.00\pt 3.03\pt -4.12\pt 4.12\pt + "0" "\\natural" 0.00\pt 1.83\pt -4.12\pt 4.12\pt + "-1" "\\flat" -0.33\pt 2.20\pt -1.38\pt 5.50\pt + "-2" "\\flatflat" -0.33\pt 3.99\pt -1.38\pt 5.50\pt + "2" "\\sharpsharp" 0.00\pt 2.75\pt -1.38\pt 1.38\pt + } + "dots" = \table { + "dot" "\\dot" 0.00\pt 1.24\pt -0.62\pt 0.62\pt + "repeatcolon" "\\repeatcolon" 0.00\pt 1.24\pt -1.38\pt 1.38\pt + } + "balls" = \table { + "-1" "\\brevisball" 0.00\pt 5.50\pt -1.51\pt 1.51\pt + "-1l" "\\brevisledger" -1.38\pt 6.88\pt -0.28\pt 0.28\pt + "-2" "\\longaball" 0.00\pt 5.50\pt -1.51\pt 1.51\pt + "-2l" "\\longaledger" -1.38\pt 6.88\pt -0.28\pt 0.28\pt + "0" "\\wholeball" 0.00\pt 5.45\pt -1.51\pt 1.51\pt + "0l" "\\wholeledger" -1.36\pt 6.81\pt -0.28\pt 0.28\pt + "1" "\\halfball" 0.00\pt 3.79\pt -1.51\pt 1.51\pt + "1l" "\\halfledger" -0.95\pt 4.74\pt -0.28\pt 0.28\pt + "2" "\\quartball" 0.00\pt 3.63\pt -1.51\pt 1.51\pt + "2l" "\\quartledger" -0.91\pt 4.54\pt -0.28\pt 0.28\pt + } + "scripts" = \table { + "ufermata" "\\ufermata" -3.64\pt 3.64\pt -0.21\pt 3.99\pt + "dfermata" "\\dfermata" -3.64\pt 3.64\pt -3.99\pt 0.21\pt + "sforzato" "\\sforzatoaccent" -2.47\pt 2.47\pt -1.38\pt 1.38\pt + "staccato" "\\staccato" -0.41\pt 0.41\pt -0.41\pt 0.41\pt + "ustaccatissimo" "\\ustaccatissimo" -0.55\pt 0.55\pt -0.20\pt 2.75\pt + "dstaccatissimo" "\\dstaccatissimo" -0.55\pt 0.55\pt -2.75\pt 0.20\pt + "tenuto" "\\tenuto" -2.47\pt 2.47\pt -0.17\pt 0.17\pt + "umarcato" "\\umarcato" -1.38\pt 1.38\pt 0.00\pt 3.03\pt + "dmarcato" "\\dmarcato" -1.38\pt 1.38\pt -3.03\pt 0.00\pt + "open" "\\ouvert" -1.10\pt 1.10\pt -1.38\pt 1.38\pt + "stopped" "\\plusstop" -1.51\pt 1.51\pt -1.51\pt 1.51\pt + "upbow" "\\upbow" -1.79\pt 1.79\pt 0.00\pt 5.72\pt + "downbow" "\\downbow" -2.06\pt 2.06\pt 0.00\pt 3.67\pt + "reverseturn" "\\reverseturn" -3.01\pt 3.01\pt -1.46\pt 1.46\pt + "turn" "\\turn" -3.01\pt 3.01\pt -1.46\pt 1.46\pt + "trill" "\\trill" -2.75\pt 2.75\pt 0.00\pt 6.19\pt + "upedalheel" "\\upedalheel" -1.38\pt 1.38\pt -1.38\pt 1.83\pt + "dpedalheel" "\\dpedalheel" -1.38\pt 1.38\pt -1.83\pt 1.38\pt + "upedaltoe" "\\upedaltoe" -1.38\pt 1.38\pt 0.00\pt 4.12\pt + "dpedaltoe" "\\dpedaltoe" -1.38\pt 1.38\pt -4.12\pt 0.00\pt + "flageolet" "\\flageolet" -1.47\pt 1.47\pt -1.47\pt 1.47\pt + "trilelement" "\\trilelement" -1.83\pt 0.72\pt -1.38\pt 1.38\pt + "prall" "\\prall" -3.11\pt 3.11\pt -1.38\pt 1.38\pt + "mordent" "\\mordent" -3.11\pt 3.11\pt -1.38\pt 1.38\pt + "prallprall" "\\prallprall" -4.39\pt 4.39\pt -1.38\pt 1.38\pt + "prallmordent" "\\prallmordent" -4.39\pt 4.39\pt -1.38\pt 1.38\pt + "upprall" "\\upprall" -4.39\pt 4.39\pt -1.38\pt 1.38\pt + "downprall" "\\downprall" -4.39\pt 4.39\pt -1.38\pt 1.38\pt + } + "flags" = \table { + "u3" "\\eighthflag" -0.14\pt 3.39\pt -8.43\pt 0.14\pt + "u4" "\\sixteenthflag" -0.14\pt 3.39\pt -9.80\pt 0.14\pt + "u5" "\\thirtysecondflag" -0.14\pt 3.39\pt -11.87\pt 0.14\pt + "u6" "\\sixtyfourthflag" -0.14\pt 3.39\pt -14.62\pt 0.14\pt + "d3" "\\deighthflag" -0.14\pt 3.76\pt -0.14\pt 8.02\pt + "d4" "\\dsixteenthflag" -0.14\pt 3.76\pt -0.14\pt 8.43\pt + "d5" "\\dthirtysecondflag" -0.14\pt 3.76\pt -0.14\pt 10.77\pt + "d6" "\\dsixtyfourthflag" -0.14\pt 3.76\pt -0.14\pt 12.14\pt + } + "clefs" = \table { + "alto" "\\altoclef" -2.75\pt 10.24\pt -5.50\pt 5.50\pt + "alto_change" "\\caltoclef" -2.20\pt 8.19\pt -4.40\pt 4.40\pt + "bass" "\\bassclef" -1.38\pt 9.90\pt -6.88\pt 2.75\pt + "bass_change" "\\cbassclef" -1.10\pt 7.92\pt -5.50\pt 2.20\pt + "violin" "\\violinclef" -2.40\pt 10.28\pt -8.25\pt 13.75\pt + "violin_change" "\\cviolinclef" -2.08\pt 8.06\pt -6.60\pt 11.00\pt + } + % } % $name diff --git a/init/feta13.ly b/init/feta13.ly new file mode 100644 index 0000000000..95e17d1dcb --- /dev/null +++ b/init/feta13.ly @@ -0,0 +1,178 @@ +% Creator: mf-to-table.py version 0.6 +% Automatically generated on +% Do not edit +% input from out/feta13.log +% name=\symboltables { + "rests" = \table { + "0" "\\wholerest" 0.00\pt 4.88\pt -2.03\pt 0.00\pt + "1" "\\halfrest" 0.00\pt 4.88\pt 0.00\pt 2.03\pt + "0o" "\\outsidewholerest" -2.03\pt 6.91\pt -2.03\pt 0.33\pt + "1o" "\\outsidehalfrest" -2.03\pt 6.91\pt -0.33\pt 2.03\pt + "2" "\\quartrest" 0.00\pt 3.51\pt 2.44\pt 11.70\pt + "3" "\\eighthrest" 0.00\pt 4.33\pt 3.25\pt 9.24\pt + "4" "\\sixteenthrest" 0.00\pt 5.04\pt 0.00\pt 9.24\pt + "5" "\\thirtysecondrest" 0.00\pt 5.69\pt 0.00\pt 12.49\pt + "6" "\\sixtyfourthrest" 0.00\pt 6.10\pt 0.00\pt 15.74\pt + "7" "\\hundredtwentyeighthrest" 0.00\pt 6.79\pt 0.00\pt 18.99\pt + } + "accidentals" = \table { + "1" "\\sharp" 0.00\pt 3.58\pt -4.88\pt 4.88\pt + "0" "\\natural" 0.00\pt 2.17\pt -4.88\pt 4.88\pt + "-1" "\\flat" -0.39\pt 2.60\pt -1.62\pt 6.50\pt + "-2" "\\flatflat" -0.39\pt 4.71\pt -1.62\pt 6.50\pt + "2" "\\sharpsharp" 0.00\pt 3.25\pt -1.62\pt 1.62\pt + } + "dots" = \table { + "dot" "\\dot" 0.00\pt 1.46\pt -0.73\pt 0.73\pt + "repeatcolon" "\\repeatcolon" 0.00\pt 1.46\pt -1.62\pt 1.62\pt + } + "balls" = \table { + "-1" "\\brevisball" 0.00\pt 6.50\pt -1.79\pt 1.79\pt + "-1l" "\\brevisledger" -1.62\pt 8.12\pt -0.33\pt 0.33\pt + "-2" "\\longaball" 0.00\pt 6.50\pt -1.79\pt 1.79\pt + "-2l" "\\longaledger" -1.62\pt 8.12\pt -0.33\pt 0.33\pt + "0" "\\wholeball" 0.00\pt 6.44\pt -1.79\pt 1.79\pt + "0l" "\\wholeledger" -1.61\pt 8.04\pt -0.33\pt 0.33\pt + "1" "\\halfball" 0.00\pt 4.48\pt -1.79\pt 1.79\pt + "1l" "\\halfledger" -1.12\pt 5.60\pt -0.33\pt 0.33\pt + "2" "\\quartball" 0.00\pt 4.29\pt -1.79\pt 1.79\pt + "2l" "\\quartledger" -1.07\pt 5.37\pt -0.33\pt 0.33\pt + } + "scripts" = \table { + "ufermata" "\\ufermata" -4.31\pt 4.31\pt -0.24\pt 4.71\pt + "dfermata" "\\dfermata" -4.31\pt 4.31\pt -4.71\pt 0.24\pt + "sforzato" "\\sforzatoaccent" -2.92\pt 2.92\pt -1.62\pt 1.62\pt + "staccato" "\\staccato" -0.49\pt 0.49\pt -0.49\pt 0.49\pt + "ustaccatissimo" "\\ustaccatissimo" -0.65\pt 0.65\pt -0.20\pt 3.25\pt + "dstaccatissimo" "\\dstaccatissimo" -0.65\pt 0.65\pt -3.25\pt 0.20\pt + "tenuto" "\\tenuto" -2.92\pt 2.92\pt -0.20\pt 0.20\pt + "umarcato" "\\umarcato" -1.62\pt 1.62\pt 0.00\pt 3.58\pt + "dmarcato" "\\dmarcato" -1.62\pt 1.62\pt -3.58\pt 0.00\pt + "open" "\\ouvert" -1.30\pt 1.30\pt -1.62\pt 1.62\pt + "stopped" "\\plusstop" -1.79\pt 1.79\pt -1.79\pt 1.79\pt + "upbow" "\\upbow" -2.11\pt 2.11\pt 0.00\pt 6.76\pt + "downbow" "\\downbow" -2.44\pt 2.44\pt 0.00\pt 4.33\pt + "reverseturn" "\\reverseturn" -3.55\pt 3.55\pt -1.72\pt 1.72\pt + "turn" "\\turn" -3.55\pt 3.55\pt -1.72\pt 1.72\pt + "trill" "\\trill" -3.25\pt 3.25\pt 0.00\pt 7.31\pt + "upedalheel" "\\upedalheel" -1.62\pt 1.62\pt -1.62\pt 2.17\pt + "dpedalheel" "\\dpedalheel" -1.62\pt 1.62\pt -2.17\pt 1.62\pt + "upedaltoe" "\\upedaltoe" -1.62\pt 1.62\pt 0.00\pt 4.88\pt + "dpedaltoe" "\\dpedaltoe" -1.62\pt 1.62\pt -4.88\pt 0.00\pt + "flageolet" "\\flageolet" -1.73\pt 1.73\pt -1.73\pt 1.73\pt + "trilelement" "\\trilelement" -2.17\pt 0.85\pt -1.62\pt 1.62\pt + "prall" "\\prall" -3.67\pt 3.67\pt -1.62\pt 1.62\pt + "mordent" "\\mordent" -3.67\pt 3.67\pt -1.62\pt 1.62\pt + "prallprall" "\\prallprall" -5.18\pt 5.18\pt -1.62\pt 1.62\pt + "prallmordent" "\\prallmordent" -5.18\pt 5.18\pt -1.62\pt 1.62\pt + "upprall" "\\upprall" -5.18\pt 5.18\pt -1.62\pt 1.62\pt + "downprall" "\\downprall" -5.18\pt 5.18\pt -1.62\pt 1.62\pt + } + "flags" = \table { + "u3" "\\eighthflag" -0.16\pt 4.01\pt -9.96\pt 0.16\pt + "u4" "\\sixteenthflag" -0.16\pt 4.01\pt -11.59\pt 0.16\pt + "u5" "\\thirtysecondflag" -0.16\pt 4.01\pt -14.02\pt 0.16\pt + "u6" "\\sixtyfourthflag" -0.16\pt 4.01\pt -17.27\pt 0.16\pt + "d3" "\\deighthflag" -0.16\pt 4.44\pt -0.16\pt 9.47\pt + "d4" "\\dsixteenthflag" -0.16\pt 4.44\pt -0.16\pt 9.96\pt + "d5" "\\dthirtysecondflag" -0.16\pt 4.44\pt -0.16\pt 12.72\pt + "d6" "\\dsixtyfourthflag" -0.16\pt 4.44\pt -0.16\pt 14.35\pt + } + "clefs" = \table { + "alto" "\\altoclef" -3.25\pt 12.10\pt -6.50\pt 6.50\pt + "alto_change" "\\caltoclef" -2.60\pt 9.68\pt -5.20\pt 5.20\pt + "bass" "\\bassclef" -1.62\pt 11.70\pt -8.12\pt 3.25\pt + "bass_change" "\\cbassclef" -1.30\pt 9.36\pt -6.50\pt 2.60\pt + "violin" "\\violinclef" -2.83\pt 12.15\pt -9.75\pt 16.25\pt + "violin_change" "\\cviolinclef" -2.46\pt 9.52\pt -7.80\pt 13.00\pt + } + % } % $name +% Creator: mf-to-table.py version 0.6 +% Automatically generated on +% Do not edit +% input from out/feta13.log +% name=\symboltables { + "rests" = \table { + "0" "\\wholerest" 0.00\pt 4.88\pt -2.03\pt 0.00\pt + "1" "\\halfrest" 0.00\pt 4.88\pt 0.00\pt 2.03\pt + "0o" "\\outsidewholerest" -2.03\pt 6.91\pt -2.03\pt 0.33\pt + "1o" "\\outsidehalfrest" -2.03\pt 6.91\pt -0.33\pt 2.03\pt + "2" "\\quartrest" 0.00\pt 3.51\pt 2.44\pt 11.70\pt + "3" "\\eighthrest" 0.00\pt 4.33\pt 3.25\pt 9.24\pt + "4" "\\sixteenthrest" 0.00\pt 5.04\pt 0.00\pt 9.24\pt + "5" "\\thirtysecondrest" 0.00\pt 5.69\pt 0.00\pt 12.49\pt + "6" "\\sixtyfourthrest" 0.00\pt 6.10\pt 0.00\pt 15.74\pt + "7" "\\hundredtwentyeighthrest" 0.00\pt 6.79\pt 0.00\pt 18.99\pt + } + "accidentals" = \table { + "1" "\\sharp" 0.00\pt 3.58\pt -4.88\pt 4.88\pt + "0" "\\natural" 0.00\pt 2.17\pt -4.88\pt 4.88\pt + "-1" "\\flat" -0.39\pt 2.60\pt -1.62\pt 6.50\pt + "-2" "\\flatflat" -0.39\pt 4.71\pt -1.62\pt 6.50\pt + "2" "\\sharpsharp" 0.00\pt 3.25\pt -1.62\pt 1.62\pt + } + "dots" = \table { + "dot" "\\dot" 0.00\pt 1.46\pt -0.73\pt 0.73\pt + "repeatcolon" "\\repeatcolon" 0.00\pt 1.46\pt -1.62\pt 1.62\pt + } + "balls" = \table { + "-1" "\\brevisball" 0.00\pt 6.50\pt -1.79\pt 1.79\pt + "-1l" "\\brevisledger" -1.62\pt 8.12\pt -0.33\pt 0.33\pt + "-2" "\\longaball" 0.00\pt 6.50\pt -1.79\pt 1.79\pt + "-2l" "\\longaledger" -1.62\pt 8.12\pt -0.33\pt 0.33\pt + "0" "\\wholeball" 0.00\pt 6.44\pt -1.79\pt 1.79\pt + "0l" "\\wholeledger" -1.61\pt 8.04\pt -0.33\pt 0.33\pt + "1" "\\halfball" 0.00\pt 4.48\pt -1.79\pt 1.79\pt + "1l" "\\halfledger" -1.12\pt 5.60\pt -0.33\pt 0.33\pt + "2" "\\quartball" 0.00\pt 4.29\pt -1.79\pt 1.79\pt + "2l" "\\quartledger" -1.07\pt 5.37\pt -0.33\pt 0.33\pt + } + "scripts" = \table { + "ufermata" "\\ufermata" -4.31\pt 4.31\pt -0.24\pt 4.71\pt + "dfermata" "\\dfermata" -4.31\pt 4.31\pt -4.71\pt 0.24\pt + "sforzato" "\\sforzatoaccent" -2.92\pt 2.92\pt -1.62\pt 1.62\pt + "staccato" "\\staccato" -0.49\pt 0.49\pt -0.49\pt 0.49\pt + "ustaccatissimo" "\\ustaccatissimo" -0.65\pt 0.65\pt -0.20\pt 3.25\pt + "dstaccatissimo" "\\dstaccatissimo" -0.65\pt 0.65\pt -3.25\pt 0.20\pt + "tenuto" "\\tenuto" -2.92\pt 2.92\pt -0.20\pt 0.20\pt + "umarcato" "\\umarcato" -1.62\pt 1.62\pt 0.00\pt 3.58\pt + "dmarcato" "\\dmarcato" -1.62\pt 1.62\pt -3.58\pt 0.00\pt + "open" "\\ouvert" -1.30\pt 1.30\pt -1.62\pt 1.62\pt + "stopped" "\\plusstop" -1.79\pt 1.79\pt -1.79\pt 1.79\pt + "upbow" "\\upbow" -2.11\pt 2.11\pt 0.00\pt 6.76\pt + "downbow" "\\downbow" -2.44\pt 2.44\pt 0.00\pt 4.33\pt + "reverseturn" "\\reverseturn" -3.55\pt 3.55\pt -1.72\pt 1.72\pt + "turn" "\\turn" -3.55\pt 3.55\pt -1.72\pt 1.72\pt + "trill" "\\trill" -3.25\pt 3.25\pt 0.00\pt 7.31\pt + "upedalheel" "\\upedalheel" -1.62\pt 1.62\pt -1.62\pt 2.17\pt + "dpedalheel" "\\dpedalheel" -1.62\pt 1.62\pt -2.17\pt 1.62\pt + "upedaltoe" "\\upedaltoe" -1.62\pt 1.62\pt 0.00\pt 4.88\pt + "dpedaltoe" "\\dpedaltoe" -1.62\pt 1.62\pt -4.88\pt 0.00\pt + "flageolet" "\\flageolet" -1.73\pt 1.73\pt -1.73\pt 1.73\pt + "trilelement" "\\trilelement" -2.17\pt 0.85\pt -1.62\pt 1.62\pt + "prall" "\\prall" -3.67\pt 3.67\pt -1.62\pt 1.62\pt + "mordent" "\\mordent" -3.67\pt 3.67\pt -1.62\pt 1.62\pt + "prallprall" "\\prallprall" -5.18\pt 5.18\pt -1.62\pt 1.62\pt + "prallmordent" "\\prallmordent" -5.18\pt 5.18\pt -1.62\pt 1.62\pt + "upprall" "\\upprall" -5.18\pt 5.18\pt -1.62\pt 1.62\pt + "downprall" "\\downprall" -5.18\pt 5.18\pt -1.62\pt 1.62\pt + } + "flags" = \table { + "u3" "\\eighthflag" -0.16\pt 4.01\pt -9.96\pt 0.16\pt + "u4" "\\sixteenthflag" -0.16\pt 4.01\pt -11.59\pt 0.16\pt + "u5" "\\thirtysecondflag" -0.16\pt 4.01\pt -14.02\pt 0.16\pt + "u6" "\\sixtyfourthflag" -0.16\pt 4.01\pt -17.27\pt 0.16\pt + "d3" "\\deighthflag" -0.16\pt 4.44\pt -0.16\pt 9.47\pt + "d4" "\\dsixteenthflag" -0.16\pt 4.44\pt -0.16\pt 9.96\pt + "d5" "\\dthirtysecondflag" -0.16\pt 4.44\pt -0.16\pt 12.72\pt + "d6" "\\dsixtyfourthflag" -0.16\pt 4.44\pt -0.16\pt 14.35\pt + } + "clefs" = \table { + "alto" "\\altoclef" -3.25\pt 12.10\pt -6.50\pt 6.50\pt + "alto_change" "\\caltoclef" -2.60\pt 9.68\pt -5.20\pt 5.20\pt + "bass" "\\bassclef" -1.62\pt 11.70\pt -8.12\pt 3.25\pt + "bass_change" "\\cbassclef" -1.30\pt 9.36\pt -6.50\pt 2.60\pt + "violin" "\\violinclef" -2.83\pt 12.15\pt -9.75\pt 16.25\pt + "violin_change" "\\cviolinclef" -2.46\pt 9.52\pt -7.80\pt 13.00\pt + } + % } % $name diff --git a/init/feta16.ly b/init/feta16.ly new file mode 100644 index 0000000000..a575a5cc9b --- /dev/null +++ b/init/feta16.ly @@ -0,0 +1,178 @@ +% Creator: mf-to-table.py version 0.6 +% Automatically generated on +% Do not edit +% input from out/feta16.log +% name=\symboltables { + "rests" = \table { + "0" "\\wholerest" 0.00\pt 6.00\pt -2.50\pt 0.00\pt + "1" "\\halfrest" 0.00\pt 6.00\pt 0.00\pt 2.50\pt + "0o" "\\outsidewholerest" -2.50\pt 8.50\pt -2.50\pt 0.40\pt + "1o" "\\outsidehalfrest" -2.50\pt 8.50\pt -0.40\pt 2.50\pt + "2" "\\quartrest" 0.00\pt 4.32\pt 3.00\pt 14.40\pt + "3" "\\eighthrest" 0.00\pt 5.33\pt 4.00\pt 11.37\pt + "4" "\\sixteenthrest" 0.00\pt 6.21\pt 0.00\pt 11.37\pt + "5" "\\thirtysecondrest" 0.00\pt 7.00\pt 0.00\pt 15.37\pt + "6" "\\sixtyfourthrest" 0.00\pt 7.51\pt 0.00\pt 19.37\pt + "7" "\\hundredtwentyeighthrest" 0.00\pt 8.36\pt 0.00\pt 23.37\pt + } + "accidentals" = \table { + "1" "\\sharp" 0.00\pt 4.40\pt -6.00\pt 6.00\pt + "0" "\\natural" 0.00\pt 2.67\pt -6.00\pt 6.00\pt + "-1" "\\flat" -0.48\pt 3.20\pt -2.00\pt 8.00\pt + "-2" "\\flatflat" -0.48\pt 5.80\pt -2.00\pt 8.00\pt + "2" "\\sharpsharp" 0.00\pt 4.00\pt -2.00\pt 2.00\pt + } + "dots" = \table { + "dot" "\\dot" 0.00\pt 1.80\pt -0.90\pt 0.90\pt + "repeatcolon" "\\repeatcolon" 0.00\pt 1.80\pt -2.00\pt 2.00\pt + } + "balls" = \table { + "-1" "\\brevisball" 0.00\pt 8.00\pt -2.20\pt 2.20\pt + "-1l" "\\brevisledger" -2.00\pt 10.00\pt -0.40\pt 0.40\pt + "-2" "\\longaball" 0.00\pt 8.00\pt -2.20\pt 2.20\pt + "-2l" "\\longaledger" -2.00\pt 10.00\pt -0.40\pt 0.40\pt + "0" "\\wholeball" 0.00\pt 7.92\pt -2.20\pt 2.20\pt + "0l" "\\wholeledger" -1.98\pt 9.90\pt -0.40\pt 0.40\pt + "1" "\\halfball" 0.00\pt 5.51\pt -2.20\pt 2.20\pt + "1l" "\\halfledger" -1.38\pt 6.89\pt -0.40\pt 0.40\pt + "2" "\\quartball" 0.00\pt 5.28\pt -2.20\pt 2.20\pt + "2l" "\\quartledger" -1.32\pt 6.61\pt -0.40\pt 0.40\pt + } + "scripts" = \table { + "ufermata" "\\ufermata" -5.30\pt 5.30\pt -0.30\pt 5.80\pt + "dfermata" "\\dfermata" -5.30\pt 5.30\pt -5.80\pt 0.30\pt + "sforzato" "\\sforzatoaccent" -3.60\pt 3.60\pt -2.00\pt 2.00\pt + "staccato" "\\staccato" -0.60\pt 0.60\pt -0.60\pt 0.60\pt + "ustaccatissimo" "\\ustaccatissimo" -0.80\pt 0.80\pt -0.20\pt 4.00\pt + "dstaccatissimo" "\\dstaccatissimo" -0.80\pt 0.80\pt -4.00\pt 0.20\pt + "tenuto" "\\tenuto" -3.60\pt 3.60\pt -0.24\pt 0.24\pt + "umarcato" "\\umarcato" -2.00\pt 2.00\pt 0.00\pt 4.40\pt + "dmarcato" "\\dmarcato" -2.00\pt 2.00\pt -4.40\pt 0.00\pt + "open" "\\ouvert" -1.60\pt 1.60\pt -2.00\pt 2.00\pt + "stopped" "\\plusstop" -2.20\pt 2.20\pt -2.20\pt 2.20\pt + "upbow" "\\upbow" -2.60\pt 2.60\pt 0.00\pt 8.32\pt + "downbow" "\\downbow" -3.00\pt 3.00\pt 0.00\pt 5.33\pt + "reverseturn" "\\reverseturn" -4.38\pt 4.38\pt -2.12\pt 2.12\pt + "turn" "\\turn" -4.38\pt 4.38\pt -2.12\pt 2.12\pt + "trill" "\\trill" -4.00\pt 4.00\pt 0.00\pt 9.00\pt + "upedalheel" "\\upedalheel" -2.00\pt 2.00\pt -2.00\pt 2.67\pt + "dpedalheel" "\\dpedalheel" -2.00\pt 2.00\pt -2.67\pt 2.00\pt + "upedaltoe" "\\upedaltoe" -2.00\pt 2.00\pt 0.00\pt 6.00\pt + "dpedaltoe" "\\dpedaltoe" -2.00\pt 2.00\pt -6.00\pt 0.00\pt + "flageolet" "\\flageolet" -2.13\pt 2.13\pt -2.13\pt 2.13\pt + "trilelement" "\\trilelement" -2.67\pt 1.05\pt -2.00\pt 2.00\pt + "prall" "\\prall" -4.52\pt 4.52\pt -2.00\pt 2.00\pt + "mordent" "\\mordent" -4.52\pt 4.52\pt -2.00\pt 2.00\pt + "prallprall" "\\prallprall" -6.38\pt 6.38\pt -2.00\pt 2.00\pt + "prallmordent" "\\prallmordent" -6.38\pt 6.38\pt -2.00\pt 2.00\pt + "upprall" "\\upprall" -6.38\pt 6.38\pt -2.00\pt 2.00\pt + "downprall" "\\downprall" -6.38\pt 6.38\pt -2.00\pt 2.00\pt + } + "flags" = \table { + "u3" "\\eighthflag" -0.20\pt 4.94\pt -12.26\pt 0.20\pt + "u4" "\\sixteenthflag" -0.20\pt 4.94\pt -14.26\pt 0.20\pt + "u5" "\\thirtysecondflag" -0.20\pt 4.94\pt -17.26\pt 0.20\pt + "u6" "\\sixtyfourthflag" -0.20\pt 4.94\pt -21.26\pt 0.20\pt + "d3" "\\deighthflag" -0.20\pt 5.46\pt -0.20\pt 11.66\pt + "d4" "\\dsixteenthflag" -0.20\pt 5.46\pt -0.20\pt 12.26\pt + "d5" "\\dthirtysecondflag" -0.20\pt 5.46\pt -0.20\pt 15.66\pt + "d6" "\\dsixtyfourthflag" -0.20\pt 5.46\pt -0.20\pt 17.66\pt + } + "clefs" = \table { + "alto" "\\altoclef" -4.00\pt 14.89\pt -8.00\pt 8.00\pt + "alto_change" "\\caltoclef" -3.20\pt 11.91\pt -6.40\pt 6.40\pt + "bass" "\\bassclef" -2.00\pt 14.40\pt -10.00\pt 4.00\pt + "bass_change" "\\cbassclef" -1.60\pt 11.52\pt -8.00\pt 3.20\pt + "violin" "\\violinclef" -3.49\pt 14.95\pt -12.00\pt 20.00\pt + "violin_change" "\\cviolinclef" -3.03\pt 11.72\pt -9.60\pt 16.00\pt + } + % } % $name +% Creator: mf-to-table.py version 0.6 +% Automatically generated on +% Do not edit +% input from out/feta16.log +% name=\symboltables { + "rests" = \table { + "0" "\\wholerest" 0.00\pt 6.00\pt -2.50\pt 0.00\pt + "1" "\\halfrest" 0.00\pt 6.00\pt 0.00\pt 2.50\pt + "0o" "\\outsidewholerest" -2.50\pt 8.50\pt -2.50\pt 0.40\pt + "1o" "\\outsidehalfrest" -2.50\pt 8.50\pt -0.40\pt 2.50\pt + "2" "\\quartrest" 0.00\pt 4.32\pt 3.00\pt 14.40\pt + "3" "\\eighthrest" 0.00\pt 5.33\pt 4.00\pt 11.37\pt + "4" "\\sixteenthrest" 0.00\pt 6.21\pt 0.00\pt 11.37\pt + "5" "\\thirtysecondrest" 0.00\pt 7.00\pt 0.00\pt 15.37\pt + "6" "\\sixtyfourthrest" 0.00\pt 7.51\pt 0.00\pt 19.37\pt + "7" "\\hundredtwentyeighthrest" 0.00\pt 8.36\pt 0.00\pt 23.37\pt + } + "accidentals" = \table { + "1" "\\sharp" 0.00\pt 4.40\pt -6.00\pt 6.00\pt + "0" "\\natural" 0.00\pt 2.67\pt -6.00\pt 6.00\pt + "-1" "\\flat" -0.48\pt 3.20\pt -2.00\pt 8.00\pt + "-2" "\\flatflat" -0.48\pt 5.80\pt -2.00\pt 8.00\pt + "2" "\\sharpsharp" 0.00\pt 4.00\pt -2.00\pt 2.00\pt + } + "dots" = \table { + "dot" "\\dot" 0.00\pt 1.80\pt -0.90\pt 0.90\pt + "repeatcolon" "\\repeatcolon" 0.00\pt 1.80\pt -2.00\pt 2.00\pt + } + "balls" = \table { + "-1" "\\brevisball" 0.00\pt 8.00\pt -2.20\pt 2.20\pt + "-1l" "\\brevisledger" -2.00\pt 10.00\pt -0.40\pt 0.40\pt + "-2" "\\longaball" 0.00\pt 8.00\pt -2.20\pt 2.20\pt + "-2l" "\\longaledger" -2.00\pt 10.00\pt -0.40\pt 0.40\pt + "0" "\\wholeball" 0.00\pt 7.92\pt -2.20\pt 2.20\pt + "0l" "\\wholeledger" -1.98\pt 9.90\pt -0.40\pt 0.40\pt + "1" "\\halfball" 0.00\pt 5.51\pt -2.20\pt 2.20\pt + "1l" "\\halfledger" -1.38\pt 6.89\pt -0.40\pt 0.40\pt + "2" "\\quartball" 0.00\pt 5.28\pt -2.20\pt 2.20\pt + "2l" "\\quartledger" -1.32\pt 6.61\pt -0.40\pt 0.40\pt + } + "scripts" = \table { + "ufermata" "\\ufermata" -5.30\pt 5.30\pt -0.30\pt 5.80\pt + "dfermata" "\\dfermata" -5.30\pt 5.30\pt -5.80\pt 0.30\pt + "sforzato" "\\sforzatoaccent" -3.60\pt 3.60\pt -2.00\pt 2.00\pt + "staccato" "\\staccato" -0.60\pt 0.60\pt -0.60\pt 0.60\pt + "ustaccatissimo" "\\ustaccatissimo" -0.80\pt 0.80\pt -0.20\pt 4.00\pt + "dstaccatissimo" "\\dstaccatissimo" -0.80\pt 0.80\pt -4.00\pt 0.20\pt + "tenuto" "\\tenuto" -3.60\pt 3.60\pt -0.24\pt 0.24\pt + "umarcato" "\\umarcato" -2.00\pt 2.00\pt 0.00\pt 4.40\pt + "dmarcato" "\\dmarcato" -2.00\pt 2.00\pt -4.40\pt 0.00\pt + "open" "\\ouvert" -1.60\pt 1.60\pt -2.00\pt 2.00\pt + "stopped" "\\plusstop" -2.20\pt 2.20\pt -2.20\pt 2.20\pt + "upbow" "\\upbow" -2.60\pt 2.60\pt 0.00\pt 8.32\pt + "downbow" "\\downbow" -3.00\pt 3.00\pt 0.00\pt 5.33\pt + "reverseturn" "\\reverseturn" -4.38\pt 4.38\pt -2.12\pt 2.12\pt + "turn" "\\turn" -4.38\pt 4.38\pt -2.12\pt 2.12\pt + "trill" "\\trill" -4.00\pt 4.00\pt 0.00\pt 9.00\pt + "upedalheel" "\\upedalheel" -2.00\pt 2.00\pt -2.00\pt 2.67\pt + "dpedalheel" "\\dpedalheel" -2.00\pt 2.00\pt -2.67\pt 2.00\pt + "upedaltoe" "\\upedaltoe" -2.00\pt 2.00\pt 0.00\pt 6.00\pt + "dpedaltoe" "\\dpedaltoe" -2.00\pt 2.00\pt -6.00\pt 0.00\pt + "flageolet" "\\flageolet" -2.13\pt 2.13\pt -2.13\pt 2.13\pt + "trilelement" "\\trilelement" -2.67\pt 1.05\pt -2.00\pt 2.00\pt + "prall" "\\prall" -4.52\pt 4.52\pt -2.00\pt 2.00\pt + "mordent" "\\mordent" -4.52\pt 4.52\pt -2.00\pt 2.00\pt + "prallprall" "\\prallprall" -6.38\pt 6.38\pt -2.00\pt 2.00\pt + "prallmordent" "\\prallmordent" -6.38\pt 6.38\pt -2.00\pt 2.00\pt + "upprall" "\\upprall" -6.38\pt 6.38\pt -2.00\pt 2.00\pt + "downprall" "\\downprall" -6.38\pt 6.38\pt -2.00\pt 2.00\pt + } + "flags" = \table { + "u3" "\\eighthflag" -0.20\pt 4.94\pt -12.26\pt 0.20\pt + "u4" "\\sixteenthflag" -0.20\pt 4.94\pt -14.26\pt 0.20\pt + "u5" "\\thirtysecondflag" -0.20\pt 4.94\pt -17.26\pt 0.20\pt + "u6" "\\sixtyfourthflag" -0.20\pt 4.94\pt -21.26\pt 0.20\pt + "d3" "\\deighthflag" -0.20\pt 5.46\pt -0.20\pt 11.66\pt + "d4" "\\dsixteenthflag" -0.20\pt 5.46\pt -0.20\pt 12.26\pt + "d5" "\\dthirtysecondflag" -0.20\pt 5.46\pt -0.20\pt 15.66\pt + "d6" "\\dsixtyfourthflag" -0.20\pt 5.46\pt -0.20\pt 17.66\pt + } + "clefs" = \table { + "alto" "\\altoclef" -4.00\pt 14.89\pt -8.00\pt 8.00\pt + "alto_change" "\\caltoclef" -3.20\pt 11.91\pt -6.40\pt 6.40\pt + "bass" "\\bassclef" -2.00\pt 14.40\pt -10.00\pt 4.00\pt + "bass_change" "\\cbassclef" -1.60\pt 11.52\pt -8.00\pt 3.20\pt + "violin" "\\violinclef" -3.49\pt 14.95\pt -12.00\pt 20.00\pt + "violin_change" "\\cviolinclef" -3.03\pt 11.72\pt -9.60\pt 16.00\pt + } + % } % $name diff --git a/init/feta19.ly b/init/feta19.ly new file mode 100644 index 0000000000..b08510dd83 --- /dev/null +++ b/init/feta19.ly @@ -0,0 +1,178 @@ +% Creator: mf-to-table.py version 0.6 +% Automatically generated on +% Do not edit +% input from out/feta19.log +% name=\symboltables { + "rests" = \table { + "0" "\\wholerest" 0.00\pt 7.12\pt -2.97\pt 0.00\pt + "1" "\\halfrest" 0.00\pt 7.12\pt 0.00\pt 2.97\pt + "0o" "\\outsidewholerest" -2.97\pt 10.09\pt -2.97\pt 0.48\pt + "1o" "\\outsidehalfrest" -2.97\pt 10.09\pt -0.48\pt 2.97\pt + "2" "\\quartrest" 0.00\pt 5.13\pt 3.56\pt 17.10\pt + "3" "\\eighthrest" 0.00\pt 6.33\pt 4.75\pt 13.50\pt + "4" "\\sixteenthrest" 0.00\pt 7.37\pt 0.00\pt 13.50\pt + "5" "\\thirtysecondrest" 0.00\pt 8.32\pt 0.00\pt 18.25\pt + "6" "\\sixtyfourthrest" 0.00\pt 8.92\pt 0.00\pt 23.00\pt + "7" "\\hundredtwentyeighthrest" 0.00\pt 9.93\pt 0.00\pt 27.75\pt + } + "accidentals" = \table { + "1" "\\sharp" 0.00\pt 5.23\pt -7.12\pt 7.12\pt + "0" "\\natural" 0.00\pt 3.17\pt -7.12\pt 7.12\pt + "-1" "\\flat" -0.57\pt 3.80\pt -2.38\pt 9.50\pt + "-2" "\\flatflat" -0.57\pt 6.89\pt -2.38\pt 9.50\pt + "2" "\\sharpsharp" 0.00\pt 4.75\pt -2.38\pt 2.38\pt + } + "dots" = \table { + "dot" "\\dot" 0.00\pt 2.14\pt -1.07\pt 1.07\pt + "repeatcolon" "\\repeatcolon" 0.00\pt 2.14\pt -2.38\pt 2.38\pt + } + "balls" = \table { + "-1" "\\brevisball" 0.00\pt 9.50\pt -2.61\pt 2.61\pt + "-1l" "\\brevisledger" -2.38\pt 11.88\pt -0.48\pt 0.48\pt + "-2" "\\longaball" 0.00\pt 9.50\pt -2.61\pt 2.61\pt + "-2l" "\\longaledger" -2.38\pt 11.88\pt -0.48\pt 0.48\pt + "0" "\\wholeball" 0.00\pt 9.41\pt -2.61\pt 2.61\pt + "0l" "\\wholeledger" -2.35\pt 11.76\pt -0.48\pt 0.48\pt + "1" "\\halfball" 0.00\pt 6.54\pt -2.61\pt 2.61\pt + "1l" "\\halfledger" -1.64\pt 8.18\pt -0.48\pt 0.48\pt + "2" "\\quartball" 0.00\pt 6.27\pt -2.61\pt 2.61\pt + "2l" "\\quartledger" -1.57\pt 7.84\pt -0.48\pt 0.48\pt + } + "scripts" = \table { + "ufermata" "\\ufermata" -6.29\pt 6.29\pt -0.36\pt 6.89\pt + "dfermata" "\\dfermata" -6.29\pt 6.29\pt -6.89\pt 0.36\pt + "sforzato" "\\sforzatoaccent" -4.27\pt 4.27\pt -2.38\pt 2.38\pt + "staccato" "\\staccato" -0.71\pt 0.71\pt -0.71\pt 0.71\pt + "ustaccatissimo" "\\ustaccatissimo" -0.95\pt 0.95\pt -0.20\pt 4.75\pt + "dstaccatissimo" "\\dstaccatissimo" -0.95\pt 0.95\pt -4.75\pt 0.20\pt + "tenuto" "\\tenuto" -4.27\pt 4.27\pt -0.29\pt 0.29\pt + "umarcato" "\\umarcato" -2.38\pt 2.38\pt 0.00\pt 5.23\pt + "dmarcato" "\\dmarcato" -2.38\pt 2.38\pt -5.23\pt 0.00\pt + "open" "\\ouvert" -1.90\pt 1.90\pt -2.38\pt 2.38\pt + "stopped" "\\plusstop" -2.61\pt 2.61\pt -2.61\pt 2.61\pt + "upbow" "\\upbow" -3.09\pt 3.09\pt 0.00\pt 9.88\pt + "downbow" "\\downbow" -3.56\pt 3.56\pt 0.00\pt 6.33\pt + "reverseturn" "\\reverseturn" -5.20\pt 5.20\pt -2.51\pt 2.51\pt + "turn" "\\turn" -5.20\pt 5.20\pt -2.51\pt 2.51\pt + "trill" "\\trill" -4.75\pt 4.75\pt 0.00\pt 10.69\pt + "upedalheel" "\\upedalheel" -2.38\pt 2.38\pt -2.38\pt 3.17\pt + "dpedalheel" "\\dpedalheel" -2.38\pt 2.38\pt -3.17\pt 2.38\pt + "upedaltoe" "\\upedaltoe" -2.38\pt 2.38\pt 0.00\pt 7.12\pt + "dpedaltoe" "\\dpedaltoe" -2.38\pt 2.38\pt -7.12\pt 0.00\pt + "flageolet" "\\flageolet" -2.53\pt 2.53\pt -2.53\pt 2.53\pt + "trilelement" "\\trilelement" -3.17\pt 1.24\pt -2.38\pt 2.38\pt + "prall" "\\prall" -5.37\pt 5.37\pt -2.38\pt 2.38\pt + "mordent" "\\mordent" -5.37\pt 5.37\pt -2.38\pt 2.38\pt + "prallprall" "\\prallprall" -7.57\pt 7.57\pt -2.38\pt 2.38\pt + "prallmordent" "\\prallmordent" -7.57\pt 7.57\pt -2.38\pt 2.38\pt + "upprall" "\\upprall" -7.57\pt 7.57\pt -2.38\pt 2.38\pt + "downprall" "\\downprall" -7.57\pt 7.57\pt -2.38\pt 2.38\pt + } + "flags" = \table { + "u3" "\\eighthflag" -0.24\pt 5.86\pt -14.56\pt 0.24\pt + "u4" "\\sixteenthflag" -0.24\pt 5.86\pt -16.93\pt 0.24\pt + "u5" "\\thirtysecondflag" -0.24\pt 5.86\pt -20.50\pt 0.24\pt + "u6" "\\sixtyfourthflag" -0.24\pt 5.86\pt -25.25\pt 0.24\pt + "d3" "\\deighthflag" -0.24\pt 6.49\pt -0.24\pt 13.85\pt + "d4" "\\dsixteenthflag" -0.24\pt 6.49\pt -0.24\pt 14.56\pt + "d5" "\\dthirtysecondflag" -0.24\pt 6.49\pt -0.24\pt 18.60\pt + "d6" "\\dsixtyfourthflag" -0.24\pt 6.49\pt -0.24\pt 20.97\pt + } + "clefs" = \table { + "alto" "\\altoclef" -4.75\pt 17.68\pt -9.50\pt 9.50\pt + "alto_change" "\\caltoclef" -3.80\pt 14.14\pt -7.60\pt 7.60\pt + "bass" "\\bassclef" -2.38\pt 17.10\pt -11.88\pt 4.75\pt + "bass_change" "\\cbassclef" -1.90\pt 13.68\pt -9.50\pt 3.80\pt + "violin" "\\violinclef" -4.14\pt 17.75\pt -14.25\pt 23.75\pt + "violin_change" "\\cviolinclef" -3.60\pt 13.92\pt -11.40\pt 19.00\pt + } + % } % $name +% Creator: mf-to-table.py version 0.6 +% Automatically generated on +% Do not edit +% input from out/feta19.log +% name=\symboltables { + "rests" = \table { + "0" "\\wholerest" 0.00\pt 7.12\pt -2.97\pt 0.00\pt + "1" "\\halfrest" 0.00\pt 7.12\pt 0.00\pt 2.97\pt + "0o" "\\outsidewholerest" -2.97\pt 10.09\pt -2.97\pt 0.48\pt + "1o" "\\outsidehalfrest" -2.97\pt 10.09\pt -0.48\pt 2.97\pt + "2" "\\quartrest" 0.00\pt 5.13\pt 3.56\pt 17.10\pt + "3" "\\eighthrest" 0.00\pt 6.33\pt 4.75\pt 13.50\pt + "4" "\\sixteenthrest" 0.00\pt 7.37\pt 0.00\pt 13.50\pt + "5" "\\thirtysecondrest" 0.00\pt 8.32\pt 0.00\pt 18.25\pt + "6" "\\sixtyfourthrest" 0.00\pt 8.92\pt 0.00\pt 23.00\pt + "7" "\\hundredtwentyeighthrest" 0.00\pt 9.93\pt 0.00\pt 27.75\pt + } + "accidentals" = \table { + "1" "\\sharp" 0.00\pt 5.23\pt -7.12\pt 7.12\pt + "0" "\\natural" 0.00\pt 3.17\pt -7.12\pt 7.12\pt + "-1" "\\flat" -0.57\pt 3.80\pt -2.38\pt 9.50\pt + "-2" "\\flatflat" -0.57\pt 6.89\pt -2.38\pt 9.50\pt + "2" "\\sharpsharp" 0.00\pt 4.75\pt -2.38\pt 2.38\pt + } + "dots" = \table { + "dot" "\\dot" 0.00\pt 2.14\pt -1.07\pt 1.07\pt + "repeatcolon" "\\repeatcolon" 0.00\pt 2.14\pt -2.38\pt 2.38\pt + } + "balls" = \table { + "-1" "\\brevisball" 0.00\pt 9.50\pt -2.61\pt 2.61\pt + "-1l" "\\brevisledger" -2.38\pt 11.88\pt -0.48\pt 0.48\pt + "-2" "\\longaball" 0.00\pt 9.50\pt -2.61\pt 2.61\pt + "-2l" "\\longaledger" -2.38\pt 11.88\pt -0.48\pt 0.48\pt + "0" "\\wholeball" 0.00\pt 9.41\pt -2.61\pt 2.61\pt + "0l" "\\wholeledger" -2.35\pt 11.76\pt -0.48\pt 0.48\pt + "1" "\\halfball" 0.00\pt 6.54\pt -2.61\pt 2.61\pt + "1l" "\\halfledger" -1.64\pt 8.18\pt -0.48\pt 0.48\pt + "2" "\\quartball" 0.00\pt 6.27\pt -2.61\pt 2.61\pt + "2l" "\\quartledger" -1.57\pt 7.84\pt -0.48\pt 0.48\pt + } + "scripts" = \table { + "ufermata" "\\ufermata" -6.29\pt 6.29\pt -0.36\pt 6.89\pt + "dfermata" "\\dfermata" -6.29\pt 6.29\pt -6.89\pt 0.36\pt + "sforzato" "\\sforzatoaccent" -4.27\pt 4.27\pt -2.38\pt 2.38\pt + "staccato" "\\staccato" -0.71\pt 0.71\pt -0.71\pt 0.71\pt + "ustaccatissimo" "\\ustaccatissimo" -0.95\pt 0.95\pt -0.20\pt 4.75\pt + "dstaccatissimo" "\\dstaccatissimo" -0.95\pt 0.95\pt -4.75\pt 0.20\pt + "tenuto" "\\tenuto" -4.27\pt 4.27\pt -0.29\pt 0.29\pt + "umarcato" "\\umarcato" -2.38\pt 2.38\pt 0.00\pt 5.23\pt + "dmarcato" "\\dmarcato" -2.38\pt 2.38\pt -5.23\pt 0.00\pt + "open" "\\ouvert" -1.90\pt 1.90\pt -2.38\pt 2.38\pt + "stopped" "\\plusstop" -2.61\pt 2.61\pt -2.61\pt 2.61\pt + "upbow" "\\upbow" -3.09\pt 3.09\pt 0.00\pt 9.88\pt + "downbow" "\\downbow" -3.56\pt 3.56\pt 0.00\pt 6.33\pt + "reverseturn" "\\reverseturn" -5.20\pt 5.20\pt -2.51\pt 2.51\pt + "turn" "\\turn" -5.20\pt 5.20\pt -2.51\pt 2.51\pt + "trill" "\\trill" -4.75\pt 4.75\pt 0.00\pt 10.69\pt + "upedalheel" "\\upedalheel" -2.38\pt 2.38\pt -2.38\pt 3.17\pt + "dpedalheel" "\\dpedalheel" -2.38\pt 2.38\pt -3.17\pt 2.38\pt + "upedaltoe" "\\upedaltoe" -2.38\pt 2.38\pt 0.00\pt 7.12\pt + "dpedaltoe" "\\dpedaltoe" -2.38\pt 2.38\pt -7.12\pt 0.00\pt + "flageolet" "\\flageolet" -2.53\pt 2.53\pt -2.53\pt 2.53\pt + "trilelement" "\\trilelement" -3.17\pt 1.24\pt -2.38\pt 2.38\pt + "prall" "\\prall" -5.37\pt 5.37\pt -2.38\pt 2.38\pt + "mordent" "\\mordent" -5.37\pt 5.37\pt -2.38\pt 2.38\pt + "prallprall" "\\prallprall" -7.57\pt 7.57\pt -2.38\pt 2.38\pt + "prallmordent" "\\prallmordent" -7.57\pt 7.57\pt -2.38\pt 2.38\pt + "upprall" "\\upprall" -7.57\pt 7.57\pt -2.38\pt 2.38\pt + "downprall" "\\downprall" -7.57\pt 7.57\pt -2.38\pt 2.38\pt + } + "flags" = \table { + "u3" "\\eighthflag" -0.24\pt 5.86\pt -14.56\pt 0.24\pt + "u4" "\\sixteenthflag" -0.24\pt 5.86\pt -16.93\pt 0.24\pt + "u5" "\\thirtysecondflag" -0.24\pt 5.86\pt -20.50\pt 0.24\pt + "u6" "\\sixtyfourthflag" -0.24\pt 5.86\pt -25.25\pt 0.24\pt + "d3" "\\deighthflag" -0.24\pt 6.49\pt -0.24\pt 13.85\pt + "d4" "\\dsixteenthflag" -0.24\pt 6.49\pt -0.24\pt 14.56\pt + "d5" "\\dthirtysecondflag" -0.24\pt 6.49\pt -0.24\pt 18.60\pt + "d6" "\\dsixtyfourthflag" -0.24\pt 6.49\pt -0.24\pt 20.97\pt + } + "clefs" = \table { + "alto" "\\altoclef" -4.75\pt 17.68\pt -9.50\pt 9.50\pt + "alto_change" "\\caltoclef" -3.80\pt 14.14\pt -7.60\pt 7.60\pt + "bass" "\\bassclef" -2.38\pt 17.10\pt -11.88\pt 4.75\pt + "bass_change" "\\cbassclef" -1.90\pt 13.68\pt -9.50\pt 3.80\pt + "violin" "\\violinclef" -4.14\pt 17.75\pt -14.25\pt 23.75\pt + "violin_change" "\\cviolinclef" -3.60\pt 13.92\pt -11.40\pt 19.00\pt + } + % } % $name diff --git a/init/feta20.ly b/init/feta20.ly new file mode 100644 index 0000000000..9e72e2a112 --- /dev/null +++ b/init/feta20.ly @@ -0,0 +1,178 @@ +% Creator: mf-to-table.py version 0.6 +% Automatically generated on +% Do not edit +% input from out/feta20.log +% name=\symboltables { + "rests" = \table { + "0" "\\wholerest" 0.00\pt 7.50\pt -3.12\pt 0.00\pt + "1" "\\halfrest" 0.00\pt 7.50\pt 0.00\pt 3.12\pt + "0o" "\\outsidewholerest" -3.12\pt 10.62\pt -3.12\pt 0.50\pt + "1o" "\\outsidehalfrest" -3.12\pt 10.62\pt -0.50\pt 3.12\pt + "2" "\\quartrest" 0.00\pt 5.40\pt 3.75\pt 18.00\pt + "3" "\\eighthrest" 0.00\pt 6.67\pt 5.00\pt 14.21\pt + "4" "\\sixteenthrest" 0.00\pt 7.76\pt 0.00\pt 14.21\pt + "5" "\\thirtysecondrest" 0.00\pt 8.75\pt 0.00\pt 19.21\pt + "6" "\\sixtyfourthrest" 0.00\pt 9.38\pt 0.00\pt 24.21\pt + "7" "\\hundredtwentyeighthrest" 0.00\pt 10.45\pt 0.00\pt 29.21\pt + } + "accidentals" = \table { + "1" "\\sharp" 0.00\pt 5.50\pt -7.50\pt 7.50\pt + "0" "\\natural" 0.00\pt 3.33\pt -7.50\pt 7.50\pt + "-1" "\\flat" -0.60\pt 4.00\pt -2.50\pt 10.00\pt + "-2" "\\flatflat" -0.60\pt 7.25\pt -2.50\pt 10.00\pt + "2" "\\sharpsharp" 0.00\pt 5.00\pt -2.50\pt 2.50\pt + } + "dots" = \table { + "dot" "\\dot" 0.00\pt 2.25\pt -1.12\pt 1.12\pt + "repeatcolon" "\\repeatcolon" 0.00\pt 2.25\pt -2.50\pt 2.50\pt + } + "balls" = \table { + "-1" "\\brevisball" 0.00\pt 10.00\pt -2.75\pt 2.75\pt + "-1l" "\\brevisledger" -2.50\pt 12.50\pt -0.50\pt 0.50\pt + "-2" "\\longaball" 0.00\pt 10.00\pt -2.75\pt 2.75\pt + "-2l" "\\longaledger" -2.50\pt 12.50\pt -0.50\pt 0.50\pt + "0" "\\wholeball" 0.00\pt 9.90\pt -2.75\pt 2.75\pt + "0l" "\\wholeledger" -2.48\pt 12.38\pt -0.50\pt 0.50\pt + "1" "\\halfball" 0.00\pt 6.89\pt -2.75\pt 2.75\pt + "1l" "\\halfledger" -1.72\pt 8.61\pt -0.50\pt 0.50\pt + "2" "\\quartball" 0.00\pt 6.61\pt -2.75\pt 2.75\pt + "2l" "\\quartledger" -1.65\pt 8.26\pt -0.50\pt 0.50\pt + } + "scripts" = \table { + "ufermata" "\\ufermata" -6.63\pt 6.63\pt -0.38\pt 7.25\pt + "dfermata" "\\dfermata" -6.63\pt 6.63\pt -7.25\pt 0.38\pt + "sforzato" "\\sforzatoaccent" -4.50\pt 4.50\pt -2.50\pt 2.50\pt + "staccato" "\\staccato" -0.75\pt 0.75\pt -0.75\pt 0.75\pt + "ustaccatissimo" "\\ustaccatissimo" -1.00\pt 1.00\pt -0.20\pt 5.00\pt + "dstaccatissimo" "\\dstaccatissimo" -1.00\pt 1.00\pt -5.00\pt 0.20\pt + "tenuto" "\\tenuto" -4.50\pt 4.50\pt -0.30\pt 0.30\pt + "umarcato" "\\umarcato" -2.50\pt 2.50\pt 0.00\pt 5.50\pt + "dmarcato" "\\dmarcato" -2.50\pt 2.50\pt -5.50\pt 0.00\pt + "open" "\\ouvert" -2.00\pt 2.00\pt -2.50\pt 2.50\pt + "stopped" "\\plusstop" -2.75\pt 2.75\pt -2.75\pt 2.75\pt + "upbow" "\\upbow" -3.25\pt 3.25\pt 0.00\pt 10.40\pt + "downbow" "\\downbow" -3.75\pt 3.75\pt 0.00\pt 6.67\pt + "reverseturn" "\\reverseturn" -5.47\pt 5.47\pt -2.65\pt 2.65\pt + "turn" "\\turn" -5.47\pt 5.47\pt -2.65\pt 2.65\pt + "trill" "\\trill" -5.00\pt 5.00\pt 0.00\pt 11.25\pt + "upedalheel" "\\upedalheel" -2.50\pt 2.50\pt -2.50\pt 3.33\pt + "dpedalheel" "\\dpedalheel" -2.50\pt 2.50\pt -3.33\pt 2.50\pt + "upedaltoe" "\\upedaltoe" -2.50\pt 2.50\pt 0.00\pt 7.50\pt + "dpedaltoe" "\\dpedaltoe" -2.50\pt 2.50\pt -7.50\pt 0.00\pt + "flageolet" "\\flageolet" -2.67\pt 2.67\pt -2.67\pt 2.67\pt + "trilelement" "\\trilelement" -3.33\pt 1.31\pt -2.50\pt 2.50\pt + "prall" "\\prall" -5.65\pt 5.65\pt -2.50\pt 2.50\pt + "mordent" "\\mordent" -5.65\pt 5.65\pt -2.50\pt 2.50\pt + "prallprall" "\\prallprall" -7.97\pt 7.97\pt -2.50\pt 2.50\pt + "prallmordent" "\\prallmordent" -7.97\pt 7.97\pt -2.50\pt 2.50\pt + "upprall" "\\upprall" -7.97\pt 7.97\pt -2.50\pt 2.50\pt + "downprall" "\\downprall" -7.97\pt 7.97\pt -2.50\pt 2.50\pt + } + "flags" = \table { + "u3" "\\eighthflag" -0.25\pt 6.17\pt -15.33\pt 0.25\pt + "u4" "\\sixteenthflag" -0.25\pt 6.17\pt -17.83\pt 0.25\pt + "u5" "\\thirtysecondflag" -0.25\pt 6.17\pt -21.58\pt 0.25\pt + "u6" "\\sixtyfourthflag" -0.25\pt 6.17\pt -26.58\pt 0.25\pt + "d3" "\\deighthflag" -0.25\pt 6.83\pt -0.25\pt 14.58\pt + "d4" "\\dsixteenthflag" -0.25\pt 6.83\pt -0.25\pt 15.33\pt + "d5" "\\dthirtysecondflag" -0.25\pt 6.83\pt -0.25\pt 19.58\pt + "d6" "\\dsixtyfourthflag" -0.25\pt 6.83\pt -0.25\pt 22.08\pt + } + "clefs" = \table { + "alto" "\\altoclef" -5.00\pt 18.61\pt -10.00\pt 10.00\pt + "alto_change" "\\caltoclef" -4.00\pt 14.89\pt -8.00\pt 8.00\pt + "bass" "\\bassclef" -2.50\pt 18.00\pt -12.50\pt 5.00\pt + "bass_change" "\\cbassclef" -2.00\pt 14.40\pt -10.00\pt 4.00\pt + "violin" "\\violinclef" -4.36\pt 18.69\pt -15.00\pt 25.00\pt + "violin_change" "\\cviolinclef" -3.79\pt 14.65\pt -12.00\pt 20.00\pt + } + % } % $name +% Creator: mf-to-table.py version 0.6 +% Automatically generated on +% Do not edit +% input from out/feta20.log +% name=\symboltables { + "rests" = \table { + "0" "\\wholerest" 0.00\pt 7.50\pt -3.12\pt 0.00\pt + "1" "\\halfrest" 0.00\pt 7.50\pt 0.00\pt 3.12\pt + "0o" "\\outsidewholerest" -3.12\pt 10.62\pt -3.12\pt 0.50\pt + "1o" "\\outsidehalfrest" -3.12\pt 10.62\pt -0.50\pt 3.12\pt + "2" "\\quartrest" 0.00\pt 5.40\pt 3.75\pt 18.00\pt + "3" "\\eighthrest" 0.00\pt 6.67\pt 5.00\pt 14.21\pt + "4" "\\sixteenthrest" 0.00\pt 7.76\pt 0.00\pt 14.21\pt + "5" "\\thirtysecondrest" 0.00\pt 8.75\pt 0.00\pt 19.21\pt + "6" "\\sixtyfourthrest" 0.00\pt 9.38\pt 0.00\pt 24.21\pt + "7" "\\hundredtwentyeighthrest" 0.00\pt 10.45\pt 0.00\pt 29.21\pt + } + "accidentals" = \table { + "1" "\\sharp" 0.00\pt 5.50\pt -7.50\pt 7.50\pt + "0" "\\natural" 0.00\pt 3.33\pt -7.50\pt 7.50\pt + "-1" "\\flat" -0.60\pt 4.00\pt -2.50\pt 10.00\pt + "-2" "\\flatflat" -0.60\pt 7.25\pt -2.50\pt 10.00\pt + "2" "\\sharpsharp" 0.00\pt 5.00\pt -2.50\pt 2.50\pt + } + "dots" = \table { + "dot" "\\dot" 0.00\pt 2.25\pt -1.12\pt 1.12\pt + "repeatcolon" "\\repeatcolon" 0.00\pt 2.25\pt -2.50\pt 2.50\pt + } + "balls" = \table { + "-1" "\\brevisball" 0.00\pt 10.00\pt -2.75\pt 2.75\pt + "-1l" "\\brevisledger" -2.50\pt 12.50\pt -0.50\pt 0.50\pt + "-2" "\\longaball" 0.00\pt 10.00\pt -2.75\pt 2.75\pt + "-2l" "\\longaledger" -2.50\pt 12.50\pt -0.50\pt 0.50\pt + "0" "\\wholeball" 0.00\pt 9.90\pt -2.75\pt 2.75\pt + "0l" "\\wholeledger" -2.48\pt 12.38\pt -0.50\pt 0.50\pt + "1" "\\halfball" 0.00\pt 6.89\pt -2.75\pt 2.75\pt + "1l" "\\halfledger" -1.72\pt 8.61\pt -0.50\pt 0.50\pt + "2" "\\quartball" 0.00\pt 6.61\pt -2.75\pt 2.75\pt + "2l" "\\quartledger" -1.65\pt 8.26\pt -0.50\pt 0.50\pt + } + "scripts" = \table { + "ufermata" "\\ufermata" -6.63\pt 6.63\pt -0.38\pt 7.25\pt + "dfermata" "\\dfermata" -6.63\pt 6.63\pt -7.25\pt 0.38\pt + "sforzato" "\\sforzatoaccent" -4.50\pt 4.50\pt -2.50\pt 2.50\pt + "staccato" "\\staccato" -0.75\pt 0.75\pt -0.75\pt 0.75\pt + "ustaccatissimo" "\\ustaccatissimo" -1.00\pt 1.00\pt -0.20\pt 5.00\pt + "dstaccatissimo" "\\dstaccatissimo" -1.00\pt 1.00\pt -5.00\pt 0.20\pt + "tenuto" "\\tenuto" -4.50\pt 4.50\pt -0.30\pt 0.30\pt + "umarcato" "\\umarcato" -2.50\pt 2.50\pt 0.00\pt 5.50\pt + "dmarcato" "\\dmarcato" -2.50\pt 2.50\pt -5.50\pt 0.00\pt + "open" "\\ouvert" -2.00\pt 2.00\pt -2.50\pt 2.50\pt + "stopped" "\\plusstop" -2.75\pt 2.75\pt -2.75\pt 2.75\pt + "upbow" "\\upbow" -3.25\pt 3.25\pt 0.00\pt 10.40\pt + "downbow" "\\downbow" -3.75\pt 3.75\pt 0.00\pt 6.67\pt + "reverseturn" "\\reverseturn" -5.47\pt 5.47\pt -2.65\pt 2.65\pt + "turn" "\\turn" -5.47\pt 5.47\pt -2.65\pt 2.65\pt + "trill" "\\trill" -5.00\pt 5.00\pt 0.00\pt 11.25\pt + "upedalheel" "\\upedalheel" -2.50\pt 2.50\pt -2.50\pt 3.33\pt + "dpedalheel" "\\dpedalheel" -2.50\pt 2.50\pt -3.33\pt 2.50\pt + "upedaltoe" "\\upedaltoe" -2.50\pt 2.50\pt 0.00\pt 7.50\pt + "dpedaltoe" "\\dpedaltoe" -2.50\pt 2.50\pt -7.50\pt 0.00\pt + "flageolet" "\\flageolet" -2.67\pt 2.67\pt -2.67\pt 2.67\pt + "trilelement" "\\trilelement" -3.33\pt 1.31\pt -2.50\pt 2.50\pt + "prall" "\\prall" -5.65\pt 5.65\pt -2.50\pt 2.50\pt + "mordent" "\\mordent" -5.65\pt 5.65\pt -2.50\pt 2.50\pt + "prallprall" "\\prallprall" -7.97\pt 7.97\pt -2.50\pt 2.50\pt + "prallmordent" "\\prallmordent" -7.97\pt 7.97\pt -2.50\pt 2.50\pt + "upprall" "\\upprall" -7.97\pt 7.97\pt -2.50\pt 2.50\pt + "downprall" "\\downprall" -7.97\pt 7.97\pt -2.50\pt 2.50\pt + } + "flags" = \table { + "u3" "\\eighthflag" -0.25\pt 6.17\pt -15.33\pt 0.25\pt + "u4" "\\sixteenthflag" -0.25\pt 6.17\pt -17.83\pt 0.25\pt + "u5" "\\thirtysecondflag" -0.25\pt 6.17\pt -21.58\pt 0.25\pt + "u6" "\\sixtyfourthflag" -0.25\pt 6.17\pt -26.58\pt 0.25\pt + "d3" "\\deighthflag" -0.25\pt 6.83\pt -0.25\pt 14.58\pt + "d4" "\\dsixteenthflag" -0.25\pt 6.83\pt -0.25\pt 15.33\pt + "d5" "\\dthirtysecondflag" -0.25\pt 6.83\pt -0.25\pt 19.58\pt + "d6" "\\dsixtyfourthflag" -0.25\pt 6.83\pt -0.25\pt 22.08\pt + } + "clefs" = \table { + "alto" "\\altoclef" -5.00\pt 18.61\pt -10.00\pt 10.00\pt + "alto_change" "\\caltoclef" -4.00\pt 14.89\pt -8.00\pt 8.00\pt + "bass" "\\bassclef" -2.50\pt 18.00\pt -12.50\pt 5.00\pt + "bass_change" "\\cbassclef" -2.00\pt 14.40\pt -10.00\pt 4.00\pt + "violin" "\\violinclef" -4.36\pt 18.69\pt -15.00\pt 25.00\pt + "violin_change" "\\cviolinclef" -3.79\pt 14.65\pt -12.00\pt 20.00\pt + } + % } % $name diff --git a/init/feta23.ly b/init/feta23.ly new file mode 100644 index 0000000000..d809738412 --- /dev/null +++ b/init/feta23.ly @@ -0,0 +1,178 @@ +% Creator: mf-to-table.py version 0.6 +% Automatically generated on +% Do not edit +% input from out/feta23.log +% name=\symboltables { + "rests" = \table { + "0" "\\wholerest" 0.00\pt 8.44\pt -3.52\pt 0.00\pt + "1" "\\halfrest" 0.00\pt 8.44\pt 0.00\pt 3.52\pt + "0o" "\\outsidewholerest" -3.52\pt 11.95\pt -3.52\pt 0.56\pt + "1o" "\\outsidehalfrest" -3.52\pt 11.95\pt -0.56\pt 3.52\pt + "2" "\\quartrest" 0.00\pt 6.08\pt 4.22\pt 20.25\pt + "3" "\\eighthrest" 0.00\pt 7.50\pt 5.62\pt 15.98\pt + "4" "\\sixteenthrest" 0.00\pt 8.73\pt 0.00\pt 15.98\pt + "5" "\\thirtysecondrest" 0.00\pt 9.85\pt 0.00\pt 21.61\pt + "6" "\\sixtyfourthrest" 0.00\pt 10.56\pt 0.00\pt 27.23\pt + "7" "\\hundredtwentyeighthrest" 0.00\pt 11.75\pt 0.00\pt 32.86\pt + } + "accidentals" = \table { + "1" "\\sharp" 0.00\pt 6.19\pt -8.44\pt 8.44\pt + "0" "\\natural" 0.00\pt 3.75\pt -8.44\pt 8.44\pt + "-1" "\\flat" -0.68\pt 4.50\pt -2.81\pt 11.25\pt + "-2" "\\flatflat" -0.68\pt 8.16\pt -2.81\pt 11.25\pt + "2" "\\sharpsharp" 0.00\pt 5.62\pt -2.81\pt 2.81\pt + } + "dots" = \table { + "dot" "\\dot" 0.00\pt 2.53\pt -1.27\pt 1.27\pt + "repeatcolon" "\\repeatcolon" 0.00\pt 2.53\pt -2.81\pt 2.81\pt + } + "balls" = \table { + "-1" "\\brevisball" 0.00\pt 11.25\pt -3.09\pt 3.09\pt + "-1l" "\\brevisledger" -2.81\pt 14.06\pt -0.56\pt 0.56\pt + "-2" "\\longaball" 0.00\pt 11.25\pt -3.09\pt 3.09\pt + "-2l" "\\longaledger" -2.81\pt 14.06\pt -0.56\pt 0.56\pt + "0" "\\wholeball" 0.00\pt 11.14\pt -3.09\pt 3.09\pt + "0l" "\\wholeledger" -2.78\pt 13.92\pt -0.56\pt 0.56\pt + "1" "\\halfball" 0.00\pt 7.75\pt -3.09\pt 3.09\pt + "1l" "\\halfledger" -1.94\pt 9.69\pt -0.56\pt 0.56\pt + "2" "\\quartball" 0.00\pt 7.43\pt -3.09\pt 3.09\pt + "2l" "\\quartledger" -1.86\pt 9.29\pt -0.56\pt 0.56\pt + } + "scripts" = \table { + "ufermata" "\\ufermata" -7.45\pt 7.45\pt -0.42\pt 8.16\pt + "dfermata" "\\dfermata" -7.45\pt 7.45\pt -8.16\pt 0.42\pt + "sforzato" "\\sforzatoaccent" -5.06\pt 5.06\pt -2.81\pt 2.81\pt + "staccato" "\\staccato" -0.84\pt 0.84\pt -0.84\pt 0.84\pt + "ustaccatissimo" "\\ustaccatissimo" -1.13\pt 1.13\pt -0.20\pt 5.63\pt + "dstaccatissimo" "\\dstaccatissimo" -1.13\pt 1.13\pt -5.63\pt 0.20\pt + "tenuto" "\\tenuto" -5.06\pt 5.06\pt -0.34\pt 0.34\pt + "umarcato" "\\umarcato" -2.81\pt 2.81\pt 0.00\pt 6.19\pt + "dmarcato" "\\dmarcato" -2.81\pt 2.81\pt -6.19\pt 0.00\pt + "open" "\\ouvert" -2.25\pt 2.25\pt -2.81\pt 2.81\pt + "stopped" "\\plusstop" -3.09\pt 3.09\pt -3.09\pt 3.09\pt + "upbow" "\\upbow" -3.66\pt 3.66\pt 0.00\pt 11.70\pt + "downbow" "\\downbow" -4.22\pt 4.22\pt 0.00\pt 7.50\pt + "reverseturn" "\\reverseturn" -6.15\pt 6.15\pt -2.98\pt 2.98\pt + "turn" "\\turn" -6.15\pt 6.15\pt -2.98\pt 2.98\pt + "trill" "\\trill" -5.62\pt 5.62\pt 0.00\pt 12.66\pt + "upedalheel" "\\upedalheel" -2.81\pt 2.81\pt -2.81\pt 3.75\pt + "dpedalheel" "\\dpedalheel" -2.81\pt 2.81\pt -3.75\pt 2.81\pt + "upedaltoe" "\\upedaltoe" -2.81\pt 2.81\pt 0.00\pt 8.44\pt + "dpedaltoe" "\\dpedaltoe" -2.81\pt 2.81\pt -8.44\pt 0.00\pt + "flageolet" "\\flageolet" -3.00\pt 3.00\pt -3.00\pt 3.00\pt + "trilelement" "\\trilelement" -3.75\pt 1.47\pt -2.81\pt 2.81\pt + "prall" "\\prall" -6.36\pt 6.36\pt -2.81\pt 2.81\pt + "mordent" "\\mordent" -6.36\pt 6.36\pt -2.81\pt 2.81\pt + "prallprall" "\\prallprall" -8.97\pt 8.97\pt -2.81\pt 2.81\pt + "prallmordent" "\\prallmordent" -8.97\pt 8.97\pt -2.81\pt 2.81\pt + "upprall" "\\upprall" -8.97\pt 8.97\pt -2.81\pt 2.81\pt + "downprall" "\\downprall" -8.97\pt 8.97\pt -2.81\pt 2.81\pt + } + "flags" = \table { + "u3" "\\eighthflag" -0.28\pt 6.94\pt -17.24\pt 0.28\pt + "u4" "\\sixteenthflag" -0.28\pt 6.94\pt -20.05\pt 0.28\pt + "u5" "\\thirtysecondflag" -0.28\pt 6.94\pt -24.27\pt 0.28\pt + "u6" "\\sixtyfourthflag" -0.28\pt 6.94\pt -29.90\pt 0.28\pt + "d3" "\\deighthflag" -0.28\pt 7.68\pt -0.28\pt 16.40\pt + "d4" "\\dsixteenthflag" -0.28\pt 7.68\pt -0.28\pt 17.24\pt + "d5" "\\dthirtysecondflag" -0.28\pt 7.68\pt -0.28\pt 22.02\pt + "d6" "\\dsixtyfourthflag" -0.28\pt 7.68\pt -0.28\pt 24.83\pt + } + "clefs" = \table { + "alto" "\\altoclef" -5.62\pt 20.94\pt -11.25\pt 11.25\pt + "alto_change" "\\caltoclef" -4.50\pt 16.75\pt -9.00\pt 9.00\pt + "bass" "\\bassclef" -2.81\pt 20.25\pt -14.06\pt 5.62\pt + "bass_change" "\\cbassclef" -2.25\pt 16.20\pt -11.25\pt 4.50\pt + "violin" "\\violinclef" -4.90\pt 21.02\pt -16.88\pt 28.12\pt + "violin_change" "\\cviolinclef" -4.26\pt 16.48\pt -13.50\pt 22.50\pt + } + % } % $name +% Creator: mf-to-table.py version 0.6 +% Automatically generated on +% Do not edit +% input from out/feta23.log +% name=\symboltables { + "rests" = \table { + "0" "\\wholerest" 0.00\pt 8.44\pt -3.52\pt 0.00\pt + "1" "\\halfrest" 0.00\pt 8.44\pt 0.00\pt 3.52\pt + "0o" "\\outsidewholerest" -3.52\pt 11.95\pt -3.52\pt 0.56\pt + "1o" "\\outsidehalfrest" -3.52\pt 11.95\pt -0.56\pt 3.52\pt + "2" "\\quartrest" 0.00\pt 6.08\pt 4.22\pt 20.25\pt + "3" "\\eighthrest" 0.00\pt 7.50\pt 5.62\pt 15.98\pt + "4" "\\sixteenthrest" 0.00\pt 8.73\pt 0.00\pt 15.98\pt + "5" "\\thirtysecondrest" 0.00\pt 9.85\pt 0.00\pt 21.61\pt + "6" "\\sixtyfourthrest" 0.00\pt 10.56\pt 0.00\pt 27.23\pt + "7" "\\hundredtwentyeighthrest" 0.00\pt 11.75\pt 0.00\pt 32.86\pt + } + "accidentals" = \table { + "1" "\\sharp" 0.00\pt 6.19\pt -8.44\pt 8.44\pt + "0" "\\natural" 0.00\pt 3.75\pt -8.44\pt 8.44\pt + "-1" "\\flat" -0.68\pt 4.50\pt -2.81\pt 11.25\pt + "-2" "\\flatflat" -0.68\pt 8.16\pt -2.81\pt 11.25\pt + "2" "\\sharpsharp" 0.00\pt 5.62\pt -2.81\pt 2.81\pt + } + "dots" = \table { + "dot" "\\dot" 0.00\pt 2.53\pt -1.27\pt 1.27\pt + "repeatcolon" "\\repeatcolon" 0.00\pt 2.53\pt -2.81\pt 2.81\pt + } + "balls" = \table { + "-1" "\\brevisball" 0.00\pt 11.25\pt -3.09\pt 3.09\pt + "-1l" "\\brevisledger" -2.81\pt 14.06\pt -0.56\pt 0.56\pt + "-2" "\\longaball" 0.00\pt 11.25\pt -3.09\pt 3.09\pt + "-2l" "\\longaledger" -2.81\pt 14.06\pt -0.56\pt 0.56\pt + "0" "\\wholeball" 0.00\pt 11.14\pt -3.09\pt 3.09\pt + "0l" "\\wholeledger" -2.78\pt 13.92\pt -0.56\pt 0.56\pt + "1" "\\halfball" 0.00\pt 7.75\pt -3.09\pt 3.09\pt + "1l" "\\halfledger" -1.94\pt 9.69\pt -0.56\pt 0.56\pt + "2" "\\quartball" 0.00\pt 7.43\pt -3.09\pt 3.09\pt + "2l" "\\quartledger" -1.86\pt 9.29\pt -0.56\pt 0.56\pt + } + "scripts" = \table { + "ufermata" "\\ufermata" -7.45\pt 7.45\pt -0.42\pt 8.16\pt + "dfermata" "\\dfermata" -7.45\pt 7.45\pt -8.16\pt 0.42\pt + "sforzato" "\\sforzatoaccent" -5.06\pt 5.06\pt -2.81\pt 2.81\pt + "staccato" "\\staccato" -0.84\pt 0.84\pt -0.84\pt 0.84\pt + "ustaccatissimo" "\\ustaccatissimo" -1.13\pt 1.13\pt -0.20\pt 5.63\pt + "dstaccatissimo" "\\dstaccatissimo" -1.13\pt 1.13\pt -5.63\pt 0.20\pt + "tenuto" "\\tenuto" -5.06\pt 5.06\pt -0.34\pt 0.34\pt + "umarcato" "\\umarcato" -2.81\pt 2.81\pt 0.00\pt 6.19\pt + "dmarcato" "\\dmarcato" -2.81\pt 2.81\pt -6.19\pt 0.00\pt + "open" "\\ouvert" -2.25\pt 2.25\pt -2.81\pt 2.81\pt + "stopped" "\\plusstop" -3.09\pt 3.09\pt -3.09\pt 3.09\pt + "upbow" "\\upbow" -3.66\pt 3.66\pt 0.00\pt 11.70\pt + "downbow" "\\downbow" -4.22\pt 4.22\pt 0.00\pt 7.50\pt + "reverseturn" "\\reverseturn" -6.15\pt 6.15\pt -2.98\pt 2.98\pt + "turn" "\\turn" -6.15\pt 6.15\pt -2.98\pt 2.98\pt + "trill" "\\trill" -5.62\pt 5.62\pt 0.00\pt 12.66\pt + "upedalheel" "\\upedalheel" -2.81\pt 2.81\pt -2.81\pt 3.75\pt + "dpedalheel" "\\dpedalheel" -2.81\pt 2.81\pt -3.75\pt 2.81\pt + "upedaltoe" "\\upedaltoe" -2.81\pt 2.81\pt 0.00\pt 8.44\pt + "dpedaltoe" "\\dpedaltoe" -2.81\pt 2.81\pt -8.44\pt 0.00\pt + "flageolet" "\\flageolet" -3.00\pt 3.00\pt -3.00\pt 3.00\pt + "trilelement" "\\trilelement" -3.75\pt 1.47\pt -2.81\pt 2.81\pt + "prall" "\\prall" -6.36\pt 6.36\pt -2.81\pt 2.81\pt + "mordent" "\\mordent" -6.36\pt 6.36\pt -2.81\pt 2.81\pt + "prallprall" "\\prallprall" -8.97\pt 8.97\pt -2.81\pt 2.81\pt + "prallmordent" "\\prallmordent" -8.97\pt 8.97\pt -2.81\pt 2.81\pt + "upprall" "\\upprall" -8.97\pt 8.97\pt -2.81\pt 2.81\pt + "downprall" "\\downprall" -8.97\pt 8.97\pt -2.81\pt 2.81\pt + } + "flags" = \table { + "u3" "\\eighthflag" -0.28\pt 6.94\pt -17.24\pt 0.28\pt + "u4" "\\sixteenthflag" -0.28\pt 6.94\pt -20.05\pt 0.28\pt + "u5" "\\thirtysecondflag" -0.28\pt 6.94\pt -24.27\pt 0.28\pt + "u6" "\\sixtyfourthflag" -0.28\pt 6.94\pt -29.90\pt 0.28\pt + "d3" "\\deighthflag" -0.28\pt 7.68\pt -0.28\pt 16.40\pt + "d4" "\\dsixteenthflag" -0.28\pt 7.68\pt -0.28\pt 17.24\pt + "d5" "\\dthirtysecondflag" -0.28\pt 7.68\pt -0.28\pt 22.02\pt + "d6" "\\dsixtyfourthflag" -0.28\pt 7.68\pt -0.28\pt 24.83\pt + } + "clefs" = \table { + "alto" "\\altoclef" -5.62\pt 20.94\pt -11.25\pt 11.25\pt + "alto_change" "\\caltoclef" -4.50\pt 16.75\pt -9.00\pt 9.00\pt + "bass" "\\bassclef" -2.81\pt 20.25\pt -14.06\pt 5.62\pt + "bass_change" "\\cbassclef" -2.25\pt 16.20\pt -11.25\pt 4.50\pt + "violin" "\\violinclef" -4.90\pt 21.02\pt -16.88\pt 28.12\pt + "violin_change" "\\cviolinclef" -4.26\pt 16.48\pt -13.50\pt 22.50\pt + } + % } % $name diff --git a/init/feta26.ly b/init/feta26.ly new file mode 100644 index 0000000000..c18ebdfc43 --- /dev/null +++ b/init/feta26.ly @@ -0,0 +1,178 @@ +% Creator: mf-to-table.py version 0.6 +% Automatically generated on +% Do not edit +% input from out/feta26.log +% name=\symboltables { + "rests" = \table { + "0" "\\wholerest" 0.00\pt 9.75\pt -4.06\pt 0.00\pt + "1" "\\halfrest" 0.00\pt 9.75\pt 0.00\pt 4.06\pt + "0o" "\\outsidewholerest" -4.06\pt 13.81\pt -4.06\pt 0.65\pt + "1o" "\\outsidehalfrest" -4.06\pt 13.81\pt -0.65\pt 4.06\pt + "2" "\\quartrest" 0.00\pt 7.02\pt 4.88\pt 23.40\pt + "3" "\\eighthrest" 0.00\pt 8.67\pt 6.50\pt 18.47\pt + "4" "\\sixteenthrest" 0.00\pt 10.08\pt 0.00\pt 18.47\pt + "5" "\\thirtysecondrest" 0.00\pt 11.38\pt 0.00\pt 24.97\pt + "6" "\\sixtyfourthrest" 0.00\pt 12.20\pt 0.00\pt 31.47\pt + "7" "\\hundredtwentyeighthrest" 0.00\pt 13.58\pt 0.00\pt 37.97\pt + } + "accidentals" = \table { + "1" "\\sharp" 0.00\pt 7.15\pt -9.75\pt 9.75\pt + "0" "\\natural" 0.00\pt 4.33\pt -9.75\pt 9.75\pt + "-1" "\\flat" -0.78\pt 5.20\pt -3.25\pt 13.00\pt + "-2" "\\flatflat" -0.78\pt 9.42\pt -3.25\pt 13.00\pt + "2" "\\sharpsharp" 0.00\pt 6.50\pt -3.25\pt 3.25\pt + } + "dots" = \table { + "dot" "\\dot" 0.00\pt 2.92\pt -1.46\pt 1.46\pt + "repeatcolon" "\\repeatcolon" 0.00\pt 2.92\pt -3.25\pt 3.25\pt + } + "balls" = \table { + "-1" "\\brevisball" 0.00\pt 13.00\pt -3.58\pt 3.58\pt + "-1l" "\\brevisledger" -3.25\pt 16.25\pt -0.65\pt 0.65\pt + "-2" "\\longaball" 0.00\pt 13.00\pt -3.58\pt 3.58\pt + "-2l" "\\longaledger" -3.25\pt 16.25\pt -0.65\pt 0.65\pt + "0" "\\wholeball" 0.00\pt 12.87\pt -3.58\pt 3.58\pt + "0l" "\\wholeledger" -3.22\pt 16.09\pt -0.65\pt 0.65\pt + "1" "\\halfball" 0.00\pt 8.95\pt -3.58\pt 3.58\pt + "1l" "\\halfledger" -2.24\pt 11.19\pt -0.65\pt 0.65\pt + "2" "\\quartball" 0.00\pt 8.59\pt -3.58\pt 3.58\pt + "2l" "\\quartledger" -2.15\pt 10.73\pt -0.65\pt 0.65\pt + } + "scripts" = \table { + "ufermata" "\\ufermata" -8.61\pt 8.61\pt -0.49\pt 9.43\pt + "dfermata" "\\dfermata" -8.61\pt 8.61\pt -9.43\pt 0.49\pt + "sforzato" "\\sforzatoaccent" -5.85\pt 5.85\pt -3.25\pt 3.25\pt + "staccato" "\\staccato" -0.98\pt 0.98\pt -0.98\pt 0.98\pt + "ustaccatissimo" "\\ustaccatissimo" -1.30\pt 1.30\pt -0.20\pt 6.50\pt + "dstaccatissimo" "\\dstaccatissimo" -1.30\pt 1.30\pt -6.50\pt 0.20\pt + "tenuto" "\\tenuto" -5.85\pt 5.85\pt -0.39\pt 0.39\pt + "umarcato" "\\umarcato" -3.25\pt 3.25\pt 0.00\pt 7.15\pt + "dmarcato" "\\dmarcato" -3.25\pt 3.25\pt -7.15\pt 0.00\pt + "open" "\\ouvert" -2.60\pt 2.60\pt -3.25\pt 3.25\pt + "stopped" "\\plusstop" -3.58\pt 3.58\pt -3.58\pt 3.58\pt + "upbow" "\\upbow" -4.23\pt 4.23\pt 0.00\pt 13.52\pt + "downbow" "\\downbow" -4.88\pt 4.88\pt 0.00\pt 8.67\pt + "reverseturn" "\\reverseturn" -7.11\pt 7.11\pt -3.44\pt 3.44\pt + "turn" "\\turn" -7.11\pt 7.11\pt -3.44\pt 3.44\pt + "trill" "\\trill" -6.50\pt 6.50\pt 0.00\pt 14.62\pt + "upedalheel" "\\upedalheel" -3.25\pt 3.25\pt -3.25\pt 4.33\pt + "dpedalheel" "\\dpedalheel" -3.25\pt 3.25\pt -4.33\pt 3.25\pt + "upedaltoe" "\\upedaltoe" -3.25\pt 3.25\pt 0.00\pt 9.75\pt + "dpedaltoe" "\\dpedaltoe" -3.25\pt 3.25\pt -9.75\pt 0.00\pt + "flageolet" "\\flageolet" -3.47\pt 3.47\pt -3.47\pt 3.47\pt + "trilelement" "\\trilelement" -4.33\pt 1.70\pt -3.25\pt 3.25\pt + "prall" "\\prall" -7.35\pt 7.35\pt -3.25\pt 3.25\pt + "mordent" "\\mordent" -7.35\pt 7.35\pt -3.25\pt 3.25\pt + "prallprall" "\\prallprall" -10.37\pt 10.37\pt -3.25\pt 3.25\pt + "prallmordent" "\\prallmordent" -10.37\pt 10.37\pt -3.25\pt 3.25\pt + "upprall" "\\upprall" -10.37\pt 10.37\pt -3.25\pt 3.25\pt + "downprall" "\\downprall" -10.37\pt 10.37\pt -3.25\pt 3.25\pt + } + "flags" = \table { + "u3" "\\eighthflag" -0.33\pt 8.02\pt -19.92\pt 0.33\pt + "u4" "\\sixteenthflag" -0.33\pt 8.02\pt -23.17\pt 0.33\pt + "u5" "\\thirtysecondflag" -0.33\pt 8.02\pt -28.05\pt 0.33\pt + "u6" "\\sixtyfourthflag" -0.33\pt 8.02\pt -34.55\pt 0.33\pt + "d3" "\\deighthflag" -0.33\pt 8.88\pt -0.33\pt 18.95\pt + "d4" "\\dsixteenthflag" -0.33\pt 8.88\pt -0.33\pt 19.92\pt + "d5" "\\dthirtysecondflag" -0.33\pt 8.88\pt -0.33\pt 25.45\pt + "d6" "\\dsixtyfourthflag" -0.33\pt 8.88\pt -0.33\pt 28.70\pt + } + "clefs" = \table { + "alto" "\\altoclef" -6.50\pt 24.19\pt -13.00\pt 13.00\pt + "alto_change" "\\caltoclef" -5.20\pt 19.36\pt -10.40\pt 10.40\pt + "bass" "\\bassclef" -3.25\pt 23.40\pt -16.25\pt 6.50\pt + "bass_change" "\\cbassclef" -2.60\pt 18.72\pt -13.00\pt 5.20\pt + "violin" "\\violinclef" -5.66\pt 24.29\pt -19.50\pt 32.50\pt + "violin_change" "\\cviolinclef" -4.92\pt 19.04\pt -15.60\pt 26.00\pt + } + % } % $name +% Creator: mf-to-table.py version 0.6 +% Automatically generated on +% Do not edit +% input from out/feta26.log +% name=\symboltables { + "rests" = \table { + "0" "\\wholerest" 0.00\pt 9.75\pt -4.06\pt 0.00\pt + "1" "\\halfrest" 0.00\pt 9.75\pt 0.00\pt 4.06\pt + "0o" "\\outsidewholerest" -4.06\pt 13.81\pt -4.06\pt 0.65\pt + "1o" "\\outsidehalfrest" -4.06\pt 13.81\pt -0.65\pt 4.06\pt + "2" "\\quartrest" 0.00\pt 7.02\pt 4.88\pt 23.40\pt + "3" "\\eighthrest" 0.00\pt 8.67\pt 6.50\pt 18.47\pt + "4" "\\sixteenthrest" 0.00\pt 10.08\pt 0.00\pt 18.47\pt + "5" "\\thirtysecondrest" 0.00\pt 11.38\pt 0.00\pt 24.97\pt + "6" "\\sixtyfourthrest" 0.00\pt 12.20\pt 0.00\pt 31.47\pt + "7" "\\hundredtwentyeighthrest" 0.00\pt 13.58\pt 0.00\pt 37.97\pt + } + "accidentals" = \table { + "1" "\\sharp" 0.00\pt 7.15\pt -9.75\pt 9.75\pt + "0" "\\natural" 0.00\pt 4.33\pt -9.75\pt 9.75\pt + "-1" "\\flat" -0.78\pt 5.20\pt -3.25\pt 13.00\pt + "-2" "\\flatflat" -0.78\pt 9.42\pt -3.25\pt 13.00\pt + "2" "\\sharpsharp" 0.00\pt 6.50\pt -3.25\pt 3.25\pt + } + "dots" = \table { + "dot" "\\dot" 0.00\pt 2.92\pt -1.46\pt 1.46\pt + "repeatcolon" "\\repeatcolon" 0.00\pt 2.92\pt -3.25\pt 3.25\pt + } + "balls" = \table { + "-1" "\\brevisball" 0.00\pt 13.00\pt -3.58\pt 3.58\pt + "-1l" "\\brevisledger" -3.25\pt 16.25\pt -0.65\pt 0.65\pt + "-2" "\\longaball" 0.00\pt 13.00\pt -3.58\pt 3.58\pt + "-2l" "\\longaledger" -3.25\pt 16.25\pt -0.65\pt 0.65\pt + "0" "\\wholeball" 0.00\pt 12.87\pt -3.58\pt 3.58\pt + "0l" "\\wholeledger" -3.22\pt 16.09\pt -0.65\pt 0.65\pt + "1" "\\halfball" 0.00\pt 8.95\pt -3.58\pt 3.58\pt + "1l" "\\halfledger" -2.24\pt 11.19\pt -0.65\pt 0.65\pt + "2" "\\quartball" 0.00\pt 8.59\pt -3.58\pt 3.58\pt + "2l" "\\quartledger" -2.15\pt 10.73\pt -0.65\pt 0.65\pt + } + "scripts" = \table { + "ufermata" "\\ufermata" -8.61\pt 8.61\pt -0.49\pt 9.43\pt + "dfermata" "\\dfermata" -8.61\pt 8.61\pt -9.43\pt 0.49\pt + "sforzato" "\\sforzatoaccent" -5.85\pt 5.85\pt -3.25\pt 3.25\pt + "staccato" "\\staccato" -0.98\pt 0.98\pt -0.98\pt 0.98\pt + "ustaccatissimo" "\\ustaccatissimo" -1.30\pt 1.30\pt -0.20\pt 6.50\pt + "dstaccatissimo" "\\dstaccatissimo" -1.30\pt 1.30\pt -6.50\pt 0.20\pt + "tenuto" "\\tenuto" -5.85\pt 5.85\pt -0.39\pt 0.39\pt + "umarcato" "\\umarcato" -3.25\pt 3.25\pt 0.00\pt 7.15\pt + "dmarcato" "\\dmarcato" -3.25\pt 3.25\pt -7.15\pt 0.00\pt + "open" "\\ouvert" -2.60\pt 2.60\pt -3.25\pt 3.25\pt + "stopped" "\\plusstop" -3.58\pt 3.58\pt -3.58\pt 3.58\pt + "upbow" "\\upbow" -4.23\pt 4.23\pt 0.00\pt 13.52\pt + "downbow" "\\downbow" -4.88\pt 4.88\pt 0.00\pt 8.67\pt + "reverseturn" "\\reverseturn" -7.11\pt 7.11\pt -3.44\pt 3.44\pt + "turn" "\\turn" -7.11\pt 7.11\pt -3.44\pt 3.44\pt + "trill" "\\trill" -6.50\pt 6.50\pt 0.00\pt 14.62\pt + "upedalheel" "\\upedalheel" -3.25\pt 3.25\pt -3.25\pt 4.33\pt + "dpedalheel" "\\dpedalheel" -3.25\pt 3.25\pt -4.33\pt 3.25\pt + "upedaltoe" "\\upedaltoe" -3.25\pt 3.25\pt 0.00\pt 9.75\pt + "dpedaltoe" "\\dpedaltoe" -3.25\pt 3.25\pt -9.75\pt 0.00\pt + "flageolet" "\\flageolet" -3.47\pt 3.47\pt -3.47\pt 3.47\pt + "trilelement" "\\trilelement" -4.33\pt 1.70\pt -3.25\pt 3.25\pt + "prall" "\\prall" -7.35\pt 7.35\pt -3.25\pt 3.25\pt + "mordent" "\\mordent" -7.35\pt 7.35\pt -3.25\pt 3.25\pt + "prallprall" "\\prallprall" -10.37\pt 10.37\pt -3.25\pt 3.25\pt + "prallmordent" "\\prallmordent" -10.37\pt 10.37\pt -3.25\pt 3.25\pt + "upprall" "\\upprall" -10.37\pt 10.37\pt -3.25\pt 3.25\pt + "downprall" "\\downprall" -10.37\pt 10.37\pt -3.25\pt 3.25\pt + } + "flags" = \table { + "u3" "\\eighthflag" -0.33\pt 8.02\pt -19.92\pt 0.33\pt + "u4" "\\sixteenthflag" -0.33\pt 8.02\pt -23.17\pt 0.33\pt + "u5" "\\thirtysecondflag" -0.33\pt 8.02\pt -28.05\pt 0.33\pt + "u6" "\\sixtyfourthflag" -0.33\pt 8.02\pt -34.55\pt 0.33\pt + "d3" "\\deighthflag" -0.33\pt 8.88\pt -0.33\pt 18.95\pt + "d4" "\\dsixteenthflag" -0.33\pt 8.88\pt -0.33\pt 19.92\pt + "d5" "\\dthirtysecondflag" -0.33\pt 8.88\pt -0.33\pt 25.45\pt + "d6" "\\dsixtyfourthflag" -0.33\pt 8.88\pt -0.33\pt 28.70\pt + } + "clefs" = \table { + "alto" "\\altoclef" -6.50\pt 24.19\pt -13.00\pt 13.00\pt + "alto_change" "\\caltoclef" -5.20\pt 19.36\pt -10.40\pt 10.40\pt + "bass" "\\bassclef" -3.25\pt 23.40\pt -16.25\pt 6.50\pt + "bass_change" "\\cbassclef" -2.60\pt 18.72\pt -13.00\pt 5.20\pt + "violin" "\\violinclef" -5.66\pt 24.29\pt -19.50\pt 32.50\pt + "violin_change" "\\cviolinclef" -4.92\pt 19.04\pt -15.60\pt 26.00\pt + } + % } % $name diff --git a/input/bugs/a.ly b/input/bugs/a.ly new file mode 100644 index 0000000000..2706aa128d --- /dev/null +++ b/input/bugs/a.ly @@ -0,0 +1,56 @@ +\header{ +enteredby = "jcn"; +copyright = "PD"; +TestedFeatures = "This file tests Feta embedded slurs" + "(Feta definitively is not an abbreviation of Font-En-TjA)"; +} + +\version "0.1.9"; + +shortlong = \melodic{ + \octave c'; + c4()c( c c | + c c c c | + c c c c | + \break; + c c c )c | +} + +sl = \melodic{ + \octave c''; +% e4()e( a e | + e4 e( a e | + e e e e | + e e e a | + \break; + e e g )e | +} + +broken = \melodic{ + \octave c''; + c c c c() + c c c c( + c )c c c( + c c )c c( + )a' a' a' a'() + a' a' a' a'() + c( c c )c + c( c c )'f + 'f( c c )c + 'f( c c )'f +} + +\score{ + \melodic{ +% \shortlong + \sl +% \broken + } + \paper{ + indent = 0.0\pt; + %for broken! +% linewidth= 30.\mm; + castingalgorithm = \Wordwrap; + } +} + diff --git a/input/bugs/multi-slope.ly b/input/bugs/multi-slope.ly new file mode 100644 index 0000000000..24677ef3d0 --- /dev/null +++ b/input/bugs/multi-slope.ly @@ -0,0 +1,6 @@ +\score{ + \melodic{ + \octave c'; + [c8 c16 c16] + } +} diff --git a/input/bugs/slur-broken.ly b/input/bugs/slur-broken.ly new file mode 100644 index 0000000000..dfdf22adc2 --- /dev/null +++ b/input/bugs/slur-broken.ly @@ -0,0 +1,20 @@ +shortlong = \melodic{ + c4()c( c c | + c c c c | + c c c c | + \break; + c c c )c | + c c c c | + c c c c | + c c c c | + c c c c | +} + +\score{ + \shortlong + \paper{ + indent = 0.0\pt; + % linewidth= 30.\mm; + castingalgorithm = \Wordwrap; + } +} diff --git a/input/dummy.tex b/input/dummy.tex deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/input/part.ly b/input/part.ly index 39737f22ff..b2d6ad9bc2 100644 --- a/input/part.ly +++ b/input/part.ly @@ -1,11 +1,11 @@ part = \melodic{ \octave c; - c c c c + c-1 c c c r1*3 - c4 c c c - c c c c - c c c c - c c c c + c4-5 c c c + c-6 c c c + c-7 c c c + c-8 c c c } a4 = \paper{ diff --git a/input/test/broken.ly b/input/test/broken.ly new file mode 100644 index 0000000000..23333057a2 --- /dev/null +++ b/input/test/broken.ly @@ -0,0 +1,44 @@ +\header{ +enteredby = "jcn"; +copyright = "PD"; +TestedFeatures = "This file tests Feta embedded slurs" + "(Feta definitively is not an abbreviation of Font-En-TjA)"; +} + +\version "0.1.9"; + +shortlong = \melodic{ + c4()c( c c | + c c c c | + c c c c | + \break; + c c c )c | +} + +broken = \melodic{ + \octave c''; + c c c c() + c c c c( + c )c c c( + c c )c c( + )a' a' a' a'() + a' a' a' a'() + c( c c )c + c( c c )'f + 'f( c c )c + 'f( c c )'f +} + +\score{ + \melodic{ +% \shortlong + \broken + } + \paper{ + indent = 0.0\pt; + %for broken! + linewidth= 30.\mm; + castingalgorithm = \Wordwrap; + } +} + diff --git a/input/test/sleur.ly b/input/test/sleur.ly index 9ea0df5912..116aa60db0 100644 --- a/input/test/sleur.ly +++ b/input/test/sleur.ly @@ -11,6 +11,7 @@ shortlong = \melodic{ c4()c( c c | c c c c | c c c c | + \break; c c c )c | } @@ -133,6 +134,7 @@ blend = \melodic{ \octave c'; e( c'' c'' )e \stemup + f'( c'' c'' )f' e( c'' c'' )e \stemdown f'( \stemboth 'a 'a \stemdown )f' @@ -174,7 +176,7 @@ clipping = \melodic{ \score{ \melodic{ % use blend for fast check - %\blend + \blend % { \shortlong \dirs @@ -185,16 +187,16 @@ clipping = \melodic{ \tiltup \tiltdown \bug - \clipping % } + \clipping % use broken with small linewidth %\broken } \paper{ indent = 0.0\pt; %for broken! - %linewidth= 40.\mm; - %castingalgorithm = \Wordwrap; + % linewidth= 30.\mm; + castingalgorithm = \Wordwrap; } } diff --git a/lily/VERSION b/lily/VERSION index bd76086098..e825e8955d 100644 --- a/lily/VERSION +++ b/lily/VERSION @@ -1,4 +1,5 @@ -MAJOR_VERSION = 0 -MINOR_VERSION = 1 -PATCH_LEVEL = 58 -MY_PATCH_LEVEL = +MAJOR_VERSION=0 +MINOR_VERSION=1 +PATCH_LEVEL=60 +MY_PATCH_LEVEL= + diff --git a/lily/bar-number-grav.cc b/lily/bar-number-grav.cc index 03e5fece81..9a24c2739b 100644 --- a/lily/bar-number-grav.cc +++ b/lily/bar-number-grav.cc @@ -34,10 +34,13 @@ Bar_number_engraver::acknowledge_element (Score_elem_info i) script_p_ = new Script; Text_def *td_p =new Text_def; td_p->text_str_ = time->bars_i_; + td_p->align_i_ = LEFT; script_p_->specs_l_ = td_p; script_p_->breakable_b_ = true; script_p_->dir_ = UP; +// script_p_->y_ += 2; + script_p_->y_ = 8; announce_element (Score_elem_info (script_p_, &dummy)); } diff --git a/lily/bezier.cc b/lily/bezier.cc index bb360581e2..5fea339288 100644 --- a/lily/bezier.cc +++ b/lily/bezier.cc @@ -15,9 +15,9 @@ #include "paper-def.hh" #include "debug.hh" #include "main.hh" -#define SLUR_DOUT if (check_debug && !monitor->silent_b ("Slur")) cout +#define BEZIER_BOW_DOUT if (check_debug && !monitor->silent_b ("Bezier_bow")) cout #else -#define SLUR_DOUT cerr +#define BEZIER_BOW_DOUT cerr #endif void @@ -101,7 +101,7 @@ Bezier::y (Real x) Offset z1 = curve_[i-1]; Offset z2 = curve_[i]; Real multiplier = (x - z2.x ()) / (z1.x () - z2.x ()); - Real y = z1.y () * multiplier + (1.0 - multiplier) * z2.y(); + Real y = z1.y () * multiplier + (1.0 - multiplier) *z2.y(); return y; } @@ -243,8 +243,6 @@ Bezier_bow::calc () bool Bezier_bow::calc_clipping () { - if (!experimental_features_global_b) - return false; #ifndef STANDALONE Real staffsize_f = paper_l_->get_var ("barsize"); #else @@ -288,13 +286,23 @@ Bezier_bow::calc_clipping () begin_dy = c * begin_alpha / max_alpha * begin_h; if (end_alpha >= max_alpha) end_dy = c * end_alpha / max_alpha * end_h; - encompass_[0].y () += begin_dy; - encompass_[encompass_.size () - 1].y () += end_dy; - Offset delta = encompass_[encompass_.size () - 1] - encompass_[0]; - alpha_ = delta.arg (); - alpha_ *= dir_; -// again = false; + Real dy = end_dy >? begin_dy; + + if (!experimental_features_global_b) + { + encompass_[0].y () += dy; + encompass_[encompass_.size () - 1].y () += dy; + } + else + { + encompass_[0].y () += begin_dy; + encompass_[encompass_.size () - 1].y () += end_dy; + + Offset delta = encompass_[encompass_.size () - 1] - encompass_[0]; + alpha_ = delta.arg (); + alpha_ *= dir_; + } } origin_ = encompass_[0]; @@ -309,8 +317,12 @@ Bezier_bow::calc_clipping () void Bezier_bow::calc_controls () { + // try clipping twice for (int i = 0; i < 3; i++) { + if (i && !calc_clipping ()) + return; + calc_default (0); calc_bezier (); @@ -320,13 +332,10 @@ Bezier_bow::calc_controls () return; } calc_tangent_controls (); - blow_fit (); + blow_fit (); // ugh blow_fit (); - - if (!calc_clipping ()) - return; } } @@ -354,7 +363,7 @@ void Bezier_bow::calc_tangent_controls () { Offset ijk_p (control_[3].x () / 2, control_[1].y ()); - SLUR_DOUT << "ijk: " << ijk_p.x () << ", " << ijk_p.y () << endl; + BEZIER_BOW_DOUT << "ijk: " << ijk_p.x () << ", " << ijk_p.y () << endl; Real default_rc = ijk_p.y () / ijk_p.x (); @@ -390,8 +399,8 @@ Bezier_bow::calc_tangent_controls () end_p = ijk_p; end_rc = default_rc; } - SLUR_DOUT << "begin " << begin_p.x () << ", " << begin_p.y () << endl; - SLUR_DOUT << "end " << end_p.x () << ", " << end_p.y () << endl; + BEZIER_BOW_DOUT << "begin " << begin_p.x () << ", " << begin_p.y () << endl; + BEZIER_BOW_DOUT << "end " << end_p.x () << ", " << end_p.y () << endl; Real height =control_[1].y (); for (int i = 0; i < encompass_.size (); i++ ) @@ -430,17 +439,17 @@ Bezier_bow::calc_tangent_controls () Real c3 = begin_p.y () > end_p.y () ? begin_p.y () - rc3 * begin_p.x () : end_p.y () - rc3 * end_p.x (); - SLUR_DOUT << "y1 = " << rc1 << " x + 0" << endl; - SLUR_DOUT << "y2 = " << rc2 << " x + " << c2 << endl; - SLUR_DOUT << "y3 = " << rc3 << " x + " << c3 << endl; + BEZIER_BOW_DOUT << "y1 = " << rc1 << " x + 0" << endl; + BEZIER_BOW_DOUT << "y2 = " << rc2 << " x + " << c2 << endl; + BEZIER_BOW_DOUT << "y3 = " << rc3 << " x + " << c3 << endl; control_[1].x () = c3 / (rc1 - rc3); control_[1].y () = rc1 * control_[1].x (); control_[2].x () = (c3 - c2) / (rc2 - rc3); - SLUR_DOUT << "c2.x () = " << control_[2].x () << endl; - SLUR_DOUT << "(c3 - c2) = " << (c3 - c2) << endl; - SLUR_DOUT << "(rc2 - rc3) = " << (rc2 - rc3) << endl; + BEZIER_BOW_DOUT << "c2.x () = " << control_[2].x () << endl; + BEZIER_BOW_DOUT << "(c3 - c2) = " << (c3 - c2) << endl; + BEZIER_BOW_DOUT << "(rc2 - rc3) = " << (rc2 - rc3) << endl; control_[2].y () = rc2 * control_[2].x () + c2; - SLUR_DOUT << "c2.y ()" << control_[2].y () << endl; + BEZIER_BOW_DOUT << "c2.y ()" << control_[2].y () << endl; calc_return (begin_alpha, end_alpha); } diff --git a/lily/bow.cc b/lily/bow.cc index 30e82e05e2..48477b9837 100644 --- a/lily/bow.cc +++ b/lily/bow.cc @@ -8,10 +8,12 @@ */ #include "bow.hh" +#include "debug.hh" #include "paper-def.hh" #include "molecule.hh" #include "lookup.hh" #include "bezier.hh" +#include "main.hh" IMPLEMENT_IS_TYPE_B1(Bow,Directional_spanner); @@ -28,8 +30,21 @@ Bow::brew_molecule_p () const Array c = get_controls (); Atom a = paper ()->lookup_l ()->slur (c); -// a.translate (Offset (dx_f_drul_[LEFT], dy_f_drul_[LEFT])); - a.translate (Offset (dx_f_drul_[LEFT], dy_f_drul_[LEFT] - c[0].y ())); + Real dy = c[3].y () - c[0].y (); + if (check_debug && !monitor->silent_b ("Bow")) + { + static int i = 1; + cout << "******" << i++ << "******" << endl; + // gcc 2.7.2: ices +// cout << "c0.y: " << c[0].y << endl; + cout << "c0.y: " << c[0].y () << endl; + cout << "c3.y: " << c[3].y () << endl; + cout << "dy: " << dy << endl; + cout << "dy_f_l: " << dy_f_drul_[LEFT] << endl; + cout << "dy_f_r: " << dy_f_drul_[RIGHT] << endl; + cout << "dy_f: " << dy_f_drul_[RIGHT] - dy_f_drul_[LEFT] << endl; + } + a.translate (Offset (dx_f_drul_[LEFT], dy_f_drul_[LEFT])); mol_p->add (a); @@ -74,11 +89,25 @@ Bow::get_encompass_offset_arr () const { Real dx = width (). length (); dx += (dx_f_drul_[RIGHT] - dx_f_drul_[LEFT]); + Real left_x = 0; + Real interline = paper ()->interline_f (); + if (dx < 2.0 * interline) + { + left_x = - 3.0 * interline; + dx = 2.0 * interline; + } Real dy = dy_f_drul_[RIGHT] - dy_f_drul_[LEFT]; +#define RESIZE_ICE +#ifndef RESIZE_ICE Array notes; - notes.push (Offset (0,0)); - notes.push (Offset (dx, dy)); + notes.push (Offset (left_x, 0)); + notes.push (Offset (left_x + dx, dy)); +#else + Array notes (2); + notes[0] = Offset (left_x, 0); + notes[1] = Offset (left_x + dx, dy); +#endif return notes; } diff --git a/lily/multi-measure-rest-engraver.cc b/lily/multi-measure-rest-engraver.cc index d7e78c400e..2c93ec04c6 100644 --- a/lily/multi-measure-rest-engraver.cc +++ b/lily/multi-measure-rest-engraver.cc @@ -78,7 +78,7 @@ Multi_measure_rest_engraver::do_pre_move_processing () if (part_b_) return; - if (last_mom_ <= now_moment () + Moment (1)) + if (last_mom_ <= now_moment ()) multi_measure_req_l_ = 0; } diff --git a/lily/slur.cc b/lily/slur.cc index 69b49cde0a..4df6464f91 100644 --- a/lily/slur.cc +++ b/lily/slur.cc @@ -25,8 +25,8 @@ #include "debug.hh" #include "boxes.hh" #include "bezier.hh" +// #include "main.hh" -//IMPLEMENT_IS_TYPE_B1(Slur,Spanner); IMPLEMENT_IS_TYPE_B1(Slur,Bow); Slur::Slur () @@ -170,24 +170,51 @@ Slur::get_encompass_offset_arr () const Real dx = width ().length (); dx += (dx_f_drul_[RIGHT] - dx_f_drul_[LEFT]); dx = dx ? 2 * interline; + dx = dx >? 2.0 * interline; Real dy = (dy_f_drul_[RIGHT] - dy_f_drul_[LEFT]); if (abs (dy) > 1000) dy = sign (dy) * 1000; + Real start_x = 0; + Real start_y = left_y - dy_f_drul_[LEFT]; int first = 1; int last = encompass_arr_.size () - 1; + + // broken slur first part if (encompass_arr_[0] != spanned_drul_[LEFT]) { first = 0; left_x = spanned_drul_[LEFT]->width ().length (); left_x -= 2 * notewidth; - left_y = encompass_arr_[last]->stem_l_->height ()[dir_]; + // urg + start_x = left_x - 2 * notewidth; + + // urg + if (encompass_arr_.size () > 1) + dx += notewidth; + + if (dx < 2.0 * interline) + { + left_x -= 2.0 * interline - dx; + dx = 2.0 * interline; + start_x = left_x; + } + + if (dir_ == UP) + left_y = left_y >? dy_f_drul_[LEFT]; + else + left_y = left_y notes; - notes.push (Offset (0,0)); + notes.push (Offset (start_x, start_y)); #else int n = last - first + 2; Array notes (n); - notes[0] = Offset (0,0); + notes[0] = Offset (start_x, start_y); #endif for (int i = first; i < last; i++) { @@ -211,7 +238,14 @@ Slur::get_encompass_offset_arr () const Real x = stem->hpos_f (); if (stem->dir_ != dir_) - x += 0.5 * notewidth; + { + x += 0.5 * notewidth; + // ugh + if (dir_ == DOWN) + x -= 0.5 * notewidth; + else + x += 0.5 * notewidth; + } else if (stem->dir_ == UP) x += 1.0 * notewidth; @@ -224,6 +258,7 @@ Slur::get_encompass_offset_arr () const */ y += 2.5 * internote * dir_; + // ugh if (dir_ == DOWN) y += 1.5 * internote * dir_; @@ -232,11 +267,11 @@ Slur::get_encompass_offset_arr () const #ifndef RESIZE_ICE notes.push (Offset (x, y)); } - notes.push (Offset (dx, dy)); + notes.push (Offset (start_x + dx, start_y + dy)); #else notes[i - first + 1] = Offset (x, y); } - notes[n - 1] = Offset (dx, dy); + notes[n - 1] = Offset (start_x + dx, start_y + dy); #endif return notes; diff --git a/make/Docrules.make b/make/Docrules.make index e66b3c8212..e718c7779a 100644 --- a/make/Docrules.make +++ b/make/Docrules.make @@ -15,7 +15,7 @@ $(outdir)/%.dvi: $(outdir)/%.mudtex mv $(notdir $@) $(outdir) $(outdir)/%.mudtex: %.doc - $(depth)/bin/out/mudela-book --noindex --outdir=$(outdir)/ --outname=$(notdir $@) $< + $(depth)/bin/out/mudela-book --outdir=$(outdir)/ --outname=$(notdir $@) $< $(outdir)/%.txt: $(outdir)/%.1 troff -man -Tascii $< | grotty -b -u -o > $@ diff --git a/make/Files.make b/make/Files.make index 87baac4272..31cdf0e205 100644 --- a/make/Files.make +++ b/make/Files.make @@ -21,6 +21,8 @@ EXTRA_SOURCE_FILES = $(wildcard *.yy *.ll) # PODFILES = $(wildcard *.pod) +OUTPODFILES = $(addprefix $(outdir)/,$(PODFILES)) + CCFILES = $(wildcard *.cc) MAKEFILES = $(wildcard *.make) diff --git a/make/Targets.make b/make/Targets.make index c696163f14..37135f0f46 100644 --- a/make/Targets.make +++ b/make/Targets.make @@ -33,6 +33,7 @@ exe: $(EXECUTABLE) # $(LIBRARY): $(configheader) $(OFILES) $(AR_COMMAND) $(OFILES) + $(AR) ts $@ #silly irix $(RANLIB_COMMAND) $(SHAREDLIBRARY): $(configheader) $(OFILES) $(MODULE_LIBDEPS) @@ -230,6 +231,10 @@ check-mf-deps: $(configheader): $(depth)/$(configuration).hh cp $< $@ +WWW: local-WWW + $(LOOP) + +local-WWW: ifneq ($(DEPFILES),) diff --git a/make/Toplevel.make.in b/make/Toplevel.make.in index f376ebc313..d3dfff3081 100644 --- a/make/Toplevel.make.in +++ b/make/Toplevel.make.in @@ -64,3 +64,14 @@ Makefile: make/Toplevel.make.in cat $< >> $@ chmod -w $@ + +website: + + +examples: + $(MAKE) CONFIGSUFFIX='www' -C input WWW + $(MAKE) CONFIGSUFFIX='www' -C mutopia WWW + tar cfz $(outdir)/examples.tar.gz `find input mutopia -type d -name 'out-www' -print` + + + diff --git a/make/Variables.make b/make/Variables.make index 60a2205ab9..6d6f7a5bdd 100644 --- a/make/Variables.make +++ b/make/Variables.make @@ -152,8 +152,8 @@ CFLAGS = $(ICFLAGS) $(DEFINES) $(INCLUDES) $(USER_CFLAGS) $(EXTRA_CFLAGS) # huh, but still, no warnings even provoced with linux's gcc 2.7.2.1? # -pipe makes it go faster, but is not supported on all platforms. -# EXTRA_CXXFLAGS= -fno-rtti -fno-exceptions -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wconversion -EXTRA_CXXFLAGS= -Wall -Winline -W -Wmissing-prototypes -Wmissing-declarations -Wconversion +# EXTRA_CXXFLAGS= -Wall -Winline -W -Wmissing-prototypes -Wmissing-declarations -Wconversion +EXTRA_CXXFLAGS= -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wconversion CXXFLAGS = $(CFLAGS) $(USER_CXXFLAGS) $(EXTRA_CXXFLAGS) $(MODULE_CXXFLAGS) INCLUDES = -Iinclude -I$(outdir) -I$(include-lib) -I$(libout) -I$(include-flower) -I$(flowerout) diff --git a/make/WWW.make b/make/WWW.make index 58379aed6e..bb47c54f87 100644 --- a/make/WWW.make +++ b/make/WWW.make @@ -5,7 +5,9 @@ ps_examples=$(addprefix $(outdir)/, $(addsuffix .ps.gz, $(examples))) gif_examples=$(addprefix $(outdir)/, $(addsuffix .gif, $(examples))) +html_subdirs=$(addprefix --subdirs ,$(SUBDIRS)) -WWW: $(ly_examples) $(ps_examples) $(gif_examples) - (cd $(outdir); $(PYTHON) ../$(depth)/bin/mutopia-index.py $(examples)) + +local-WWW: $(ly_examples) $(ps_examples) $(gif_examples) + (cd $(outdir); $(PYTHON) ../$(depth)/bin/mutopia-index.py --prefix=../ --suffix=/$(outdir) $(html_subdirs) $(examples)) diff --git a/make/out/lelievijver.lsm b/make/out/lelievijver.lsm index 5069c41b95..a62c481739 100644 --- a/make/out/lelievijver.lsm +++ b/make/out/lelievijver.lsm @@ -1,7 +1,7 @@ Begin3 Titel: LilyPond -Versie: 0.1.59 -Inschrijf datum: 27APR98 +Versie: 0.1.60 +Inschrijf datum: 29APR98 Beschrijving: LilyPond is de muziek typesetter van het GNU Project. Het programma genereert muziek in zichtbare of hoorbare vorm uit uit een muzikale definitie file: @@ -16,8 +16,8 @@ Auteur: hanwen@stack.nl (Han-Wen Nienhuys) jan@digicash.com (Jan Nieuwenhuizen) Onderhouden door: hanwen@stack.nl (Han-Wen Nienhuys) Voornaamste plek: sunsite.unc.edu /pub/Linux/apps - 395k lilypond-0.1.59.tar.gz + 395k lilypond-0.1.60.tar.gz Oorspronkelijke plek: pcnov095.win.tue.nl /pub/lilypond/ - 395k lilypond-0.1.59.tar.gz + 395k lilypond-0.1.60.tar.gz Copi"eer politie: GPL End diff --git a/make/out/lilypond.lsm b/make/out/lilypond.lsm index f8ba14b405..af277bebce 100644 --- a/make/out/lilypond.lsm +++ b/make/out/lilypond.lsm @@ -1,7 +1,7 @@ Begin3 Title: LilyPond -Version: 0.1.59 -Entered-date: 27APR98 +Version: 0.1.60 +Entered-date: 29APR98 Description: LilyPond is the GNU Project music typesetter. The program generates visual or auditive output from a music definition file: it can typeset formatted sheet music @@ -15,8 +15,8 @@ Author: hanwen@cs.ruu.nl (Han-Wen Nienhuys) jan@digicash.com (Jan Nieuwenhuizen) Maintained-by: hanwen@stack.nl (Han-Wen Nienhuys) Primary-site: sunsite.unc.edu /pub/Linux/apps/sound/convert - 570k lilypond-0.1.59.tar.gz + 570k lilypond-0.1.60.tar.gz Original-site: pcnov095.win.tue.nl /pub/lilypond/development/ - 570k lilypond-0.1.59.tar.gz + 570k lilypond-0.1.60.tar.gz Copying-policy: GPL End diff --git a/make/out/lilypond.spec b/make/out/lilypond.spec index 46cb95948a..6a07511883 100644 --- a/make/out/lilypond.spec +++ b/make/out/lilypond.spec @@ -1,9 +1,9 @@ Name: lilypond -Version: 0.1.59 +Version: 0.1.60 Release: 1 Copyright: GPL Group: Applications/Publishing -Source0: pcnov095.win.tue.nl:/pub/lilypond/development/lilypond-0.1.59.tar.gz +Source0: pcnov095.win.tue.nl:/pub/lilypond/development/lilypond-0.1.60.tar.gz Summary: A program for typesetting music. URL: http://www.cs.ruu.nl/~hanwen/lilypond Packager: Han-Wen Nienhuys @@ -31,8 +31,8 @@ strip lily/out/lilypond mi2mu/out/mi2mu make -C Documentation gifs make prefix="$RPM_BUILD_ROOT/usr" install %files -%doc Documentation/out/AUTHORS.txt Documentation/out/CodingStyle.txt Documentation/out/INSTALL.txt Documentation/out/MANIFESTO.txt Documentation/out/PATCHES.txt Documentation/out/faq.txt Documentation/out/gnu-music.txt Documentation/out/index.txt Documentation/out/internals.txt Documentation/out/language.txt Documentation/out/links.txt Documentation/out/literature.txt Documentation/out/mutopia.txt Documentation/out/other-packages.txt BUGS TODO NEWS DEDICATION ANNOUNCE README -%doc input/cadenza.ly input/coriolan-alto.ly input/dummy.tex input/keys.ly input/kortjakje.ly input/multi.ly input/part.ly input/pedal.ly input/praeludium-fuga-E.ly input/rhythm.ly input/scales.ly input/scripts.ly input/tril.ly input/twinkle-pop.ly input/twinkle.ly Documentation/mudela.doc +%doc Documentation/out/AUTHORS.txt Documentation/out/CodingStyle.txt Documentation/out/INSTALL.txt Documentation/out/MANIFESTO.txt Documentation/out/PATCHES.txt Documentation/out/faq.txt Documentation/out/gnu-music.txt Documentation/out/index.txt Documentation/out/internals.txt Documentation/out/language.txt Documentation/out/links.txt Documentation/out/literature.txt Documentation/out/mi2mu.txt Documentation/out/mutopia.txt Documentation/out/other-packages.txt BUGS TODO NEWS DEDICATION ANNOUNCE README +%doc input/cadenza.ly input/coriolan-alto.ly input/keys.ly input/kortjakje.ly input/multi.ly input/part.ly input/pedal.ly input/praeludium-fuga-E.ly input/rhythm.ly input/scales.ly input/scripts.ly input/tril.ly input/twinkle-pop.ly input/twinkle.ly Documentation/mudela.doc %doc Documentation/out/lelie_logo.gif /usr/bin/convert-mudela /usr/bin/mudela-book diff --git a/mutopia/Coriolan/Makefile b/mutopia/Coriolan/Makefile index 40ce58e198..1b13f7fcf5 100644 --- a/mutopia/Coriolan/Makefile +++ b/mutopia/Coriolan/Makefile @@ -7,3 +7,6 @@ depth = ../.. # generic stuff/Makefile # include ./$(depth)/make/Mutopia.make + +examples=coriolan oboi-part +include $(depth)/make/WWW.make diff --git a/mutopia/Coriolan/clarinetti-part.ly b/mutopia/Coriolan/clarinetti-part.ly index dff3a502af..98b5765212 100644 --- a/mutopia/Coriolan/clarinetti-part.ly +++ b/mutopia/Coriolan/clarinetti-part.ly @@ -13,6 +13,7 @@ copyright = "public domain"; \include "clarinetti.ly" \score{ +% \property Score.part = 1 \$clarinetti_staff \paper{} } diff --git a/mutopia/Coriolan/clarinetto-1.ly b/mutopia/Coriolan/clarinetto-1.ly index 29b6bce0f4..635b57a802 100644 --- a/mutopia/Coriolan/clarinetto-1.ly +++ b/mutopia/Coriolan/clarinetto-1.ly @@ -13,11 +13,11 @@ copyright = "public domain"; clarinetto1 = \melodic{ \octave c'; - r1 | r1 | c'4-.\ff r r2 | r1 | - r1 | r1 | d'4-. r r2 | r1 | - r1 | r1 | es'4-. r r2 | r1 | + r1*2 | c'4-.\ff r r2 | r1*3 | + d'4-. r r2 | r1*3 | + es'4-. r r2 | r1 | es'4-. r r2 | d'4-. r r2 | - r1 | r1 | r1 | r1 | + r1*4 | as2\p_"\ \ \ cresc." ( g | )fis2. g4-.\f | } diff --git a/mutopia/Coriolan/clarinetto-2.ly b/mutopia/Coriolan/clarinetto-2.ly index f69468e831..aa1fd84857 100644 --- a/mutopia/Coriolan/clarinetto-2.ly +++ b/mutopia/Coriolan/clarinetto-2.ly @@ -17,11 +17,11 @@ clarinetto2 = \melodic{ % lilypond: ../../current/lily/dynamic-grav.cc:58: void Dynamic_engraver::do_process_requests(): Assertion `!dynamic_p_' failed. % Aborted (core dumped) % r1 | r1 | as4-.\ff r r2 | r1 | - r1 | r1 | as4-. r r2 | r1 | - r1 | r1 | b4-. r r2 | r1 | - r1 | r1 | c'4-. r r2 | r1 | + r1*2 | as4-. r r2 | r1*3 | + b4-. r r2 | r1*3 | + c'4-. r r2 | r1 | c'4-. r r2 | b4-. r r2 | - r1 | r1 | r1 | r1 | - r1 | r2 r4 'b4-. | + r1*5 | + r2 r4 'b4-. | } diff --git a/mutopia/Coriolan/corni-part.ly b/mutopia/Coriolan/corni-part.ly index 088608e52a..ae4c5e0e05 100644 --- a/mutopia/Coriolan/corni-part.ly +++ b/mutopia/Coriolan/corni-part.ly @@ -15,6 +15,7 @@ copyright = "public domain"; \include "corni.ly" \score{ +% \property Score.part = 1 \$corni_staff \paper{} } diff --git a/mutopia/Coriolan/corno-1.ly b/mutopia/Coriolan/corno-1.ly index 5193c002d9..0869da4d2d 100644 --- a/mutopia/Coriolan/corno-1.ly +++ b/mutopia/Coriolan/corno-1.ly @@ -13,11 +13,11 @@ copyright = "public domain"; corno1 = \melodic{ \octave c'; - r1 | r1 | as'4-.\ff r r2 | r1 | - r1 | r1 | as'4-. r r2 | r1 | - r1 | r1 | es'4-. r r2 | r1 | + r1*2 | as'4-.\ff r r2 | r1*3 | + as'4-. r r2 | r1*3 | + es'4-. r r2 | r1 | g'4-. r r2 | g'4-. r r2 | - r1 | r1 | r1 | r1 | - r1 | r2 r4 g'4-.\f | + r1*5 | + r2 r4 g'4-.\f | } diff --git a/mutopia/Coriolan/corno-2.ly b/mutopia/Coriolan/corno-2.ly index cbebbf49d5..5eb5c4895b 100644 --- a/mutopia/Coriolan/corno-2.ly +++ b/mutopia/Coriolan/corno-2.ly @@ -15,11 +15,11 @@ corno2 = \melodic{ \octave c'; % koor: corno-part.ly % r1 | r1 | f'4-.\ff r r2 | r1 | - r1 | r1 | f'4-. r r2 | r1 | - r1 | r1 | f'4-. r r2 | r1 | - r1 | r1 | es'4-. r r2 | r1 | + r1*2 | f'4-. r r2 | r1*3 | + f'4-. r r2 | r1*3 | + es'4-. r r2 | r1 | g4-. r r2 | g4-. r r2 | - r1 | r1 | r1 | r1 | - r1 | r2 r4 g4-. | + r1*5 | + r2 r4 g4-. | } diff --git a/mutopia/Coriolan/fagotti-part.ly b/mutopia/Coriolan/fagotti-part.ly index b9b19b0ba0..ad23c5c12d 100644 --- a/mutopia/Coriolan/fagotti-part.ly +++ b/mutopia/Coriolan/fagotti-part.ly @@ -15,6 +15,7 @@ copyright = "public domain"; \include "fagotti.ly" \score{ +% \property Score.part = 1 \$fagotti_staff \paper{} } diff --git a/mutopia/Coriolan/fagotto-1.ly b/mutopia/Coriolan/fagotto-1.ly index 8cf7e432b1..6718dd4c8b 100644 --- a/mutopia/Coriolan/fagotto-1.ly +++ b/mutopia/Coriolan/fagotto-1.ly @@ -13,11 +13,11 @@ copyright = "public domain"; fagotto1 = \melodic{ \octave c; - r1 | r1 | as4-.\ff r r2 | r1 | - r1 | r1 | as4-. r r2 | r1 | - r1 | r1 | a4-. r r2 | r1 | + r1*2 | as4-.\ff r r2 | r1*3 | + as4-. r r2 | r1*3 | + a4-. r r2 | r1 | c'4-. r r2 | b4-. r r2 | - r1 | r1 | r1 | r1 | - r1 | r2 r4 g4-.\f | + r1*5 | + r2 r4 g4-.\f | } diff --git a/mutopia/Coriolan/fagotto-2.ly b/mutopia/Coriolan/fagotto-2.ly index 946ce94545..2889c688a8 100644 --- a/mutopia/Coriolan/fagotto-2.ly +++ b/mutopia/Coriolan/fagotto-2.ly @@ -15,11 +15,11 @@ fagotto2 = \melodic{ \octave c; % koor % r1 | r1 | f4-.\ff r r2 | r1 | - r1 | r1 | f4-. r r2 | r1 | - r1 | r1 | f4-. r r2 | r1 | - r1 | r1 | fis4-. r r2 | r1 | + r1*2 | f4-. r r2 | r1*3 | + f4-. r r2 | r1*3 | + fis4-. r r2 | r1 | g4-. r r2 | g4-. r r2 | - r1 | r1 | r1 | r1 | - r1 | r2 r4 'g4-. | + r1*5 | + r2 r4 'g4-. | } diff --git a/mutopia/Coriolan/flauti-part.ly b/mutopia/Coriolan/flauti-part.ly index 5e9dfb00e8..13e4510f34 100644 --- a/mutopia/Coriolan/flauti-part.ly +++ b/mutopia/Coriolan/flauti-part.ly @@ -15,6 +15,7 @@ copyright = "public domain"; \include "flauti.ly" \score{ +% \property Score.part = 1 \$flauti_staff \paper{} } diff --git a/mutopia/Coriolan/flauto-1.ly b/mutopia/Coriolan/flauto-1.ly index bb62b1bb1b..5475ffe1ee 100644 --- a/mutopia/Coriolan/flauto-1.ly +++ b/mutopia/Coriolan/flauto-1.ly @@ -13,11 +13,11 @@ copyright = "public domain"; flauto1 = \melodic{ \octave c''; - r1 | r1 | c'4-.\ff r r2 | r1 | - r1 | r1 | d'4-. r r2 | r1 | - r1 | r1 | es'4-. r r2 | r1 | + r1*2 | c'4-.\ff r r2 | r1*3 | + d'4-. r r2 | r1*3 | + es'4-. r r2 | r1 | g'4-. r r2 | b4-. r r2 | - r1 | r1 | r1 | r1 | + r1*4 | r2 es'\p_"\ \ \ cresc." ( | )dis'2. es'4-.\f | } diff --git a/mutopia/Coriolan/flauto-2.ly b/mutopia/Coriolan/flauto-2.ly index 0a6f57b8c9..aeddce6a8f 100644 --- a/mutopia/Coriolan/flauto-2.ly +++ b/mutopia/Coriolan/flauto-2.ly @@ -15,11 +15,11 @@ flauto2 = \melodic{ \octave c''; % koor % r1 | r1 | as4-.\ff r r2 | r1 | - r1 | r1 | as4-. r r2 | r1 | - r1 | r1 | b4-. r r2 | r1 | - r1 | r1 | c'4-. r r2 | r1 | + r1*2 | as4-. r r2 | r1*3 | + b4-. r r2 | r1*3 | + c'4-. r r2 | r1 | es'4-. r r2 | d4-. r r2 | - r1 | r1 | r1 | r1 | + r1*4 | r2 r2 | r2 r4 b4-. | } diff --git a/mutopia/Coriolan/music.ly b/mutopia/Coriolan/music.ly new file mode 100644 index 0000000000..240986b5c8 --- /dev/null +++ b/mutopia/Coriolan/music.ly @@ -0,0 +1,18 @@ +flauto-1.ly +flauto-2.ly +oboe-1.ly +oboe-2.ly +clarinetto-1.ly +clarinetto-2.ly +fagotto-1.ly +fagotto-2.ly +corno-1.ly +corno-2.ly +trombo-1.ly +trombo-2.ly +timpani.ly +violino-1.ly +violino-2.ly +viola.ly +violoncello.ly +contrabasso.ly diff --git a/mutopia/Coriolan/oboe-1.ly b/mutopia/Coriolan/oboe-1.ly index b68f11cbf3..ab3290fb16 100644 --- a/mutopia/Coriolan/oboe-1.ly +++ b/mutopia/Coriolan/oboe-1.ly @@ -13,11 +13,11 @@ copyright = "public domain"; oboe1 = \melodic{ \octave c''; - r1 | r1 | as4-.\ff r r2 | r1 | - r1 | r1 | as4-. r r2 | r1 | - r1 | r1 | a4-. r r2 | r1 | + r1*2 | as4-.\ff r r2 | r1*3 | + as4-. r r2 | r1*3 | + a4-. r r2 | r1 | g4-. r r2 | g4-. r r2 | - r1 | r1 | r1 | r1 | + r1*4 | as2\p_"\ \ \ cresc." ( g | )fis2. g4-.\f | } diff --git a/mutopia/Coriolan/oboe-2.ly b/mutopia/Coriolan/oboe-2.ly index 94cecf9b4d..75e5e5dfab 100644 --- a/mutopia/Coriolan/oboe-2.ly +++ b/mutopia/Coriolan/oboe-2.ly @@ -15,11 +15,11 @@ oboe2 = \melodic{ \octave c''; % koor % r1 | r1 | f4-.\ff r r2 | r1 | - r1 | r1 | f4-. r r2 | r1 | - r1 | r1 | f4-. r r2 | r1 | - r1 | r1 | es4-. r r2 | r1 | + r1*2| f4-. r r2 | r1*3 | + f4-. r r2 | r1*3 | + es4-. r r2 | r1 | es4-. r r2 | 'b4-. r r2 | - r1 | r1 | r1 | r1 | - r1 | r2 r4 'b4-. | + r1*5 | + r2 r4 'b4-. | } diff --git a/mutopia/Coriolan/oboi-part.ly b/mutopia/Coriolan/oboi-part.ly index 3d67ea5234..eef9019b7e 100644 --- a/mutopia/Coriolan/oboi-part.ly +++ b/mutopia/Coriolan/oboi-part.ly @@ -15,6 +15,7 @@ copyright = "public domain"; \include "oboi.ly" \score{ +% \property Score.part = 1 \$oboi_staff \paper{} } diff --git a/mutopia/Coriolan/timpani.ly b/mutopia/Coriolan/timpani.ly index 9ad4482ecf..3c3bd64aa9 100644 --- a/mutopia/Coriolan/timpani.ly +++ b/mutopia/Coriolan/timpani.ly @@ -13,12 +13,12 @@ copyright = "public domain"; timpani = \melodic{ \octave c; - r1 | r1 | c4-.\ff r r2 | r1 | - r1 | r1 | c4-. r r2 | r1 | - r1 | r1 | c4-. r r2 | r1 | + r1*2 | c4-.\ff r r2 | r1*3 | + c4-. r r2 | r1*3 | + c4-. r r2 | r1 | 'g4-. r r2 | 'g4-. r r2 | - r1 | r1 | r1 | r1 | - r1 | r2 r4 'g4-. | + r1*5 | + r2 r4 'g4-. | } $timpani_staff = \type Staff = timpani < diff --git a/mutopia/Coriolan/trombe-part.ly b/mutopia/Coriolan/trombe-part.ly index b32d202d52..a9f5fd0506 100644 --- a/mutopia/Coriolan/trombe-part.ly +++ b/mutopia/Coriolan/trombe-part.ly @@ -15,6 +15,7 @@ copyright = "public domain"; \include "trombe.ly" \score{ +% \property Score.part = 1 \$trombe_staff \paper{} } diff --git a/mutopia/Coriolan/trombo-1.ly b/mutopia/Coriolan/trombo-1.ly index 49aefe57de..a377271834 100644 --- a/mutopia/Coriolan/trombo-1.ly +++ b/mutopia/Coriolan/trombo-1.ly @@ -13,11 +13,11 @@ copyright = "public domain"; trombo1 = \melodic{ \octave c'; - r1 | r1 | c'4-.\ff r r2 | r1 | - r1 | r1 | c'4-. r r2 | r1 | - r1 | r1 | c'4-. r r2 | r1 | + r1*2 | c'4-.\ff r r2 | r1*3 | + c'4-. r r2 | r1*3 | + c'4-. r r2 | r1 | g4-. r r2 | g4-. r r2 | - r1 | r1 | r1 | r1 | - r1 | r2 r4 g4-.\f | + r1*5 | + r2 r4 g4-.\f | } diff --git a/mutopia/Coriolan/trombo-2.ly b/mutopia/Coriolan/trombo-2.ly index 1ca561b103..1288eabaef 100644 --- a/mutopia/Coriolan/trombo-2.ly +++ b/mutopia/Coriolan/trombo-2.ly @@ -15,11 +15,11 @@ trombo2 = \melodic{ \octave c'; % koor % r1 | r1 | c4-.\ff r r2 | r1 | - r1 | r1 | c4-. r r2 | r1 | - r1 | r1 | c4-. r r2 | r1 | - r1 | r1 | c4-. r r2 | r1 | + r1*2 | c4-. r r2 | r1*3 | + c4-. r r2 | r1*3 | + c4-. r r2 | r1 | 'g4-. r r2 | 'g4-. r r2 | - r1 | r1 | r1 | r1 | - r1 | r2 r4 'g4-. | + r1*5 | + r2 r4 'g4-. | } diff --git a/mutopia/Coriolan/violino-2.ly b/mutopia/Coriolan/violino-2.ly index 260ea14181..28e91a5052 100644 --- a/mutopia/Coriolan/violino-2.ly +++ b/mutopia/Coriolan/violino-2.ly @@ -17,7 +17,7 @@ violino2 = \melodic{ c1 ~ | c | r r2 | r1 | c1 ~ | c | r r2 | r1 | r r2 | r r2 | - r1 | r1 | r1 | + r1*3 | r2 ['b8-.\p f-.] [f()es] | [es8-. as-.] as4.-"cresc." g8-. g4 ~ | [g8 fis-.] fis4 ~ fis g-.\f | diff --git a/mutopia/J.S.Bach/preludes-1.ly b/mutopia/J.S.Bach/preludes-1.ly index a248586c76..db687e59f2 100644 --- a/mutopia/J.S.Bach/preludes-1.ly +++ b/mutopia/J.S.Bach/preludes-1.ly @@ -1,7 +1,12 @@ \header{ filename = "preludes-1.ly"; -title = "DOUZE P\'ETITES PRELUDES"; -% tempo = "Moderato" +% mmm +title = "DOUZE PETITES PR\'ELUDES"; +opus = "BWV 924"; +% blz 1 +% Clavierb"uchlein f"ur W. Fr. Bach +% Clav. W. Fr. Bach: 2-Praeambulum I +% ca 1720 composer = "Johann Sebastian Bach (1685-1750)"; enteredby = "jcn"; copyright = "public domain"; diff --git a/mutopia/J.S.Bach/preludes-2.ly b/mutopia/J.S.Bach/preludes-2.ly index 48dcb7d083..eb4a1fcc8d 100644 --- a/mutopia/J.S.Bach/preludes-2.ly +++ b/mutopia/J.S.Bach/preludes-2.ly @@ -1,6 +1,12 @@ \header{ filename = "preludes-2.ly"; title = "2"; +opus = "BWV 939"; +% blz 10 +% +% Six Petits Pr'eludes +% Collection Johann Peter Kellner +% ca 1703 - 1707 composer = "Johann Sebastian Bach (1685-1750)"; enteredby = "jcn"; copyright = "public domain"; diff --git a/mutopia/J.S.Bach/preludes-3.ly.m4 b/mutopia/J.S.Bach/preludes-3.ly.m4 index ec1ef4fc2c..7515b635df 100644 --- a/mutopia/J.S.Bach/preludes-3.ly.m4 +++ b/mutopia/J.S.Bach/preludes-3.ly.m4 @@ -1,6 +1,12 @@ \header{ filename = "preludes-3.ly"; title = "3"; +opus = "BWV 999"; +% Pr"aludum in C Moll f"ur Laute +% blz 16 +% Six Petits Pr'eludes +% Collection Johann Peter Kellner +% ca 1703 - 1707 composer = "Johann Sebastian Bach (1685-1750)"; enteredby = "jcn"; copyright = "public domain"; diff --git a/mutopia/J.S.Bach/preludes-4.ly b/mutopia/J.S.Bach/preludes-4.ly index 3e4887586a..eb7dc7b213 100644 --- a/mutopia/J.S.Bach/preludes-4.ly +++ b/mutopia/J.S.Bach/preludes-4.ly @@ -1,6 +1,11 @@ \header{ filename = "preludes-4.ly"; title = "4"; +opus = "BWV 925"; +% blz 8 +% Clavierb"uchlein f"ur W. Fr. Bach +% Clav. W. Fr. Bach: 27-Praeludium ex d neutral +% ca 1720 composer = "Johann Sebastian Bach (1685-1750)"; enteredby = "jcn"; copyright = "public domain"; diff --git a/mutopia/J.S.Bach/preludes-5.ly b/mutopia/J.S.Bach/preludes-5.ly index 4753fdc05c..34dd4d41c4 100644 --- a/mutopia/J.S.Bach/preludes-5.ly +++ b/mutopia/J.S.Bach/preludes-5.ly @@ -1,6 +1,10 @@ \header{ filename = "preludes-5.ly"; title = "5"; +% blz 2 +% Clavierb"uchlein f"ur W. Fr. Bach +% Clav. W. Fr. Bach: 4-Praeludium 2 +% ca 1720 composer = "Johann Sebastian Bach (1685-1750)"; enteredby = "jcn"; copyright = "public domain"; @@ -102,7 +106,7 @@ two = \melodic{ d-\mordent r r | 'd4 r r | d-\mordent r r | - d r r | +% d r r | 'd4 r r | [d8-2 'a-5 d-2 f-1 d-4 f-2] | [a-1 f-4 a-2 d'-1 a-2 d'-1] | diff --git a/mutopia/J.S.Bach/preludes-6.ly b/mutopia/J.S.Bach/preludes-6.ly index 1c46d4b0cd..7a8a718b1c 100644 --- a/mutopia/J.S.Bach/preludes-6.ly +++ b/mutopia/J.S.Bach/preludes-6.ly @@ -1,6 +1,11 @@ \header{ filename = "preludes-6.ly"; title = "6"; +opus = "BWV 940"; +% blz 11 +% Six Petits Pr'eludes +% Collection Johann Peter Kellner +% ca 1703 - 1707 composer = "Johann Sebastian Bach (1685-1750)"; enteredby = "jcn"; copyright = "public domain"; diff --git a/mutopia/Makefile b/mutopia/Makefile index c67daf25f0..dc989a75a2 100644 --- a/mutopia/Makefile +++ b/mutopia/Makefile @@ -16,4 +16,6 @@ examples=standje gallina # # generic stuff/Makefile # -include ./$(depth)/make/Mutopia.make +include $(depth)/make/Mutopia.make + +include $(depth)/make/WWW.make diff --git a/mutopia/TODO b/mutopia/TODO index e282e81cf8..7239bc104c 100644 --- a/mutopia/TODO +++ b/mutopia/TODO @@ -1,9 +1,3 @@ - more composers > 70y + - (more) free composers - beethoven's coriolan - - more composers > 70y + - - (more) free composers - - beethoven's coriolan - - more composers > 70y + - - (more) free composers - - beethoven's coriolan diff --git a/mutopia/los-toros-oboe-16.tex b/mutopia/los-toros-oboe-16.tex index 98973e2e4b..a1424d8ee9 100644 --- a/mutopia/los-toros-oboe-16.tex +++ b/mutopia/los-toros-oboe-16.tex @@ -25,7 +25,7 @@ \begin{document} -\input lilyponddefs +% \input lilyponddefs \input titledefs \def\interscoreline{\vskip3mm} \title{La Feria\normalsize\\[2ex]Los Toros} diff --git a/mutopia/los-toros-oboe.ly b/mutopia/los-toros-oboe.ly index 85707a1282..27ec629df5 100644 --- a/mutopia/los-toros-oboe.ly +++ b/mutopia/los-toros-oboe.ly @@ -184,7 +184,8 @@ hoboonelast = \melodic{ % eiht measures rest.. \textstyle "bold"; % r2^"Un peu plus lent et \\'el\\'egant" - r2^"\\fetanummer8" +% r2^"\\fetanummer8" + r2*8 r4 r8\p bes | g2->^"Un peu plus lent et \\'el\\'egant" ~ | \textstyle "italic"; @@ -274,7 +275,7 @@ global = \melodic{ \skip 4*58; \key bes es as; | \bar "||"; - \skip 4*206; + \skip 4*220; \bar "|."; } @@ -301,9 +302,8 @@ a4 = \paper{ \consists "Staff_sym_engraver"; \consists "Collision_engraver"; \consists "Rest_collision_engraver"; -% not yet: multibar rest -% \consists "Bar_column_engraver"; -% \consists "Bar_number_engraver"; + \consists "Bar_column_engraver"; + \consists "Bar_number_engraver"; \consists "Separating_line_group_engraver"; \consists "Line_group_engraver"; @@ -325,9 +325,8 @@ a4sixteen = \paper{ \consists "Staff_sym_engraver"; \consists "Collision_engraver"; \consists "Rest_collision_engraver"; -% not yet: multibar rest -% \consists "Bar_column_engraver"; -% \consists "Bar_number_engraver"; + \consists "Bar_column_engraver"; + \consists "Bar_number_engraver"; \consists "Separating_line_group_engraver"; \consists "Line_group_engraver"; @@ -341,6 +340,6 @@ a4sixteen = \paper{ \midi{ \tempo 4 = 80; } - \paper{ \a4sixteen } +% \paper{ \a4sixteen } } diff --git a/mutopia/standje.ly b/mutopia/standje.ly index e5cd950051..c89b735296 100644 --- a/mutopia/standje.ly +++ b/mutopia/standje.ly @@ -21,81 +21,105 @@ $vocal_verse1 = \melodic{ % ugh: treble/bass % \clef treble; % \clef violin; - [2/3 g8( )as] g \] c'4. g8 | - [2/3 f8( )g] f \] c'4 f8 r | - g4.-> f8 [2/3 f( )es] d \] | + [/3 g8( )as] g \] c'4. g8 | + [/3 f8( )g] f \] c'4 f8 r | + g4.-> f8 [/3 f( )es] d \] | es2 r4 | % ugh: a whole should be a measure %r1 | r2. | r2. | - [2/3 g8( )as] g \] es'4. g8 | - [2/3 f8( )g] f \] d'4. c'8 | - bes4. as8 [2/3 as( )g] f \] | + [/3 g8( )as] g \] es'4. g8 | + [/3 f8( )g] f \] d'4. c'8 | + bes4. as8 [/3 as( )g] f \] | g2 r4 | r2. | r2. | g8. b16 es'4. d'8 | c'8. g16 es4. c8 | - % [as3 2\grace( bes3 2\grace] ) - [2/3 as8( )g] as \] c'4. as8 | + % [/3 as\grace( bes ] ) + [/3 as8( )g] as \] c'4. as8 | g2. | - %[f3 2\grace( g] ) - [2/3 f8( )e] f \] as4. f8 | + %[/3 f\grace( g] ) + [/3 f8( )e] f \] as4. f8 | es!2. | g8. b16 es'4. d'8 | c'8. g16 e4. c8 | - % [a3 2\grace b] ) - [2/3 a!8( ) gis] a \] c'4. a8 | + % [/3 a\grace( b] ) + [/3 a!8( ) gis] a \] c'4. a8 | g!2. | - [2/3 d'8\f cis'] d' \] f'4. b8 | + % [/3 a\grace( b] ) + [/3 d'8\f cis'] d' \] f'4. b8 | c'!2. | } +$vocal_through = \melodic{ + \octave c'; + g8. g16 b8. b16 d'8. d16 | + c'4 b r | + g4. b8 d'8. c'16 | + b2 r4 | + e'4. d'8 [/3 d'( )c'] b \] | + a8. b16 c'4-> a8 r | + r2. | + r2. | + % 4 bars copied from end verse 1 + % [/3 a\grace( b] ) + [/3 a!8( ) gis] a \] c'4. a8 | + g!2. | + % [/3 a\grace( b] ) + [/3 d'8\f cis'] d' \] f'4. b8 | + c'!2. ~ | + c'4 r c' | + as2. | + g | + es2 r4 | +} + $lyric_verse1 = \lyric{ % 5 - \[2/3 Lei-4 se8 \] fleh-4. en8 | - \[2/3 mei-4 ne8 \] Lie-4 der8 _8 | - Durch4. die8 \[2/3 Nacht4 zu8 \] | + \[/3 Lei-4 se8 \] fleh-4. en8 | + \[/3 mei-4 ne8 \] Lie-4 der8 _8 | + Durch4. die8 \[/3 Nacht4 zu8 \] | dir;2 _4 | _4 _ _ | _ _ _ | % 11 - \[2/3 In4 den8 \] stil-4. len8 | - \[2/3 Hainr4 her-8 \] nie-4. der,8 | - Lieb4. chen,8 \[2/3 komm4 zu8 \] | + \[/3 In4 den8 \] stil-4. len8 | + \[/3 Hainr4 her-8 \] nie-4. der,8 | + Lieb4. chen,8 \[/3 komm4 zu8 \] | mir!2 _4 | _4 _ _ | _ _ _ | % 17 Fl\"us-8. ternd16 schlan-4. ke8 | Wip-8. fel16 rau-4. schen8 | - \[2/3 In4 des8 \] Mon-4. des8 | + \[/3 In4 des8 \] Mon-4. des8 | Licht;2. | _4 _ _ | _4 _ _ | % 23 Des8. Ver-16 r\"a-4. ters8 | feind-8. lich16 Lau-4. schen8 | - \[2/3 F\"urch-4 te,8 \] Hol-4. de,8 | + \[/3 F\"urch-4 te,8 \] Hol-4. de,8 | nicht,2. | - \[2/3 f\"urch-4 te,8 \] Hol-4. de,8 | + \[/3 f\"urch-4 te,8 \] Hol-4. de,8 | nicht.2. | } $lyric_verse2 = \lyric{ % 5 - \[2/3 H\"orst4 die8 \] Nach-4. ti-8 - \[2/3 gal-4 len8 \] schla-4 gen?8 _8 - Ach!4. sie8 \[2/3 fleh-4 en8 \] + \[/3 H\"orst4 die8 \] Nach-4. ti-8 + \[/3 gal-4 len8 \] schla-4 gen?8 _8 + Ach!4. sie8 \[/3 fleh-4 en8 \] dich,2 _4 _4 _ _ _4_ _ % 11 - \[2/3 Mit4 der8 \] T\"o-4. ne8 - \[2/3 s\"u\ss-4 en8 \] Kla-4. gen8 - Fleh-4. en8 \[2/3 sie4 f\"ur8 \] + \[/3 Mit4 der8 \] T\"o-4. ne8 + \[/3 s\"u\ss-4 en8 \] Kla-4. gen8 + Fleh-4. en8 \[/3 sie4 f\"ur8 \] mich.2 _4 _4_ _ _4_ _ @@ -103,30 +127,36 @@ $lyric_verse2 = \lyric{ % 17 Sie-8. ver-16 stehn4. des8 Bus-8. ens16 Seh-4. nen,8 - \[2/3 Ken-4 nen8 \] Lieb-4. es-8 + \[/3 Ken-4 nen8 \] Lieb-4. es-8 schmerz,2. - \[2/3 Ken-4 nen8 \] Lieb-4. es-8 + \[/3 Ken-4 nen8 \] Lieb-4. es-8 schmerz,2. % 23 R\"uh-8. ren16 mit4. den8 Sil-8. ber-16 t\"o-4. nen8 - \[2/3 Jed-4 es8 \] wei-4. che8 + \[/3 Jed-4 es8 \] wei-4. che8 Herz.2. - \[2/3 Jed-4 es8 \] wei-4. che8 + \[/3 Jed-4 es8 \] wei-4. che8 Herz.2. } -$lyric_through1 = \lyric{ +$lyric_through = \lyric{ % 37 La\ss8. auch16 dir8. die16 Brust8. be-16 | - we- gen, | + we-4 gen, _ | Lieb-4. chen,8 h\"o-8. re16 | - mich!2 _ | - Be-8. bend16 harr' ich8 _8 | - dir8. ent-16 ge- gen!8 _8 | - \[2/3 Komm, be-8 \] gl\"u4. cke8 | + mich!2 _4 | + Be-8. bend16 harr'4 ich8 _8 | + dir8. ent-16 ge-4 gen!8 _8 | + \[/3 Komm,4 be-8 \] gl\"u4. cke8 | + mich!2. | + \[/3 Komm,4 be-8 \] gl\"u4. cke8 | mich!2. | + _2 be-4 | + gl\"u-2. | + cke2. | + mich!2 _4 | } $treble_intro = \melodic{ @@ -149,27 +179,27 @@ $treble_verse1 = \melodic{ r8 <['f c> <'f c> <'f c]> | r8 <['f 'g 'b> <'g 'b d> <'f 'g 'b> <'g 'b d> <'f 'g 'b]> | r8 <['es 'g c> <'g c es> <'es 'g c> <'g c es> <'es 'g c]> | - <)f'8 d'> <[2/3 f' d'> | + <)f'8 d'> <[/3 f' d'> | | r8 <['g c> <'g c> <'g c]> | r8 <['f c> <'f c> <'f c]> | r8 <['f 'as 'bes> <'as 'bes d> <'f 'g 'bes> <'g 'bes d> <'f 'g 'bes]> | r8 <['es 'g 'bes> <'g 'bes es> <'es 'g 'bes> <'g 'bes es]> <{ es'( | )bes4. as8}{ c'( | )d4.( )f8 } > - < [2/3 f as> | + < [/3 f as> | | r8 <['f 'g> <'g 'b> <'f 'g> <'g 'b> <'f 'g]> | r8 <['es 'g> <'g c> <'es 'g> <'g c> <'es 'g]> | r8\pp <['es 'as c> <'as c es> <'es 'as c> <'as c es> <'es 'as c]> | r8 <['es 'g 'bes> <'g 'bes 'es> <'es 'g 'bes> <'g 'bes 'es> <'es 'g 'bes]> | - % [as3 2\grace( bes ) - [2/3 as8(( g )as]1/1 c'4.-> ) as8 | + % [/3 as\grace( bes ) + [/3 as8(( g )as]1/1 c'4.-> ) as8 | g2. | r8 <['f 'g> <'g 'b> <'f 'g> <'g 'b> <'f 'g]> | r8 <['e 'g> <'g c> <'e 'g> <'g c> <'e 'g]> | r8 <['f 'a c> <'a c f> <'f 'a c> <'a c f> <'f 'a c]> | r8 <['e 'g c> <'g c e> <'e 'g c> <'g c e> <'e 'g c]> | - <{[2/3 f'8\f( e' f']1/1 a'4. )f'8 } {\[2/3 f e f \] a4. f8 } > | + <{[/3 f'8\f( e' f']1/1 a'4. )f'8 } {\[/3 f e f \] a4. f8 } > | r4 | } @@ -185,6 +215,50 @@ $treble_eentje = \melodic{ | } +$treble_through = \melodic{ + \octave c'; + r2. | + % lily: 221: warning: Junking request: Span_dynamic_req: the \> + <['g8.\< g> <'g16 g> <'b8. b> <\!'b16\> b16> | + % lily: 222: warning: Can't find cresc to end. + < { c4( )'b } { c'4( )b } > \!r | +% ugh +% <'g4. g> <'b8 b> <[d8.-> d'->> c'16] | + <'g4. g> <'b8 b> [d'8.-> c'16] | +% ugh, ugh: connecting chords + < { d2.\f( )a2} { e2. ~ e2 } { b2. c2 }> r4 | + < + { + \voiceone + [a8. b16] c'4->( )a8 r | + [a8. b16] c'4->( )a8 r | + } + { + \voicetwo + | + | + } + > + % 4 bars copied from end verse1 + r8 <['f\p 'a c> <'a c f> <'f 'a c> <'a c f> <'f 'a c]> | + r8 <['e 'g c> <'g c e> <'e 'g c> <'g c e> <'e 'g c]> | + <{[/3 f'8\f( e' f']1/1 a'4. )f'8 } {\[/3 f e f \] a4. f8 } > | + r4 | + r4 | + r4 | + <'b2 b> r4 | + | + + % four copied from begin eentje + <[as8.->( c'> <)f16 )as]> | + <[e8-. g-.(> | + <['b8-. g-.(> | + \textstyle "italic"; + | + <'g2. e g> | + <'g2.-\fermata e g> | +} + $bass_intro = \melodic{ \octave c; \clef bass; @@ -234,20 +308,64 @@ $bass_eentje = \melodic{ <''g8 'g> <[d g> | 'c8 <[e g> | } + +$bass_through = \melodic{ + \octave c; + <''g8 'g> <['g 'b d> <'b d f> <'g 'b d> <'as!-> b-> d->> <'b d f]> | + <''g8 'g> <['g d> <'g d> <'as-> b-> d->> <'b d f]> | + % copied + <''g8 'g> <['g d> <'g d> <'as-> b-> d->> <'b d f]> | + <''g8 'g> <['g d e> <'g d> <'gis-> 'b-> d->> <'b d f]> | + <''gis8 'gis> <[d e> | + <''a8 'a> <[c e> | + <''a8 'a> <['a d f> <'a d f> <'a d f]> | + <''a8 'a> <['a c e> <'a c e> <'a c e]> | + % 4 bars copied from end verse1 + <''f2 'f> r4 | + <'c2 c> r4 | + <''g8 'g> <[d g> | + 'c8 <[c e g> | + + <'c8 c> <[c es! g> | + <''f8 'f> <[d f> | + <''g8 'g> <[d f> | + 'c8 <[c e> | + 'c8 <[c f> | + 'c8 <[c e> | + ''g8 <['g d> <'g d> <'g d]> | + % copied from two bars back + 'c8 <[c e> | + 'c8 <[c e> | + <'c2._\fermata 'g c> | +} global = \melodic{ \meter 3/4; \key bes es as; - \skip 4 * 12; + \skip 4 * 12; \break; + \skip 4 * 234; + \bar "|."; +} + + +$lyric_four = \lyric{ + _4 _ _ + _ _ _ + _ _ _ + _ _ _ } lyrics = \melodic{ \meter 3/4; - \skip 4 * 12; +% \skip 4 * 12; + \$lyric_four \$lyric_verse1 - \skip 4 * 24; +% \skip 4 * 24; + \$lyric_four + \$lyric_four \$lyric_verse2 + \$lyric_through } $lyric_staff = \type Lyrics = lyric< @@ -255,15 +373,16 @@ $lyric_staff = \type Lyrics = lyric< > vocals = \melodic{ - \global \skip 4 * 12; \$vocal_verse1 \skip 4 * 24; \$vocal_verse1 + \$vocal_through } $vocal_staff = \type Staff = vocal< \property Staff.instrument = "alto sax" + \global \$vocals > @@ -273,6 +392,7 @@ treble = { \$treble_verse1 \$treble_eentje \$treble_verse1 + \$treble_through } $treble_staff = \type Staff = treble< @@ -285,6 +405,7 @@ bass = \melodic{ \$bass_verse1 \$bass_eentje \$bass_verse1 + \$bass_through } $bass_staff = \type Staff = bass< @@ -297,16 +418,38 @@ $grand_staff = \type Grandstaff< \$bass_staff > +a4 = \paper{ + gourlay_maxmeasures = 7.; +% linewidth= 193.\mm; + linewidth= 175.\mm; + Staff = \translator { + \type "Engraver_group_engraver"; + defaultclef = violin; + + \consists "Bar_engraver"; + \consists "Clef_engraver"; + \consists "Key_engraver"; + \consists "Meter_engraver"; + \consists "Local_key_engraver"; + \consists "Staff_sym_engraver"; + \consists "Collision_engraver"; + \consists "Rest_collision_engraver"; + \consists "Bar_column_engraver"; + \consists "Bar_number_engraver"; + \consists "Separating_line_group_engraver"; + \consists "Line_group_engraver"; + + \accepts "Voice"; + } +} + \score{ < \$vocal_staff \$lyric_staff \$grand_staff > - \paper{ - % ugh: the *first* (intro) line may only have four measures... - gourlay_maxmeasures = 7.; - } + \paper{ \a4 } \midi{ \tempo 4 = 54; } diff --git a/test/bow.cc b/test/bow.cc index 02d5adbc44..35c344686c 100644 --- a/test/bow.cc +++ b/test/bow.cc @@ -56,7 +56,7 @@ out (Bezier_bow& b) cout << "boogje:=z4..controls z5 and z6..z1;\n"; cout << "draw boogje;\n"; #endif - cout << "showit; shipit;clearit;\n"; + cout << "showit; shipit;clearit;" << endl; } void @@ -128,23 +128,31 @@ main () bow ((Point[6]){ 0,0, 20,60, 40,0, 60,0, 80,0, 100,1 }, 6, 1); bow ((Point[6]){ 0,1, 20,0, 40,0, 60,0, 80,60, 100,0 }, 6, 1); - bow ((Point[6]){ 0,0, 20,20, 40,40, 60,60, 80,140, 100,100 }, 6, 1); +// bow ((Point[6]){ 0,0, 20,20, 40,40, 60,60, 80,140, 100,100 }, 6, 1); bow ((Point[6]){ 0,0, 20,20, 40,40, 60,60, 80,20, 100,100 }, 6, -1); bow ((Point[6]){ 0,0, 20,-20, 40,-40, 60,-60, 80,-20, 100,-100 }, 6, 1); - bow ((Point[6]){ 0,0, 20,-20, 40,-40, 60,-60, 80,-140, 100,-100 }, 6, -1); +// bow ((Point[6]){ 0,0, 20,-20, 40,-40, 60,-60, 80,-140, 100,-100 }, 6, -1); + bow ((Point[7]){ 0,0, 20,40, 100,0, 150,0, 200,0, 280,40, 300,0 }, 7, 1); #endif +#if 0 // bugs -// bow ((Point[6]){ 0,0, 20,0, 40,0, 60,0, 80,40, 100,1 }, 6, 1); -// bow ((Point[6]){ 0,0, 20,0, 40,0, 60,0, 80,-40, 100,1 }, 6, -1); -// bow ((Point[6]){ 0,0, 20,40, 40,0, 60,0, 80,0, 100,1 }, 6, 1); -// bow ((Point[6]){ 0,0, 20,-40, 40,0, 60,0, 80,0, 100,1 }, 6, -1); + bow ((Point[6]){ 0,0, 20,20, 40,40, 60,60, 80,140, 100,100 }, 6, 1); bow ((Point[6]){ 0,0, 20,-40, 40,0, 60,20, 80,20, 100,40 }, 6, -1); bow ((Point[6]){ 0,0, 20,-20, 40,-20, 60,-20, 80,-80, 100,-40 }, 6, -1); - + bow ((Point[6]){ 0,0, 20,-20, 40,-40, 60,-60, 80,-140, 100,-100 }, 6, -1); bow ((Point[6]){ 0,0, 20,20, 40,40, 60,60, 80,140, 100,100 }, 6, 1); - cout << "\\end\n"; +#endif + +// bow ((Point[6]){ 0,0, 20,20, 40,0, 60,0, 80,20, 100,1 }, 6, 1); +// bow ((Point[6]){ 0,20, 20,40, 40,0, 60,0, 80,40, 100,20 }, 6, 1); + + bow ((Point[7]){ 0,0, 20,40, 100,0, 150,0, 200,0, 280,40, 300,0 }, 7, 1); + bow ((Point[7]){ 0,20, 20,40, 100,0, 150,0, 200,0, 280,40, 300,20 }, 7, 1); + + cout << "\\end" << endl; + return 0; } diff --git a/tex/feta11.tex b/tex/feta11.tex new file mode 100644 index 0000000000..39cabb6e48 --- /dev/null +++ b/tex/feta11.tex @@ -0,0 +1,176 @@ +% Creator: mf-to-table.py version 0.6 +% Automatically generated on +% Do not edit +% input from out/feta11.log +% name +% rests +\fetdef\wholerest{0} +\fetdef\halfrest{1} +\fetdef\outsidewholerest{2} +\fetdef\outsidehalfrest{3} +\fetdef\quartrest{4} +\fetdef\eighthrest{5} +\fetdef\sixteenthrest{6} +\fetdef\thirtysecondrest{7} +\fetdef\sixtyfourthrest{8} +\fetdef\hundredtwentyeighthrest{9} + +% accidentals +\fetdef\sharp{10} +\fetdef\natural{11} +\fetdef\flat{12} +\fetdef\flatflat{13} +\fetdef\sharpsharp{14} + +% dots +\fetdef\dot{15} +\fetdef\repeatcolon{16} + +% balls +\fetdef\brevisball{17} +\fetdef\brevisledger{18} +\fetdef\longaball{19} +\fetdef\longaledger{20} +\fetdef\wholeball{21} +\fetdef\wholeledger{22} +\fetdef\halfball{23} +\fetdef\halfledger{24} +\fetdef\quartball{25} +\fetdef\quartledger{26} + +% scripts +\fetdef\ufermata{27} +\fetdef\dfermata{28} +\fetdef\sforzatoaccent{29} +\fetdef\staccato{30} +\fetdef\ustaccatissimo{31} +\fetdef\dstaccatissimo{32} +\fetdef\tenuto{33} +\fetdef\umarcato{34} +\fetdef\dmarcato{35} +\fetdef\ouvert{36} +\fetdef\plusstop{37} +\fetdef\upbow{38} +\fetdef\downbow{39} +\fetdef\reverseturn{40} +\fetdef\turn{41} +\fetdef\trill{42} +\fetdef\upedalheel{43} +\fetdef\dpedalheel{44} +\fetdef\upedaltoe{45} +\fetdef\dpedaltoe{46} +\fetdef\flageolet{47} +\fetdef\trilelement{48} +\fetdef\prall{49} +\fetdef\mordent{50} +\fetdef\prallprall{51} +\fetdef\prallmordent{52} +\fetdef\upprall{53} +\fetdef\downprall{54} + +% flags +\fetdef\eighthflag{55} +\fetdef\sixteenthflag{56} +\fetdef\thirtysecondflag{57} +\fetdef\sixtyfourthflag{58} +\fetdef\deighthflag{59} +\fetdef\dsixteenthflag{60} +\fetdef\dthirtysecondflag{61} +\fetdef\dsixtyfourthflag{62} + +% clefs +\fetdef\altoclef{63} +\fetdef\caltoclef{64} +\fetdef\bassclef{65} +\fetdef\cbassclef{66} +\fetdef\violinclef{67} +\fetdef\cviolinclef{68} + +% Creator: mf-to-table.py version 0.6 +% Automatically generated on +% Do not edit +% input from out/feta11.log +% name +% rests +\fetdef\wholerest{0} +\fetdef\halfrest{1} +\fetdef\outsidewholerest{2} +\fetdef\outsidehalfrest{3} +\fetdef\quartrest{4} +\fetdef\eighthrest{5} +\fetdef\sixteenthrest{6} +\fetdef\thirtysecondrest{7} +\fetdef\sixtyfourthrest{8} +\fetdef\hundredtwentyeighthrest{9} + +% accidentals +\fetdef\sharp{10} +\fetdef\natural{11} +\fetdef\flat{12} +\fetdef\flatflat{13} +\fetdef\sharpsharp{14} + +% dots +\fetdef\dot{15} +\fetdef\repeatcolon{16} + +% balls +\fetdef\brevisball{17} +\fetdef\brevisledger{18} +\fetdef\longaball{19} +\fetdef\longaledger{20} +\fetdef\wholeball{21} +\fetdef\wholeledger{22} +\fetdef\halfball{23} +\fetdef\halfledger{24} +\fetdef\quartball{25} +\fetdef\quartledger{26} + +% scripts +\fetdef\ufermata{27} +\fetdef\dfermata{28} +\fetdef\sforzatoaccent{29} +\fetdef\staccato{30} +\fetdef\ustaccatissimo{31} +\fetdef\dstaccatissimo{32} +\fetdef\tenuto{33} +\fetdef\umarcato{34} +\fetdef\dmarcato{35} +\fetdef\ouvert{36} +\fetdef\plusstop{37} +\fetdef\upbow{38} +\fetdef\downbow{39} +\fetdef\reverseturn{40} +\fetdef\turn{41} +\fetdef\trill{42} +\fetdef\upedalheel{43} +\fetdef\dpedalheel{44} +\fetdef\upedaltoe{45} +\fetdef\dpedaltoe{46} +\fetdef\flageolet{47} +\fetdef\trilelement{48} +\fetdef\prall{49} +\fetdef\mordent{50} +\fetdef\prallprall{51} +\fetdef\prallmordent{52} +\fetdef\upprall{53} +\fetdef\downprall{54} + +% flags +\fetdef\eighthflag{55} +\fetdef\sixteenthflag{56} +\fetdef\thirtysecondflag{57} +\fetdef\sixtyfourthflag{58} +\fetdef\deighthflag{59} +\fetdef\dsixteenthflag{60} +\fetdef\dthirtysecondflag{61} +\fetdef\dsixtyfourthflag{62} + +% clefs +\fetdef\altoclef{63} +\fetdef\caltoclef{64} +\fetdef\bassclef{65} +\fetdef\cbassclef{66} +\fetdef\violinclef{67} +\fetdef\cviolinclef{68} + diff --git a/tex/feta13.tex b/tex/feta13.tex new file mode 100644 index 0000000000..7011ced737 --- /dev/null +++ b/tex/feta13.tex @@ -0,0 +1,176 @@ +% Creator: mf-to-table.py version 0.6 +% Automatically generated on +% Do not edit +% input from out/feta13.log +% name +% rests +\fetdef\wholerest{0} +\fetdef\halfrest{1} +\fetdef\outsidewholerest{2} +\fetdef\outsidehalfrest{3} +\fetdef\quartrest{4} +\fetdef\eighthrest{5} +\fetdef\sixteenthrest{6} +\fetdef\thirtysecondrest{7} +\fetdef\sixtyfourthrest{8} +\fetdef\hundredtwentyeighthrest{9} + +% accidentals +\fetdef\sharp{10} +\fetdef\natural{11} +\fetdef\flat{12} +\fetdef\flatflat{13} +\fetdef\sharpsharp{14} + +% dots +\fetdef\dot{15} +\fetdef\repeatcolon{16} + +% balls +\fetdef\brevisball{17} +\fetdef\brevisledger{18} +\fetdef\longaball{19} +\fetdef\longaledger{20} +\fetdef\wholeball{21} +\fetdef\wholeledger{22} +\fetdef\halfball{23} +\fetdef\halfledger{24} +\fetdef\quartball{25} +\fetdef\quartledger{26} + +% scripts +\fetdef\ufermata{27} +\fetdef\dfermata{28} +\fetdef\sforzatoaccent{29} +\fetdef\staccato{30} +\fetdef\ustaccatissimo{31} +\fetdef\dstaccatissimo{32} +\fetdef\tenuto{33} +\fetdef\umarcato{34} +\fetdef\dmarcato{35} +\fetdef\ouvert{36} +\fetdef\plusstop{37} +\fetdef\upbow{38} +\fetdef\downbow{39} +\fetdef\reverseturn{40} +\fetdef\turn{41} +\fetdef\trill{42} +\fetdef\upedalheel{43} +\fetdef\dpedalheel{44} +\fetdef\upedaltoe{45} +\fetdef\dpedaltoe{46} +\fetdef\flageolet{47} +\fetdef\trilelement{48} +\fetdef\prall{49} +\fetdef\mordent{50} +\fetdef\prallprall{51} +\fetdef\prallmordent{52} +\fetdef\upprall{53} +\fetdef\downprall{54} + +% flags +\fetdef\eighthflag{55} +\fetdef\sixteenthflag{56} +\fetdef\thirtysecondflag{57} +\fetdef\sixtyfourthflag{58} +\fetdef\deighthflag{59} +\fetdef\dsixteenthflag{60} +\fetdef\dthirtysecondflag{61} +\fetdef\dsixtyfourthflag{62} + +% clefs +\fetdef\altoclef{63} +\fetdef\caltoclef{64} +\fetdef\bassclef{65} +\fetdef\cbassclef{66} +\fetdef\violinclef{67} +\fetdef\cviolinclef{68} + +% Creator: mf-to-table.py version 0.6 +% Automatically generated on +% Do not edit +% input from out/feta13.log +% name +% rests +\fetdef\wholerest{0} +\fetdef\halfrest{1} +\fetdef\outsidewholerest{2} +\fetdef\outsidehalfrest{3} +\fetdef\quartrest{4} +\fetdef\eighthrest{5} +\fetdef\sixteenthrest{6} +\fetdef\thirtysecondrest{7} +\fetdef\sixtyfourthrest{8} +\fetdef\hundredtwentyeighthrest{9} + +% accidentals +\fetdef\sharp{10} +\fetdef\natural{11} +\fetdef\flat{12} +\fetdef\flatflat{13} +\fetdef\sharpsharp{14} + +% dots +\fetdef\dot{15} +\fetdef\repeatcolon{16} + +% balls +\fetdef\brevisball{17} +\fetdef\brevisledger{18} +\fetdef\longaball{19} +\fetdef\longaledger{20} +\fetdef\wholeball{21} +\fetdef\wholeledger{22} +\fetdef\halfball{23} +\fetdef\halfledger{24} +\fetdef\quartball{25} +\fetdef\quartledger{26} + +% scripts +\fetdef\ufermata{27} +\fetdef\dfermata{28} +\fetdef\sforzatoaccent{29} +\fetdef\staccato{30} +\fetdef\ustaccatissimo{31} +\fetdef\dstaccatissimo{32} +\fetdef\tenuto{33} +\fetdef\umarcato{34} +\fetdef\dmarcato{35} +\fetdef\ouvert{36} +\fetdef\plusstop{37} +\fetdef\upbow{38} +\fetdef\downbow{39} +\fetdef\reverseturn{40} +\fetdef\turn{41} +\fetdef\trill{42} +\fetdef\upedalheel{43} +\fetdef\dpedalheel{44} +\fetdef\upedaltoe{45} +\fetdef\dpedaltoe{46} +\fetdef\flageolet{47} +\fetdef\trilelement{48} +\fetdef\prall{49} +\fetdef\mordent{50} +\fetdef\prallprall{51} +\fetdef\prallmordent{52} +\fetdef\upprall{53} +\fetdef\downprall{54} + +% flags +\fetdef\eighthflag{55} +\fetdef\sixteenthflag{56} +\fetdef\thirtysecondflag{57} +\fetdef\sixtyfourthflag{58} +\fetdef\deighthflag{59} +\fetdef\dsixteenthflag{60} +\fetdef\dthirtysecondflag{61} +\fetdef\dsixtyfourthflag{62} + +% clefs +\fetdef\altoclef{63} +\fetdef\caltoclef{64} +\fetdef\bassclef{65} +\fetdef\cbassclef{66} +\fetdef\violinclef{67} +\fetdef\cviolinclef{68} + diff --git a/tex/feta16.tex b/tex/feta16.tex new file mode 100644 index 0000000000..247fb209a9 --- /dev/null +++ b/tex/feta16.tex @@ -0,0 +1,176 @@ +% Creator: mf-to-table.py version 0.6 +% Automatically generated on +% Do not edit +% input from out/feta16.log +% name +% rests +\fetdef\wholerest{0} +\fetdef\halfrest{1} +\fetdef\outsidewholerest{2} +\fetdef\outsidehalfrest{3} +\fetdef\quartrest{4} +\fetdef\eighthrest{5} +\fetdef\sixteenthrest{6} +\fetdef\thirtysecondrest{7} +\fetdef\sixtyfourthrest{8} +\fetdef\hundredtwentyeighthrest{9} + +% accidentals +\fetdef\sharp{10} +\fetdef\natural{11} +\fetdef\flat{12} +\fetdef\flatflat{13} +\fetdef\sharpsharp{14} + +% dots +\fetdef\dot{15} +\fetdef\repeatcolon{16} + +% balls +\fetdef\brevisball{17} +\fetdef\brevisledger{18} +\fetdef\longaball{19} +\fetdef\longaledger{20} +\fetdef\wholeball{21} +\fetdef\wholeledger{22} +\fetdef\halfball{23} +\fetdef\halfledger{24} +\fetdef\quartball{25} +\fetdef\quartledger{26} + +% scripts +\fetdef\ufermata{27} +\fetdef\dfermata{28} +\fetdef\sforzatoaccent{29} +\fetdef\staccato{30} +\fetdef\ustaccatissimo{31} +\fetdef\dstaccatissimo{32} +\fetdef\tenuto{33} +\fetdef\umarcato{34} +\fetdef\dmarcato{35} +\fetdef\ouvert{36} +\fetdef\plusstop{37} +\fetdef\upbow{38} +\fetdef\downbow{39} +\fetdef\reverseturn{40} +\fetdef\turn{41} +\fetdef\trill{42} +\fetdef\upedalheel{43} +\fetdef\dpedalheel{44} +\fetdef\upedaltoe{45} +\fetdef\dpedaltoe{46} +\fetdef\flageolet{47} +\fetdef\trilelement{48} +\fetdef\prall{49} +\fetdef\mordent{50} +\fetdef\prallprall{51} +\fetdef\prallmordent{52} +\fetdef\upprall{53} +\fetdef\downprall{54} + +% flags +\fetdef\eighthflag{55} +\fetdef\sixteenthflag{56} +\fetdef\thirtysecondflag{57} +\fetdef\sixtyfourthflag{58} +\fetdef\deighthflag{59} +\fetdef\dsixteenthflag{60} +\fetdef\dthirtysecondflag{61} +\fetdef\dsixtyfourthflag{62} + +% clefs +\fetdef\altoclef{63} +\fetdef\caltoclef{64} +\fetdef\bassclef{65} +\fetdef\cbassclef{66} +\fetdef\violinclef{67} +\fetdef\cviolinclef{68} + +% Creator: mf-to-table.py version 0.6 +% Automatically generated on +% Do not edit +% input from out/feta16.log +% name +% rests +\fetdef\wholerest{0} +\fetdef\halfrest{1} +\fetdef\outsidewholerest{2} +\fetdef\outsidehalfrest{3} +\fetdef\quartrest{4} +\fetdef\eighthrest{5} +\fetdef\sixteenthrest{6} +\fetdef\thirtysecondrest{7} +\fetdef\sixtyfourthrest{8} +\fetdef\hundredtwentyeighthrest{9} + +% accidentals +\fetdef\sharp{10} +\fetdef\natural{11} +\fetdef\flat{12} +\fetdef\flatflat{13} +\fetdef\sharpsharp{14} + +% dots +\fetdef\dot{15} +\fetdef\repeatcolon{16} + +% balls +\fetdef\brevisball{17} +\fetdef\brevisledger{18} +\fetdef\longaball{19} +\fetdef\longaledger{20} +\fetdef\wholeball{21} +\fetdef\wholeledger{22} +\fetdef\halfball{23} +\fetdef\halfledger{24} +\fetdef\quartball{25} +\fetdef\quartledger{26} + +% scripts +\fetdef\ufermata{27} +\fetdef\dfermata{28} +\fetdef\sforzatoaccent{29} +\fetdef\staccato{30} +\fetdef\ustaccatissimo{31} +\fetdef\dstaccatissimo{32} +\fetdef\tenuto{33} +\fetdef\umarcato{34} +\fetdef\dmarcato{35} +\fetdef\ouvert{36} +\fetdef\plusstop{37} +\fetdef\upbow{38} +\fetdef\downbow{39} +\fetdef\reverseturn{40} +\fetdef\turn{41} +\fetdef\trill{42} +\fetdef\upedalheel{43} +\fetdef\dpedalheel{44} +\fetdef\upedaltoe{45} +\fetdef\dpedaltoe{46} +\fetdef\flageolet{47} +\fetdef\trilelement{48} +\fetdef\prall{49} +\fetdef\mordent{50} +\fetdef\prallprall{51} +\fetdef\prallmordent{52} +\fetdef\upprall{53} +\fetdef\downprall{54} + +% flags +\fetdef\eighthflag{55} +\fetdef\sixteenthflag{56} +\fetdef\thirtysecondflag{57} +\fetdef\sixtyfourthflag{58} +\fetdef\deighthflag{59} +\fetdef\dsixteenthflag{60} +\fetdef\dthirtysecondflag{61} +\fetdef\dsixtyfourthflag{62} + +% clefs +\fetdef\altoclef{63} +\fetdef\caltoclef{64} +\fetdef\bassclef{65} +\fetdef\cbassclef{66} +\fetdef\violinclef{67} +\fetdef\cviolinclef{68} + diff --git a/tex/feta19.tex b/tex/feta19.tex new file mode 100644 index 0000000000..400ff78e49 --- /dev/null +++ b/tex/feta19.tex @@ -0,0 +1,176 @@ +% Creator: mf-to-table.py version 0.6 +% Automatically generated on +% Do not edit +% input from out/feta19.log +% name +% rests +\fetdef\wholerest{0} +\fetdef\halfrest{1} +\fetdef\outsidewholerest{2} +\fetdef\outsidehalfrest{3} +\fetdef\quartrest{4} +\fetdef\eighthrest{5} +\fetdef\sixteenthrest{6} +\fetdef\thirtysecondrest{7} +\fetdef\sixtyfourthrest{8} +\fetdef\hundredtwentyeighthrest{9} + +% accidentals +\fetdef\sharp{10} +\fetdef\natural{11} +\fetdef\flat{12} +\fetdef\flatflat{13} +\fetdef\sharpsharp{14} + +% dots +\fetdef\dot{15} +\fetdef\repeatcolon{16} + +% balls +\fetdef\brevisball{17} +\fetdef\brevisledger{18} +\fetdef\longaball{19} +\fetdef\longaledger{20} +\fetdef\wholeball{21} +\fetdef\wholeledger{22} +\fetdef\halfball{23} +\fetdef\halfledger{24} +\fetdef\quartball{25} +\fetdef\quartledger{26} + +% scripts +\fetdef\ufermata{27} +\fetdef\dfermata{28} +\fetdef\sforzatoaccent{29} +\fetdef\staccato{30} +\fetdef\ustaccatissimo{31} +\fetdef\dstaccatissimo{32} +\fetdef\tenuto{33} +\fetdef\umarcato{34} +\fetdef\dmarcato{35} +\fetdef\ouvert{36} +\fetdef\plusstop{37} +\fetdef\upbow{38} +\fetdef\downbow{39} +\fetdef\reverseturn{40} +\fetdef\turn{41} +\fetdef\trill{42} +\fetdef\upedalheel{43} +\fetdef\dpedalheel{44} +\fetdef\upedaltoe{45} +\fetdef\dpedaltoe{46} +\fetdef\flageolet{47} +\fetdef\trilelement{48} +\fetdef\prall{49} +\fetdef\mordent{50} +\fetdef\prallprall{51} +\fetdef\prallmordent{52} +\fetdef\upprall{53} +\fetdef\downprall{54} + +% flags +\fetdef\eighthflag{55} +\fetdef\sixteenthflag{56} +\fetdef\thirtysecondflag{57} +\fetdef\sixtyfourthflag{58} +\fetdef\deighthflag{59} +\fetdef\dsixteenthflag{60} +\fetdef\dthirtysecondflag{61} +\fetdef\dsixtyfourthflag{62} + +% clefs +\fetdef\altoclef{63} +\fetdef\caltoclef{64} +\fetdef\bassclef{65} +\fetdef\cbassclef{66} +\fetdef\violinclef{67} +\fetdef\cviolinclef{68} + +% Creator: mf-to-table.py version 0.6 +% Automatically generated on +% Do not edit +% input from out/feta19.log +% name +% rests +\fetdef\wholerest{0} +\fetdef\halfrest{1} +\fetdef\outsidewholerest{2} +\fetdef\outsidehalfrest{3} +\fetdef\quartrest{4} +\fetdef\eighthrest{5} +\fetdef\sixteenthrest{6} +\fetdef\thirtysecondrest{7} +\fetdef\sixtyfourthrest{8} +\fetdef\hundredtwentyeighthrest{9} + +% accidentals +\fetdef\sharp{10} +\fetdef\natural{11} +\fetdef\flat{12} +\fetdef\flatflat{13} +\fetdef\sharpsharp{14} + +% dots +\fetdef\dot{15} +\fetdef\repeatcolon{16} + +% balls +\fetdef\brevisball{17} +\fetdef\brevisledger{18} +\fetdef\longaball{19} +\fetdef\longaledger{20} +\fetdef\wholeball{21} +\fetdef\wholeledger{22} +\fetdef\halfball{23} +\fetdef\halfledger{24} +\fetdef\quartball{25} +\fetdef\quartledger{26} + +% scripts +\fetdef\ufermata{27} +\fetdef\dfermata{28} +\fetdef\sforzatoaccent{29} +\fetdef\staccato{30} +\fetdef\ustaccatissimo{31} +\fetdef\dstaccatissimo{32} +\fetdef\tenuto{33} +\fetdef\umarcato{34} +\fetdef\dmarcato{35} +\fetdef\ouvert{36} +\fetdef\plusstop{37} +\fetdef\upbow{38} +\fetdef\downbow{39} +\fetdef\reverseturn{40} +\fetdef\turn{41} +\fetdef\trill{42} +\fetdef\upedalheel{43} +\fetdef\dpedalheel{44} +\fetdef\upedaltoe{45} +\fetdef\dpedaltoe{46} +\fetdef\flageolet{47} +\fetdef\trilelement{48} +\fetdef\prall{49} +\fetdef\mordent{50} +\fetdef\prallprall{51} +\fetdef\prallmordent{52} +\fetdef\upprall{53} +\fetdef\downprall{54} + +% flags +\fetdef\eighthflag{55} +\fetdef\sixteenthflag{56} +\fetdef\thirtysecondflag{57} +\fetdef\sixtyfourthflag{58} +\fetdef\deighthflag{59} +\fetdef\dsixteenthflag{60} +\fetdef\dthirtysecondflag{61} +\fetdef\dsixtyfourthflag{62} + +% clefs +\fetdef\altoclef{63} +\fetdef\caltoclef{64} +\fetdef\bassclef{65} +\fetdef\cbassclef{66} +\fetdef\violinclef{67} +\fetdef\cviolinclef{68} + diff --git a/tex/feta20.tex b/tex/feta20.tex new file mode 100644 index 0000000000..9175549824 --- /dev/null +++ b/tex/feta20.tex @@ -0,0 +1,176 @@ +% Creator: mf-to-table.py version 0.6 +% Automatically generated on +% Do not edit +% input from out/feta20.log +% name +% rests +\fetdef\wholerest{0} +\fetdef\halfrest{1} +\fetdef\outsidewholerest{2} +\fetdef\outsidehalfrest{3} +\fetdef\quartrest{4} +\fetdef\eighthrest{5} +\fetdef\sixteenthrest{6} +\fetdef\thirtysecondrest{7} +\fetdef\sixtyfourthrest{8} +\fetdef\hundredtwentyeighthrest{9} + +% accidentals +\fetdef\sharp{10} +\fetdef\natural{11} +\fetdef\flat{12} +\fetdef\flatflat{13} +\fetdef\sharpsharp{14} + +% dots +\fetdef\dot{15} +\fetdef\repeatcolon{16} + +% balls +\fetdef\brevisball{17} +\fetdef\brevisledger{18} +\fetdef\longaball{19} +\fetdef\longaledger{20} +\fetdef\wholeball{21} +\fetdef\wholeledger{22} +\fetdef\halfball{23} +\fetdef\halfledger{24} +\fetdef\quartball{25} +\fetdef\quartledger{26} + +% scripts +\fetdef\ufermata{27} +\fetdef\dfermata{28} +\fetdef\sforzatoaccent{29} +\fetdef\staccato{30} +\fetdef\ustaccatissimo{31} +\fetdef\dstaccatissimo{32} +\fetdef\tenuto{33} +\fetdef\umarcato{34} +\fetdef\dmarcato{35} +\fetdef\ouvert{36} +\fetdef\plusstop{37} +\fetdef\upbow{38} +\fetdef\downbow{39} +\fetdef\reverseturn{40} +\fetdef\turn{41} +\fetdef\trill{42} +\fetdef\upedalheel{43} +\fetdef\dpedalheel{44} +\fetdef\upedaltoe{45} +\fetdef\dpedaltoe{46} +\fetdef\flageolet{47} +\fetdef\trilelement{48} +\fetdef\prall{49} +\fetdef\mordent{50} +\fetdef\prallprall{51} +\fetdef\prallmordent{52} +\fetdef\upprall{53} +\fetdef\downprall{54} + +% flags +\fetdef\eighthflag{55} +\fetdef\sixteenthflag{56} +\fetdef\thirtysecondflag{57} +\fetdef\sixtyfourthflag{58} +\fetdef\deighthflag{59} +\fetdef\dsixteenthflag{60} +\fetdef\dthirtysecondflag{61} +\fetdef\dsixtyfourthflag{62} + +% clefs +\fetdef\altoclef{63} +\fetdef\caltoclef{64} +\fetdef\bassclef{65} +\fetdef\cbassclef{66} +\fetdef\violinclef{67} +\fetdef\cviolinclef{68} + +% Creator: mf-to-table.py version 0.6 +% Automatically generated on +% Do not edit +% input from out/feta20.log +% name +% rests +\fetdef\wholerest{0} +\fetdef\halfrest{1} +\fetdef\outsidewholerest{2} +\fetdef\outsidehalfrest{3} +\fetdef\quartrest{4} +\fetdef\eighthrest{5} +\fetdef\sixteenthrest{6} +\fetdef\thirtysecondrest{7} +\fetdef\sixtyfourthrest{8} +\fetdef\hundredtwentyeighthrest{9} + +% accidentals +\fetdef\sharp{10} +\fetdef\natural{11} +\fetdef\flat{12} +\fetdef\flatflat{13} +\fetdef\sharpsharp{14} + +% dots +\fetdef\dot{15} +\fetdef\repeatcolon{16} + +% balls +\fetdef\brevisball{17} +\fetdef\brevisledger{18} +\fetdef\longaball{19} +\fetdef\longaledger{20} +\fetdef\wholeball{21} +\fetdef\wholeledger{22} +\fetdef\halfball{23} +\fetdef\halfledger{24} +\fetdef\quartball{25} +\fetdef\quartledger{26} + +% scripts +\fetdef\ufermata{27} +\fetdef\dfermata{28} +\fetdef\sforzatoaccent{29} +\fetdef\staccato{30} +\fetdef\ustaccatissimo{31} +\fetdef\dstaccatissimo{32} +\fetdef\tenuto{33} +\fetdef\umarcato{34} +\fetdef\dmarcato{35} +\fetdef\ouvert{36} +\fetdef\plusstop{37} +\fetdef\upbow{38} +\fetdef\downbow{39} +\fetdef\reverseturn{40} +\fetdef\turn{41} +\fetdef\trill{42} +\fetdef\upedalheel{43} +\fetdef\dpedalheel{44} +\fetdef\upedaltoe{45} +\fetdef\dpedaltoe{46} +\fetdef\flageolet{47} +\fetdef\trilelement{48} +\fetdef\prall{49} +\fetdef\mordent{50} +\fetdef\prallprall{51} +\fetdef\prallmordent{52} +\fetdef\upprall{53} +\fetdef\downprall{54} + +% flags +\fetdef\eighthflag{55} +\fetdef\sixteenthflag{56} +\fetdef\thirtysecondflag{57} +\fetdef\sixtyfourthflag{58} +\fetdef\deighthflag{59} +\fetdef\dsixteenthflag{60} +\fetdef\dthirtysecondflag{61} +\fetdef\dsixtyfourthflag{62} + +% clefs +\fetdef\altoclef{63} +\fetdef\caltoclef{64} +\fetdef\bassclef{65} +\fetdef\cbassclef{66} +\fetdef\violinclef{67} +\fetdef\cviolinclef{68} + diff --git a/tex/feta23.tex b/tex/feta23.tex new file mode 100644 index 0000000000..aeb53e9462 --- /dev/null +++ b/tex/feta23.tex @@ -0,0 +1,176 @@ +% Creator: mf-to-table.py version 0.6 +% Automatically generated on +% Do not edit +% input from out/feta23.log +% name +% rests +\fetdef\wholerest{0} +\fetdef\halfrest{1} +\fetdef\outsidewholerest{2} +\fetdef\outsidehalfrest{3} +\fetdef\quartrest{4} +\fetdef\eighthrest{5} +\fetdef\sixteenthrest{6} +\fetdef\thirtysecondrest{7} +\fetdef\sixtyfourthrest{8} +\fetdef\hundredtwentyeighthrest{9} + +% accidentals +\fetdef\sharp{10} +\fetdef\natural{11} +\fetdef\flat{12} +\fetdef\flatflat{13} +\fetdef\sharpsharp{14} + +% dots +\fetdef\dot{15} +\fetdef\repeatcolon{16} + +% balls +\fetdef\brevisball{17} +\fetdef\brevisledger{18} +\fetdef\longaball{19} +\fetdef\longaledger{20} +\fetdef\wholeball{21} +\fetdef\wholeledger{22} +\fetdef\halfball{23} +\fetdef\halfledger{24} +\fetdef\quartball{25} +\fetdef\quartledger{26} + +% scripts +\fetdef\ufermata{27} +\fetdef\dfermata{28} +\fetdef\sforzatoaccent{29} +\fetdef\staccato{30} +\fetdef\ustaccatissimo{31} +\fetdef\dstaccatissimo{32} +\fetdef\tenuto{33} +\fetdef\umarcato{34} +\fetdef\dmarcato{35} +\fetdef\ouvert{36} +\fetdef\plusstop{37} +\fetdef\upbow{38} +\fetdef\downbow{39} +\fetdef\reverseturn{40} +\fetdef\turn{41} +\fetdef\trill{42} +\fetdef\upedalheel{43} +\fetdef\dpedalheel{44} +\fetdef\upedaltoe{45} +\fetdef\dpedaltoe{46} +\fetdef\flageolet{47} +\fetdef\trilelement{48} +\fetdef\prall{49} +\fetdef\mordent{50} +\fetdef\prallprall{51} +\fetdef\prallmordent{52} +\fetdef\upprall{53} +\fetdef\downprall{54} + +% flags +\fetdef\eighthflag{55} +\fetdef\sixteenthflag{56} +\fetdef\thirtysecondflag{57} +\fetdef\sixtyfourthflag{58} +\fetdef\deighthflag{59} +\fetdef\dsixteenthflag{60} +\fetdef\dthirtysecondflag{61} +\fetdef\dsixtyfourthflag{62} + +% clefs +\fetdef\altoclef{63} +\fetdef\caltoclef{64} +\fetdef\bassclef{65} +\fetdef\cbassclef{66} +\fetdef\violinclef{67} +\fetdef\cviolinclef{68} + +% Creator: mf-to-table.py version 0.6 +% Automatically generated on +% Do not edit +% input from out/feta23.log +% name +% rests +\fetdef\wholerest{0} +\fetdef\halfrest{1} +\fetdef\outsidewholerest{2} +\fetdef\outsidehalfrest{3} +\fetdef\quartrest{4} +\fetdef\eighthrest{5} +\fetdef\sixteenthrest{6} +\fetdef\thirtysecondrest{7} +\fetdef\sixtyfourthrest{8} +\fetdef\hundredtwentyeighthrest{9} + +% accidentals +\fetdef\sharp{10} +\fetdef\natural{11} +\fetdef\flat{12} +\fetdef\flatflat{13} +\fetdef\sharpsharp{14} + +% dots +\fetdef\dot{15} +\fetdef\repeatcolon{16} + +% balls +\fetdef\brevisball{17} +\fetdef\brevisledger{18} +\fetdef\longaball{19} +\fetdef\longaledger{20} +\fetdef\wholeball{21} +\fetdef\wholeledger{22} +\fetdef\halfball{23} +\fetdef\halfledger{24} +\fetdef\quartball{25} +\fetdef\quartledger{26} + +% scripts +\fetdef\ufermata{27} +\fetdef\dfermata{28} +\fetdef\sforzatoaccent{29} +\fetdef\staccato{30} +\fetdef\ustaccatissimo{31} +\fetdef\dstaccatissimo{32} +\fetdef\tenuto{33} +\fetdef\umarcato{34} +\fetdef\dmarcato{35} +\fetdef\ouvert{36} +\fetdef\plusstop{37} +\fetdef\upbow{38} +\fetdef\downbow{39} +\fetdef\reverseturn{40} +\fetdef\turn{41} +\fetdef\trill{42} +\fetdef\upedalheel{43} +\fetdef\dpedalheel{44} +\fetdef\upedaltoe{45} +\fetdef\dpedaltoe{46} +\fetdef\flageolet{47} +\fetdef\trilelement{48} +\fetdef\prall{49} +\fetdef\mordent{50} +\fetdef\prallprall{51} +\fetdef\prallmordent{52} +\fetdef\upprall{53} +\fetdef\downprall{54} + +% flags +\fetdef\eighthflag{55} +\fetdef\sixteenthflag{56} +\fetdef\thirtysecondflag{57} +\fetdef\sixtyfourthflag{58} +\fetdef\deighthflag{59} +\fetdef\dsixteenthflag{60} +\fetdef\dthirtysecondflag{61} +\fetdef\dsixtyfourthflag{62} + +% clefs +\fetdef\altoclef{63} +\fetdef\caltoclef{64} +\fetdef\bassclef{65} +\fetdef\cbassclef{66} +\fetdef\violinclef{67} +\fetdef\cviolinclef{68} + diff --git a/tex/feta26.tex b/tex/feta26.tex new file mode 100644 index 0000000000..218a27366d --- /dev/null +++ b/tex/feta26.tex @@ -0,0 +1,176 @@ +% Creator: mf-to-table.py version 0.6 +% Automatically generated on +% Do not edit +% input from out/feta26.log +% name +% rests +\fetdef\wholerest{0} +\fetdef\halfrest{1} +\fetdef\outsidewholerest{2} +\fetdef\outsidehalfrest{3} +\fetdef\quartrest{4} +\fetdef\eighthrest{5} +\fetdef\sixteenthrest{6} +\fetdef\thirtysecondrest{7} +\fetdef\sixtyfourthrest{8} +\fetdef\hundredtwentyeighthrest{9} + +% accidentals +\fetdef\sharp{10} +\fetdef\natural{11} +\fetdef\flat{12} +\fetdef\flatflat{13} +\fetdef\sharpsharp{14} + +% dots +\fetdef\dot{15} +\fetdef\repeatcolon{16} + +% balls +\fetdef\brevisball{17} +\fetdef\brevisledger{18} +\fetdef\longaball{19} +\fetdef\longaledger{20} +\fetdef\wholeball{21} +\fetdef\wholeledger{22} +\fetdef\halfball{23} +\fetdef\halfledger{24} +\fetdef\quartball{25} +\fetdef\quartledger{26} + +% scripts +\fetdef\ufermata{27} +\fetdef\dfermata{28} +\fetdef\sforzatoaccent{29} +\fetdef\staccato{30} +\fetdef\ustaccatissimo{31} +\fetdef\dstaccatissimo{32} +\fetdef\tenuto{33} +\fetdef\umarcato{34} +\fetdef\dmarcato{35} +\fetdef\ouvert{36} +\fetdef\plusstop{37} +\fetdef\upbow{38} +\fetdef\downbow{39} +\fetdef\reverseturn{40} +\fetdef\turn{41} +\fetdef\trill{42} +\fetdef\upedalheel{43} +\fetdef\dpedalheel{44} +\fetdef\upedaltoe{45} +\fetdef\dpedaltoe{46} +\fetdef\flageolet{47} +\fetdef\trilelement{48} +\fetdef\prall{49} +\fetdef\mordent{50} +\fetdef\prallprall{51} +\fetdef\prallmordent{52} +\fetdef\upprall{53} +\fetdef\downprall{54} + +% flags +\fetdef\eighthflag{55} +\fetdef\sixteenthflag{56} +\fetdef\thirtysecondflag{57} +\fetdef\sixtyfourthflag{58} +\fetdef\deighthflag{59} +\fetdef\dsixteenthflag{60} +\fetdef\dthirtysecondflag{61} +\fetdef\dsixtyfourthflag{62} + +% clefs +\fetdef\altoclef{63} +\fetdef\caltoclef{64} +\fetdef\bassclef{65} +\fetdef\cbassclef{66} +\fetdef\violinclef{67} +\fetdef\cviolinclef{68} + +% Creator: mf-to-table.py version 0.6 +% Automatically generated on +% Do not edit +% input from out/feta26.log +% name +% rests +\fetdef\wholerest{0} +\fetdef\halfrest{1} +\fetdef\outsidewholerest{2} +\fetdef\outsidehalfrest{3} +\fetdef\quartrest{4} +\fetdef\eighthrest{5} +\fetdef\sixteenthrest{6} +\fetdef\thirtysecondrest{7} +\fetdef\sixtyfourthrest{8} +\fetdef\hundredtwentyeighthrest{9} + +% accidentals +\fetdef\sharp{10} +\fetdef\natural{11} +\fetdef\flat{12} +\fetdef\flatflat{13} +\fetdef\sharpsharp{14} + +% dots +\fetdef\dot{15} +\fetdef\repeatcolon{16} + +% balls +\fetdef\brevisball{17} +\fetdef\brevisledger{18} +\fetdef\longaball{19} +\fetdef\longaledger{20} +\fetdef\wholeball{21} +\fetdef\wholeledger{22} +\fetdef\halfball{23} +\fetdef\halfledger{24} +\fetdef\quartball{25} +\fetdef\quartledger{26} + +% scripts +\fetdef\ufermata{27} +\fetdef\dfermata{28} +\fetdef\sforzatoaccent{29} +\fetdef\staccato{30} +\fetdef\ustaccatissimo{31} +\fetdef\dstaccatissimo{32} +\fetdef\tenuto{33} +\fetdef\umarcato{34} +\fetdef\dmarcato{35} +\fetdef\ouvert{36} +\fetdef\plusstop{37} +\fetdef\upbow{38} +\fetdef\downbow{39} +\fetdef\reverseturn{40} +\fetdef\turn{41} +\fetdef\trill{42} +\fetdef\upedalheel{43} +\fetdef\dpedalheel{44} +\fetdef\upedaltoe{45} +\fetdef\dpedaltoe{46} +\fetdef\flageolet{47} +\fetdef\trilelement{48} +\fetdef\prall{49} +\fetdef\mordent{50} +\fetdef\prallprall{51} +\fetdef\prallmordent{52} +\fetdef\upprall{53} +\fetdef\downprall{54} + +% flags +\fetdef\eighthflag{55} +\fetdef\sixteenthflag{56} +\fetdef\thirtysecondflag{57} +\fetdef\sixtyfourthflag{58} +\fetdef\deighthflag{59} +\fetdef\dsixteenthflag{60} +\fetdef\dthirtysecondflag{61} +\fetdef\dsixtyfourthflag{62} + +% clefs +\fetdef\altoclef{63} +\fetdef\caltoclef{64} +\fetdef\bassclef{65} +\fetdef\cbassclef{66} +\fetdef\violinclef{67} +\fetdef\cviolinclef{68} + diff --git a/tex/lilyponddefs.tex b/tex/lilyponddefs.tex index a5bc3c4fde..aa31034329 100644 --- a/tex/lilyponddefs.tex +++ b/tex/lilyponddefs.tex @@ -70,44 +70,72 @@ \musixcalc } -\def\cmrtwenty{ + \def\cmrtwenty{ + \font\smalltextfont=cmr8 \font\meterfont=cmbx15 - \font\italicfont=cmti10 scaled \magstep1 - \font\musicmathfont=cmsy10 - \font\normaltextfont=cmr10 %\textfont is a primitive - \font\smalltextfont=cmr8 - \font\boldfont=cmbx10 - \font\textmusic=cmmi12 - \font\largefont=cmbx12 -} -\def\cmrsixteen{ - \font\smalltextfont=cmr6 - \font\normaltextfont=cmr8 %\textfont is a primitive - \font\meterfont=cmbx12 - \font\italicfont=cmti9 - \font\textmusic=cmmi10 - \font\boldfont=cmbx8 - \font\largefont=cmbx10 -} -\def\cmreleven{ - \font\smalltextfont=cmr5 - \font\normaltextfont=cmr6 - \font\meterfont=cmbx8 - \font\italicfont=cmti6 - \font\textmusic=cmmi8 - \font\boldfont=cmbx6 - \font\largefont=cmbx8 -} - -\def\cmrthirteen{ - \font\smalltextfont=cmr6 - \font\normaltextfont=cmr7 - \font\meterfont=cmbx9 - \font\italicfont=cmti7 - \font\textmusic=cmmi9 - \font\boldfont=cmbx7 - \font\largefont=cmbx9 -} + \font\textmusic=cmmi12 +% \font\musicmathfont=cmsy10 %%Not used?? /MB + \ifundefined{documentclass} + \font\normaltextfont=cmr10 %\textfont is a primitive + \font\italicfont=cmti10 scaled \magstep1 + \font\boldfont=cmbx10 + \font\largefont=cmbx12 + \else + \def\settext##1{{\normalfont\normalsize ##1}} + \def\setitalic##1{\textit{\normalsize ##1}} + \def\setbold##1{\textbf{\normalsize ##1}} + \def\setlarge##1{\textbf{\large ##1}} + \fi + } + \def\cmrsixteen{ + \font\smalltextfont=cmr6 + \font\meterfont=cmbx12 + \font\textmusic=cmmi10 + \ifundefined{documentclass} + \font\normaltextfont=cmr8 %\textfont is a primitive + \font\italicfont=cmti9 + \font\boldfont=cmbx8 + \font\largefont=cmbx10 + \else + \def\settext##1{{\normalfont\footnotesize ##1}} + \def\setitalic##1{\textit{\small ##1}} + \def\setbold##1{\textbf{\footnotesize ##1}} + \def\setlarge##1{\textbf{\normalsize ##1}} + \fi + } + \def\cmreleven{ + \font\smalltextfont=cmr5 + \font\meterfont=cmbx8 + \font\textmusic=cmmi8 + \ifundefined{documentclass} + \font\normaltextfont=cmr6 + \font\italicfont=cmti6 + \font\boldfont=cmbx6 + \font\largefont=cmbx8 + \else + \def\settext##1{{\normalfont\tiny ##1}} + \def\setitalic##1{\textit{\tiny ##1}} + \def\setbold##1{\textbf{\tiny ##1}} + \def\setlarge##1{\textbf{\footnotesize ##1}} + \fi + } + + \def\cmrthirteen{ + \font\smalltextfont=cmr6 + \font\meterfont=cmbx9 + \font\textmusic=cmmi9 + \ifundefined{documentclass} + \font\normaltextfont=cmr7 + \font\italicfont=cmti7 + \font\boldfont=cmbx7 + \font\largefont=cmbx9 + \else + \def\settext##1{{\normalfont\scriptsize ##1}} + \def\setitalic##1{\textit{\scriptsize ##1}} + \def\setbold##1{\textbf{\scriptsize ##1}} + \def\setlarge##1{\textbf{\small ##1}} + \fi + } \def\musixsixteendefs{ \sixteenfonts \musixcalc @@ -223,12 +251,15 @@ \def\rulesym#1#2{\dimen0=#1% \vrule height .5\dimen0 depth .5\dimen0 width #2} -\def\settext#1{\normaltextfont #1} -\def\setitalic#1{\italicfont #1} -\def\setbold#1{\boldfont #1} +\ifundefined{documentclass} + \def\settext#1{\normaltextfont #1} + \def\setitalic#1{\italicfont #1} + \def\setbold#1{\boldfont #1} + \def\setlarge#1{\largefont #1} +\fi + \def\setdynamic#1{\dynfont #1} \def\setfinger#1{\fingerfont #1} -\def\setlarge#1{\largefont #1} \def\setnumber#1{\fetanummer #1} % the interline symbol. Redefine to remove it.