--- /dev/null
+%
+% TITLE=The music notation with computer bibliography
+% AUTHOR=Han-Wen Nienhuys
+%
+
+@String{CitH = {Computing and the Humanities}}
+@String{CMJ = {Computer Music Journal}}
+
+@TechRep=ort{roush88,
+ note = {Rules on formatting music formulated for use in computers. Mainly distilled from [Ross] HWN},
+ year = {1988},
+ title = {Music Formatting Guidelines},
+ author = {D. Roush},
+ number = {OSU-CISRC-3/88-TR10},
+ institution = {Department of Computer and Information Science, The Ohio State University},
+}
+
+
+
+@InProceedings{assayaag86,
+ author = {G. Assayaag and D. Timis},
+ title = {A Toolbox for music notation},
+ booktitle = {Proceedings of the 1986 International Computer Music Conference},
+ year = 1986
+}
+
+% byrd
+@PhdThesis {byrd85,
+ year = {1985},
+ title = {Music Notation by Computer},
+ author = {Donald Byrd},
+ school = {Indiana University},
+}
+
+@Article {byrd74,
+ year = {1974},
+ title = {A System for Music Printing by Computer},
+ author = {Donald Byrd},
+ journal = {Computers and the Humanities},
+ volume ={8},
+ pages ={161-72},
+}
+
+@Article{byrd94,
+ author = {Donald Byrd},
+ title = {Music Notation Software and Intelligence},
+ journal = {Computer Music Journal},
+year = 1994,
+pages = {17--20},
+ volume = 18,
+ number = 1,
+
+ note = {Byrd (author of Nightinggale) shows four problematic
+fragments of notation, and rants about notation programs that try to
+exhibit intelligent behaviour. HWN}
+}
+
+
+
+@Article{ericson75,
+ author = {R. F. Ericson},
+ title = {The DARMS Project: A status report},
+ journal = {Computing in the humanities},
+ year = 1975,
+ volume = 9,
+ number = 6,
+ pages = {291--298},
+ note = {Gourlay\cite{gourlay86} writes: A discussion of the design
+ and potential uses of the DARMS music-description language.}
+}
+
+
+@Article{field-richards93,
+ author = {H.S. Field-Richards},
+ title = {Cadenza: A Music Description Language},
+ journal = CMJ,
+ year = 1993,
+ volume = 17,
+ number = 4,
+
+ note = {A description through examples of a music entry language.
+Apparently it has no formal semantics. There is also no
+implementation of notation convertor. HWN}
+}
+
+
+
+@Article{bielawa93,
+ author = {Herbert Bielawa},
+ title = {Review of Sibelius 7},
+ journal = CMJ,
+ year = {1993?},
+
+ note = {A raving review/tutorial of Sibelius 7 for Acorn. (And did
+they seriously program a RISC chip in ... assembler ?!) HWN}
+
+
+}
+
+@Article{sloan93,
+ author = {Donald Sloan},
+ title = {Aspects of Music Representation in HyTime/SMDL},
+ journal = CMJ,
+ year = 1993,
+ volume = 17,
+ number = 4,
+
+note = {An introduction into HyTime and its score description variant
+SMDL. With a short example that is quite lengthy in SMDL}
+}
+
+@Article{wiggins93,
+ author = {Geraint Wiggins and Eduardo Miranda and Alaaaan Smaill and Mitch Harris},
+ title = {A Framework for the evaluation of music representation systems},
+ journal = CMJ,
+ year = 1993,
+ volume = 17,
+ number = 3,
+
+ note = {A categorisation of music representation systems (languages,
+OO systems etc) splitted into high level and low level expressiveness.
+The discussion of Charm and parallel processing for music
+representation is rather vague. HWN}
+
+}
+
+
+
+@Article{dannenberg93,
+ author = {Roger B. Dannenberg},
+ title = {Music Representation: Issues, Techniques, and Systems},
+ journal = CMJ,
+ year = 1993,
+ volume = 17,
+ number = 3,
+
+ note = {The title says it all. This article does not make any
+statements, it points to some problems and solutions with music
+representation. HWN},
+
+}
+
+@Article{rothstein93,
+ author = {Joseph Rothstein},
+ title = {Review of Passport Designs' Encore Music Notation Software},
+ journal = CMJ,
+ year = {?},
+
+note = {A no-science-here review of Encore. HWN}
+
+}
+
+
+
+@Article{belkin94,
+ author = {Alan Belkin},
+ title = {Macintosh Notation Software: Present and Future},
+ journal = CMJ,
+ year = 1994,
+ volume = 18,
+ number = 1,
+
+ note = {Some music notation systems are analysed for ease of use, MIDI
+ handling. No rocket science here. The article ends with a plea for a
+ standard notation format. HWN},
+
+}
+
+@Book {smith73,
+ year = {1973},
+ title = {Editing and Printing Music by Computer},
+ author = {Leland Smith},
+ totalentry = {Journal of Music Theory},
+ volume={17},
+ pages ={292-309},
+ note = {Gourlay\cite{gourlay86} writes: A discussion of Smith's music-printing system}
+}
+
+
+@InProceedings{montel97,
+ author = {Dominique Montel},
+ title = {La gravure de la musique, lisibilit\'e esth\'etique, respect de l'oevre},
+ booktitle = {Musique \& Notations},
+ year = 1997,
+ address={Lyon},
+ editors ={Genevois \& Orlarey}
+}
+
+
+% Gomberg
+@PhdThesis {gomber75,
+ year = {1975},
+ title = {A Computer-Oriented System for Music Printing},
+ author = {David A Gomberg},
+ school = {Washington University},
+}
+
+@Book {gomberg,
+ title = {A Computer-oriented System for Music Printing},
+ author = {David A. Gomberg},
+ journal = CitH,
+ volume={11},
+ month = {march},
+ year = {1977},
+ pages = {63-80},
+ note = {Gourlay \cite{gourlay86} writes: "A discussion of the
+ problems of representing the conventions of musical notation in
+ computer algorithms."}
+
+}
+
+
+
+@Book {CASR,
+ note = {Annual editions since 1985, many containing surveys of music typesetting technology. SP},
+ title = {Directory of Computer Assisted Research in Musicology},
+ author = {Walter B Hewlett and Eleanor Selfridge-Field},
+ totalentry = {Menlo Park, CA: Center for Computer Assisted Research in the Humanities},
+}
+
+
+
+% LIME
+@Article {haken93,
+ note = {A description of Lime internals (which resemble older (before 0.0.68pre) LilyPond data structures) HWN},
+ year = {1993},
+ title = {The Tilia Music Representation: Extensibility, Abstraction, and Notation Contexts for the Lime Music Editor},
+ author = {Lippold Haken and Dorothea Blostein},
+ journal = {Computer Music Journal},
+ volume= {17},
+ number={3},
+ pages = {43--58},
+}
+
+@InProceedings{haken95,
+ year = {1995},
+ title = {A New Algorithm for Horizontal Spacing of Printed Music},
+ author = {Lippold Haken and Dorothea Blostein},
+ booktitle = {International Computer Music Conference},
+ address={Banff},
+ month={Sept},
+ pages = {118-119},
+ note = {This describes an algorithm which uses springs between adjacent columns. This algorithm is a "subclass" of the LilyPond algorithm. HWN},
+}
+
+@Article {blostein91,
+ note = {This paper provides a shallow overview of the algorithm used in LIME for spacing individual lines. HWN},
+ year = {1991},
+ title = {Justification of Printed Music},
+ author = {Dorothea Blostein and Lippold Haken},
+ journal = {Communications of the ACM},
+ volume= {J34},
+ number= {3},
+ month= {March},
+ pages = {88-99},
+}
+
+
+@Article{blostein94,
+ author = {Dorothea Blostein and Lippold Haken},
+ title = {The Lime Music Editor: A Diagram Editor Involving Complex
+ Translations},
+ journal = {Software Practice and Experience},
+ year = {1994},
+ volume = {24},
+ number = {3},
+ month = {march},
+ pages = {289--306},
+ note = {A description of various conversions,
+decisions and issues relating to this interactive editor HWN},
+}
+
+@InProceedings{bouzaiene98:_une,
+ author = {Nabil Bouzaiene and Lo\"ic Le Gall and Emmanuel Saint-James},
+ title = {Une biblioth\`eque pour la notation musicale baroque},
+ booktitle = {EP '98},
+ year = 1998,
+ series = {LNCS},
+
+ note = {Describes ATYS, an extension to Berlioz, that can mimick
+ handwritten baroque style beams}
+}
+
+
+
+@MastersThesis{gall97:_creat,
+ author = {Lo\"ic Le Gall},
+ title = {Cr\'eation d'une police adapt\'ee \`a la notation musicale baroque},
+school = {\'Ecole Estienne},
+year = 1997,
+}
+
+@InProceedings{balaban88,
+ author = {M. Balaban},
+ title = {A Music Workstation Based on Multiple Hierarchical Views of Music},
+ booktitle = {Proceedings of the 1988 International Computer Music Conference},
+ year = 1988,
+ address = {San Francisco},
+ organization = {International Computer Music Association}
+}
+
+%
+% MusiCopy
+%
+@TechReport {gourlay87-spacing,
+ note = {Algorithm for generating spacing in one line of (polyphonic) music, tailored for use with MusiCopy. LilyPond uses a variant of it (as of pl 76) HWN},
+ year = {1987},
+ title = {Spacing a Line of Music,},
+ author = {John S. Gourlay},
+ number = {OSU-CISRC-10/87-TR35},
+ institution ={Department of Computer and Information Science, The Ohio State University},
+}
+
+
+@TechReport {parish87,
+ note = {A brief overview of {MusiCopy} HWN},
+ year = {1987},
+ title = {{MusiCopy}: An automated Music Formatting System},
+ author = {Allen Parish and Wael A. Hegazy and John S. Gourlay and Dean K. Roush and F. Javier Sola},
+ totalentry = {OSU-CISRC-10/87-TR29},
+ institution ={Department of Computer and Information Science, The Ohio State University},
+}
+
+
+@TechReport {gourlay87-formatting,
+note = {This paper discusses the development of algorithms for the
+formatting of musical scores (from abstract). It also appeared at
+PROTEXT III, Ireland 1986},
+ year = {1987},
+ title = {Computer Formatting of Music},
+ author = {John S. Gourlay and A. Parrish
+and D. Roush and F. Sola and Y. Tien},
+ number = {OSU-CISRC-2/87-TR3},
+ institution ={Department of Computer and Information Science,
+The Ohio State University},
+}
+
+
+@TechReport {hegazy87,
+ year = {1987},
+ title = {On the Implementation of the {MusiCopy} Language Processor,},
+ author = {Wael A. Hegazy},
+ number = {OSU-CISRC-10/87-TR34},
+ institution={Department of Computer and Information Science, The Ohio State University},
+
+ note = {Describes the "parser" which converts {MusiCopy} MDL to
+ MusiCopy Simultaneities and columns.
+
+MDL is short for Music Description Language\cite{gourlay86}. It
+accepts music descriptions that are organised into measures filled
+with voices, those filled notes. The measures can be arranged
+simultaneously or sequentially. To address the 2-dimensionality,
+almost all constructs in MDL must be labeled.
+
+MDL uses begin/end markers for attribute values and spanners.
+Rightfully the author concludes that MusiCopy must administrate a
+"state" variable containing both properties and current spanning symbols.
+
+MusiCopy attaches graphic information to the objects constructed in
+the input: the elements of the input are partially complete graphic
+objects.
+
+Since the design goals of both LilyPond and MusiCopy were roughly the
+same, both systems have superficial similarities: the details of the
+input format, the notation of "musical state". However, LilyPond
+stresses extensibility, modularity and separation between content and
+presentation much more, and this shows: LilyPond is more flexible. To
+be fair: development of MusiCopy was abandoned in 1987, so it is not
+surprising that LilyPond is more mature.
+},
+
+}
+
+
+@TechReport {hegazy87-breaking,
+ note = {This generalizes \TeX's breaking algorithm to music. It also appeared in Document Manipulation and Typography, J.C. van Vliet (ed) 1988. HWN},
+ year = {1987},
+ title = {Optimal line breaking in music},
+ author = {Wael A. Hegazy and John S. Gourlay},
+ number = {OSU-CISRC-8/87-TR33},
+ institution={Department of Computer and Information Science, The Ohio State University,},
+}
+
+
+@TechReport {roush87,
+ note = {User manual of MusiCopy. Includes an impressive example piece. HWN},
+ year = {1987},
+ title = {Using {MusiCopy}},
+ author = {Dean K. Roush},
+ number = {OSU-CISRC-18/87-TR31},
+ institution={Department of Computer and Information Science, The Ohio State University},
+}
+
+
+@TechReport {parrish87-simultaneities,
+ note = {Placement of balls, stems, dots which occur at the same moment ("Simultaneity") HWN},
+ year = {1987},
+ title = {Computer Formatting of Musical Simultaneities,},
+ author = {A. Parrish and John S. Gourlay},
+ institution={Department of Computer and Information Science, The Ohio State University},
+ number = {OSU-CISRC-10/87-TR28},
+}
+
+
+@TechReport {sola87,
+ note = {Overview of a procedure for generating slurs HWN},
+ year = {1987},
+ title = {Computer Design of Musical Slurs, Ties and Phrase Marks,},
+ author = {F. Sola},
+ institution={Department of Computer and Information Science, The Ohio State University},
+ number = {OSU-CISRC-10/87-TR32},
+}
+
+
+@TechReport {sola87-beams,
+ institution={Department of Computer and Information Science, The Ohio State University},
+ note = {Calculating beam slopes HWN},
+ year = {1987},
+ title = {Design of Musical Beams,},
+ author = {F. Sola and D. Roush},
+ number = {OSU-CISRC-10/87-TR30},
+}
+
+
+@Article {gourlay86,
+ note = {This paper describes the {MusiCopy} musicsetting system and an input language to go with it. HWN},
+ year = {1986},
+ title = {A language for music printing},
+ author = {John. S. Gourlay},
+ journal = {Communications of the ACM},
+ volume= {29},
+ number ={5},
+ pages = {388--401},
+}
+
+
+
+@Article {rader96,
+ note = {Describes a system called MusicEase, and explains that it uses "constraints" (which go unexplained) to automatically position various elements. HWN},
+ year = {1996},
+ title = {Creating Printed Music Automatically},
+ author = {Gary M. Rader},
+ journal = {Computer},
+ volume={29},
+ number={6},
+ month={June},
+ pages = {61--69},
+}
+
+
+
+
+@PhdThesis {page88,
+ note = {Don't ask Stephen for a copy. Write to the Bodleian Library, Oxford, or to the British Library, instead. SP},
+ year = {1988},
+ title = {Computer Tools for Music Information Retrieval},
+ author = {Stephen Dowland Page},
+ school ={Dissertation University of Oxford},
+}
+
+@MastersThesis{roelofs91,
+ note = {This dutch thesis describes a simplistic (monophonic) typesetting system, and focuses on the breaking algorithm, which is taken from Hegazy & Gourlay HWN},
+ year = {1991},
+ title = {Een Geautomatiseerd Systeem voor het Afdrukken van Muziek},
+ author = {Ren\'e Roelofs},
+ school={Erasmus Universiteit Rotterdam},
+ number={45327},
+ translation = {``An automated system for printing music'' Master's Thesis Managerial Computer Science.},
+}
+
+
+@Article {filgueiras93,
+ year = {1993},
+ title = {Representation and manipulation of music documents in SceX},
+ author = {Miguel Filgueiras and Jos\'e Paulo Leal},
+ journal= {Electronic Publishing},
+ volume={6},
+ number={4}, pages = {507--518},
+
+}
+
+
+@Article {foxley87,
+ note = {A paper on a TROFF preprocessor to typeset music. The output shown is not very sophisticated, and contains some typographical atrocities HWN},
+ year = {1987},
+ title = {Music --- A language for typesetting music scores},
+ author = {Eric Foxley},
+ journal = {Software --- Practice and Experience},
+ volume = {17},
+ number = {8},
+ pages = {485-502},
+}
+
+
+@Book {filgueiras96,
+ year = {1996},
+ title = {Implementing a Symbolic Music Processing System},
+ author = {Miguel Filgueiras},
+ totalentry = {LIACC, Universidade do Porto, 1996; submitted},
+}
+
+@Book {filgueiras?,
+ title = {Some Music Typesetting Algorithms},
+ author = {Miguel Filgueiras},
+ totalentry = {Miguel Filgueiras. ``Some Music Typesetting Algorithms''. LIACC, Universidade do Porto, forthcoming},
+}
+
+
+@Article {colorado-web,
+ author ={Alyssa Lamb},
+ note = {Webpages about engraving (designed with finale users in mind) (sic) HWN},
+ institution = {The University of Colorado},
+ title ={The University of Colorado Music Engraving page.},
+ HTML={http://www.cc.colorado.edu/Dept/MU/Musicpress/},
+ year={1996}
+}
+
+
+
+
+@Article {Langston90,
+ note = {This paper deals with some command-line
+ tools for music editing and playback. It doesn't mention notation
+ issues, but does come with the grand idea (not) of using music to
+ monitor complex systems. Imagine your nuclear plant supervisor to
+ use AC/DC for checking the reactor HWN},
+
+ year = {1990},
+ title = {Unix music tools at Bellcore},
+ author = {Peter S. Langston},
+ journal={Software --- Practice and Experience},
+ volume={20},
+ number={S1},
+ pages={47--61},
+}
+
+
+
+@Article {tablature-web,
+ note = {FAQ (with answers) about TAB, the ASCII variant of Tablature. HWN},
+ title = {how to read and write tab: a guide to tab notation},
+ author = {Howard Wright},
+ email={Howard.Wright@ed.ac.uk},
+ HTML={http://wabakimi.carleton.ca/~phacket2/guitar/tabfaq.html},
+}
+
+
+@Article {niff-web,
+ note = {Specs for NIFF, a reasonably comprehensive but binary (yuk) format for notation HWN},
+
+ year = {1995},
+ title = {NIFF6a Notation Interchange File Format},
+ author = {Cindy Grande},
+ publisher={Grande Software Inc.},
+ HTML= {http://www.jtauber.com/music/encoding/niff/},
+ ftp = {ftp://blackbox.cartah.washington.edu}
+}
+
+
+@Article {smdl-web,
+ author={unknown},
+ title = {SMDL, Standard Musical Description Language},
+ pdf= {ftp://ftp.ornl.gov/pub/sgml/wg8/smdl/10743.pdf},
+ note={ISO/IEC DIS 10743
+
+SGML instance for describing music. Very comprehensive in music
+definition, but no support for notation / performance whatsoever (They
+basically say: "You can embed a NIFF or MIDI file") HWN}
+
+},
+}
+
+@TechReport{Ornstein83,
+ author={Ornstein, Severo M. and John Turner Maxwell III},
+ title={Mockingbird: A Composer's Amanuensis},
+ institution={Xerox Palo Alto Research Center},
+ address={3333 Coyote Hill Road, Palo Alto, CA, 94304},
+ number={CSL-83-2},
+ month={January},
+ year={1983}
+}
+
+
+
+@Article{Ornstein84,
+ author={Ornstein, Severo M. and John Turner Maxwell III},
+ title={Mockingbird: A Composer's Amanuensis},
+ journal= {Byte},
+ volume= 9,
+ month = {January},
+ year= { 1984},
+ note={A discussion of an interactive and graphical computer system for
+music composition}
+
+}
+
+@PhdThesis{mueller90:_inter_bearb_musik,
+ author = {Giovanni M\"uller},
+ title = {Interaktive Bearbeitung konventioneller Musiknotation},
+ school = {Eidgen\"ossischen Technischen Hochschule Z\"urich},
+ year = 1990,
+
+note = {This is about engraver-quality typesetting with computers. It
+accepts the axiom that notation is too difficult to generate
+automatically. The result is that a notation program should be a
+WYSIWYG editor that allows one to tweak everything.
+
+The implementation therefore is quite "weak". The introductory
+chapters on engraving and notation are well structured and clear,
+though.}
+}
+
+
+%
+% three part study by John Gr/over
+@TechReport{grover89-symbols,
+ author = {John Gr\/over},
+ title = {A computer-oriented description of Music Notation. Part I. The Symbol Inventory},
+ institution = {Department of informatics, University of Oslo},
+ year = 1989,
+ number = 133,
+
+note = {The goal of this series of reports is a full description of
+music formatting. As these largely depend on parameters of fonts, it
+starts with a verbose description of music symbols.
+
+ The subject is treated backwards: from general rules of typesetting
+the author tries to extract dimensions for characters, whereas the
+rules of typesetting (in a particular font) follow from the dimensions
+of the symbols. His symbols do not match (the stringent) constraints
+formulated by eg. \cite{wanske}} }
+
+@TechReport{grover89-twovoices,
+ author = {John Gr\/over},
+ title = {A computer-oriented description of Music Notation. Part II: Two Voice Sharing a Staff, Leger Line Rules, Dot Positioning},
+
+ institution = {Department of informatics, University of Oslo},
+ year = 1989,
+ number = 134,
+
+ note = {A lot rules for what is in the title are formulated. The
+descriptions are long and verbose. The verbosity shows that
+formulating specific rules is not the proper way to approach the
+problem. Instead, the formulated rules should follow from more
+general rules, similar to\cite{parrish87-simultaneities}},
+}
+
+@TechReport{grover89-accidentals,
+ author = {John Gr\/over},
+ title = {A computer-oriented description of Music Notation. Part III: Accidental Positioning},
+ institution = {Department of informatics, University of Oslo},
+ year = 1989,
+ number = 135,
+
+note = {Placement of accidentals crystallised in an enormous set of
+rules. Same remarks as for \cite{grover89-twovoices} applies} }
+
+%JAN: Dit is een autobiem bug.
\score {
- \notes \transpose c'' \context Staff { c\longa*1/4 c\breve*1/2 c1 c2 c4 c8 c16 c32 c64 }
- \paper {
- \translator {
- \StaffContext
- % \remove "Staff_symbol_engraver";
- \remove "Time_signature_engraver";
- \remove "Bar_engraver";
- \remove "Clef_engraver";
- }
-linewidth = -1.;
- }}
+ \notes \transpose c'' \context Voice { c8 c16 c32 c64 }
+ }
a\mf_\fermata a\f-\stopped a\ff-\open a\fff^\trill|
a\fp-\reverseturn a4.\sf a4.\sfz | a4\fz % a\rf
[c8-\prall c-\mordent] [a'-\prallmordent a'-\prallprall]
- [c8-\upprall a'8-\downprall] [a'-\segno c-\wheel] |
+ [c8-\upprall a'8-\downprall] [a'-\segno c-\coda] |
[c \< d e f] [as' ges' f' e']
[cis' dis' c' des'] [cisis' disis' \! ceses' deses'] |
\clef "bass";
%{
Tested Features: lyrics, interleaving lyrics and staffs, repeats,
- auto beaming, applying new rhythm on lyrics
+ auto beaming, applying new rhythm on lyrics, hyphens
%}
\version "1.1.52";
}
tekst = \lyrics{
- Al- tijd is Kort- jak- je ziek, " "
- midden "in de" week maar "'s zon-" dags " " niet.
- "'s Zon-" dags gaat ze naar de kerk, " "
- met een boek vol zil- ver " " werk. " "
- Al- tijd is Kort- jak- je ziek, " "
- midden "in de" week maar "'s zon-" dags " " niet.
+ Al -- tijd is Kort -- jak -- je ziek, " "
+ midden "in de" week maar "'s zon" -- dags " " niet.
+ "'s Zon" -- dags gaat ze naar de kerk, " "
+ met een boek vol zil -- ver " " werk. " "
+ Al -- tijd is Kort -- jak -- je ziek, " "
+ midden "in de" week maar "'s zon" -- dags " " niet.
}
%}
hegedraagjetekst = \lyrics{
- Al- tijd zuigt Bill Gates mijn piek, " "
- "\TeX" is slecht- ser dan mu- " " ziek.
- "'s Zon-" dags gaat het door een raam, " "
- Weet dat ik me er- voor " " schaam.
- Al- tijd zuigt Bill Gates mijn piek, " "
- "\TeX" is slecht- ser dan mu- " " ziek.
+ Al -- tijd zuigt Bill Gates mijn piek, " "
+ "\TeX" is slecht -- ser dan mu -- " " ziek.
+ "'s Zon" -- dags gaat het door een raam, " "
+ Weet dat ik me er -- voor " " schaam.
+ Al -- tijd zuigt Bill Gates mijn piek, " "
+ "\TeX" is slecht -- ser dan mu -- " " ziek.
}
texte = \lyrics{
\property Lyrics . textStyle" = "italic"
% \property Lyrics . textStyle" = "roman"
- Ah! vous dir- ai- je ma- man " "
- Ce qui cau- se mon tour- " " ment
- Pa- pa veut que je rai- son- ne
- Comm' u- ne gran- de per- " " son- ne
- Moi je dis que les bon- bons " "
- Va- lent mieux que la rai- " " son
+ Ah! vous dir -- ai -- je ma -- man " "
+ Ce qui cau -- se mon tour -- " " ment
+ Pa -- pa veut que je rai -- son -- ne
+ Comm' u -- ne gran -- de per -- " " son -- ne
+ Moi je dis que les bon -- bons " "
+ Va -- lent mieux que la rai -- " " son
}
texti = \lyrics{
\property "Lyrics"."textStyle" = "roman"
- Twin- kle, twin- kle, lit- tle star, " "
- How I won- der what you " " are.
- Up a- bove the world so high, " "
- Like a dia- mond in the " " sky. " "
- Twin- kle, twin- kle, lit- tle star, " "
- How I won- der what you " " are!
+ Twin -- kle, twin -- kle, lit -- tle star, " "
+ How I won -- der what you " " are.
+ Up a -- bove the world so high, " "
+ Like a dia -- mond in the " " sky. " "
+ Twin -- kle, twin -- kle, lit -- tle star, " "
+ How I won -- der what you " " are!
}
textii = \lyrics{
- When the bla- zing sun is gone, " "
- When he no- thing shines up- " " on,
- Then you show your lit- tle light, " "
- Twin- kle, twin- kle, all the " " night. " "
- Twin- kle, twin- kle, lit- tle star, " "
- How I won- der what you " " are!
+ When the bla -- zing sun is gone, " "
+ When he no -- thing shines up -- " " on,
+ Then you show your lit -- tle light, " "
+ Twin -- kle, twin -- kle, all the " " night. " "
+ Twin -- kle, twin -- kle, lit -- tle star, " "
+ How I won -- der what you " " are!
}
textiii = \lyrics{
- Then the tra- veler in the dark " "
- Thanks you for your ti- ny " " spark;
+ Then the tra -- veler in the dark " "
+ Thanks you for your ti -- ny " " spark;
He could not see which way to go,
- If you did not twin- kle " " so. " "
- Twin- kle, twin- kle, lit- tle star, " "
- How I won- der what you " " are!
+ If you did not twin -- kle " " so. " "
+ Twin -- kle, twin -- kle, lit -- tle star, " "
+ How I won -- der what you " " are!
}
\score{
SCM d = get_elt_property (dashed_scm_sym);
if (d == SCM_BOOL_F)
- a = lookup_l ()->slur (c);
+ a = lookup_l ()->slur (c, thick);
else
a = lookup_l ()->dashed_slur (c, thick, gh_scm2int (SCM_CDR(d)));
bool continued = broken[Direction (-grow_dir_)];
Real height = paper_l()->staffheight_f () / 6;
+ Real thick = paper_l ()->get_var ("crescendo_thickness");
- return Molecule (lookup_l ()->hairpin (w_dim, height, grow_dir_ < 0, continued));
+ return Molecule (lookup_l ()->hairpin (w_dim, height, thick, grow_dir_ < 0, continued));
}
Molecule*
Molecule ledger_line (Interval) const;
Molecule fill (Box b) const;
Molecule filledbox (Box b) const;
- Molecule hairpin (Real width, Real height, bool decresc, bool continued) const;
+ Molecule hairpin (Real width, Real height, Real thick, bool decresc, bool continued) const;
Molecule tuplet_bracket (Real dy, Real dx, Real gap, Real thick,Real interline, Direction dir) const;
Molecule rest (int, bool outside, String) const;
Molecule accordion (SCM arg, Real interline_f) const;
- Molecule slur (Array<Offset> controls) const;
+ Molecule slur (Array<Offset> controls, Real thick) const;
Molecule text (String style, String text, Paper_def*) const;
- Molecule staff_brace (Real dy) const;
+ Molecule staff_brace (Real dy, int) const;
Molecule staff_bracket (Real dy) const;
Molecule volta (Real h, Real w, Real thick, bool last_b) const;
Molecule special_time_signature (String, int,int, Paper_def*) const;
if (str == "bracket")
return staff_bracket (h);
else if (str == "brace")
- return staff_brace (h);
-
+ {
+ Real staffht = paper_l->get_var ("staffheight");
+ return staff_brace (h,staffht);
+ }
Real kern = paper_l->get_var ("bar_kern");
Real thinkern = paper_l->get_var ("bar_thinkern");
-
+
Molecule thin = simple_bar ("thin", h, paper_l);
Molecule thick = simple_bar ("thick", h, paper_l);
Molecule colon = afm_find ("dots-repeatcolon", paper_l);
}
Molecule
-Lookup::staff_brace (Real y) const
+Lookup::staff_brace (Real y, int staff_size) const
{
Molecule m;
Atom at (gh_list (pianobrace_scm_sym,
gh_double2scm (y),
+ gh_int2scm (staff_size),
SCM_UNDEFINED
));
}
Molecule
-Lookup::hairpin (Real width, Real height, bool decresc, bool continued) const
+Lookup::hairpin (Real width, Real height, Real thick, bool decresc, bool continued) const
{
Molecule m;
gh_double2scm (width),
gh_double2scm (height),
gh_double2scm (continued ? height/2 : 0.0),
+ gh_double2scm (thick),
SCM_UNDEFINED));
m.dim_.x () = Interval (0, width);
m.dim_.y () = Interval (-2*height, 2*height);
Make a smooth curve along the points
*/
Molecule
-Lookup::slur (Array<Offset> controls) const
+Lookup::slur (Array<Offset> controls, Real linethick) const
{
Offset delta_off = controls[3]- controls[0];
Molecule m;
Atom at (gh_list (ly_symbol ("bezier-sandwich"),
ly_quote_scm (array_to_list (scontrols, 8)),
+ gh_double2scm (linethick),
SCM_UNDEFINED));
m.dim_[X_AXIS] = Interval (0, delta_off[X_AXIS]);
ADD_THIS_TRANSLATOR (Repeat_engraver);
-/*
- Needs redesign?
-
- - Logic needs to be moved out of do_try_music(),
-
- - don't try to do multiple repeated music. Lets assume repeats don't nest.
-
- */
bool
Repeat_engraver::do_try_music (Music* m)
{
if (t != "stop")
bar_engraver_l->request_bar (t);
+ else
+ bar_engraver_l->request_bar ("");
}
else
{
Slur::add_column (Note_column*n)
{
if (!n->head_l_arr_.size ())
- warning (_ ("Putting slur over rest."));
- encompass_arr_.push (n);
- // n->stem_l_->slur_l_ = this;
- add_dependency (n);
+ warning (_ ("Putting slur over rest. Ignoring"));
+ else
+ {
+ encompass_arr_.push (n);
+ // n->stem_l_->slur_l_ = this;
+ add_dependency (n);
+ }
}
Direction
arithmetic_basicspace = 2.;
arithmetic_multiplier = 4.8\pt;
- texsetting = "\\input lilyponddefs \\musixsixteendefs ";
+ texsetting = "\\input lilyponddefs ";
pssetting = "(lilyponddefs.ps) findlibfile {exch pop //systemdict /run get exec} { /undefinedfilename signalerror } ifelse\n";
scmsetting = "\"(lilyponddefs.ps) findlibfile {exch pop //systemdict /run get exec} { /undefinedfilename signalerror } ifelse\";\n";
scmsetting = "\"\\\\input lilyponddefs \\\\musixsixteendefs\";\n";
arithmetic_basicspace = 2.;
arithmetic_multiplier = 6.\pt;
- texsetting = "\\input lilyponddefs \\musixtwentydefs ";
+ texsetting = "\\input lilyponddefs ";
pssetting = "(lilyponddefs.ps) findlibfile {exch pop //systemdict /run get exec} { /undefinedfilename signalerror } ifelse\n";
% urg, debugging only
scmsetting = "\"(lilyponddefs.ps) findlibfile {exch pop //systemdict /run get exec} { /undefinedfilename signalerror } ifelse\";\n";
slur_thickness = 1.4 * \staffline;
slur_height_limit = \staffheight;
+
+
% slur_ratio = 0.3;
% try bit flatter slurs
slur_ratio = 0.25;
% chop off this much when next to pp / ff sign.
crescendo_shorten = 4.0 * \interline;
+crescendo_thickness = \staffline;
% in internote.
restcollision_minimum_dist = 3.0;
+
+
\include "engraver.ly";
upprall = \script "upprall"
downprall = \script "downprall"
segno = \script "segno"
-wheel = \script "wheel"
\ No newline at end of file
+coda = \script "coda"
\ No newline at end of file
fet_endchar;
fet_beginchar("Coda", "coda", "coda")
- save thin, thick, wheelwidth, wheelheight;
+ save thin, thick, codawidth, codaheight;
thin# = 1.2 stafflinethickness#;
thick# = 3.5 stafflinethickness#;
- wheelwidth# = 2/3 interline#;
- wheelheight# = 1 interline#;
- define_pixels(thin, thick, wheelwidth, wheelheight);
+ codawidth# = 2/3 interline#;
+ codaheight# = 1 interline#;
+ define_pixels(thin, thick, codawidth, codaheight);
- set_char_box(wheelwidth#+thick#, wheelwidth#+thick#,
- wheelheight#+thick#, wheelheight#+thick#);
+ set_char_box(codawidth#+thick#, codawidth#+thick#,
+ codaheight#+thick#, codaheight#+thick#);
penpos1(thick,0);
penpos2(thin,-90);
penpos3(thick,180);
- x1l=-wheelwidth;
- y2l=wheelheight;
+ x1l=-codawidth;
+ y2l=codaheight;
y1=0;
x2=0;
z3 = - z1;
penlabels(1,2,3);
- path halfwheel;
- halfwheel := z1l{up} .. z2l{right} .. z3l{down} --
+ path halfcoda;
+ halfcoda := z1l{up} .. z2l{right} .. z3l{down} --
z3r{up} .. z2r{left} .. z1r{down} .. cycle;
- fill halfwheel;
- fill (halfwheel scaled -1);
+ fill halfcoda;
+ fill (halfcoda scaled -1);
pickup pencircle scaled thin;
draw (0,-h) -- (0,h);
--- /dev/null
+# mutopia/J.S.Bach/Duette/GNUmakefile
+
+depth = ../../..
+
+SUBDIRS =
+EXTRA_DIST_FILES=
+
+LOCALSTEPMAKE_TEMPLATES=mutopia
+examples=
+
+include $(depth)/make/stepmake.make
+
--- /dev/null
+\version "1.1.52";
+
+$global_i = \notes{
+ \time 12/8;
+ \key G;
+}
--- /dev/null
+$global_ii = \notes{
+ \time 4/4;
+ \property Staff.timeSignatureStyle = "C2/2"
+ \key a\minor;
+}
--- /dev/null
+\header{
+filename = "viola-i.ly";
+title = "Vier Duette";
+description = "Four duets for Violino and Violoncello (Viola)";
+opus = "BWV";
+composer = "Johann Sebastian Bach (1685-1750)";
+enteredby = "jcn";
+copyright = "Public Domain";
+}
+
+\version "1.1.52";
+
+\include "global-i.ly"
+\include "violoncello-i.ly";
+
+$viola_i_staff = \context Staff = viola <
+ \property Staff.instrument = "viola"
+ %\property Staff.instrument = "violin"
+ \notes\transpose c'' \$violoncello_i
+ \clef alto;
+ \$global_i
+>
--- /dev/null
+\header{
+filename = "viola-ii.ly";
+title = "Vier Duette";
+description = "Four duets for Violino and Violoncello (Viola)";
+opus = "BWV";
+composer = "Johann Sebastian Bach (1685-1750)";
+enteredby = "jcn";
+copyright = "Public Domain";
+}
+
+\include "global-ii.ly"
+\include "violoncello-ii.ly";
+
+$viola_ii_staff = \context Staff = viola <
+ \property Staff.instrument = "viola"
+ %\property Staff.instrument = "violin"
+ \clef alto;
+ \$global_ii
+ \notes\transpose c'' \$violoncello_ii
+>
+\version "1.1.52";
--- /dev/null
+\header{
+filename = "viola-part.ly";
+title = "Vier Duette";
+description = "Four duets for Violino and Violoncello (Viola)";
+opus = "BWV";
+composer = "Johann Sebastian Bach (1685-1750)";
+enteredby = "jcn";
+copyright = "Public Domain";
+}
+
+\version "1.1.52";
+
+\include "global-i.ly"
+\include "viola-i.ly"
+
+%{
+\score{
+ \$viola_i_staff
+ \paper{
+ \translator { \BarNumberingStaffContext }
+ }
+ \midi{
+%urg real/duration
+% \tempo 4. = 69;
+ \tempo 4 . = 50;
+ }
+}
+%}
+
+\include "global-ii.ly"
+\include "viola-ii.ly"
+
+\score{
+ \$viola_ii_staff
+ \paper{
+ castingalgorithm=0.0;
+ \translator { \BarNumberingStaffContext }
+ \translator { \ScoreContext skipBars = 1; }
+ }
+ \midi{
+ \tempo 2 = 96;
+ }
+}
--- /dev/null
+\header{
+filename = "violino-i.ly";
+title = "Vier Duette";
+description = "Four duets for Violino and Violoncello (Viola)";
+opus = "BWV";
+composer = "Johann Sebastian Bach (1685-1750)";
+enteredby = "jcn";
+copyright = "Public Domain";
+}
+
+\version "1.1.52";
+
+$violino_i = \notes\relative c'' {
+ \property Voice.beamAutoEnd = "3/8"
+ %% should fix autobeamer: not only check shortest type's end in beam,
+ %%% but also the newly added type's end
+ \property Voice."beamAutoEnd_8" = "1/16"
+ %r4 r8 [g16(fis e)d] b'8 a r r [g16(fis e)d] c'8 |
+ r4 r8 g16(fis e)d b'8 a r r g16(fis e)d c'8 |
+ b r r d16(b)a g(e')c d(b)a g(c)a c(b)a g(a)fis |
+ g d(e fis g a )b d(c b c a )b g(a b c d )e g()fis e(d)cis |
+ a'd,(e fis g a )b a(g fis g e )fis a(g fis e )d
+ %%cis d e fis <g8 { \grace a, } { \grace d, } >~|
+ cis d e fis <g8 a, d,>~|
+%5
+ %%<\grace a,16 \grace d, g'16 > e(fis)d cis d
+ <g16 a, d,> e(fis)d cis d
+ g,8 <f'4~g, g,> f16 d(e)c b c fis,!8 <e'4 fis,>~|
+ <e16 fis,> c(d)b a b e, b'(c)a g a d, a'(b)g fis g c, g'(a)fis e fis |
+ b,(d)e fis(g)a b(d)c b(a)g fis(g)a b(c)d e(a)g fis e d |
+ g d(e)fis g a b g(fis)g c, a' b, g'(fis)g a, c fis, g(a)b <c8( d, a>~|
+ <c d, a> )b r [d16(b a)g] e'8 d r r [c16(b a)g] g'8 |
+%10
+ <fis a, d,> r r g16(fis)e d(b')g a(fis)e d(g)e g(fis)e d(e)cis |
+ <d4. d,>~<d16 d,> fis,(g e d)e <c'!4. d,>~<c16 d,> e,(fis d cis)d |
+ <b'4. g g,>~<b16 g g,> e,(dis)e fis g a8 b <c fis,>~ <c16 fis,> b(a)g fis e |
+ [dis e fis g] <a8 fis>~<a16 fis> fis(g)e d e b e(g)e dis e b e(g)e d e |
+ [cis d e fis] <g8 a,>~<g16 a,> e(fis)d cis d a d(fis)d cis d a d(fis)d c d |
+%15
+ [b c d e] <f8 g,>~<f16 g,> e(dis)e a e cis' a(gis)a dis a fis'8 [b,()a] |
+ g16 b(cis dis e fis )g b( a g fis e)dis cis( dis e fis g)a fis(e dis cis b |
+ )e g(fis)e a fis g b(a)g a fis g b(a)g fis e [dis()e fis()c] <a'8( b, fis b,>~|
+ <a b,> <)g b,> r [b,16(a g)fis] c'8 b r r [a16(g fis)e] e'8 |
+ dis8 r r e16 d(cis b g' e)fis d(cis b e cis)e d(cis b cis)ais |
+%20
+ <b4. d, g>~<b16 d,> ais( b d cis)e d8 [b()cis\prall] d [gis()b] |
+ <d,4. e,>~<d16 e,> gis,(a c! b)d <c8 e,> [a()b\prall] c [fis()a]|
+ <c,4. d,>~<c16 d,> a(b)g fis g e b'(c)a g a fis c'(d)b a b |
+ g d'(e)c b c a e'(s)d c d b8 <g'4 g, g,>~<g16 g,>c,(f! e d c |
+ )b c(f, a g f)e g(f e d c )g c(d e f g )a d(c)b a g |
+%25
+ c16 g a b c d e g(f)e f d e c'(b)c a f g c,(b)c <f8 g, g,>~|
+ <f16 g,> d(e)c b c fis8 a <c d, d,>~<c16 d, d,> c,(d)b a b e,8 <d'4 e,> ~|
+ <d16 e,> b(c)a gis a e' b(c)a g a fis' c(d)b a b g' d(e)c b c |
+ a' g(fis e d c)b d(c b a g)fis e'(d c b)a \breathe [g(fis e)d] b'8|
+ a r r r16 a, b c d(e)fis g a b c d [g,(fis e)d] c'8 |
+%30
+ b r r r4 r8 r4 r8 d16 b(a g e')c|
+ d b(a g c a)b d(c f c a)b g(fis g a fis)g b(a g a fis|
+ )g e(d)c f d e g(f)e f d e f(g)a d, f e a(b)c e, g|
+ fis g(a)b e, g fis b(c)d fis, a g a(b)c fis, a g c(d)e g, b|
+ a g(a b c)d [c(b a)g] <f'8 g, g,> <e g, g,> r r d16(c b)a <g'8 a, d,> |
+%35
+ <fis a, d,> r r a16( fis e)d <c'8 a, d,> <b16 b, d, g,> g(a)b e,(g)c,
+ fis(g)a d,(fis|
+ )b, d(e)f b,(d)g, b(c)d g,(b)d, g(a)b d,(g)b, d(e)f b,(d|
+ )g,8 r r e'16(d c)b f'8 e r r g16(fis e)d c'8 |
+ <c4.\prall>~c16 b(a g)e' c()d b(a g)c a()c b(a)g
+ \context Staff<
+ %\context Voice { a16 f | g1. }
+ \context Voice { \property Voice.verticalDirection=1 a16 fis | g1. }
+ \context Voice=x { \property Voice.verticalDirection=-1 c,16 c | b1. }
+ >
+ \bar "|.";
+}
+
+\include "global-i.ly"
+
+$violino_i_staff = \context Staff = violino <
+ %urg
+ % \notes\property Voice.textStyle = "large" s4^"Moderato"
+ % \notes {s4. \property Voice.textStyle = "large" s4^"Moderato"}
+ % urg, timidity violino patches broken?
+ %\property Staff.instrument = "violin"
+ \property Staff.instrument = "viola"
+ \$violino_i
+ \$global_i
+>
--- /dev/null
+\header{
+filename = "violino-ii.ly";
+title = "Vier Duette";
+description = "Four duets for Violino and Violoncello (Viola)";
+opus = "BWV";
+composer = "Johann Sebastian Bach (1685-1750)";
+enteredby = "jcn";
+copyright = "Public Domain";
+}
+
+$violino_ii = \notes\relative c''{
+ R1*8 |
+ r2 e |
+%10
+ fis a,|c8(b)a2 b8()cis|d e f2 e8()dis|e(b e)fis e(b e)g|
+ fis(b,fis')g fis(b,fis')a|
+%15
+ g(b,g')a g(b,g')b|fis(b,fis')g fis(b,fis')a|g fis e2 d4|cis bes'(a\prall)g|
+ bes, g'(f\prall)e|
+%20
+ g, e'(d\prall)cis|d8 g,(f)e d4 c'|b as'(g\prall)f|as, f'(e\prall)d|
+ f, d'(c\prall)b|
+%25
+ c8 f,(e)d c4 bes'(|)a8 g'(f)e f d a4~|a8 g(a)b g c e4| f,8(e'd)c d b f4~|
+ f8 e(f)g e g c4|
+%30
+ d,8(c'b)a b gis d4|d8 c(d)e c f e d|e4 a,2()gis4|a2 a'|c e,|
+%35
+ f8(e)d2 e8()fis|g a bes2 a8()gis|a(e a)b a(e a)c|b(e,b')c b(e,b')d|
+ c(e,c')d c(e,c')d|
+%40
+ b(e,b')c b(e,b')d| c(b)a2 gis4|a8()c b d c()b c a|e4 fis g fis8()e|fis4 gis a2~
+%45
+ a4 g8 fis g4 e~|e dis8 cis dis2\prall|e4 b' e2|e dis\prall|e4. d16(e f8)e d c|
+%50
+ b c d4. c8(b)a|gis a b4. a8(g)fis|gis()e gis a b()c d b|c()b a b c()d es c|
+ a b c4. b8(a)g|
+%55
+ fis g a4.g8(fis)e| fis()d fis g a()b c a|b()a g a b()c d b|c4 e()a, c(|
+ )fis, g8 a b4 g(|
+%60
+ )a c()fis, a(|)d, e8 fis g4 e(|)fis a()dis, fis(|)b, cis8 dis e2~|
+ e4 d8 cis d2~|
+%65
+ d4 e8 fis g2(|)g4 f8 e f2~|f4 g8 a bes2~|bes4 a8 gis a2~|
+ a gis\prall|
+%70
+ a e'|f a,|c8(b)a2 b8()cis|d e f2 e8()dis|e(b e)fis e(c)e g|
+%75
+ fis(b,fis')g fis(b,fis')a|g(b,g')a g(b,g')b|fis(b,fis')g fis(b,fis')a|
+ g\prall b,(e)fis g()a b()g|e f g4. f8(e)d|
+%80
+ cis d e4. d8(c)b|cis a cis d e()f g()e|f e d cis d4 c|b as'(g\prall)f|
+ as, f'(e\prall)d|
+%85
+ f, d'(c\prall)b| c8(g)c d c fis,(a)c|b(dis,)b' c b f,(b')d|
+ cis(a)cis dis e g,(c)e|d(f,)d' es d g,(d')f|
+%90
+ e(c)e fis g bes,(es)g|f(a,)f' g f bes,(d)f|e(gis,)e' f e a,(e')g|
+ f()g f e d()c b a|gis e()fis()g e gis a b|
+%95
+ c2 e,|f8 e(d)cis d e fis gis|a e a2 gis4(|)a b()c b8 a|b4()cis <d2 d,>~|
+%100
+ <d4 d,> c8 b c4 <a a,>~|<a a,> gis8 fis g2\prall|
+ <a2 e a,> <e' a,> <a a,> <a c,>|
+ %<a2 b, d4><gis\prall b,4 d>|
+ \context Staff<
+ \context Voice {
+ \property Voice.verticalDirection=1
+ <a2 b,>gis\prall|a8 g f4~f8 e(d)cis|
+%105
+ d c bes4~bes8 a(gis)fis|gis4 e <e' a,><f a,>|
+ %c2 b()\grace a|
+ c2 b|
+ a1|
+ }
+ \context Voice=x {
+ \property Voice.verticalDirection=-1
+ d,4 s<b4 d>s|<a2 d> s2|
+%105
+ <d g,> s2|s1|
+ %e2 d ()\grace c|
+ e2 d|
+ c1|
+ }
+ >
+ \bar "|.";
+}
+
+\include "global-ii.ly"
+
+$violino_ii_staff = \context Staff = violino <
+ %urg
+ % \notes\property Voice.textStyle = "large" s4^"Moderato"
+ % \notes {s4. \property Voice.textStyle = "large" s4^"Moderato"}
+ % urg, timidity violino patches broken?
+ %\property Staff.instrument = "violin"
+ \property Staff.instrument = "viola"
+ \$violino_ii
+ \$global_ii
+>
+\version "1.1.52";
--- /dev/null
+\header{
+filename = "violino-part.ly";
+title = "Vier Duette";
+description = "Four duets for Violino and Violoncello (Viola)";
+opus = "BWV";
+composer = "Johann Sebastian Bach (1685-1750)";
+enteredby = "jcn";
+copyright = "Public Domain";
+}
+
+\version "1.1.52";
+
+\include "global-i.ly"
+\include "violino-i.ly"
+
+%{
+\score{
+ \$violino_i_staff
+ \paper{
+ \translator { \BarNumberingStaffContext }
+ }
+ \midi{
+% \tempo 4. = 69;
+ \tempo 4 . = 50;
+ }
+}
+%}
+
+\include "global-ii.ly"
+\include "violino-ii.ly"
+
+\score{
+ \$violino_ii_staff
+ \paper{
+ \translator { \BarNumberingStaffContext }
+ castingalgorith=0;
+ }
+ \midi{
+% \tempo 4. = 69;
+ \tempo 4 . = 50;
+ }
+}
+
--- /dev/null
+\header{
+filename = "violino-viola.ly";
+title = "Vier Duette";
+description = "Four duets for Violino and Violoncello (Viola)";
+opus = "BWV";
+composer = "Johann Sebastian Bach (1685-1750)";
+enteredby = "jcn";
+copyright = "Public Domain";
+}
+
+\version "1.1.52";
+
+\include "violino-i.ly";
+\include "viola-i.ly";
+
+\score{
+ \context GrandStaff <
+ \$violino_i_staff
+ \$viola_i_staff
+ >
+ \paper{
+ \translator {
+ \OrchestralScoreContext
+ }
+ }
+ \midi{
+%urg real/duration
+% \tempo 4. = 69;
+ \tempo 4 . = 50;
+ }
+}
+
+
+\include "violino-ii.ly";
+\include "viola-ii.ly";
+
+\score{
+ \context GrandStaff <
+ \$violino_ii_staff
+ \$viola_ii_staff
+ >
+ \paper{
+ \translator {
+ \OrchestralScoreContext
+ }
+ }
+ \midi{
+% \tempo 2 = 96;
+ \tempo 2 = 75;
+ }
+}
+
--- /dev/null
+\header{
+filename = "violino-violoncello.ly";
+title = "Vier Duette";
+description = "Four duets for Violino and Violoncello (Viola)";
+opus = "BWV";
+composer = "Johann Sebastian Bach (1685-1750)";
+enteredby = "jcn";
+copyright = "Public Domain";
+}
+
+\version "1.1.52";
+
+\include "violino-i.ly";
+\include "violoncello-i.ly";
+
+\score{
+ \context GrandStaff <
+ \$violino_i_staff
+ \$violoncello_i_staff
+ >
+ \paper{
+ \translator {
+ \OrchestralScoreContext
+ }
+ }
+ \midi{
+%urg, real/duration
+% \tempo 4. = 69;
+ \tempo 4 . = 50;
+ }
+}
+
+\include "violino-ii.ly";
+\include "violoncello-ii.ly";
+
+\score{
+ \context GrandStaff <
+ \$violino_ii_staff
+ \$violoncello_ii_staff
+ >
+ \paper{
+ \translator {
+ \OrchestralScoreContext
+ }
+ }
+ \midi{
+ \tempo 2 = 96;
+ }
+}
+
--- /dev/null
+\header{
+filename = "violoncello-i.ly";
+title = "Vier Duette";
+description = "Four duets for Violino and Violoncello (Viola)";
+opus = "BWV";
+composer = "Johann Sebastian Bach (1685-1750)";
+enteredby = "jcn";
+copyright = "Public Domain";
+}
+
+\version "1.1.52";
+
+$violoncello_i = \notes\relative c{
+ \property Voice.beamAutoEnd = "3/8"
+ g8()a d, g b()g d()fis a d a()fis |
+ g()d b' g b()c b()e fis g d()d, |
+ g r r [d'16(b a )g] e'8 d r r [c16(b a )b] g'8 |
+ fis r r g16 fis( e d b' g )a fis( e d g)e g fis( e d e)cis |
+%5
+ d8 d'()a b16 c(d)b g b c,8 c'()g a16 b(c)a fis a |
+ b,8()b' fis g a()e fis g()d e fis()d |
+ g r r g,16(fis e)d b'8 a r r g16(fis e )d c'8 |
+ b r r d16 b(a)g e' c d b(a)g c a c b(a)g a fis |
+ g d( e fis g a )b d(c b c )a b g(a b c b )e g( fis e d cis |
+%10
+ )a'16 d,( e fis g a)b a(g fis g e)fis a(g fis e d)cis d(e)fis g8~ |
+ g16 e(fis)d cis d b'4.~b16 d,(e)c b c a'4.~|
+ a16 fis(g)e dis e c'4.~c16 b(a)g fis e dis8(e)c |
+ b b'16(a g)fis e8 e,()fis g()b a g e()e' |
+ a,16 b(cis)d e cis d8 d,()e fis a()g fis d()d' |
+%15
+ g,16(a b)c! d b c8 c'()fis, a dis,()fis b,16 cis(dis e)fis d |
+ e8 e, r [e'16( dis cis)b] g'8 fis r r [e16(dis cis)b] a'8 |
+ g r r b16 g(fis)e c'! a b g(fis)e a fis a g(fis)e fis dis |
+ e b(cis dis)e fis g b(a)g a fis g e(fis)g a b cis e(dis)c b ais |
+ fis b,(cis)dis e fis g fis(e)d e cis d8()d, g' e fis()fis,|
+%20
+ b16 fis'(gis)ais b cis d cis(d)b ais b fis b(d)b ais b f b(d)b a b |
+ e, b'(e)d c b a b(c)a gis a e a(c)a gis a es a(c)a g a|
+ d, a'(d)c b a g8()g, b c a()c d()b d |
+ e c()e f g, f'~f16 e(f b, a)b e8()a f |
+ g g, r [c16(b a)g] e'8 d r r [c16(b a)g] f'8|
+%25
+ e r r g16 e(d)c a' f g e(d)c f d f e(d)c d b |
+ c8 c'()g a16 b(c)a g fis b8 b,()fis' gis16 a(b)g fis e |
+ a,8()a' b c b()c d()b d e [c()a]|
+ fis()d r [g16(fis e)d] b'8 a r r b16 d(c)b a g |
+ e e'(d)c b a [g(fis e)d] c'8 b r r r16 b, c d e fis |
+%30
+ g a(b c d)e d b(a g e')c d b(a g c)a b d(c b c)a|
+ b g(fis e a fis)g b(a g a fis)g b(a g c a)b g(fis e fis dis|
+ )e g(f)e a fis g e(d)c d c c8()c' b c a()c |
+ d,()d' cis d b()d e,()e' dis e c()e |
+ fis,()e d g [c,16(b a)g] c g'(a c b)d e8 [d,16(cis b)a]|
+%35
+ d a'(b cis d)e fis8 [g,16( fis e)d] g8()e c a d()d,|
+ g r r r16 d''(e)f b,(d)g, b(c)d g,(b)d, f(g)a d,(f|
+ )b, d(e)f b,(d)g,8 a()b c16 d(e f g a)b d(c b a)g|
+ fis [a(g)fis e d] g8()e c g'8 b, e c d d, |
+ g1.|
+ \bar "|.";
+}
+
+\include "global-i.ly"
+
+$violoncello_i_staff = \context Staff = violoncello <
+ \property Staff.instrument = "cello"
+ \$violoncello_i
+ \clef bass;
+ \$global_i
+>
--- /dev/null
+\header{
+filename = "violoncello-ii.ly";
+title = "Vier Duette";
+description = "Four duets for Violino and Violoncello (Viola)";
+opus = "BWV";
+composer = "Johann Sebastian Bach (1685-1750)";
+enteredby = "jcn";
+copyright = "Public Domain";
+}
+
+\version "1.1.52";
+
+$violoncello_ii = \notes\relative c{
+ r2 a'2|c e,| f8(e)d2 e8()fis| g a bes2 a8()gis|
+%5
+ a(e)a b a(e)a c|b(e,b')c b(e,b')d|c(e,c')d c(e,c')e|b(e,b')c b(e,b')d|
+ c(b)a2 gis4|
+%10
+ a8()c b d c()b c a|e4 fis g fis8()e|fis4 gis a2~|a4 g8(fis)g4 e~|
+ e dis8 cis dis2\prall|
+%15
+ e4 b' e2~|e dis\prall|e4 e,8()fis g a bes g|e f g4. f8(e)d|cis d e4.d8(cis)b|
+%20
+ cis()a cis d e()f g e|f()e d e f()g as f|d e f4. e8(d)c|b c d4. c8(b)a|
+ b()g b c d()e f d|
+%25
+ e()d c d e()f g e|f4 a()d, f(|)b, c8 d e4 c(|)d f()b, d(|)a a8 b c4 a(|
+%30
+ )b d()gis, b(|)e, fis8()gis a4 b|c2 e,|f8 e d4~d8 e(fis)gis|a e a2 gis4|
+%35
+ a b c b8()a|b4 c d2~|d4 c8 b c4 a~|a gis8 gis gis2\prall|a4 e' a2~|
+%40
+ a gis\prall|a e|f a,|c8(b)a2 b8 cis|d()e f2 e8()dis|
+%45
+ e(b e)fis e(b e)g|fis(b,fis')g fis(b,fis')a|g(b,g')a g(b,g')b|
+ fis(b,fis')g fis(b,fis')a|g(fis)e2 fis4|
+%50
+ gis f'!(e\prall)d |f, d'(c\prall)b|d, b'(a\prall)gis|a8 d,(c)b a4 g'|
+ fis es'(d\prall)c|
+%55
+ es, c'(b\prall)a|c, a'(g\prall)fis|g8 c,(b)a g4 f'(|)e8 e'(c)b c()a e4~|
+ e8 d e fis d()g b4|
+%60
+ c,8(b'a)g a()fis c4~|c8 b c d b()d g4|a,8(g'fis)e fis()dis a4~|
+ a8 g a b g d' e g|fis(ais,fis')g fis(b,fis')g|
+%65
+ gis(e gis)ais b(e,g)b|a(cis,a')bes a(d,a')c|b(g c)cis d f,(bes)d|
+ c e,(c')d c f,(a)c|b d,(b')c b e,(b')d|
+%70
+ c a(c)e c a()b gis(|)a c(b)d c b(c)a|e4 fis g fis8()e|fis4 gis a2~|
+ a4 g8 fis g4 e~|
+%75
+ e dis8 cis dis2\prall|e4 b' e2~|e dis\prall|e r4 d|cis bes(a\prall)g|
+%80
+ bes, g'(()f\prall)e|g, e'(()d\prall)cis|d8()a d e f g as f|d e f4.(e8 d)c|
+ b c d4.(c8 b)a|
+%85
+ b()g b c d()e b d|e4 e, a2~|a4 g8 fis g2~|g4 a8 b c2~|c4 bes8 a bes2~|
+%90
+ bes4 c8 d es2~|es4 d8 cis d2~|d cis\prall|d4 e f d|e d' c b|
+%95
+ a8()e a2 gis4\prall| a2 b|c e,|c8(e)d2 e8()fis|g a bes2 a8()gis|
+%100
+ a(e a)b a(e a)c| b(e,b')c b(e,b')d|c(e,c')d c(e,c')e|
+ b(e,b')c b(e,b')d| c(a b)cis d()e f g|
+%105
+ f e d cis d4 d,~|d c8 b c4 d|e d e e,|<e'1 a,>
+ \bar "|.";
+}
+
+\include "global-ii.ly"
+
+$violoncello_ii_staff = \context Staff = violoncello <
+ \property Staff.instrument = "cello"
+ \$violoncello_ii
+ \clef bass;
+ \$global_ii
+>
--- /dev/null
+\header{
+filename = "violoncello-part.ly";
+title = "Vier Duette";
+description = "Four duets for Violino and Violoncello (Viola)";
+opus = "BWV";
+composer = "Johann Sebastian Bach (1685-1750)";
+enteredby = "jcn";
+copyright = "Public Domain";
+}
+
+\version "1.1.52";
+
+\include "global-i.ly"
+\include "violoncello-i.ly"
+
+%{
+\score{
+ \$violoncello_i_staff
+ \paper{
+ \translator { \BarNumberingStaffContext }
+ }
+ \midi{
+%urg, real/duration
+% \tempo 4. = 69;
+ \tempo 4 . = 69;
+ }
+}
+%}
+
+\include "global-ii.ly"
+\include "violoncello-ii.ly"
+
+\score{
+ \$violoncello_ii_staff
+ \paper{
+ castingalgorithm=0.;
+ \translator { \BarNumberingStaffContext }
+ }
+ \midi{
+ \tempo 2 = 96;
+ }
+}
+
-# mutopia/J.S.Bach/Makefile
+# mutopia/J.S.Bach/GNUmakefile
depth = ../..
-SUBDIRS = Petites-Preludes Solo-Cello-Suites Cembalo-Partitas
+SUBDIRS = Petites-Preludes Solo-Cello-Suites Cembalo-Partitas Duette
EXTRA_DIST_FILES=
closepath fill
} bind def
-/draw_decrescendo % width height cons
+/draw_decrescendo % width height cons thick
{
- stafflinethickness setlinewidth
+ setlinewidth
/cresc_cont exch def
/cresc_ht exch def
/cresc_wd exch def
stroke
} bind def
-/draw_crescendo % width height cons
+/draw_crescendo % width height cons thick
{
- stafflinethickness setlinewidth
+ setlinewidth
/cresc_cont exch def
/cresc_ht exch def
/cresc_wd exch def
} bind def
% this is for drawing slurs.
-/draw_bezier_sandwich
+/draw_bezier_sandwich % thickness
{
- stafflinethickness setlinewidth
+ setlinewidth
moveto
curveto
lineto
% hmm
/setgray { 1 add } bind def
-% urg
-1 /stafflinethickness exch def
+/stafflinethickness mudelapaperstaffline def
+/staffheight mudelapaperstaffheight def
/xoffset 30 def
/yoffset 700 def
-/staffrulethickness 1 def
-/staffheight 20 def
/placebox
{
grestore
} bind def
-/setbold % '(' text ')'
-{
- settext
-} bind def
-
-/settext % '(' text ')'
-{
- gsave
- % urg
- /Times-Roman findfont 12 scalefont setfont
- show
- grestore
-} bind def
-
-/setfinger % '(' text ')'
-{
- gsave
- % urg
- /feta-nummer5 findfont 12 scalefont setfont
- show
- grestore
-} bind def
-
-/setitalic % '(' text ')'
-{
- gsave
- % urg
- /Times-Italic findfont 12 scalefont setfont
- show
- grestore
-} bind def
-
-/vrule % width depth height
-{
-} bind def
-
-
%
% FIXME. translate to middle of box.
%
/draw_box % breapth width depth height
{
+ /h exch def
+ /d exch def
+ /w exch def
+ /b exch def
gsave
- 4 -1 roll
- dup
- neg 0 translate
- 4 -1 roll
- add
-
- setlinewidth
- 0 exch moveto
- neg 0 exch lineto stroke
-
- grestore
-} bind def
+ 0 setlinewidth
+ b neg d neg rmoveto
+ b w add 0 rlineto
+ 0 d h add rlineto
+ b w add neg 0 rlineto
+ closepath % 0 d h add neg rlineto
+ fill
-/extender % width
-{
- gsave
- 0 0 moveto
- stafflinethickness 0.8 mul setlinewidth
- 0 lineto stroke
grestore
} bind def
-/widthbar % height width
-{
- gsave
- setlinewidth
- 2 div dup neg 0 exch moveto
- 0 exch lineto stroke
- 2 div
- grestore
-} bind def
-
-/thickbar % height
-{
- stafflinethickness 2 mul widthbar
-} bind def
-
-/thinbar % height
-{
- stafflinethickness 1.6 mul widthbar
-} bind def
-
-/maatstreep % height
-{
- thinbar
-} bind def
-
-/fatdoublebar
-{
- thickbar
-} bind def
-
-/finishbar
-{
- thickbar
-} bind def
-
-/generalmeter % num den
-{
- pop pop
-} bind def
-
-/pianobrace % '(' char ')'
-{
- gsave
- /feta-braces20 findfont 12 scalefont setfont%
- show
- grestore
-} bind def
-
-/doublebar
-{
- thinbar
-} bind def
-
-/repeatbar
-{
- thickbar
-} bind def
-
-/repeatbarstartrepeat
-{
- thickbar
-} bind def
-
-/startbar
-{
- thickbar
-} bind def
-
-/startrepeat
-{
- thickbar
-} bind def
-
-/stoprepeat
-{
- thickbar
-} bind def
-
/start_line
{
gsave
grestore
yoffset add /yoffset exch def
% urg...
- yoffset staffheight 8 mul sub /yoffset exch def
+ yoffset mudelapaperstaffheight 8 mul sub /yoffset exch def
} bind def
/unknown { (U) setbold } bind def
(embedded-ps ((ps-scm 'crescendo) w h cont)))
(define (char i)
- (string-append "\\show{" (inexact->string i 10) "}"))
+ (string-append "\\char" (inexact->string i 10) " "))
(define (decrescendo w h cont)
(embedded-ps ((ps-scm 'decrescendo) w h cont)))
+ ;This sets CTM so that you get to the currentpoint
+ ; by executing a 0 0 moveto
+
(define (embedded-ps s)
- (string-append "\\embeddedps{" s "}"))
+ (string-append "\\special{ps: @beginspecial @setspecial " s " @endspecial}"))
(define (end-output)
"\n\\EndLilyPondOutput")
(define (experimental-on)
- "\\turnOnExperimentalFeatures")
+ "")
(define (font-switch i)
(string-append
(string-append
"\\font" (font-switch i) "=" s "\n"))
- (define (generalmeter num den)
- (string-append
- "\\generalmeter{" (number->string (inexact->exact num)) "}{" (number->string (inexact->exact den)) "}"))
-
- (define (header-end) "\\turnOnPostScript")
+ ;; UGH
+
+ (define (header-end) (string-append
+"\\special{!"
+"/stafflinethickness \\mudelapaperstaffline0 def " ;may we burn in hell.
+"/interline \\mudelapaperinterline0 %\n def "
+"interline 3 div /bracket_b exch def "
+"interline 2 mul /bracket_w exch def "
+"stafflinethickness 2 mul /bracket_t exch def "
+"interline 1.5 mul /bracket_v exch def "
+"bracket_v /bracket_u exch def "
+"50 /bracket_alpha exch def "
+"1 setlinecap}"))
(define (header creator generate)
(string-append
"\\placebox{"
(number->dim y) "}{" (number->dim x) "}{" s "}"))
-
- ;;;; UGH! Junk \\bracefont !
- (define (pianobrace y)
- (define step 1.0)
- (define minht (* 2 mudelapaperstaffheight))
- (define maxht (* 7 minht))
- (string-append
- "{\\bracefont " (char (max
- 0
- (/ (- (min y (- maxht step)) minht) step))) "}"))
-
+ ;;;;
+ (define (pianobrace y staffht)
+ (let* ((step 1.0)
+ (minht (* 2 staffht))
+ (maxht (* 7 minht))
+ )
+ (string-append
+ (select-font (string-append "feta-braces" (number->string (inexact->exact staffht))))
+ (char (max 0 (/ (- (min y (- maxht step)) minht) step))))
+ )
+ )
(define (rulesym h w)
)
)
- (define (bezier-sandwich l)
- (embedded-ps ((ps-scm 'bezier-sandwich) l)))
+ (define (bezier-sandwich l thick)
+ (embedded-ps ((ps-scm 'bezier-sandwich) l thick)))
(define (start-line ht)
"depth " (number->dim depth)
"height " (number->dim height) " "))
-
-
(define (text s)
(string-append "\\hbox{" (output-tex-string s) "}"))
(define filledbox ,filledbox)
(define font-def ,font-def)
(define font-switch ,font-switch)
- (define generalmeter ,generalmeter)
(define header-end ,header-end)
(define lily-def ,lily-def)
(define header ,header)
((eq? action-name 'experimental-on) experimental-on)
((eq? action-name 'font-def) font-def)
((eq? action-name 'font-switch) font-switch)
- ((eq? action-name 'generalmeter) generalmeter)
((eq? action-name 'header-end) header-end)
((eq? action-name 'lily-def) lily-def)
((eq? action-name 'header) header)
(define (char i)
(invoke-char " show" i))
- (define (crescendo w h cont)
+ (define (crescendo w h cont thick)
(string-append
- (numbers->string (list w h (inexact->exact cont)))
+ (numbers->string (list w h (inexact->exact cont) thick))
" draw_crescendo"))
(define (dashed-slur thick dash l)
(number->string (* 2 thick))
" ] 0 draw_dashed_slur"))
- (define (decrescendo w h cont)
+ (define (decrescendo thick w h cont)
(string-append
- (numbers->string (list w h (inexact->exact cont)))
+ (numbers->string (list w h (inexact->exact cont) thick))
" draw_decrescendo"))
(define (font-switch i)
(string-append (font i) " "))
- (define (generalmeter num den)
- (string-append (number->string (inexact->exact num)) " " (number->string (inexact->exact den)) " generalmeter "))
-
(define (header-end) "")
(define (lily-def key val)
- (if (string=? (substring key 0 (string-length "mudelapaper") ) "mudelapaper")
+ (if (string=? (substring key 0 (min (string-length "mudelapaper") (string-length key))) "mudelapaper")
(string-append "/" key " {" val "} bind def\n")
(string-append "/" key " (" val ") def\n")
)
)
+
(define (header creator generate)
(string-append
"%!PS-Adobe-3.0\n"
(define (placebox x y s)
(string-append
(number->string x) " " (number->string y) " {" s "} placebox "))
- (define (pianobrace y)
- ""
+
+ (define (pianobrace y staffht)
+ (let* ((step 1.0)
+ (minht (* 2 staffht))
+ (maxht (* 7 minht))
+ )
+ (string-append
+ (select-font (string-append "feta-braces" (number->string (inexact->exact staffht))))
+ (char (max 0 (/ (- (min y (- maxht step)) minht) step))))
+ )
)
+
(define (rulesym x y)
(string-append
(number->string x) " "
(number->string y) " "
" rulesym"))
- (define (bezier-sandwich l)
+ (define (bezier-sandwich l thick)
(string-append
- (apply string-append (map control->string l))
+ (apply string-append (map control->string l))
+ (number->string thick)
" draw_bezier_sandwich"))
(define (start-line height)
(define filledbox ,filledbox)
(define font-def ,font-def)
(define font-switch ,font-switch)
- (define generalmeter ,generalmeter)
(define pianobrace ,pianobrace)
(define header-end ,header-end)
(define lily-def ,lily-def)
("upprall" . ((feta . ("upprall" . "upprall")) #f 0 1 0))
("downprall" . ((feta . ("downprall" . "downprall")) #f 0 1 0))
("segno" . ((feta . ("segno" . "segno")) #f 0 1 0))
- ("wheel" . ((feta . ("wheel" . "wheel")) #f 0 1 0)))
+ ("coda" . ((feta . ("coda" . "coda")) #f 0 1 0)))
script-alist)
)
'deprecate \\grouping')
+if 1:
+ def conv(lines):
+ newlines =[]
+ for x in lines:
+ x = re.sub ('\\\\wheel','\\\\coda', x)
+ newlines.append (x)
+ return newlines
+
+ conversions.append ((1,1,55), conv,
+ '\\wheel -> \\coda')
+
+
+if 1:
+ def conv(lines):
+ newlines =[]
+ for x in lines:
+ x = re.sub ('\\\\wheel','\\\\coda', x)
+ newlines.append (x)
+ return newlines
+
+ conversions.append ((1,1,55), conv,
+ '\\wheel -> \\coda')
+
+
############################
this.write(top)
this.__mudelaDefs('')
this.write("""\
-\\cmrtwenty% ugh
\\makelilytitle
""")
% fetdefs.tex
% encapsulating tex backend for auto-generated feta definitions
-
-\def\placebox#1#2#3{%
- \botalign{\hbox{\raise #1\leftalign{\kern #2{}#3}}}}%
-
-%
-%
-% UGH! JUNKME!
-%
-\def\fetsixteendefs{%
- \font\fetasixteen = feta16
- \font\fetanummersixteen = feta-nummer8
- \font\dynfontsixteen = feta-din10 scaled \magstep 1
- \font\bracefontsixteen = feta-braces16
- \font\fingerfontsixteen = feta-nummer4
- \font\markfontsixteen = feta-nummer10
- \font\fetanummerjsixteen = feta-nummer5
-\def\currentsize{sixteen}
-}
-
-\def\fettwentydefs{%
- \font\fetatwenty = feta20
- \font\fetanummertwenty = feta-nummer10
- \font\dynfonttwenty = feta-din10 scaled \magstep 2
- \font\bracefonttwenty = feta-braces20
- \font\fingerfonttwenty = feta-nummer5
- \font\markfonttwenty = feta-nummer12
- \font\fetanummerjtwenty = feta-nummer7
-\def\currentsize{twenty}
-}
-
-\def\fettwentysixdefs{%
- \font\fetatwentysix = feta26
- \font\fetanummertwentysix = feta-nummer12
- \font\dynfonttwentysix = feta-din10 scaled \magstep 3
- \font\bracefonttwentysix = feta-braces16
- \font\fingerfonttwenty = feta-nummer7
- \font\markfonttwentysix = feta-nummer14
-\def\currentsize{twentysix}
-}
-
-\def\fetthirteendefs{%
- \font\fetathirteen = feta13
- \font\fetanummerthirteen = feta-nummer5
- \font\dynfontthirteen = feta-din10 scaled \magstep 0
- \font\bracefontthirteen = feta-braces16
- \font\fingerfontthirteen = feta-nummer3
- \font\markfonttwentysix = feta-nummer8
-\def\currentsize{thirteen}
-}
-
-\def\fetelevendefs{%
- \font\fetaeleven = feta11
- \font\fetanummereleven = feta-nummer5
- \font\dynfonteleven = feta-din10 % scaled \magstep-1
- \font\bracefonteleven = feta-braces16
- \font\fingerfonteleven = feta-nummer3
- \font\markfonttwentysix = feta-nummer7
- \def\currentsize{eleven}
-}
-
-\def\sixteenfonts{\fetsixteendefs\cmrsixteen}
-\def\twentyfonts{\fettwentydefs\cmrtwenty}
-\def\twentysixfonts{\fettwentysixdefs\cmrtwenty}
-\def\elevenfonts{\fetelevendefs\cmreleven}
-\def\thirteenfonts{\fetthirteendefs\cmrthirteen}
-
-\def\bracefont{\csname bracefont\currentsize\endcsname}
-\def\fetanummer{\csname fetanummer\currentsize\endcsname}
-\def\dynfont{\csname dynfont\currentsize\endcsname}
-\def\fingerfont{\csname fingerfont\currentsize\endcsname}
-\def\fetanummerj{\csname fetanummerj\currentsize\endcsname}
-\def\markfont{\csname markfont\currentsize\endcsname}
-
-%\sixteenfonts
-%\twentysixfonts
-%\twentyfonts
-%\elevenfonts
-%\thirteenfonts
-
-\def\switchfont#1{\def\currentsize{#1}\csname feta\currentsize\endcsname}
-
-\def\fetdef#1#2{%
- \def#1{\hbox{\fetchar{#2}}}}
-\def\fetchar#1{\char#1}
-\def\show#1{\char#1}
-
-%\input feta16
-%\input feta20
-
-% stacked numbers; overrules def in lilyponddefs
-% widest num should be .40 balkheight
-% oeps: \meter 12/8;
-%
-% \allabreve, \threetwometer etc. have zero as the second parameter.
-
-\def\generalmeter#1#2{%
- \ifnum #2 = 0\relax
- \vbox to 0pt{%
- \vss
- \hbox to 0.45\staffheight{\hss \fetanummer #1\hss}%
- \vss}%
- \else
- \vbox to 0pt{%
- \vss
- \hbox to 0.45\staffheight{\hss \fetanummer #1\hss}%
- \nointerlineskip
- \hbox to 0.45\staffheight{\hss \fetanummer #2\hss}%
- \vss}%
- \fi}
-
-\def\pianobrace#1{{\bracefont\char #1}}
-\def\staffbracket#1{{\centeralign{\bracketfont\char #1}}}
-
-\def\embeddedtex#1{}
-\def\embeddedps#1{}
-\def\embeddedmf#1#2{}
-\def\embedclose{}
-
-\input lily-ps-defs
-
-% uncomment to use runtime MF
-%
-% \input lily-mf-defs
-
-\def\EndLilyPondOutput{%
- \embedclose
- \csname bye\endcsname
-}
-
\endinput
% ``compiles'' operatorname binding in the body of foo, making
% the code faster, and more reliable (less flexible)
-% transplant a TeX dimension into the PS output.
-\def\PSsetTeXdimen#1{\expandafter\special{! /#1 (\the\csname #1\endcsname) deftexdimen}}
-
{%
\def\par{ }% %Ugh. Don't try this at home, kids!
% neat file-include trick by Piet van Oostrum <piet@cs.uu.nl>
\expandafter\special{! \includelilyps }
}
-
-\special{!
-% PS helper: convert (0.2pt) to the token 0.2
-/settexdimen
-{
- /thestring exch def
- thestring 0 thestring length 2 sub
- getinterval
- token
- pop exch pop
-} def
-%
-/deftexdimen
-{
- settexdimen
- def
-} def
-}
-
-\def\turnOnPostScript{%
- \PSsetTeXdimen{stafflinethickness}
- \PSsetTeXdimen{staffheight}
-
- % This sets CTM so that you get to the currentpoint
- % by executing a 0 0 moveto
- \def\embeddedps##1{%
- \special{ps: @beginspecial @setspecial ##1 @endspecial}
- }
- %
-
- \special{!
-/interline \mudelapaperinterline0 def % ugh. Only works x.yyyy floats
-interline 3 div /bracket_b exch def
-interline 2 mul /bracket_w exch def
-stafflinethickness 2 mul /bracket_t exch def
-interline 1.5 mul /bracket_v exch def
-bracket_v /bracket_u exch def
-50 /bracket_alpha exch def
-staffheight 4 div /interline exch def
-1 setlinecap}
-}
-
-\def\turnOnExperimentalFeatures{}
-
%% include file for LilyPond
%%
%% this file defines various macros to accomodate lilypond output
-%%
+%%
%% let's not make par before endinput
%
% TeXbook ex 7.7
\fi
\SkipLilydefs
%
-\ifundefined{mudelacopyright}
- \def\mudelacopyright{\copyright\ \number\year}
-\fi
-\ifundefined{mudelatagline}
- \def\mudelatagline{Lily was here}
-\fi
-\ifundefined{documentclass}
- \input lilypond-plaintex
-\else
- \input lilypond-latex
-\fi
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% macros to shorten other definitions
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def\musicmathdef#1#2{\def#1{\musicmathchar{#2}}}
-\def\musicmathchar#1{\musicmathfont\char#1}
-
-\def\topalign#1{\vbox to 0pt{#1\vss}}
\def\botalign#1{\vbox to 0pt{\vss #1}}
-
-\def\centeralign#1{\hbox to 0pt{\hss#1\hss}}
\def\leftalign#1{\hbox to 0pt{#1\hss}}
-\def\rightalign#1{\hbox to 0pt{\hss#1}}
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% set up dimensions
-% mudela-book don't like this:
-%\parindent=0pt
-\newdimen\interlinedist
-
-\newcount\n %duh. meaningful identifiers.
-\newdimen\staffheight
-\newdimen\stafflinethickness
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% set fonts and primary dimensions
-
-%
-% TODO JUNK THIS
-%
-% ugh
-\def\cmrtwenty{
- \font\smalltextfont=cmr8
- \font\textmusic=cmmi12
-}
-\def\cmrsixteen{
- \font\smalltextfont=cmr6
- \font\textmusic=cmmi10
- }
-\def\cmrthirteen{
- \font\smalltextfont=cmr6
- \font\textmusic=cmmi9
- }
-\def\cmreleven{
- \font\smalltextfont=cmr5
- \font\textmusic=cmmi8
- }
-%%%%%%%
-%
-\def\musixtwentydefs{
- \twentyfonts
- \csname cmrtwenty\texsuffix\endcsname
- \musixcalc
-}
-
-\def\musixsixteendefs{
- \sixteenfonts
- \csname cmrsixteen\texsuffix\endcsname
- \musixcalc
- }
-\def\musixtwentysixdefs{
- \csname cmrtwentysix\texsuffix\endcsname
- \twentysixfonts
- \musixcalc
- }
-\def\musixthirteendefs{
- \thirteenfonts
- \csname cmrthirteen\texsuffix\endcsname
- \musixcalc
-}
-\def\musixelevendefs{
- \csname cmreleven\texsuffix\endcsname
- \elevenfonts
- \musixcalc
-}
-
-\def\textsharp{\raise.4ex\hbox{\textmusic\char"5D}}
-\def\textnatural{\raise.4ex\hbox{\textmusic\char"5C}}
-\def\textflat{\raise.2ex\hbox{\textmusic\char"5B}}
-
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% do derivative calcs
-% this has to be synced with the font definition
-\def\musixcalc{
- \stafflinethickness=\mudelapaperrulethickness pt
-}
-
-
-
-% stacked horizontal lines
+% stacked horizontal lines
\def\interscoreline{\vskip 16pt}
-
-% big fat marks, if errors are detected.
-\def\columnerrormark{\placebox{-5pt}{0pt}{\bf C!}}
-\def\scorelineerrormark{\placebox{0pt}{-10pt}{\bf L!}}
-\def\errormark{{\bf E!}}
-\def\unknown{%
- %{\bf u} %FIXME
-}
-
-\input fetdefs
-
-
-% ugh
-% see e.g. input/test/beam-pos.ly
-%
-% something's wrong with the aligment; sometimes all symbols
-% look to be placed a bit too high (there's an ugly fix for
-% the staccato-dot in script.cc)
-% but this varies from line to line: it seems that xdvi
-% does some rounding; i can't really check this from screen on i
-% 600x600 res.
-%
-\def\rulesym#1#2{\dimen0=#1 %obsolete
- \vrule height .5\dimen0 depth .5\dimen0 width #2}
-\def\shiftedrulesym#1#2{\dimen0=#1%
- \vrule height .7\dimen0 depth .3\dimen0 width #2}
-\def\tinyrulesym#1#2{\dimen0=#1%
- \vrule height .1\dimen0 depth .1\dimen0 width #2}
-%would be nice for checking alignment
-\def\openrulesym#1#2{\dimen0=#1%
- \vbox to \dimen0{\vss%
- \hbox{\vrule height .1\dimen0 width #2}%
- \hbox{\vrule height .2\dimen0 width 0pt}%
- \hbox{\vrule height .4\dimen0 width #2}%
- \hbox{\vrule height .2\dimen0 width 0pt}%
- \hbox{\vrule height .1\dimen0 width #2}%
- \vss}}
-%\let\rulesym\shiftedrulesym
-%\let\rulesym\tinyrulesym
-%\let\rulesym\openrulesym
-
-% the interline symbol. Redefine to remove it.
-\def\defaultlineseparator{\vbox{\mussepline\vskip -5pt\mussepline}}
-\def\lineseparator{\defaultlineseparator}
-\def\beauty{%
- \par\vskip 10pt plus 30pt minus 10pt\par
- \hskip -5pt\lineseparator
- \par\vskip 10pt plus 30pt minus 10pt\par
-}
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\placebox#1#2#3{%
+ \botalign{\hbox{\raise #1\leftalign{\kern #2{}#3}}}}%
+\input lily-ps-defs
+\def\EndLilyPondOutput{%
+ \csname bye\endcsname
+ }
+
+ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
\def\postheader{}
-
-%
-% macros suck. \ifundefined{nolilyfooter} gives wierd errors from time
-% to time.
-%
-
-%
-% Warning: the order is conceptually weird. It says:
-
-% if not defined (``nolilyfooter''):
-% do_footer ()
-% else
-% dont_do_footer ()
-%
-\ifx\csname nolilyfooter\endcsname\relax
- \message{[footer defined]}%
- \csname lilyfooter\texsuffix\endcsname%
-\else
- \message{[footer empty]}
- \csname%
- nolilyfooter\texsuffix\endcsname
-\fi
+\noindent
\def\makelilytitle{%
\begin{center}
\bfseries
- \ifx\mudelanull\thetitle\else\sethuge{\thetitle}\\ \fi
- \ifx\mudelanull\thesubtitle\else\setLarge{\thesubtitle}\\ \fi
+ \ifx\mudelanull\thetitle\else{\huge\thetitle}\\ \fi
+ \ifx\mudelanull\thesubtitle\else{\Large\thesubtitle}\\ \fi
\end{center}
\bigskip
% urg
\edef\saveparskip{\parskip}\parskip-5mm
\begin{minipage}[t]{0.45\textwidth}
- \ifx\mudelanull\thepoet\else\settext{\thepoet}\\ \fi
- \ifx\mudelanull\themetre\else\settext{\themetre}\\ \fi
+ \ifx\mudelanull\thepoet\else{\thepoet}\\ \fi
+ \ifx\mudelanull\themetre\else{\themetre}\\ \fi
\end{minipage}\hspace*{\fill}
\begin{minipage}[t]{0.45\textwidth}
\begin{flushright}
- \ifx\mudelanull\thecomposer\else\setlarge{\normalfont\scshape\thecomposer}\\ \fi
- \ifx\mudelanull\theopus\else\settext{\theopus}\\ \fi
- \ifx\mudelanull\thearranger\else\settext{\thearranger}\\ \fi
+ \ifx\mudelanull\thecomposer\else{\large\normalfont\scshape\thecomposer}\\ \fi
+ \ifx\mudelanull\theopus\else{\theopus}\\ \fi
+ \ifx\mudelanull\thearranger\else{\thearranger}\\ \fi
\end{flushright}%
\end{minipage}\par
\parskip\saveparskip
- {\center\setlarge{\theinstrument}\par}
- {\flushleft\setLarge{\normalfont\scshape\thepiece}}
+ {\center{\large\theinstrument}\par}
+ {\flushleft{\large\normalfont\scshape\thepiece}}
\leavevmode
}
\def\makelilypiecetitle
{
\bigskip
- {\flushright\settext{\theopus}\par}
- {\flushleft\setLarge{\normalfont\scshape\thepiece}}
+ {\flushright{\theopus}\par}
+ {\flushleft{\large\normalfont\scshape\thepiece}}
}
\endinput