o Shay Rojanski Some mudela source.
-Your name could be here! If you want to help, then take a
-look at the SMALLISH PROJECTS section of in the file TODO.
-Some do not involve coding C++
-
-[And of course we sincerely thank J.S.Bach, F.Schubert, T.
-Merula and W.A.Mozart for their beautiful music]
+Your name could be here! If you want to fix something, do
+it, and send us a patch!
--- /dev/null
+[Note to uninitiated readers. This is a Q&A document that explains
+what to watch out for when submitting scores for the Mutopia project.
+The Mutopia project is an effort to accumulate an archive of sheet
+music that is in the public domain. The project should be similar to
+the Gutenberg project.
+
+We will be using music typesetting software to produce the software.
+The project will only accept music for composers that have passed into
+the PD. The sole remaining problem is caused by the editorial
+changes. A recent edition may contain editorial amendments that are
+not in the PD, so we cannot simply copy the music from recent
+editions.]
+
+
+
+What is copyright?
+
+Copyright is a legal system that protects the expressions of ideas.
+It was originally conceived to foster development of art and
+knowledge.
+
+Copyright law gives "owners" of the expressions the right to restrict
+reproductions of these expressions and collect fees. In this way they
+can earn a living. For example, a poet may restrict xeroxing and
+public performances of his poems, and demand a fee for print for
+prints and performances.
+
+After some time ---for most forms of expression, this is 70 years
+after the author died--- the work goes into the public domain, which
+means that all restrictions are lifted. You can print, perform and
+modify the works as much as you like.
+
+Copyright law is internationalised. In most countries the conditions
+from the Berne convention have been adopted.
+
+
+
+
+How does copyright work for music scores?
+
+Let's analyze how a printed score is produced:
+
+1. The composer composes music.
+
+2. An editor edits the music, based on the composer's manuscript and
+on other editions.
+
+3. An engraver lays out the editor's product.
+
+As you can see, there are three individuals, whose expressions are
+protected by copyright law. Since we are interested in the scores
+that are in the PD.
+
+The copyright on the music itself passes into the PD 70 years after
+the death of the composer. (Or XXXX years after publication if the
+work is published posthumously.)
+
+The copyright on the editorial changes pass in to the PD 70 years
+after death of the editor, or XXX years after publication. Depending on YYY
+
+The copyright of the engraver is of no interest to us, since we will
+not reproduce any of the layout.
+
+
+
+What are editorial changes?
+
+
+
+
+
+
+How do I find out what changes might be copyrighted?
+
+You cannot copyright something you did not create yourself. So if you
+find the same editorial changes across different editions it is
+unlikely that it is copyrighted.
+
+
+
+
+Urtexts?
+
+
+
+Scores that are not marked with dates?
+
+
you do some hacking, we appreciate it if you would follow this rules,
but if you don't, we still like you.
-Functions and methods do not return errorcodes, but use assert for
-checking status.
+Functions and methods do not return errorcodes.
quote(
verb(
This_is_a_class
- AClass_name (for Abbreviation_class_name)
)
nsubsect(MEMBERS)
nsect(HUNGARIAN NOTATION NAMING CONVENTION)
Proposed is a naming convention derived from the so-called
-em(Hungarian Notation).
-
-nsubsect(Hungarian)
-
-The Hungarian Notation was conceived by or at least got its name from,
-the hungarian programmer Charles Simonyi. It is a naming convention
-with the aim to make code more readable (for fellow programmers), and
-more accessible for programmers that are new to a project.
-
-The essence of the Hungarian Notation is that every identifier has a
-part which identifies its type (for functions this is the result
-type). This is particularly useful in object oriented programming,
-where a particular object implies a specific interface (a set of
-member functions, perhaps some redefined operators), and for
-accounting heap allocated memory pointers and links.
-
-nsubsect(Advantages)
-
-Another fun quote from Microsoft Secrets:
-
-quote(
- The Hungarian naming convention gives developers the ability
- to read other people's code relatively easily, with a minmum
- number of comments in the source code. Jon De Vann estimated
- that only about 1 percent of all lines in the Excel product
- code consist of comments, but the code is still very
- understandable due to the use of Hungarian: "if you look at
- our source code, you also notice very few comments. Hungarian
- gives us the ability to go in and read code..."
-)
-
-Wow! If you use Hungarian you don't have to document your software!
-Just think of the hours I have wasted documenting while this "silver bullet"
-existed. I feel so stupid and ashamed! (Didn't MMM-Brooks say `There is
-no silver bullet?' --HWN)
-
-
-nsubsect(Disadvantages)
-
-itemize(
-it()more keystrokes (disk space!)
-it()it looks silly code(get_slu_p())
-it()it looks like code from micro suckers
-it()(which) might scare away some (otherwise good?)
- progammers, or make you a paria in the free
- software community
-it()it has ambiguities
-it()not very useful if not used consistently
-it()usefullness in em(very large) (but how many classes is very large?)
- remains an issue.
-)
-
-nsubsect(Proposal)
-
-itemize(
-it()learn about cut and paste / use emacs or vi
- or lean to type using ten fingers
-it()Use emacs dabbrev-expand, with dabbrev-case-fold-search set to nil.
-it()use no, or pick less silly, abbrvs.
-it()use non-ambiguous postfixes code(identifier_name_type_modifier[_modifier])
-it()There is no need for Hungarian if the scope of the variable is small,
- ie. local variables, arguments in function definitions (not
- declarations).
-)
-
-Macros, code(enum)s and code(const)s are all uppercase,
-with the parts of the names separated by underscores.
+em(Hungarian Notation). Macros, code(enum)s and code(const)s are all
+uppercase, with the parts of the names separated by underscores.
nsubsect(Types)
STEPMAKE_TEMPLATES=documentation
README_TOP_FILES=NEWS DEDICATION TODO ANNOUNCE-0.1 AIMS
INFO_FILES = $(wildcard $(outdir)/$(package).info*)
+EXTRA_DIST_FILES = COPYRIGHT
in the file(AUTHORS.pod) file, or you won't get credits :-]
+em(Please) always send a bf(-u) diff, even if it is larger than the
+whole file.
+
question(How do I learn the C++ code?)
The entry point is in code(main()). Good luck. :-)
Also, don't forget to remove all old .tfm and .*pk files when the font
is updated (as it will be in version 1.1.40, for example).
-question(How does PS output work?)
+question(Are there scalable versions of the font?)
-itemize(
- it()
-Generate the PostScript Type-3 fonts. In the file(mf/)
+Yes, they are type-3 fonts. In the file(mf/)
subdirectory, issue:
verb(
make pfa
) in the mf/ subdirectory. This will also make file(mfplain) for metapost.
+The file(pfa)s will be in the subdirectory file(out/).
+
+question(How does PS output work?)
+
+itemize(
+ it()
+Generate the PostScript Type-3 fonts.
it()
Run lilypond with option tt(-f ps):
verb(
-
article(links - Links to other related websites)(HWN and JCN)()
sect(DESCRIPTION)
description(
dit(lurl(http://www.cs.uu.nl/people/hanwen/lilypond/))Han-Wen's site.
-dit(lurl(http://www.xs4all.nl/~jantien/lilypond/))Jan's site.
dit(lurl(http://sca.uwaterloo.ca/lilypond/))The canadian mirror
(thanks, Eric!)
)
description(
dit(lurl(http://www.gnu.org/))
- LilyPond is part of the GNU Project started by the Free Software
- Foundation to create a system of free software for the world-community
+ LilyPond is part of the GNU Project. The GNU project is the name
+ of Richard Stallman's effort to create a freely available
+ system of software.
dit(lurl(http://www.zib.de/Visual/software/doc++/index.html))
The documentation system for C++ sources, which is used for the
LilyPond sources.
An enormous collection of music related URLs
dit(lurl(http://www.ram.org/ramblings/philosophy/fmp.html))
Musings on free music, plus hints how to record your own (free) music.
-
dit(lurl(http://www.geocities.com/Vienna/Studio/1714/))
John Sankey has taken up the task of recording classical
-music, and distributing the results at no cost.
+ music, and distributing the results at no cost.
)
-
sect(Ftp)
-We will upload major releases to the following sites:
-
-description(
-dit(lurl(ftp://metalab.unc.edu/pub/Linux/apps/sound/convert))
- The GNU/Linux FTP site
-
-dit(lurl(ftp://ftp.dante.de/tex-archive/support/lilypond))
- An ftp site which is in CTAN. CTAN is a worldwide network of
- sites full of TeX() stuff.
-
-dit(lurl(ftp://ftp.redhat.com/pub/contrib/))
- The FTP site of RedHat Software.
-)
-
-At this moment we have about one development-patchlevel per week.
-These development releases will also be at
+At this moment we have about one development-patchlevel per week.
+These development releases will be at
itemize(
it()lurl(ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/development)
it()lurl(ftp://sca.uwaterloo.ca/pub/lilypond)
-it()[your mirror here]
+it()lurl(ftp://ftp.lilypond.org/pub/lilypond)
)
Debian releases are located at
dit(lurl( http://sound.condorow.net))
Dave Philips' Linux sound applications page
dit(lurl(http://www4.smart.net/~jcovey/scores.html))
- Jeff Covey's guitar music=
+ Jeff Covey's guitar music
dit(lurl(http://www.home.fh-karlsruhe.de/~rost0001/web/musik/musik.html))
Stochastic composing using LilyPond
dit(lurl(http://www.medieval.org/emfaq/scores/software.html))
More software for (early) music.
-dit(lurl(http://www.emry.net/webwatcher/))
- The Linux webwatcher: this site logs changes in important Linux sites.
dit(lurl(http://www.pbm.com/~lindahl/ravenscroft/modern))
Transcriptions of the music of Thomas Ravenscroft, partly using
LilyPond
manpage(LilyPond)
(1)
- (1998)
+ (1999)
(The LilyPond package)
(The GNU Project Music Typesetter)
manpageoptions()
description(
-dit(-I,--include=FILE)
+dit(-I,--include=)
add file(FILE) to the search path for input files.
dit(-M,--midi)
- This disables TeX output. If you have a \midi definition, it will do the
+ Disable TeX output. If you have a \midi definition, it will do the
midi output only.
dit(-d,--dependencies)
Also output rules to be included in Makefile.
dit(--include, -I=DIRECTORY)
Add file(DIRECTORY) to the search path for input files.
dit(--ignore-version, -V)
- Make incompatible mudela version non-fatal.
+ Make the incompatible mudela version warning non-fatal.
)
manpagesection(FEATURES)
customizable notenames, customisable fontset.
it()MIDI output lets you check if you have entered the correct notes.
it()MIDI to Mudela conversion through the mi2mu program.
-it()Multiple staffs in one score. Each staff can have different meters.
+it()Multiple staffs in one score. Each staff can have different time signatures.
it()Beams, slurs, ties, chords, super/subscripts (accents and text)
triplets, general n-plet (triplet, quadruplets, etc.), lyrics,
- transposition dynamics (both absolute and hairpin style).
+ transposition, dynamics (both absolute and hairpin style).
it()Multiple voices within one staff; beams optionally shared
between voices. Up to four voices is handled cleanly.
it()Multiple scores within one input file. Each score is output to
manpagesection(DISCLAIMER)
-GNU LilyPond is copyright 1996-1998 by its authors. GNU LilyPond is
+GNU LilyPond is copyright 1996-1999 by its authors. GNU LilyPond is
distributed under the terms of the GNU General Public License. GNU LilyPond
is provided without any warranty what so ever.
GNU LilyPond may be freely distributed. For further information consult
manpagesection(PROBLEMS)
-There is an extensive list of todoes and bugs. See file(TODO). If you
-have a problem you should try to find out
+There is an extensive list of todoes and bugs. See the file
+file(TODO) distributed with the sources. If you have a problem you
+should try to find out
itemize(
it()If the bug has been fixed in a newer release.
it()If the bug has been found earlier, consult file(TODO) and file(BUGS).
)
-If you have found a bug, then you should send a bugreport.
+If you have found a bug, then we would appreciate it if you sent a
+bugreport.
itemize(
it()Send a copy of the input which causes the error.
it()Send a description of the LilyPond version you use
(with compile/configure options please).
it()Send a description of the bug itself.
-it()Send it to email(bug-gnu-music@gnu.org) (you don't have to subscribe
- to this mailinglist).
+it()Send it to email(bug-gnu-music@gnu.org); you don't have to be subscribed
+ to this mailinglist.
)
manpagefiles()
description(
dit(file(init.ly))
The initialisation file with symbol tables etc. It
- includes files from the directory file(init/).
+ includes files from the directory
+ file(PREFIX/share/lilypond/ly/). (file(PREFIX) typically is file(/usr/local)
)
manspagesection(environment)
dit(LILYINCLUDE)
additional directories for finding lilypond data. The
format is like the format of file(PATH).
+dit(LILYPREFIX)
+ [FIXME]
dit(LANG)
selects the language for the warning messages of LilyPond.
)
manpageseealso()
+LilyPond comes with various other documentation files, but most are in
+the form of manual pages. They are included in the source
+package. Interesting documents include
+
description(
-dit(internals)
- On technical details of LilyPond
-dit(mudela-man)
- On the input format. This is a LilyPond-enhanced LaTeX document.
dit(MANIFESTO)
Goals of the GNU LilyPond project.
dit(FAQ)
The GNU LilyPond FAQ list
-dit(GNU url(LilyPond)(http://www.cs.uu.nl/people/hanwen/lilypond/index.html))
- has her own webpage. This webpage contains the MIDI, GIF and PS files for
- some standard music files. It also has the complete LilyPond documentation
)
-GNU LilyPond is
-updated very frequently, the latest version is always available at:
-lurl(ftp://ftp.cs.uu.nl/pub/GNU/LilyPond). This FTP site is mirrored
-at a number of sites; consult the project web pages for information
-about mirrors.
+A further source for information is the website, which can be found at
+lurl(http://www.lilypond.org/). The website contains on-line versions
+of the documentation
+
+
+GNU LilyPond is updated very frequently, the latest version is always
+available at: lurl(ftp://ftp.cs.uu.nl/pub/GNU/LilyPond). This FTP
+site is mirrored at a number of sites; consult the project web pages
+for information about mirrors.
For programs which are part of the GNU music project, the following
mailing list have been setup:
manpagesection(REMARKS)
GNU LilyPond has no connection with the music package Rosegarden, other
-than the names being similar (:-)
-
-manpagesection(HISTORY)
-cindex(History)
-
-(for a detailed changelog, see file(NEWS))
-
-GNU LilyPond's roots lie in MPP, a preprocessor to the rather arcane
-MusiXTeX macro package for TeX. A friend of mine, Jan Nieuwenhuizen
-wrote the first 44 versions (0.01 to 0.44), then his program caught my
-attention, and I was slowly sucked in to the interesting problem of
-easily producing beautifully printed music. I contributed some
-code. We soon realised that MPP's design was too fundamentally broken
-to be repaired, so it was decided to rewrite MPP. We debated a lot about
-the requirements to an inputformat (fall 1995). I sat down and started
-with a parser-first, bottom-up rewrite called mpp95 (which totally
-failed, obviously).
-
-After long and hard thinking, I came up with an algorithm for the
-horizontal spacing of multiple staffs (april 1996) I coded it (and did
-not test it). After starting with this fundamental piece, I slowly
-added the stages which come before spacing, and after. A half year
-later, I had a first working version, (october 1996). I announced
-Patchlevel 0.0.7 (or 8) to the mutex list after asking some technical
-details on spacing; it was downloaded approximately 4 times. Then I
-got the hang of it, and in the subsequent two months, I coded until it
-had doubled in size (pl 23).
-
-Most the other history is described in the NEWS file. The first large
-scale release (0.1) was done after approximately 78 patchlevels on
-August 1, 1997.
+than the names being similar :-)
manpageauthor()
cindex(Author)
-Please consult the documentation file file(AUTHORS.txt) for more detailed
-information, and small contributions.
-
itemize(
it()nemail(Han-wen Nienhuys)(hanwen@cs.uu.nl)
lurl(http://www.cs.uu.nl/people/hanwen)
it()nemail(Jan Nieuwenhuizen)(janneke@gnu.org)
lurl(http://www.xs4all.nl/~jantien)
)
+
+Please consult the documentation file file(AUTHORS) for more detailed
+information, and small contributions.
+
-.TH "LilyPond" "1" "1998" "The LilyPond package" "The GNU Project Music Typesetter"
+.TH "LilyPond" "1" "1999" "The LilyPond package" "The GNU Project Music Typesetter"
.PP
.PP
.SH "NAME"
part extraction\&. It includes a nice font of musical symbols\&.
.PP
.SH "OPTIONS"
-.IP "-I,--include=FILE"
+.IP "-I,--include="
add \fBFILE\fP to the search path for input files\&.
.IP "-M,--midi"
-This disables TeX output\&. If you have a \emidi definition, it will do the
+Disable TeX output\&. If you have a \emidi definition, it will do the
midi output only\&.
.IP "-d,--dependencies"
Also output rules to be included in Makefile\&.
.IP "--include, -I=DIRECTORY"
Add \fBDIRECTORY\fP to the search path for input files\&.
.IP "--ignore-version, -V"
-Make incompatible mudela version non-fatal\&.
+Make the incompatible mudela version warning non-fatal\&.
.PP
.SH "FEATURES"
.PP
.IP o
MIDI to Mudela conversion through the mi2mu program\&.
.IP o
-Multiple staffs in one score\&. Each staff can have different meters\&.
+Multiple staffs in one score\&. Each staff can have different time signatures\&.
.IP o
Beams, slurs, ties, chords, super/subscripts (accents and text)
triplets, general n-plet (triplet, quadruplets, etc\&.), lyrics,
-transposition dynamics (both absolute and hairpin style)\&.
+transposition, dynamics (both absolute and hairpin style)\&.
.IP o
Multiple voices within one staff; beams optionally shared
between voices\&. Up to four voices is handled cleanly\&.
.PP
.SH "DISCLAIMER"
.PP
-GNU LilyPond is copyright 1996-1998 by its authors\&. GNU LilyPond is
+GNU LilyPond is copyright 1996-1999 by its authors\&. GNU LilyPond is
distributed under the terms of the GNU General Public License\&. GNU LilyPond
is provided without any warranty what so ever\&.
GNU LilyPond may be freely distributed\&. For further information consult
.PP
.SH "PROBLEMS"
.PP
-There is an extensive list of todoes and bugs\&. See \fBTODO\fP\&. If you
-have a problem you should try to find out
+There is an extensive list of todoes and bugs\&. See the file
+\fBTODO\fP distributed with the sources\&. If you have a problem you
+should try to find out
.PP
.IP o
If the bug has been fixed in a newer release\&.
.IP o
If the bug has been found earlier, consult \fBTODO\fP and \fBBUGS\fP\&.
.PP
-If you have found a bug, then you should send a bugreport\&.
+If you have found a bug, then we would appreciate it if you sent a
+bugreport\&.
.PP
.IP o
Send a copy of the input which causes the error\&.
.IP o
Send a description of the bug itself\&.
.IP o
-Send it to bug-gnu-music@gnu\&.org (you don\'t have to subscribe
-to this mailinglist)\&.
+Send it to bug-gnu-music@gnu\&.org; you don\'t have to be subscribed
+to this mailinglist\&.
.PP
.SH "FILES"
.IP "\fBinit\&.ly\fP"
The initialisation file with symbol tables etc\&. It
-includes files from the directory \fBinit/\fP\&.
-.PP
+includes files from the directory
+\fBPREFIX/share/lilypond/ly/\fP\&. (\fBPREFIX\fP typically is \fB/usr/local\fP
+)
+.IP
manspagesection(environment)
-.PP
+.IP
.IP "LILYINCLUDE"
additional directories for finding lilypond data\&. The
format is like the format of \fBPATH\fP\&.
+.IP "LILYPREFIX"
+[FIXME]
.IP "LANG"
selects the language for the warning messages of LilyPond\&.
-.PP
+.IP
.SH "BUGS"
-.PP
+.IP
Lots of them\&. See \fBTODO\fP and \fBBUGS\fP
-.PP
+.IP
.SH "SEE ALSO"
-.PP
-.IP "internals"
-On technical details of LilyPond
-.IP "mudela-man"
-On the input format\&. This is a LilyPond-enhanced LaTeX document\&.
+.IP
+LilyPond comes with various other documentation files, but most are in
+the form of manual pages\&. They are included in the source
+package\&. Interesting documents include
+.IP
.IP "MANIFESTO"
Goals of the GNU LilyPond project\&.
.IP "FAQ"
The GNU LilyPond FAQ list
-.IP "GNU LilyPond"
-has her own webpage\&. This webpage contains the MIDI, GIF and PS files for
-some standard music files\&. It also has the complete LilyPond documentation
-.PP
-GNU LilyPond is
-updated very frequently, the latest version is always available at:
-ftp://ftp\&.cs\&.uu\&.nl/pub/GNU/LilyPond\&. This FTP site is mirrored
-at a number of sites; consult the project web pages for information
-about mirrors\&.
-.PP
+.IP
+A further source for information is the website, which can be found at
+http://www\&.lilypond\&.org/\&. The website contains on-line versions
+of the documentation
+.IP
+GNU LilyPond is updated very frequently, the latest version is always
+available at: ftp://ftp\&.cs\&.uu\&.nl/pub/GNU/LilyPond\&. This FTP
+site is mirrored at a number of sites; consult the project web pages
+for information about mirrors\&.
+.IP
For programs which are part of the GNU music project, the following
mailing list have been setup:
-.PP
+.IP
.IP "info-gnu-music@gnu\&.org"
For information on the GNU Music project, to subscribe: send mail with
subject "subscribe" to info-gnu-music-request@gnu\&.org
For discussions concerning the GNU Music project, to subscribe: send
mail with subject "subscribe" to
gnu-music-discuss-request@gnu\&.org
-.PP
+.IP
Announces of new versions will be sent to info-gnu-music and
gnu-music-discuss\&.
-.PP
+.IP
.SH "REMARKS"
-.PP
+.IP
GNU LilyPond has no connection with the music package Rosegarden, other
-than the names being similar (:-)
-.PP
-.SH "HISTORY"
-.PP
-(for a detailed changelog, see \fBNEWS\fP)
-.PP
-GNU LilyPond\'s roots lie in MPP, a preprocessor to the rather arcane
-MusiXTeX macro package for TeX\&. A friend of mine, Jan Nieuwenhuizen
-wrote the first 44 versions (0\&.01 to 0\&.44), then his program caught my
-attention, and I was slowly sucked in to the interesting problem of
-easily producing beautifully printed music\&. I contributed some
-code\&. We soon realised that MPP\'s design was too fundamentally broken
-to be repaired, so it was decided to rewrite MPP\&. We debated a lot about
-the requirements to an inputformat (fall 1995)\&. I sat down and started
-with a parser-first, bottom-up rewrite called mpp95 (which totally
-failed, obviously)\&.
-.PP
-After long and hard thinking, I came up with an algorithm for the
-horizontal spacing of multiple staffs (april 1996) I coded it (and did
-not test it)\&. After starting with this fundamental piece, I slowly
-added the stages which come before spacing, and after\&. A half year
-later, I had a first working version, (october 1996)\&. I announced
-Patchlevel 0\&.0\&.7 (or 8) to the mutex list after asking some technical
-details on spacing; it was downloaded approximately 4 times\&. Then I
-got the hang of it, and in the subsequent two months, I coded until it
-had doubled in size (pl 23)\&.
-.PP
-Most the other history is described in the NEWS file\&. The first large
-scale release (0\&.1) was done after approximately 78 patchlevels on
-August 1, 1997\&.
+than the names being similar :-
.PP
.SH "AUTHOR"
.PP
-Please consult the documentation file \fBAUTHORS\&.txt\fP for more detailed
-information, and small contributions\&.
-.PP
.IP o
Han-wen Nienhuys <hanwen@cs\&.uu\&.nl>
http://www\&.cs\&.uu\&.nl/people/hanwen
.IP o
Jan Nieuwenhuizen <janneke@gnu\&.org>
http://www\&.xs4all\&.nl/~jantien
+.PP
+Please consult the documentation file \fBAUTHORS\fP for more detailed
+information, and small contributions\&.
+.PP
@Misc{igor,
title = {Igor},
author = {Technoligor AB},
- note = {Commercial music notation with bigwig supporters.
-Still in beta},
+ note = {Commercial music notation with bigwig supporters.},
html={http://www.igortech.pi.se/},
}
dit(code(abbrev)) Set length for tremolo to be used if no length is
explicitly specified.
-GONE dit(code(markScriptPadding)) Determines the extra space added between
+dit(code(tupletDirection)) Determines the direction of triplets and
+other tuplets. Set to code(\down) to force them below the staff,
+code(\up) to force them above, or code(\free) to let LilyPond decide.
+
+dit(code(tupletVisibility)) Determines whether tuplets of notes are
+labelled. Setting to 0 shows nothing; setting to 1 shows a number;
+setting to 2 shows a number and a bracket if there is no beam; setting
+to 3 shows a number, and if there is no beam it adds a bracket;
+setting to 4 shows both a number and a bracket unconditionally. The
+code(pletoff) and code(pleton) identifiers set the property to 0 and 3,
+respectively.
+
+dit(code(markScriptPadding)) Determines the extra space added between
the mark and the closest staff line or note.
-GONE dit(code(markDirection)) Determines if marks should be printed above
+dit(code(markDirection)) Determines if marks should be printed above
or below the staff. Set to code(\up) to print marks above the staff;
set to code(\down) to print marks below the staff.
+dit(code(articulationScriptPadding)) Determines the extra space added
+between articulation marks, such as staccato, tenuto, trill, up/down
+bow or fermata, and the closest staff line or note.
)
subsubsubsect(Staff properties)
)
-Your name could be here! If you want to help, then take a look at the
-SMALLISH PROJECTS section of in the file file(TODO). Some do not involve
-coding C++
-
-[And of course we sincerely thank J.S.Bach, F.Schubert, T. Merula and
-W.A.Mozart for their beautiful music]
+Your name could be here! If you want to fix something, do it, and send
+us a patch!
(PPC, intel), FreeBSD, AIX, NeXTStep, IRIX, Digital Unix and
Solaris.
-it()Lots of disk space: LilyPond takes between 50 and 100 mb to
+it()Lots of disk space: LilyPond takes between 30 and 100 mb to
compile if you use debugging information. If you are short on
disk-space run configure with code(--disable-debugging).
NT/95/98 as well. See Section ref(w32).
it() EGCS 1.1 or newer.
-it() Python 1.5 (Strictly speaking, you shouldn't need Python for
- compiling and installing, but you'll need it to regenerate the font
- tables, e.g.).
-it() GUILE 1.3 (no, GUILE 1.2 won't work), check out lurl(http://www.gnu.org/software/guile/guile.html).
+
+it() Python 1.5,
+Check out
+lurl(ftp://ftp.python.org) or lurl(ftp://ftp.cwi.nl/pub/python).
+
+it() GUILE 1.3, check out lurl(http://www.gnu.org/software/guile/guile.html).
+
+it()GNU make.
+Check out lurl(ftp://ftp.gnu.org).
+
+it()Flex (version 2.5.4 or newer).
+Check out lurl(ftp://ftp.gnu.org).
+
+it()Bison (version 1.25 or newer).
+Check out lurl(ftp://ftp.gnu.org).
+
+it()Yodl. All documentation will be in Yodl. (1.30.17)
+lurl(ftp://ftp.lilypond.org/pub/yodl)
+
+it()The geometry package for LaTeX is needed to use ly2dvi.
+Available at
+lurl(ftp://ftp.ctan.org/tex-archive/macros/latex/contrib/supported/geometry)
+or at mirror site lurl(ftp://ftp.dante.de)
)
+
sect(RUNNING)
GNU LilyPond does use a lot of resources. For operation you need the
-following:
+following software
itemize(
it()TeX
it()A PostScript printer and/or viewer (such as Ghostscript) is strongly
recommended. Xdvi will show all embedded PostScript too if you have
Ghostscript installed.
-it() GUILE 1.3 (no, GUILE 1.2 won't work), check out lurl(http://www.gnu.org/programs/guile.html)
+it() GUILE 1.3, check out lurl(http://www.gnu.org/programs/guile.html)
)
represents TeX() and MetaFont's default search paths. Scripts with
the proper paths for the bourne and C-shell respectively are generated in
file(buildscripts/out/lilypond-profile) and
-file(buildscripts/out/lilypond-login) during compilation.
-
+file(buildscripts/out/lilypond-login) during compilation.
-sect(RECOMMENDED)
+LilyPond is a hideously slow program. A fast CPU and plenty of RAM is
+recommended for comfortable use.
-Although not strictly necessary, these are recommended to have.
-
-itemize(
-it()GNU make.
-Check out lurl(ftp://ftp.gnu.org)
-or any mirror of this site.
-it()Flex (version 2.5.4 or newer).
-Check out lurl(ftp://ftp.gnu.org)
-or any mirror of this site.
-it()Bison (version 1.25 or newer).
-Check out lurl(ftp://ftp.gnu.org)
-or any mirror of this site.
-it() GUILE 1.3 (no, GUILE 1.2 won't work),
-check out lurl(http://www.gnu.org/programs/guile.html).
-
-
-it()Python (version 1.5 or newer). Check out
-lurl(ftp://ftp.python.org) or lurl(ftp://ftp.cwi.nl/pub/python).
-
-it()Yodl. All documentation will be in Yodl. (1.30.17)
-lurl(ftp://ftp.lilypond.org/pub/yodl)
- lurl(http://www.cs.uu.nl/~hanwen/yodl)
-it()Texinfo. (version 3.12 or newer)
-
-it()GNU find
-Check out lurl(ftp://ftp.gnu.org)
-or any mirror of this site.
-
-it()The geometry package for LaTeX is needed to use ly2dvi.
- Available at
-lurl(ftp://ftp.ctan.org/tex-archive/macros/latex/contrib/supported/geometry)
-or at mirror site lurl(ftp://ftp.dante.de)
-
-it() A fast computer: a full page of music typically takes 1 minute on my
- 486/133, using the bf(--enable-checking) compile.
-)
sect(WEBSITE)
)
Building the website requires pnmtopng. The version of file(pnmtopng)
-that is distributed with RedHat 5.1 contains a bug (pnmtopng is
-dynamically linked to the wrong version of libpng). Recompile it from
-source, and make sure that the pnmtopng binary is linked statically to
-the libpng that is included in libgr.
+that is distributed with RedHat 5.1 and 5.2 contains a bug: pnmtopng
+is dynamically linked to the wrong version of libpng. Recompile it
+from source, and make sure that the pnmtopng binary is linked
+statically to the libpng that is included in libgr. RedHat 6.0 does
+not have this problem.
verb( tar xzf libgr-2.0.13.tar.gz
make
nsect(DESCRIPTION)
This page documents how to distribute your changes to GNU lilypond
-(or in fact any other StepMake package).
nsect(ABSTRACT)
-Distributing a change normally goes like this:
+We would like to have unified context diffs with full pathnames. A
+script automating supplied with Lily.
+
+ Distributing a change normally
+goes like this:
itemize(
it()make your fix/add your code
nsect(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 reasons :-), the maintainer will probably ask
-you to make a new patch against the latest release.
-Your best bet is to download the latest release, and apply your patch
-against this new source tree:
+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, the maintainer will probably ask you to make a new patch against
+the latest release. Your best bet is to download the latest release,
+and apply your patch against this new source tree:
verb(
cd lilypond-0.1.74
verb(
Please send your e-mail to one of the MAILING LISTS
)
-and not to us personally. See file(Documentation/links.yo) for more info.
+and em(not) to us personally. See file(Documentation/links.yo) for more info.
sect(WINDOWS 32)
These pages were entirely created from the LilyPond package-sources.
Sorry for poor look they have: we want to be hacking at LilyPond, and
-not at the webpages.
+not at the webpages. If you want to volunteer for making shazzy
+webpages, then please mail us!
Note: These pages are created from the latest bf(development snapshots)
of LilyPond, specifically, this page was made from LilyPond
itemize(
it()url(Tutorial)(DOEXPAND(docdir)/tex/DOEXPAND(outdir)/tutorial.html)
it()url(FAQ)(DOEXPAND(docdir)/DOEXPAND(outdir)/faq.html)
-it()url(Reference Manual)(DOEXPAND(docdir)/tex/DOEXPAND(outdir)/refman.html)
it()url(Mailing Lists)(DOEXPAND(docdir)/DOEXPAND(outdir)/mail.html)
it()url(All of the LilyPond documentation)(DOEXPAND(docdir)/DOEXPAND(outdir)/index.html)
it()url(The DOC++ documentation of the C++ sources.)(DOEXPAND(depth)/docxx/index.html)
2: OBTAINING
3: PREREQUISITES
4: RUNNING
-5: RECOMMENDED
-6: WEBSITE
-7: CONFIGURING and COMPILING
-8: CONFIGURING FOR MULTIPLE PLATFORMS
-9: INSTALLING
-10: REDHAT LINUX
-11: DEBIAN GNU/LINUX
-12: WINDOWS NT/95
-13: AUTHORS
+5: WEBSITE
+6: CONFIGURING and COMPILING
+7: CONFIGURING FOR MULTIPLE PLATFORMS
+8: INSTALLING
+9: REDHAT LINUX
+10: DEBIAN GNU/LINUX
+11: WINDOWS NT/95
+12: AUTHORS
1: ABSTRACT
systems: Linux (PPC, intel), FreeBSD, AIX, NeXTStep,
IRIX, Digital Unix and Solaris.
-o Lots of disk space: LilyPond takes between 50 and 100
+o Lots of disk space: LilyPond takes between 30 and 100
mb to compile if you use debugging information. If you
are short on disk-space run configure with --disable-
debugging.
Although we recommend to use Unix, LilyPond is known to
- run on Windows NT/95/98 as well. See Section 12.
+ run on Windows NT/95/98 as well. See Section 11.
o EGCS 1.1 or newer.
-o Python 1.5 (Strictly speaking, you shouldn't need
- Python for compiling and installing, but you'll need it
- to regenerate the font tables, e.g.).
+o Python 1.5, Check out ftp://ftp.python.org or
+ ftp://ftp.cwi.nl/pub/python.
-o GUILE 1.3 (no, GUILE 1.2 won't work), check out
- http://www.gnu.org/software/guile/guile.html.
+o GUILE 1.3, check out http://www.gnu.org/soft-
+ ware/guile/guile.html.
+
+o GNU make. Check out ftp://ftp.gnu.org.
+
+o Flex (version 2.5.4 or newer). Check out
+ ftp://ftp.gnu.org.
+
+o Bison (version 1.25 or newer). Check out
+ ftp://ftp.gnu.org.
+
+o Yodl. All documentation will be in Yodl. (1.30.17)
+ ftp://ftp.lilypond.org/pub/yodl
+
+o The geometry package for LaTeX is needed to use ly2dvi.
+ Available at ftp://ftp.ctan.org/tex-
+ archive/macros/latex/contrib/supported/geometry or at
+ mirror site ftp://ftp.dante.de
4: RUNNING
-GNU LilyPond does use a lot of resources. For operation you
-need the following:
+GNU LilyPond does use a lot of resources. For operation you
+need the following software
o TeX
o A PostScript printer and/or viewer (such as
- Ghostscript) is strongly recommended. Xdvi will show
- all embedded PostScript too if you have Ghostscript
+ Ghostscript) is strongly recommended. Xdvi will show
+ all embedded PostScript too if you have Ghostscript
installed.
-o GUILE 1.3 (no, GUILE 1.2 won't work), check out
- http://www.gnu.org/programs/guile.html
+o GUILE 1.3, check out http://www.gnu.org/pro-
+ grams/guile.html
-For running LilyPond successfully you have to help TeX and
-MetaFont find various files. The recommended way of doing
-so is adjusting the environment variables in the start-up
-scripts of your shell. An example is given here for the
+For running LilyPond successfully you have to help TeX and
+MetaFont find various files. The recommended way of doing
+so is adjusting the environment variables in the start-up
+scripts of your shell. An example is given here for the
Bourne shell:
export MFINPUTS="/usr/local/share/lilypond/mf:"
export TEXINPUTS="/usr/local/share/lilypond/tex:/usr/local/share/lilypond/ps:"
-The empty path component represents and MetaFont's default
-search paths. Scripts with the proper paths for the bourne
+The empty path component represents and MetaFont's default
+
+search paths. Scripts with the proper paths for the bourne
and C-shell respectively are generated in build-
-scripts/out/lilypond-profile and buildscripts/out/lilypond-
+scripts/out/lilypond-profile and buildscripts/out/lilypond-
login during compilation.
-5: RECOMMENDED
+LilyPond is a hideously slow program. A fast CPU and plenty
+of RAM is recommended for comfortable use.
-Although not strictly necessary, these are recommended to
-have.
-
-o GNU make. Check out ftp://ftp.gnu.org or any mirror of
- this site.
-
-o Flex (version 2.5.4 or newer). Check out
- ftp://ftp.gnu.org or any mirror of this site.
-
-o Bison (version 1.25 or newer). Check out
- ftp://ftp.gnu.org or any mirror of this site.
-
-o GUILE 1.3 (no, GUILE 1.2 won't work), check out
- http://www.gnu.org/programs/guile.html.
-
-o Python (version 1.5 or newer). Check out
- ftp://ftp.python.org or ftp://ftp.cwi.nl/pub/python.
-
-o Yodl. All documentation will be in Yodl. (1.30.17)
- ftp://ftp.lilypond.org/pub/yodl
- http://www.cs.uu.nl/~hanwen/yodl
-
-o Texinfo. (version 3.12 or newer)
-
-o GNU find Check out ftp://ftp.gnu.org or any mirror of
- this site.
-
-o The geometry package for LaTeX is needed to use ly2dvi.
- Available at ftp://ftp.ctan.org/tex-
- archive/macros/latex/contrib/supported/geometry or at
- mirror site ftp://ftp.dante.de
-
-o A fast computer: a full page of music typically takes 1
- minute on my 486/133, using the --enable-checking com-
- pile.
-
-6: WEBSITE
+5: WEBSITE
If you want to auto-generate Lily's website, you'll need
some additional conversion tools.
TeTeX users should not forget to rerun texhash.
Building the website requires pnmtopng. The version of pnm-
-topng that is distributed with RedHat 5.1 contains a bug
-(pnmtopng is dynamically linked to the wrong version of
-libpng). Recompile it from source, and make sure that the
+topng that is distributed with RedHat 5.1 and 5.2 contains a
+bug: pnmtopng is dynamically linked to the wrong version of
+libpng. Recompile it from source, and make sure that the
pnmtopng binary is linked statically to the libpng that is
-
-included in libgr.
+included in libgr. RedHat 6.0 does not have this problem.
tar xzf libgr-2.0.13.tar.gz
make
You can then install the new pnmtopng into /usr/local/bin/
-7: CONFIGURING and COMPILING
+6: CONFIGURING and COMPILING
to install GNU LilyPond, simply type:
/usr/local/share/lilypond/*
/usr/local/share/locale/{it,nl}/LC_MESSAGES/lilypond.mo
-The above assumes that you are root and have the GNU devel-
+The above assumes that you are root and have the GNU devel-
opment tools, and your make is GNU make. If this is not the
-case, you can adjust your environment variables to your
+case, you can adjust your environment variables to your
taste:
export CPPFLAGS="-I /home/me/my_include -DWEIRD_FOOBAR"
CPPFLAGS are the preprocessor flags.
The configure script is Cygnus configure, and it will accept
---help. If you are not root, you will probably have to make
+--help. If you are not root, you will probably have to make
it with a different --prefix option. Our favourite location
is
./configure --prefix=$HOME/usr
-In this case, you will have to set up MFINPUTS, and TEXIN-
+In this case, you will have to set up MFINPUTS, and TEXIN-
PUTS accordingly.
-Since GNU LilyPond currently is beta, you are advised to
+Since GNU LilyPond currently is beta, you are advised to
also use
--enable-debugging
Enable debugging print routines (lilypond -D option)
--enable-optimise
- Set maximum optimisation: compile with -O2. This can
- be unreliable on some compiler/platform combinations
+ Set maximum optimisation: compile with -O2. This can
+ be unreliable on some compiler/platform combinations
(eg, DEC Alpha and PPC)
--enable-profiling
Compile with support for profiling.
--enable-config
- Output to a different configuration file. Needed for
+ Output to a different configuration file. Needed for
multi-platform builds
-All options are documented in the configure help The option
+All options are documented in the configure help The option
--enable-optimise is recommended for Real Life usage.
If you do
make all
-everything will be compiled, but nothing will be installed.
-The resulting binaries can be found in the subdirectories
+everything will be compiled, but nothing will be installed.
+The resulting binaries can be found in the subdirectories
out/ (which contain all files generated during compilation).
-8: CONFIGURING FOR MULTIPLE PLATFORMS
+7: CONFIGURING FOR MULTIPLE PLATFORMS
If you want to compile LilyPond with different configuration
-settings, then, you can use the --enable-config option.
-Example: suppose I want to build with and without profil-
+settings, then, you can use the --enable-config option.
+Example: suppose I want to build with and without profil-
ing. Then I'd use the following for the normal build,
./configure --prefix=~ --disable-optimise --enable-checking
make config=optprof
make config=optprof install
-9: INSTALLING
+8: INSTALLING
If you have done a successful make, then a simple
should do the trick.
If you are doing an upgrade, please remember to remove obso-
-lete .pk and .tfm files of the fonts. A script has been
+lete .pk and .tfm files of the fonts. A script has been
provided to do the work for you, see bin/clean-fonts.sh.
CAVEATS
-o The -O2 option triggers bugs on various platforms
- (PowerPC, Alpha). If you experience problems, you
-
+o The -O2 option triggers bugs on various platforms
+ (PowerPC, Alpha). If you experience problems, you
should first try turning off this.
EXAMPLE
Check out the input files, some of them have comments Please
refer to the man page for more information.
-10: REDHAT LINUX
+9: REDHAT LINUX
-RedHat Linux users can compile an RPM. A spec file is in
-make/out/lilypond.spec, it is distributed along with the
+RedHat Linux users can compile an RPM. A spec file is in
+make/out/lilypond.spec, it is distributed along with the
sources.
You can make the rpm by issuing
rpm -tb lilypond-x.y.z.tar.gz
rpm -i /usr/src/redhat/RPMS/i386/lilypond-x.y.z
-11: DEBIAN GNU/LINUX
+10: DEBIAN GNU/LINUX
-A Debian package is also available; contact Anthony Fok
-foka@debian.org. The build scripts are in the subdirectory
+A Debian package is also available; contact Anthony Fok
+foka@debian.org. The build scripts are in the subdirectory
debian/.
-12: WINDOWS NT/95
+11: WINDOWS NT/95
Separate instructions on building for W32 are avaible in the
file README-W32.yo.
-13: AUTHORS
+12: AUTHORS
Han-Wen Nienhuys <hanwen@cs.uu.nl>
+pl 46.mb2
+ - Reintroduced the tupletVisibility property. Same values as
+ the old version (pletvisibility), see the Reference Manual.
+ Note: does not work correctly with automatic beams.
+ - Added a tupletDirection property.
+
+pl 46.uu1
+ - bf: {} in texts.
+
+pl 45.hwn2
+ - more doc updates.
+
+
+pl 46.mb1
+ - Added property articulationScriptPadding
+ - N.W.Gade: layout fixes
+
+*********
+
pl 45.hwn1
- Audio broadcast & acknowledge.
- more advanced spacing for prefatory matter
- tuplet appearance tweaking
-
+ - bf: ChoirStaff
pl 45.uu1
- glossary fixes (thanks Dirk).
DESCRIPTION
This page documents how to distribute your changes to
-GNU lilypond (or in fact any other StepMake package).
+GNU lilypond
ABSTRACT
- Distributing a change normally goes like this:
+ We would like to have unified context diffs with full
+pathnames. A script automating supplied with Lily. Dis-
+tributing a change normally goes like this:
o make your fix/add your code
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 reasons :-),
-the maintainer will probably ask you to make a new patch
-against the latest release. Your best bet is to download
-the latest release, and apply your patch against this new
-source tree:
+In such a case, the maintainer will probably ask you to make
+a new patch against the latest release. Your best bet is to
+download the latest release, and apply your patch against
+this new source tree:
cd lilypond-0.1.74
gzip -dc ../patches/lilypond-0.1.73.jcn1.diff.gz | patch -p1 -E
> but I hope you understand what I want to say.
>
. * didot / big point.
-. * devise standard for functioning of Vertical_align_element.
. * midi key.
. * Repeats
. * input/bugs/rep.ly (moved from test)
that can generate the same tune in two different modes without having
to go through and rewrite all the music in the other mode.
-Long lyrics don't get a space at the end. They just run right up
-against the next lyric. (I don't think this used to be the case.)
-
Lyrics and scripts collide.
-
-\key b; \time 4/4; looks bad. The clef and time signature are too close.
-
-restStyle=mensural doesn't seem to work (lots of characters not found
-for rests.fly)
. * Phrasing: Indicating the textual underlay of a piece, or
otherwise dividing a piece into phrases.
note + circle = note + 1/4 of its length
- the circle is like a dot that's not filled in. for example, on
+5 the circle is like a dot that's not filled in. for example, on
page three, the c-sharp on the second line should be a quarter with
a circle, not a quarter tied to a sixteenth. is this at all
possible with lily?
. * spacing for prefatory matter
. * accidentals closer to note head
. * to space the staffs/staffgroups contained in the score.
-
-In the orchestscore.ly file, I tried:
-\paper{
- \translator {
- \OrchestralScoreContext
- minVerticalAlign = 3.0*\staffheight;
- }
- \translator {
- \StaffGroupContext
- minVerticalAlign = 3.0*\staffheight;
- }
- \translator {
- \StaffContext
- minVerticalAlign = 3.0*\staffheight;
- }
-}
. * heavier beams?
.* Cleanups needed
> see the problem for August.
. * Abstraction for engravers:
. * make "in-between" engraver (Tie, Extender)
-. * make wide_spanner_engraver (line_group_spanne,r staff_symbol)
+. * make wide_spanner_engraver (line_group_spanner, staff_symbol)
. * remove Interval dim_ from Dimension_cache and rename the struct.
. * do scaled fonts generally
. * Spacing.
. * use Fourier transformation for rhythmic quantisation.
. * horizontal centering of dynamics
. * $DEPENDENCIES_OUTPUT support
-. * Xdvi zooming ?! Try to understand GS garbage collection.
-gs: Error: /undefined in draw_beam
-gs: Operand stack:
. * fix vertical alignment and stafflines
. * declaring Performers
. * *.yo: fix pod manpage layout legacy
> Would it be hard to add support for proper dynamics in MIDI output? I
> would really like to have this feature...
-To answer this, I have to give a little background. Please say so if
-I am being obtuse.
-
-Both audio and notation elements are created decentrally, when
-LilyPond says "Interpreting music ... [8][16] etc." After all
-elements are created, they are processed again to calculate all
-parameters. After that is done, they are dumped onto the output (the
-MIDI stream or the TeX file).
-
-The audio and notation elements are created by objects called
-performer and engraver respectively. They work by taking a chunk of
-input (a so-called request), and using the request to create an audio
-or notation element.
-
-After some processing, the engraver sends the created elements to
-its enclosing notation/performance context.
-
-In the case of notation, engravers can also modify existing elements
-created by sibling engravers. Eg. the beam-engraver will modify stems
-when it creates a beam over a couple of stems. This is done in
-Engraver::do_acknowledge_element () and
-Engraver::do_process_acknowledged ().
-
-In the case of audio, there are no mechanisms to modify existing audio
-elements. After the audio elements are created, they are sent directly
-to the enclosing context (an instance of Performer_group_performer),
-through the method Performer::play ()
-
Concretely spoken, for dynamics you have to write a performer
(Dynamics_performer), that will take the input requests. If I
understand correctly, every MIDI note played must have its dynamic
1 supporting dynamic settings in Audio_note
- 2 mimicking the broadcast/acknowledge mechanism of the Engravers in
- the Performers
-
- 3 using that mechanism to write a Dynamics_performer that will modify
+ 2 Write a Dynamics_performer that will modify
any notes it finds to set appropriate strengths.
-You could also kludge this by deriving from Performer_group_performer
-a performer that also sets dynamics within notes, but that is not the
-elegant way to do it.
-
I'd say that the work involved is not hard, but you have to be fluent
with C++ and need some insight into the working of Notation Contexts
and friends. I guess I could do it in a day or so, but if you are not
the MIDI output (I don't even have a soundcard). But I *do* want to help
you or other people with implementing this, so if you need help, don't
hesitate to ask.
-
. * account for rhythmic position in measure
. * etc.
PACKAGE_NAME=LilyPond
MAJOR_VERSION=1
MINOR_VERSION=1
-PATCH_LEVEL=46
+PATCH_LEVEL=47
MY_PATCH_LEVEL=
# use the above to send patches: MY_PATCH_LEVEL is always empty for a
#
# (c) 1997 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+
+#
+# TODO: Should use RE.
+#
+
import os
import sys
import getopt
\context Staff \notes\relative c'{
c4 d e f
\repeat semi 3 { g a b c }
-% \alternative { { c b a g } { f e d c } } c c c c
+ \alternative { { c b a g } { f e d c } } c c c c
\alternative { { c b a g } { f e d c } { c d e f } }
g g g g
\repeat semi 2 { c c c c }
markScriptPadding = "4.0";
markHangOn = "Bar";
markHangDepth = "1";
-% markDirection = \diown;
+% markDirection = \down;
}
}
}
-\score { \notes { \time 3/4; \key cis; R2. R2.*5 }
+\score { \notes { \time 3/4; \key cis; R2.*5 R2. R2.*5 }
\paper {
\translator { \ScoreContext skipBars = 1; }
linewidth = -1.;
--- /dev/null
+\property Voice.textEmptyDimension = 1
+\property Voice.textScriptPadding = 10
+\property Voice.tupletVisibility = 0
+\times2/3{c'4^"tupletVisibility = 0" d e} \times2/3{[f8 g a]}
+ \times2/3{b16 c d} c8 |
+\property Voice.tupletVisibility = 1
+\times2/3{c,4^"tupletVisibility = 1" d e} \times2/3{[f8 g a]}
+ \times2/3{b16 c d} c8 |
+\property Voice.tupletVisibility = 2
+\times2/3{c,4^"tupletVisibility = 2" d e} \times2/3{[f8 g a]}
+ \times2/3{b16 c d} c8 |
+\property Voice.tupletVisibility = 3
+\times2/3{c,4^"tupletVisibility = 3" d e} \times2/3{[f8 g a]}
+ \times2/3{b16 c d} c8 |
+\property Voice.tupletVisibility = 4
+\times2/3{c,4^"tupletVisibility = 4" d e} \times2/3{[f8 g a]}
+ \times2/3{b16 c d} c8 | \break
+
+\property Voice.tupletDirection = \down
+\property Voice.tupletVisibility = 0
+\times2/3{c,4^"tupletDirection = \\textbackslash{}down" d e}
+ \times2/3{[[f8 g a]]} \times2/3{b16 c d} c8 |
+\property Voice.tupletVisibility = 1
+\times2/3{c,4 d e} \times2/3{[f8 g a]} \times2/3{b16 c d} c8 |
+\property Voice.tupletVisibility = 2
+\times2/3{c,4 d e} \times2/3{[f8 g a]} \times2/3{b16 c d} c8 |
+\property Voice.tupletVisibility = 3
+\times2/3{c,4 d e} \times2/3{[f8 g a]} \times2/3{b16 c d} c8 |
+\property Voice.tupletVisibility = 4
+\times2/3{c,4 d e} \times2/3{[f8 g a]} \times2/3{b16 c d} c8 |\break
+
+\property Voice.tupletDirection = \up
+\property Voice.tupletVisibility = 0
+\times2/3{c,4^"tupletDirection = \\textbackslash{}up" d e}
+ \times2/3{[[f8 g a]]} \times2/3{b16 c d} c8 |
+\property Voice.tupletVisibility = 1
+\times2/3{c,4 d e} \times2/3{[f8 g a]} \times2/3{b16 c d} c8 |
+\property Voice.tupletVisibility = 2
+\times2/3{c,4 d e} \times2/3{[f8 g a]} \times2/3{b16 c d} c8 |
+\property Voice.tupletVisibility = 3
+\times2/3{c,4 d e} \times2/3{[f8 g a]} \times2/3{b16 c d} c8 |
+\property Voice.tupletVisibility = 4
+\times2/3{c,4 d e} \times2/3{[f8 g a]} \times2/3{b16 c d} c8 |
if (l->dir_)
ss->dir_ = l->dir_;
+ Real padding = 1.0;
+ Scalar paddingprop = get_property ("articulationScriptPadding", 0);
+ if (paddingprop.length_i() && paddingprop.isnum_b ())
+ {
+ padding = (Real)paddingprop;
+ }
+
ss->staff_support_b_ = !follow_staff;
p->set_staff_side (ss);
ss->set_elt_property (script_priority_scm_sym, priority);
- ss->set_elt_property (padding_scm_sym, gh_double2scm(1.0));
+ ss->set_elt_property (padding_scm_sym, gh_double2scm(padding));
script_p_arr_.push (p);
staff_side_p_arr_.push (ss);
We need virtual constructors,
let's try decentralised factory for specific audio implemenations.
- TODO:
-
- virtual Niff_item* niff_item_p() = 0;
-
- virtual CSound_item* score_item_p() = 0;
*/
struct Audio_item : public Audio_element {
Audio_item (Request* req_l);
const Real CM_TO_PT=INCH_TO_PT/2.54;
const Real MM_TO_PT=CM_TO_PT/10;
const Real PT_TO_PT =1.0;
+const Real INCH_TO_BP = 72;
+const Real BIGPOINT_TO_POINT = INCH_TO_PT/ INCH_TO_BP;
+
#define PT *PT_TO_PT
#define MM *MM_TO_PT
#define CM *CM_TO_PT
#define INCH *INCH_TO_PT
+#define BIGPOINT *BIGPOINT_TO_POINT
String print_dimen (Real);
DECLARE_LY_SYMBOL(transparent);
DECLARE_LY_SYMBOL(tuplet);
DECLARE_LY_SYMBOL(tuplet_thick);
+DECLARE_LY_SYMBOL(tuplet_visibility);
DECLARE_LY_SYMBOL(visibility_lambda);
DECLARE_LY_SYMBOL(volta);
DECLARE_LY_SYMBOL(volta_thick);
};
/**
- Turn a note on (blond).
+ Turn a note on.
*/
struct Midi_note : public Midi_item {
Midi_note (Audio_item* audio_item_l);
};
/**
- Turn a note off (dark).
+ Turn a note off
*/
struct Midi_note_off : public Midi_item {
Midi_note_off (Midi_note*);
is called unfolded. Useful for MIDI.
+
+ If the number of repeats is smaller than the number of alternatives, then
+
+ FIXME
+
+ If the number of repeats is bigger than the number of alternatives, then
+
+ FIXME
+
*/
class New_repeated_music : public Music
{
String number_str_;
- /*
- junk us.
- */
- bool bracket_visibility_b_;
- bool num_visibility_b_;
+ bool parallel_beam_b_;
protected:
Link_array<Beam> beam_l_arr_;
taken from Knuth's plain.tex: */
static Real mag_steps[] = {1, 1, 1.200, 1.440, 1.7280, 2.074, 2.488};
+/**
+ TODO: THIS IS UGLY. Since the user has direct access to TeX
+ strings, we try some halfbaked attempt to detect TeX trickery.
-
+*/
Molecule
Lookup::text (String style, String text) const
{
Font_metric* afm_l = all_fonts_global_p->find_font (style);
DOUT << "\nChars: ";
-
+
+
+ int brace_count =0;
for (int i = 0; i < text.length_i (); i++)
{
+
if (text[i]=='\\')
for (i++; (i < text.length_i ()) && isalpha(text[i]); i++)
;
else
{
+ if (text[i] == '{')
+ brace_count ++;
+ else if (text[i] == '}')
+ brace_count --;
Character_metric *c = afm_l->get_char ((unsigned char)text[i],false);
w += c->dimensions()[X_AXIS].length ();
ydims *= mag_steps[font_mag];
}
+ if(brace_count)
+ {
+ warning (_f ("Non-matching braces in text `%s', adding braces.", text.ch_C()));
+
+ if (brace_count < 0)
+ {
+ text = to_str ('{', -brace_count) + text;
+ }
+ else
+ {
+ text = text + to_str ('}', brace_count);
+ }
+ }
+
+
DOUT << "\n" << to_str (w) << "\n";
m.dim_.x () = Interval (0, w);
m.dim_.y () = ydims;
void
Tuplet_engraver::do_process_requests ()
{
+ int dir = 0;
+ Scalar prop = get_property ("tupletDirection", 0);
+ if (prop.isnum_b())
+ dir = (int)prop;
+ int visibility = 3;
+ prop = get_property ("tupletVisibility", 0);
+ if (prop.isnum_b())
+ visibility = (int)prop;
+
for (int i= started_span_p_arr_.size ();
i < time_scaled_music_arr_.size (); i++)
{
Tuplet_spanner* glep = new Tuplet_spanner;
started_span_p_arr_.push (glep);
glep->number_str_ = to_str (time_scaled_music_arr_[i]->den_i_);
+ glep->set_elt_property(tuplet_visibility_scm_sym,
+ gh_int2scm (visibility));
+ if (dir != 0)
+ glep->set_elt_property(dir_forced_scm_sym, gh_int2scm (dir));
announce_element (Score_element_info (glep, time_scaled_music_arr_ [i]));
}
}
Tuplet_spanner::Tuplet_spanner ()
{
- bracket_visibility_b_ = true;
- num_visibility_b_ = true;
+ parallel_beam_b_ = false;
}
/*
{
Molecule* mol_p = new Molecule;
+ // Default behaviour: number always, bracket when no beam!
+ bool bracket_visibility = !parallel_beam_b_;
+ bool number_visibility = true;
+ SCM visibility_sym =get_elt_property (tuplet_visibility_scm_sym);
+ if (visibility_sym != SCM_BOOL_F)
+ {
+ /* Property values:
+ 0 show nothing
+ 1 show number
+ 2 show (number and bracket)-if-no-beam
+ 3 show number, and bracket-if-no-beam
+ 4 show number, and bracket
+ */
+ int value = gh_scm2int (SCM_CDR(visibility_sym));
+ bracket_visibility = (value == 4 || (value > 1 && !parallel_beam_b_));
+ number_visibility = (value > 2 || value == 1 ||
+ (value == 2 && !parallel_beam_b_));
+ }
+
if (column_arr_.size ()){
Real ncw = column_arr_.top ()->extent (X_AXIS).length ();
+ Real w = extent (X_AXIS).length () + ncw;
Molecule num (lookup_l ()->text ("italic",
number_str_));
num.align_to (X_AXIS, CENTER);
+ num.translate_axis (w/2, X_AXIS);
Real interline = paper_l ()->get_realvar (interline_scm_sym);
+ Real dy = column_arr_.top ()->extent (Y_AXIS) [dir_]
+ - column_arr_[0]->extent (Y_AXIS) [dir_];
+ num.align_to (Y_AXIS, CENTER);
+ num.translate_axis (dir_ * interline, Y_AXIS);
+
+ num.translate_axis (dy/2, Y_AXIS);
+
- if (beam_l_arr_.size () == 1 && !bracket_visibility_b_)
+ /* if (beam_l_arr_.size () == 1 && !bracket_visibility)
{
- Beam *beam_l = beam_l_arr_[0];
- Directional_spanner* ds = dynamic_cast<Directional_spanner*>(beam_l);
-
num.translate_axis (dir_ * interline, Y_AXIS);
- num.translate (ds->center ());
- num.translate_axis (ncw, X_AXIS);
}
-
- if (bracket_visibility_b_)
+ */
+ if (bracket_visibility)
{
- Real dy = column_arr_.top ()->extent (Y_AXIS) [dir_]
- - column_arr_[0]->extent (Y_AXIS) [dir_];
- Real w = extent (X_AXIS).length () + ncw;
- num.align_to (Y_AXIS, CENTER);
- num.translate_axis (dir_ * interline, Y_AXIS);
-
- num.translate (Offset (w/2, dy/2));
mol_p->add_molecule (lookup_l ()->plet (dy, w, dir_));
}
- if (num_visibility_b_)
+ if (number_visibility)
{
mol_p->add_molecule (num);
}
if (!broken_b ()
&& spanned_drul_[LEFT]->column_l () == beam_l->spanned_drul_[LEFT]->column_l ()
&& spanned_drul_[RIGHT]->column_l () == beam_l->spanned_drul_[RIGHT]->column_l ())
- bracket_visibility_b_ = false;
+ parallel_beam_b_ = true;
}
- if (column_arr_.size () == 1)
- bracket_visibility_b_ = false;
+ // if (column_arr_.size () == 1)
+ // bracket_visibility_b_ = false;
}
void
Tuplet_spanner::get_default_dir () const
{
Direction d = UP;
+ SCM dir_sym =get_elt_property (dir_forced_scm_sym);
+ if (dir_sym != SCM_BOOL_F) {
+ d= (Direction) gh_scm2int (SCM_CDR(dir_sym));
+ if (d != CENTER)
+ return d;
+ }
+
for (int i=0; i < column_arr_.size (); i ++)
{
if (column_arr_[i]->dir () < 0)
-%
% common german names for notes. "es" means flat, "is" means sharp
%
% by Roland Meier <meier@informatik.th-darmstadt.de>
% based on swedish.ly by Mats Bengtsson.
+% 1999/06/09 Bjoern Jacke <bjoern.jacke@gmx.de>
+% added asas and marked ases as `unusual'
+
%
% Please note that, while these names are used to enter *notes*, they
g = \musicalpitch { -1 4 0 }
gis = \musicalpitch { -1 4 1 }
gisis = \musicalpitch { -1 4 2 }
- ases = \musicalpitch { -1 5 -2 }
+ asas = \musicalpitch { -1 5 -2 }
+ ases = \musicalpitch { -1 5 -2 } % non-standard name for asas
as = \musicalpitch { -1 5 -1 }
a = \musicalpitch { -1 5 0 }
ais = \musicalpitch { -1 5 1 }
G = \musicalpitch { -2 4 0 }
Gis = \musicalpitch { -2 4 1 }
Gisis = \musicalpitch { -2 4 2 }
- Ases = \musicalpitch { -2 5 -2 }
+ Asas = \musicalpitch { -2 5 -2 }
+ Ases = \musicalpitch { -2 5 -2 } % non-standard name for Asas
As = \musicalpitch { -2 5 -1 }
A = \musicalpitch { -2 5 0 }
Ais = \musicalpitch { -2 5 1 }
%{
for grace note hack, see input/test/grace.ly
%}
-pletoff = {
- \property Voice.pletvisibility = 0
+tupletoff = {
+ \property Voice.tupletVisibility = 0
}
-pleton = {
- \property Voice.pletvisibility = 3
+tupleton = {
+ \property Voice.tupletVisibility = 3
}
tiny = {
\property Voice.fontSize= "-2"
- \pletoff %urg
+ \tupletoff %urg
}
small = {
normalsize = {
\property Voice.fontSize= "0"
- \pleton %urg
+ \tupleton %urg
}
%{
\tiny
% it would be so cool not to have to specify these factors each time...
% :-(
- \property Voice.pletvisibility = 0
+ \property Voice.tupletVisibility = 0
\[1/16
}
graceat = \melodic {
\normalsize
- \property Voice.pletvisibility = 0
+ \property Voice.tupletVisibility = 0
\] \[31/32
}
ecarg = \melodic {
- \property Voice.pletvisibility = 0
+ \property Voice.tupletVisibility = 0
\]
- \property Voice.pletvisibility = 3
+ \property Voice.tupletVisibility = 3
}
%}
Begin3
Titel: LilyPond
-Versie: 1.1.46
-Inschrijf datum: 04JUN99
+Versie: 1.1.47
+Inschrijf datum: 09JUN99
Beschrijving: @FLAPTEKST@
Trefwoorden: muziek typezetten midi notatie
Auteur: hanwen@stack.nl (Han-Wen Nienhuys)
janneke@gnu.org (Jan Nieuwenhuizen)
Onderhouden door: hanwen@cs.ruu.nl (Han-Wen Nienhuys)
Voornaamste plek: sunsite.unc.edu /pub/Linux/apps
- 770k lilypond-1.1.46.tar.gz
+ 770k lilypond-1.1.47.tar.gz
Oorspronkelijke plek: ftp.cs.uu.nl /pub/GNU/LilyPond/development/
- 770k lilypond-1.1.46.tar.gz
+ 770k lilypond-1.1.47.tar.gz
Copi-eer voorwaarden: GPL
End
Begin3
Title: LilyPond
-Version: 1.1.46
-Entered-date: 04JUN99
+Version: 1.1.47
+Entered-date: 09JUN99
Description:
LilyPond is the GNU Project music typesetter. This program can print
beautiful sheet music from a music definition file. It can also play
janneke@gnu.org (Jan Nieuwenhuizen)
Maintained-by: hanwen@stack.nl (Han-Wen Nienhuys)
Primary-site: sunsite.unc.edu /pub/Linux/apps/sound/convert
- 770k lilypond-1.1.46.tar.gz
+ 770k lilypond-1.1.47.tar.gz
Original-site: ftp.cs.uu.nl /pub/GNU/LilyPond/development/
- 770k lilypond-1.1.46.tar.gz
+ 770k lilypond-1.1.47.tar.gz
Copying-policy: GPL
End
Name: lilypond
-Version: 1.1.46
+Version: 1.1.47
Release: 1
Copyright: GPL
Group: Applications/Publishing
-Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.1.46.tar.gz
+Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.1.47.tar.gz
Summary: A program for printing sheet music.
URL: http://www.cs.uu.nl/~hanwen/lilypond
Packager: Han-Wen Nienhuys <hanwen@cs.uu.nl>
[g,8. a16 g8. a16 \! g8. ) a16 ] |
g4 r r |
R2. |
-r4 r^\fermata r8^\fermata r |
+r4 r r8 r |
R2*8 |
d'8-. \pp r c-. r |
d r c g |
) e'4 r8 g,8 ( |
) c4 r |
R2 |
-e4 \fz r^\fermata
+e4 \fz r
}
corIhelp=\notes\relative c''' {
\tiny
s2.*32 |
-s2*33 |
+s2*33 | \stemup
r4 r8 [g16^"oboe" \p ( a ] |
[ ) g8-. fis16 ( g ][ ) fis8-. f16 ( g ] |
-[ ) f8-. e16 ( f ] ) e8-. s |
+[ ) f8-. e16 ( f ] ) e8-. s | \stemboth
s2*66 |
[f,,16^"Vlc." ( g f g][f g f8 ] |
) e4 r |
R2. |
[g8. ( a16 g8. a16 g8. a16] |
[g8._"dim." a16 ] g4. a8 |
-[g8. a16] ) g4^\fermata \pp r8^\fermata r |
+[g8. a16] ) g4 \pp r8 r |
R2*8 |
g8-. \pp r c,-. r |
g'-. r c,-. r |
) c,4 r8 g'8 ( |
) e4 r |
R2 |
-c'4-. \fz r^\fermata
+c'4-. \fz r
}
trpI=\notes\relative c'' {
[d8. ( \f e16 ] ) d2 |
R2.*30 |
-r4 r^\fermata r8 ^\fermata r |
+r4 r r8 r |
R2*12 |
g,2 \f ~ |
g4 r |
d-. r |
g, r |
R2 |
-g4 \fz r^\fermata
+g4 \fz r
}
trpIhelp=\notes\relative c'' {
s2.*32 |
s2*9 |
-r4 r8 c-.^"Clar. I" |
+r4^"Clar. I" r8 c-. |
[bes-. a-. g-. f-. ] |
[e-. d-. c-. ] r8 |
s2*23 |
-r4 r8 g''8^"Cor. I" ( |
+r4^"Cor. I" r8 g''8 ( |
) g,4. g8 ( |
[) d' d16 ( e ] )d8 s |
s2*75 |
-r4 r8 c-.^"Clar. I" |
+r4^"Clar. I" r8 c-. |
[bes-. a-. g-. f-. ] |
[e-. d-. c-. ] s8 |
s2*25
-r4 r8 a''^"Oboe" |
+r4^"Oboe" r8 a'' |
a-. [ gis-. gis-. \< g-.] |
[g-. fis-. \! fis-. f-. ] |
s2*53 |
-r4 r8 [c'16^"Flauto" ( d] |
+r4^"Flauto" r8 [c'16 ( d] |
) c8 [b16 ( c ] ) b8 [bes16 ( c ] |
)bes8 [a16 ( bes ] ) a8 [c16 ( d] |
) c8 [b16 ( c ] ) b8 [bes16 ( c ] |
s2.*32 |
s2*9 |
-r4 r8 c-.^"Clar. I" |
+r4^"Clar. I" r8 c-. |
[bes-. a-. g-. f-. ] |
[e-. d-. c-. ] r8 |
s2*23 |
-r4 r8 g''8^"Cor. I" ( |
+r4^"Cor. I" r8 g''8 ( |
) g,4. g8 ( |
[) d' d16 ( e ] )d8 s |
s2*75 |
-r4 r8 c-.^"Clar. I" |
+r4^"Clar. I" r8 c-. |
[bes-. a-. g-. f-. ] |
[e-. d-. c-. ] s8 |
s2*28
-r4 g'8^"Trp. I" \f r |
+r4^"Trp. I" g'8 \f r |
[d'-. d16 ( e ] ) d8 r |
s2*51 |
-r4 r8 [c'16^"Flauto" ( d] |
+r4^"Flauto" r8 [c'16 ( d] |
) c8 [b16 ( c ] ) b8 [bes16 ( c ] |
)bes8 [a16 ( bes ] ) a8 [c16 ( d] |
) c8 [b16 ( c ] ) b8 [bes16 ( c ] |
\property Staff."midiInstrument" = "trumpet"
R2.*31 |
-r4 r^\fermata r8 ^\fermata r |
+r4 r r8 r |
R2*12 |
g2 \f ~ |
g4 r |
g-. r |
g r |
R2 |
-g4 \fz r^\fermata
+g4 \fz r
}
timpani=\notes\relative c, {
c2.:32 |
c2.:32 |
c4 r r |
-r r^\fermata r8^\fermata r |
+r r r8 r |
R2*12 |
f,2:32 \f ~ |
f4 r |
f8 r r4 |
R2*14 |
\context Staff <{\voiceone \clef "treble";
- r4^"Tri." r8 e''' |
+ r4^"Trg." r8 e''' |
[e e e e ] |
[e e e g,, ] | % In reality: e e e e | e
g r r4 |
c'4 \fz r |
R2*10 |
\context Staff <{\voiceone \clef "treble";
- r4^"Tri." r8 e'' |
+ r4^"Trg." r8 e'' |
[e e e e ] |
[e e e g,, ] | % In reality: e e e e | e4
g4 r4 |
f2:32 ~ |
f8 r r4 |
r2 |
-f4 \fz r^\fermata
+f4 \fz r
}
timphelp=\notes\relative c' {
[c8. ( d16] ) c2 |
s2.*30 |
s2*9 |
-r4 r8 \clef "treble"; c'-.^"Clar. I" |
+r4^"Clar. I" r8 \clef "treble"; c'-. |
[bes-. a-. g-. f-. ] |
[e-. d-. c-. ] r8 \clef "bass"; |
s2*24 |
%[ ) g8-. fis16 ( g ][ ) fis8-. f16 ( g ] |
%[ ) f8-. e16 ( f ] ) e8-. \clef "bass"; s |
s2*77 |
-r4 r8 \clef "treble"; c'-.^"Clar. I" |
+r4^"Clar. I" r8 \clef "treble"; c'-. |
[bes-. a-. g-. f-. ] |
[e-. d-. c-. ] r8 \clef "bass"; |
s2*28
-%r4 r8 \clef "treble"; a''^"Oboe" |
+%r4^"Oboe" r8 \clef "treble"; a'' |
%a-. [ gis-. gis-. \< g-.] |
%[g-. fis-. \! fis-. ] \clef "bass"; s8 |
s2*57 |
-r4 r8 \clef "treble"; bes'^"Vi. I" ( |
+r4^"Vi. I" r8 \clef "treble"; bes' ( |
) bes'4. d,8 ( |
) d'4. c,8 ( |
) c'4. e,8 ( |
globalNoKey=\notes {
\time 3/4;
\skip 2.*31;
-s2 s8 \bar "||"; \break
+s4 s4^\fermata s8^\fermata \bar "||"; \break
s8
\time 2/4;
-\skip 2*225;
+\skip 2*224;
+s4 s4^\fermata
\bar "|.";
}
% Modified from lilypond/tex/headers.tex:
\advance\topmargin-5mm
\advance\headsep-4mm
-\addtolength{\textheight}{12mm}
+\addtolength{\textheight}{17mm}
\advance\footskip-3mm
\usepackage{fancyheadings}
% Modified from lilypond/tex/titledefs.tex:
\def\makelilytitle{%
+ \vspace*{-10mm}%
\begin{center}
\bfseries
\ifx\mudelanull\thetitle\else\sethuge{\thetitle}\\ \fi
% {\flushleft\setLarge{\normalfont\scshape\thepiece}}
{\flushleft\setLarge{\textbf\thepiece}}
\leavevmode
+ \enlargethispage*{5mm}
}
"Statens Musikbibliotek, Stockholm, Sweden";
}
+% Process with 'ly2dvi -s parts.ly' to get the separate parts.
+
+
\version "1.0.20";
\include "global.ly"
textheight = 275.0 \mm;
\translator {
\OrchestralPartStaffContext
- textScriptPadding = 5.0;
}
\translator {
\ScoreContext
skipBars = 1;
markScriptPadding = "6.0";
- textstyle = "italic";
- textEmptyDimension = 1;
- oldTieBehavior = 1;
- }
- \translator { \VoiceContext
- oldTieBehavior = 1;
+ barNumberScriptPadding = "11.0";
+ textScriptPadding = 5.0;
textstyle = "italic";
textEmptyDimension = 1;
}
}
-
+%{
\score{
\context Staff <
- \global
- \marks
- \flauto
- \flautohelp
+ \context Voice <
+ \global
+ \marks
+ \flauto
+ >
+ \context Voice = help \flautohelp
>
\header{
instrument = "Flauto";
\tempo 4=120;
}
}
-
+%}
\score{
\context Staff <
- \global
- \marks
- \oboe
- \oboehelp
+ \context Voice <
+ \global
+ \marks
+ \oboe
+ >
+ \context Voice = help \oboehelp
>
\header{
instrument = "Oboe";
\tempo 4=120;
}
}
-
+%{
\score{
- \context Staff <
+ \context Voice <
\globalNoKey
\marks
\clarI
}
\score{
- \context Staff <
+ \context Voice <
\globalNoKey
\marks
\clarII
}
\score{
- \context Staff <
+ \context Voice <
\global
\marks
\fagotto
\score{
\context Staff <
- \globalNoKey
- \marks
- \corI
- \corIhelp
+ \context Voice <
+ \globalNoKey
+ \marks
+ \corI
+ >
+ \context Voice = help \corIhelp
>
\header{
instrument = "Corno I in F";
\score{
\context Staff <
- \globalNoKey
- \marks
- \corII
- \corIIhelp
+ \context Voice <
+ \globalNoKey
+ \marks
+ \corII
+ >
+ \context Voice = help \corIIhelp
>
\header{
instrument = "Corno II in F";
\score{
\context Staff <
- \globalNoKey
- \marks
- \trpI
- \trpIhelp
+ \context Voice <
+ \globalNoKey
+ \marks
+ \trpI
+ >
+ \context Voice = help \trpIhelp
>
\header{
instrument = "Tromba I in B\\textflat";
\score{
\context Staff <
- \globalNoKey
- \marks
- \trpII
- \trpIIhelp
+ \context Voice <
+ \globalNoKey
+ \marks
+ \trpII
+ >
+ \context Voice = help \trpIIhelp
>
\header{
instrument = "Tromba II in B\\textflat";
\score{
\context Staff <
- \globalNoKey
- \marks
- \timpani
- \timphelp
+ \context Voice <
+ \globalNoKey
+ \marks
+ \timpani
+ >
+ \context Voice = help \timphelp
>
\header{
instrument = "Timpani \& Triangolo";
}
\score{
- \context Staff <
+ \context Voice <
\global
\marks
\viI
}
\score{
- \context Staff <
+ \context Voice <
\global
\marks
\viII
}
\score{
- \context Staff <
+ \context Voice <
\global
\marks
\notes{s2.*32 s2*142 \break}
}
\score{
- \context Staff <
+ \context Voice <
\global
\marks
\vlc
}
\score{
- \context Staff <
+ \context Voice <
\global
\marks
\cb
\tempo 4=120;
}
}
+%}
\ No newline at end of file
\score{ <
\context StaffGroup = wood <
- \context Staff = flauto <
+ \context Voice = flauto <
\property Staff.instrument = "Flauto"
\property Staff.instr = "Fl."
\global
\marks
\flauto
>
- \context Staff = oboe <
+ \context Voice = oboe <
\property Staff.instrument = "Oboe"
\property Staff.instr = "Ob."
\global
\oboe
>
- \context Staff = clarI <
+ \context Voice = clarI <
\property Staff.instrument = "Clarinetto I"
\property Staff.instr = "Cl. I"
\globalNoKey
\clarI
>
- \context Staff = clarII <
+ \context Voice = clarII <
\property Staff.instrument = "Clarinetto II"
\property Staff.instr = "Cl. II"
\globalNoKey
\clarII
>
- \context Staff = fagotto <
+ \context Voice = fagotto <
\property Staff.instrument = "Fagotto"
\property Staff.instr = "Fg."
\global
>
\context StaffGroup = brass <
\context Staff = cor <
- \globalNoKey
\property Staff.instrument = "2 Corni in F"
\property Staff.instr = "Cor."
- \context Voice = corI { \stemup \corI }
- \context Voice = corII { \stemdown \corII }
+ \context Voice = corI <
+ \globalNoKey
+ \stemup \property Voice.dynamicDir = \up
+ \corI
+ >
+ \context Voice = corII {
+ \stemdown \property Voice.dynamicDir = \down
+ \corII
+ }
>
\context Staff = trp <
- \globalNoKey
\property Staff.instrument = "2 Trp. in B\\textflat "
\property Staff.instr = "Trp."
- \context Voice = trpI { \stemup \trpI }
- \context Voice = trpII { \stemdown \trpII }
+ \context Voice = trpI <
+ \globalNoKey
+ \stemup \property Voice.dynamicDir = \up
+ \trpI
+ >
+ \context Voice = trpII {
+ \stemdown \property Voice.dynamicDir = \down
+ \trpII
+ }
>
>
- \context StaffGroup = percussion <\context Staff = timpani <
+ \context StaffGroup = percussion <\context Voice = timpani <
\property Staff.instrument = "Timp. \& Triang."
- \property Staff.instr = "Timp. \& Triang."
+ \property Staff.instr = "Tmp \& Trg"
\global
\timpani
>
>
\context StaffGroup = strings <
\context GrandStaff = violins <
- \context Staff = viI <
+ \context Voice = viI <
\property Staff.instrument = "Violin I"
\property Staff.instr = "Vi. I"
\global
\viI
>
- \context Staff = viII <
+ \context Voice = viII <
\property Staff.instrument = "Violin II"
\property Staff.instr = "Vi. II"
\global
\viII
>
>
- \context Staff = vla <
+ \context Voice = vla <
\property Staff.instrument = "Viola"
\property Staff.instr = "Vla."
\global
\vla
>
- \context Staff = vlc <
+ \context Voice = vlc <
\property Staff.instrument = "Violoncello"
\property Staff.instr = "Vlc"
\global
\vlc
>
- \context Staff = cb <
+ \context Voice = cb <
\property Staff.instrument = "Contrabasso"
\property Staff.instr = "C.B."
\global
\translator {
\OrchestralScoreContext
minVerticalAlign = 2.5*\staffheight;
+ barNumberScriptPadding = "12.0";
}
\translator { \StaffContext
\consists "Staff_margin_engraver";
textstyle = "italic";
textScriptPadding = 5.0;
textEmptyDimension = 1;
-% oldTieBehavior = 1;
- }
- \translator { \VoiceContext
- oldTieBehavior = 1;
}
}
}
[ bes c ] ) bes2 ~ |
bes r4 |
R2.*4 |
-r4 r^\fermata r8^\fermata [c'16 \pp ( d] | \time 2/4;
+r4 r r8 [c'16 \pp ( d] | \time 2/4;
) c8 r r [c16 ( d] |
) c8 r r [c16 ( d] |
[c d c a][f a c d] |
<a4 ) a'> r8 c, |
f2 ~ |
f ( |
-<f4 \fz c' ) a'> r^\fermata
+<f4 \fz c' ) a'> r
}
\! c \pp ~ |
c2 r4 |
R2.*4 |
-r4 r^\fermata r8^\fermata [c'16 \pp ( d] | \time 2/4;
+r4 r r8 [c'16 \pp ( d] | \time 2/4;
) c8 r r [c16 ( d] |
) c8 r r [c16 ( d] |
[c d c a][f a c d] |
<a4 ) a'> r8 c, |
[a16 ( gis a gis][a gis a gis] |
[a gis a gis][a gis a gis] |
-<) a4 f' \fz > r^\fermata
+<) a4 f' \fz > r
}
vla=\notes\relative c' {
[ c \> b \! c g e ) c] |
[e'8. \pp ( f16 d8 e f d ] |
b4 [c8 \< a f \! ) a ] |
-c,2 \p ~ c'4 |
-c,2 ~ c'4 |
-c,2 ~ c'4 |
-c, ~ c' r |
+c,2 \p () c'4 |
+c,2 () c'4 |
+c,2 () c'4 |
+c, () c' r |
[c,8 ( g' ][ c g c a ] |
[bes c ] ) a4 r |
R2. |
c2. ~ |
c4 r r |
R2.*3 |
-r4 r^\fermata r8^\fermata r8 |
+r4 r r8 r8 |
R2*4 |
c'8-. \pp r bes-. r |
c-. r bes-. r |
<f4 ) c'> r8 c, |
[c'16 ( b c b][c b c b] |
[c b c b][c b c b] |
-<c4 \fz ) a'> r^\fermata
+<c4 \fz ) a'> r
}
vlc=\notes\relative c' {
) e2. ~ |
e2 r4 |
R2.*4 |
-r4 r4^\fermata r8^\fermata [c'16 \pp ( d] | \time 2/4; % \pp added
+r4 r4 r8 [c'16 \pp ( d] | \time 2/4; % \pp added
) c8 r r [c16 ( d] |
) c8 r r [c16 ( d] |
[c d c a][f a c d] |
) f4 r8 c8 ( |
) f,2 ~ |
f ( |
-) f'4 \fz r^\fermata
+) f'4 \fz r
}
cb=\notes\relative c {
r r dis ( \< |
\! ) e2 r4 |
R2.*6 |
-r4 r^\fermata r8^\fermata r |
+r4 r r8 r |
R2*4 |
d8-. \pp r g-. r |
d-. r g-. r |
) f4 r8 c8 ( |
) f,2 ~ |
f ( |
-) f'4 \fz r^\fermata
+) f'4 \fz r
}
[c8. ( d16] c4. ) a8 |
[a8. ( g16 ] ) f4 r |
R2.*13 |
-r4 r4^\fermata r8^\fermata r8 \time 2/4;
+r4 r4 r8 r8 \time 2/4;
R2*4 |
d'8-. \pp r d-. r |
d-. r d-. r |
) a'4 r8 c, ( |
) f4 r |
R2 |
-f4-. \fz r^\fermata
+f4-. \fz r
}
[c8. ( d16] c4. ) a8 |
[a8. ( g16 ] ) f4 r |
R2.*13 |
-r4 r4^\fermata r8^\fermata r8 \time 2/4;
+r4 r4 r8 r8 \time 2/4;
R2*4 |
a'8-. \pp r g-. r |
a8-. r g-. r |
c r d r |
g, r r4 |
R2*10 |
-R4 r8 e' \p |
+r4 r8 e' \p |
e [es-. es-.] d-. |
d-. [cis-. cis-.] c-. |
c [c16 ( d] [es8 d16 c] | % slur added
) a4 r8 c ( |
) f4 r |
R2 |
-f4 \fz r^\fermata
+f4 \fz r
}
r r \times 2/3 { [d8 ( b ) d ] } |
a4 () d r |
R2.*6 |
-r4 r4^\fermata r8^\fermata r8 |
+r4 r4 r8 r8 |
R2*4 |
gis,8-. \pp r a-. r |
gis-. r a-. r |
) b'4 r8 d, ( |
) g,2 ~ |
g ( |
-) g'4-. \fz r^\fermata
+) g'4-. \fz r
}
r r \times 2/3 { [d8 \f ( b ) d ] } |
a4 () d r |
R2.*6 |
-r4 r4^\fermata r8^\fermata r8 |
+r4 r4 r8 r8 |
R2*9 |
r4 r8 d-. \p |
[c-. b-. \< a-. g-. ] |
d4 r8 d, ( |
) g2 ~ |
g ( |
-) b4-. \fz r^\fermata
+) b4-. \fz r
}
fagotto=\notes\relative c' {
[c8. \f ( d16 ] ) c2_"dim." |
[c8. ( d16 ] ) c4 r |
R2.*29 |
-r4 r4^\fermata r8^\fermata r8 |
+r4 r4 r8 r8 |
R2*4 |
c8-. \pp r bes-. r |
c8-. r bes-. r |
) f4 r8 c ( |
) f,2 ~ |
f ( |
-) c'4 \fz r^\fermata
+) c'4 \fz r
}
oboehelp=\notes\relative c'' {
\tiny
s2.*32 |
-s2*32 |
+s2*32 | \stemdown
[a8^"Vi. I" ( g f d] |
[b g ) a ] s8 |
s2*106 |
\tiny
s2.*32 |
-s2*32 |
+s2*32 | \stemdown
[a8^"Vi. I" ( g f d] |
-[b g ) a ] s8 |
+[b g ) a ] s8 | \stemboth
s2*60 |
f''2^"Oboe" ( |
b,4 [c8 ) b] |
-s2*44 |
+s2*44 | \stemdown
[d8^"Vi. I" ( c bes g] |
[e c ) d] s |
-s2*54 |
+s2*54 | \stemup
bes''4.^"Vi. I" a8 |
[g-. f-. e-. ] s8 |
}
;; Spacing constants for prefatory matter.
;;
-;; rules for this are complicated. See [Wanske] page 126 -- 134
+;; rules for this spacing are much more complicated than this. See [Wanske] page 126 -- 134
;;
;;
(define space-alist
\newcommand*{\mudelaopus}[1]{\def\theopus{#1}}
\newcommand*{\mudelapiece}[1]{\def\thepiece{#1}}
\newcommand*{\mudelametre}[1]{\def\themetre{#1}}
+\newcommand*{\mudelameter}[1]{\def\themetre{#1}}
\newcommand*{\mudelapoet}[1]{\def\thepoet{#1}}
%
%