From 4a3e3e28580fb0d70692c3b848c6fbccaf8afd40 Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen Date: Tue, 20 Mar 2001 20:00:00 +0100 Subject: [PATCH] patch::: 1.3.46.jcn1 1.3.46.jcn1 =========== * Website build fixes. --- Generated by janneke@gnu.org, From = lilypond-1.3.46, To = lilypond-1.3.46.jcn1 usage cd lilypond-source-dir; patch -E -p1 < lilypond-1.3.46.jcn1.diff Patches do not contain automatically generated files or (urg) empty directories, i.e., you should rerun autoconf, configure --- CHANGES | 12 +- Documentation/topdocs/topweb.tely | 211 ++++++ Documentation/user/bugs.itexi | 4 +- Documentation/user/convert-mudela.itexi | 2 +- Documentation/user/invoking.itexi | 2 +- Documentation/user/lilypond.tely | 13 +- Documentation/user/moreinfo.itexi | 4 +- Documentation/user/refman.itely | 836 +++++++++++++++++++++--- Documentation/user/tutorial.itely | 23 +- VERSION | 2 +- stepmake/stepmake/texinfo-rules.make | 2 +- 11 files changed, 1009 insertions(+), 102 deletions(-) create mode 100644 Documentation/topdocs/topweb.tely diff --git a/CHANGES b/CHANGES index f01f188882..20d4ab0e98 100644 --- a/CHANGES +++ b/CHANGES @@ -1,4 +1,14 @@ -1.3.46.jcn2 +--- ../lilypond-1.3.46/CHANGES Mon Apr 17 13:20:52 2000 +++ b/CHANGES Tue Mar 20 20:00:00 2001 +@@ -1,3 +1,8 @@ +1.3.46.jcn1 +=========== + +* Website build fixes. + + 1.3.46 + ====== + 1.3.46.jcn2 =========== * Drastically reduced vertical space used by headers/footers, when using diff --git a/Documentation/topdocs/topweb.tely b/Documentation/topdocs/topweb.tely new file mode 100644 index 0000000000..9677961953 --- /dev/null +++ b/Documentation/topdocs/topweb.tely @@ -0,0 +1,211 @@ +\input texinfo @c -*-texinfo-*- +@setfilename index.info +@settitle LilyPond homepage + +@node Top, , , (dir) +@top + +@html +

+[ + Download + | + FAQ + | + Documentation + | + Music archives + | + Mailing lists + | + News +] +@end html + +@html +

+[logo] +@end html +@unnumberedsec LilyPond -- The GNU Project Music Typesetter + +@c something breaks on 3.12 f + +@unnumberedsec What is LilyPond? + +LilyPond is a music typesetter. It produces beautiful sheet music using +a high level description file as input. It excels at typesetting +classical music, but you can also print pop-songs. With LilyPond we +hope to make music publication software available to anyone on the +internet. + +@unnumberedsec Why should I use it? + +The input to LilyPond is plain text. So, you can use your favorite text +editor to enter it, you can put it in mail or embed it in an article like +this: + +@quotation +@mudela[fragment,verbatim] + \relative c'' { \key es; r8 [c16 b] [c8 g] [as c16 b] [c8 d] | g,4 } +@end mudela +@end quotation + +The output looks very good: the font and the layout algorithms were +inspired by engraved music, so you can expect that same clear and +elegant look from your LilyPond output. And if you don't like the +looks, you can tweak almost everything. + +The program also has limited MIDI functionality: you can write MIDI +files with lilypond, and we have a simple MIDI to lilypond conversion +tool, @file{midi2ly}. + +LilyPond is free software. It is licensed under GNU General Public +License, so you can use, modify and redistribute the program with +almost no restrictions. LilyPond is part of the +@uref{http://www.gnu.org/,GNU Project}. + +The version numbers are in Linux-kernel style: even numbered versions +are `stable'. The webpages for the stable version (1.2) reside at GNU, +here: @uref{http://www.gnu.org/software/lilypond}. Big enhancements go +into the latest odd numbered version (1.3); its webpages are on + @uref{http://www.cs.uu.nl/~hanwen/lilypond/,Han-Wen's site}. + +If want more information, you can browse the +@uref{Documentation/user/out-www/lilypond.html, manual} or other +@uref{Documentation/out-www/index.html, documentation}. + + +@unnumberedsec News + +For the latest and greatest features, check out the +@uref{Documentation/out-www/CHANGES.txt, Change Log}. + + +@html + +@end html +@unnumberedsec Sheet music + + +If you are interested in sheet music typeset by LilyPond, have a look at +the examples included. We have @uref{short-examples.html,short +examples} and @uref{long-examples.html,longer examples}. The +examples include sound bites in MIDI, pictures in PNG, printable scores +in PostScript, and LilyPond input. + +Others use LilyPond too. +@uref{http://www.geocities.com/Vienna/Studio/1714/harpsichord.html,John +Sankey}, harpsichordist to the internet, is typesetting the complete +@uref{http://www.geocities.com/Vienna/Studio/1714/scarlattidwn.html,sonatas +by Scarlatti}. Jeff Covey, guitar player and overall nice guy, is +putting @uref{http://www4.smart.net/~jcovey/scores/,guitar music} on the +net. The @uref{http://sca.uwaterloo.ca/Mutopia/,Mutopia project} is a +large archive of public domain sheet music under construction. + +@html + +@end html +@unnumberedsec Download + +If you want to compile LilyPond from source, download here: +@itemize @bullet +@item Download stable releases at +@uref{ftp://ftp.gnu.org/gnu/lilypond/} +@item Download development releases at +@uref{ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/development/} +@item Canadian mirror @uref{http://sca.uwaterloo.ca/lilypond/} and @uref{ftp://sca.uwaterloo.ca/pub/} +@item Another site in Europe +@uref{ftp://ftp.lilypond.org/pub/LilyPond/} +@end itemize + +Installing and compiling requires many additional packages, which are +listed in the @uref{Documentation/topdocs/out-www/INSTALL.html, +installation instructions}. + +There are binaries available, but alas they are not updated for every version released. +@itemize @bullet +@item RedHat-i386 and Linuxppc RPMs: +@uref{ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/RedHat/RPMS/} +@item Debian binary @uref{ftp://ftp.debian.org/pub/debian/dists/unstable/main/binary-i386/tex} +@item Windows NT: @uref{http://home.austin.rr.com/jbr/jeff/lilypond/} +@end itemize + + +@html + +@end html +@unnumberedsec Mailing list + +If you have questions, do write to the mailing lists! + (But don't forget to read the @uref{Documentation/out-www/faq.html, +Frequently Asked Questions} first.) + + +@table @samp +@item info-gnu-music@@gnu.org + is a moderated list for information on the GNU Music project, to + subscribe: send mail with subject "subscribe" to + info-gnu-music-request@@gnu.org. + + As this list is moderated, normal people should ask to + @email{drl@@gnu.org, David R. Linn} or + @email{hanwen@@cs.uu.nl, Han-Wen} to forward announces instead of + sending it to info-gnu-music@@gnu.org + + This list is archived at + @uref{http://www.mail-archive.com/info-gnu-music@@gnu.org} + +@item help-gnu-music@@gnu.org + For help with LilyPond music project. To subscribe: send + mail with subject "subscribe" to + @email{help-gnu-music-request@@gnu.org} The archive is at + @uref{http://www.mail-archive.com/help-gnu-music@@gnu.org}. + +@item bug-gnu-music@@gnu.org + If you have bugreports, you should send them to this list. If you +want to know about bugs, subscribe: send mail with subject "subscribe" +to @email{bug-gnu-music-request@@gnu.org}. The archive is at +@uref{http://www.mail-archive.com/bug-gnu-music@@gnu.org} + + Please include in your bugreport the version of LilyPond that +you experience the problem with, a description of your system and sample +input to reproduce the problem. Do not send output files over the list, +they tend to be very big and don't help with describing the problem. + + +@item gnu-music-discuss@@gnu.org, + For discussions concerning LilyPond, to subscribe: send + mail with subject "subscribe" to + @email{gnu-music-discuss-request@@gnu.org} + The archive is at + @uref{http://www.mail-archive.com/gnu-music-discuss@@gnu.org} +@end table + +If you want to unsubscribe use the same procedure as subscribing, but +substitute @code{unsubscribe} where you would put @code{subscribe}. + +@unnumberedsubsec Webmaster's Disclaimer + +These pages were entirely created from a @strong{development snapshots} +of the LilyPond package. The version of this webpage is printed at the +bottom. If you want to volunteer for making more beautiful webpages, +then please mail us! + +@html +

+[ + Download + | + FAQ + | + Documentation + | + Music archives + | + Mailing lists + | + News +] +@end html + +@bye diff --git a/Documentation/user/bugs.itexi b/Documentation/user/bugs.itexi index 51513a24f7..b77b7e75e3 100644 --- a/Documentation/user/bugs.itexi +++ b/Documentation/user/bugs.itexi @@ -1,5 +1,5 @@ -@node Reporting Bugs, , , Top -@section Bug reports +@node Reporting Bugs +@chapter Bug reports There is an extensive list of todoes and bugs. See the file @file{TODO} distributed with the sources. If you have a problem you diff --git a/Documentation/user/convert-mudela.itexi b/Documentation/user/convert-mudela.itexi index 02b13d8f45..f7248c6b66 100644 --- a/Documentation/user/convert-mudela.itexi +++ b/Documentation/user/convert-mudela.itexi @@ -1,4 +1,4 @@ -@node convert-mudela, , ,Top +@node convert-mudela @chapter convert-mudela @code{convert-mudela} sequentially applies different mudela-conversions to upgrade a Mudela input file. It uses diff --git a/Documentation/user/invoking.itexi b/Documentation/user/invoking.itexi index 7471539356..3f10359669 100644 --- a/Documentation/user/invoking.itexi +++ b/Documentation/user/invoking.itexi @@ -1,5 +1,5 @@ -@node Invoking LilyPond, , , Top +@node Invoking LilyPond @chapter Invoking LilyPond @cindex Invoking LilyPond diff --git a/Documentation/user/lilypond.tely b/Documentation/user/lilypond.tely index b4bbf8a654..0a2ff30db8 100644 --- a/Documentation/user/lilypond.tely +++ b/Documentation/user/lilypond.tely @@ -79,7 +79,8 @@ than the names being similar :-)" @contents -@node Top, , , (dir) +@node Top +@chapter GNU LilyPond --- The music typesetter @menu * Tutorial:: a tutorial introduction to lilypond. @@ -105,17 +106,17 @@ than the names being similar :-)" @mbinclude tutorial.itely -@include invoking.itexi +@mbinclude invoking.itexi -@include bugs.itexi +@mbinclude bugs.itexi @mbinclude refman.itely -@include moreinfo.itexi +@mbinclude moreinfo.itexi -@include convert-mudela.itexi +@mbinclude convert-mudela.itexi -@node Index, , , Top +@node Index @unnumbered Index @printindex cp diff --git a/Documentation/user/moreinfo.itexi b/Documentation/user/moreinfo.itexi index 826a3d15fb..dc0c722a47 100644 --- a/Documentation/user/moreinfo.itexi +++ b/Documentation/user/moreinfo.itexi @@ -1,5 +1,5 @@ -@node More information, , , Top -@section Resources +@node More information +@chapter Resources A further source for information is the website, which can be found at @uref{http://www.lilypond.org/}. The website contains on-line diff --git a/Documentation/user/refman.itely b/Documentation/user/refman.itely index 62540f2636..8cf1e2450f 100644 --- a/Documentation/user/refman.itely +++ b/Documentation/user/refman.itely @@ -1,45 +1,44 @@ +@node Reference Manual +@chapter Reference Manual + -@node Reference Manual, , , Top @menu -* Overview:: Overview -* Top level:: Top level -* notenames:: notenames -* Lexical conventions:: Lexical conventions -* Other languages:: notelang -* modes:: modes -* Types:: Types -* Music expressions:: Music expressions -* Atomic music expressions:: Atomic music expressions -* Note specification:: notedesc -* barlines:: barlines -* Manual beams:: Manual beam -* tremolo:: tremolo -* Compound music expressions:: Compound music expressions -* relative:: relative -* Repeats:: Repeats -* transpose:: transpose -* Ambiguities:: Ambiguities -* Notation conversion specifics:: Notation conversion specifics -* autobeam:: autobeam -* lyricprint:: lyricprint -* Notation Contexts:: Notation Contexts -* Properties:: Changing formatting -* Notation output definitions:: Notation output definitions -* paper:: paper -* Paper variables:: papervars -* contextdefs:: contextdefs -* engravers:: engravers -* Sound output:: Sound output -* midilist:: midilist -* Pre-defined Identifiers:: Pre-defined Identifiers +* Overview:: Overview +* Top level:: Top level +* notenames:: +* Lexical conventions:: Lexical conventions +* Other languages:: +* modes:: +* Types:: Types +* Music expressions:: Music expressions +* Atomic music expressions:: Atomic music expressions +* Note specification:: +* barlines:: +* Manual beams:: +* stem tremolo:: +* Compound music expressions:: Compound music expressions +* relative:: +* Repeats:: +* transpose:: +* Ambiguities:: Ambiguities +* Notation conversion specifics:: +* autobeam:: +* lyricprint:: +* Notation Contexts:: Notation Contexts +* Properties:: +* Notation output definitions:: Notation output definitions +* paper:: +* Paper variables:: +* contextdefs:: +* engravers:: +* Sound output:: Sound output +* midilist:: @end menu -@chapter Reference Manual - -@node Overview, , , Reference Manual +@node Overview @section Overview This document@footnote{This document has been revised for @@ -65,7 +64,7 @@ typesetting and from a performance point of view. -@node Top level, , , Reference Manual +@node Top level @section Top level @cindex top level @@ -108,7 +107,8 @@ metre, arranger, piece and tagline. It is customary to put the @code{\header} at the top of the file. -@node notenames, , , Reference Manual +@node notenames +@section notenames Note name tables can be specified using @@ -154,7 +154,7 @@ forbidden after top level assignments. -@node Lexical conventions, , , Reference Manual +@node Lexical conventions @section Lexical conventions @cindex lexical conventions @@ -305,7 +305,8 @@ This is used to detect invalid input, and to aid @cindex other languages -@node Other languages, , , Reference Manual +@node Other languages +@section Other languages Note name definitions have been provided in various languages. Simply include the language specific init file. For example: @@ -333,7 +334,8 @@ subsection XREF-notenames [FIXME]. @cindex modes -@node modes, , , Reference Manual +@node modes +@section modes To simplify entering notes, lyrics, and chords, @emph{Mudela} has three special input modes on top of the default mode. In each mode, words @@ -343,7 +345,7 @@ a keyword or as an identifier. The behavior of the modes differs in two ways: Different modes treat unquoted words differently, and different modes have different rules for deciding what is a word. -@table @samp +@table @code @item Normal mode. @cindex mode!normal @@ -430,7 +432,7 @@ versions, thus the use of the dollar sign is discouraged.} -@node Types, , , Reference Manual +@node Types @section Types @cindex types and identifiers @@ -497,7 +499,7 @@ reference to the first identifier useless.} -@node Music expressions, , , Reference Manual +@node Music expressions @section Music expressions @cindex music expressions @@ -525,7 +527,7 @@ discussed in subsection XREF-compoundmusic [FIXME]. -@node Atomic music expressions, , , Reference Manual +@node Atomic music expressions @section Atomic music expressions @@ -567,7 +569,8 @@ In Note, Chord, and Lyrics mode, durations may be designated by numbers and dots. See Section XREF-notelang [FIXME] for details. -@node Note specification, , , Reference Manual +@node Note specification +@section Note specification @cindex note specification @@ -847,7 +850,8 @@ Prints a mark over or under (depending on the @code{Mark_engraver}@indexcode{Mark_engraver} to either the Score or Staff context for this to work. -@node barlines, , , Reference Manual +@node barlines +@section barlines @example \bar@keyindex{bar} @var{bartype}; @@ -1011,7 +1015,8 @@ this has the same effect as the space rest `@code{s}'. @cindex beams -@node Manual beams, , , Reference Manual +@node Manual beams +@section Manual beams A beam is specified by surrounding the beamed notes with brackets `@code{[}@indexcode{[}' and `@code{]}@indexcode{]}'. @@ -1275,7 +1280,8 @@ The slur syntax with parentheses is a shorthand for this. @cindex tremolo marks -@node stem tremolo, , , Reference Manual +@node stem tremolo +@section stem tremolo Tremolo marks can be printed on a single note by adding `@code{:}[@var{length}]' after the note. The length must be at @@ -1290,7 +1296,7 @@ no last value. -@node Compound music expressions, , , Reference Manual +@node Compound music expressions @section Compound music expressions @cindex compound music expressions @@ -1411,7 +1417,8 @@ a Voice context: @cindex relative pitch specification -@node relative, , , Reference Manual +@node relative +@section relative It is easy to get confused by octave changing marks and accidentally putting a pitch in the wrong octave. A much better way of entering a @@ -1652,13 +1659,14 @@ error, since there will be no main note to attach the grace notes to. @cindex repeats -@node Repeats, , , Reference Manual +@node Repeats +@section Repeats In order to specify repeats, use the @code{\repeat}@keyindex{repeat} keyword. Since repeats look and sound differently when played or printed, there are a few different variants of repeats. -@table @samp +@table @code @item unfolded Repeated music is fully written (played) out. Useful for MIDI output. @@ -1771,7 +1779,8 @@ bars will not. @cindex transposition of pitches -@node transpose, , , Reference Manual +@node transpose +@section transpose A music expression can be transposed with @code{\transpose}@keyindex{transpose}. The syntax is @@ -1867,7 +1876,7 @@ lyrics for @var{musicexpr2}. -@node Ambiguities, , , Reference Manual +@node Ambiguities @section Ambiguities @cindex ambiguities @@ -1917,14 +1926,15 @@ foo = -6 -@node Notation conversion specifics, , , Reference Manual +@node Notation conversion specifics @section Notation conversion specifics - +[todo] @cindex automatic beam generation -@node autobeam, , , Reference Manual +@node autobeam +@section autobeam By default, LilyPond will generate beams automatically. This feature can be disabled by setting the @code{Voice.noAutoBeaming}@indexcode{Voice.noAutoBeaming} @@ -2016,7 +2026,8 @@ If you want inversions to be recognized, you must set the property @cindex printing!lyrics -@node lyricprint, , , Reference Manual +@node lyricprint +@section lyricprint Lyric syllables must be interpreted within a @code{Lyrics} context @@ -2097,7 +2108,7 @@ For example: -@node Notation Contexts, , , Reference Manual +@node Notation Contexts @section Notation Contexts @cindex notation contexts @@ -2236,7 +2247,7 @@ as @code{c4}. These are the contexts supplied with the package. They are defined in the initialization file @file{ly/engraver.ly}. -@table @samp +@table @code @item @code{Grace}@indexcode{Grace} The context for handling grace notes. It is instantiated automatically when you use @code{\grace}. Basically, it is an @@ -2357,9 +2368,677 @@ currently search the source code for calls to @code{get_property}. The rest of the section is devoted to an (incomplete) overview of available properties. -@mbinclude properties.itely -@node Notation output definitions, , , Reference Manual +@node Properties +@section Properties + +Properties are Scheme values, so they have a type. The type of a +property is listed in parentheses after the property name. + +@macro propertytype{t} + (\t\) +@end macro + + +TODO: + + +@table @code + @item @code{Generic_property_list} + Defines names and types for generic properties. These are properties + than can be plugged into the backend directly. See the init file + @file{generic-property.scm} for details. For internal use only. + + @item @code{XXXVerticalExtent}@indexcode{groupVerticalExtent} @propertytype{Interval: a cons of numbers} + Hard code the size of the vertical group in context XXX, example +@example +\property Staff.StaffVerticalExtent = #(-5.0 . 5.0) +@end example + The value is a cons of real numbers, that measure the extent in + staff spaces. +@end table + +@subsubheading Lyrics properties + +@cindex properties!Lyrics + +@table @code + @item @code{textStyle}@indexcode{textStyle} @propertytype{string} + Set the font for lyrics. The available font choices are + @code{roman}, @code{italic}, @code{bold}, @code{large}, @code{Large}, + @code{typewriter}, and @code{finger}. The @code{finger} font can + only display numbers. Note also that you must be careful when + using @code{\property} in Lyrics mode, because of the way strings + are parsed. Either put quotes around the arguments to + @code{\property} or be sure to leave a space on both sides of the + dot. +@end table + +@subsubheading Thread properties + +@cindex properties!Thread + +@table @code + @item @code{noteheadStyle}@indexcode{noteheadStyle} @propertytype{string} + Selects type of note head. Choices are @code{cross}, + @code{diamond}, @code{harmonic}, @code{transparent}, and @code{""}. + They are shown in that order below. + + @mudela[center,verbatim] + \score { + \notes { + \property Staff.barNonAuto = 1 + \property Voice.noteHeadStyle = cross + a' + \property Voice.noteHeadStyle = diamond + a' + \property Voice.noteHeadStyle = harmonic + a' + \property Voice.noteHeadStyle = transparent + a' + \property Voice.noteHeadStyle = "" + a' + } + \paper { + linewidth = -1.; + } + } + +@end mudela +@end table + +@subsubheading Grace properties + +@cindex properties!Grace + + +@table @code + @item @code{stemStyle}@indexcode{flagStyle} @propertytype{string} + By default set to @code{"grace"} meaning that all unbeamed + notes with flags are typeset with a slash through the flag. + Setting to @code{""} gives standard flags. + +@mudela[verbatim] +c'8 \property Voice.flagStyle = "grace" c'8 +@end mudela +@end table + + +@subsubheading Voice properties + +@cindex properties!Voice + +@table @code + @item @code{abbrev}@indexcode{abbrev} @propertytype{integer} + Set length for tremolo to be used if no length is explicitly + specified. + + @item @code{articulationScriptPadding}@indexcode{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. + + @item @code{articulationScriptVerticalDirection} @propertytype{direction} + @indexcode{articulationScriptVerticalDirection} + Determines the location of articulation marks. Set to @code{\up} + to print marks above the staff; set to @code{\down} to print marks + below the staff. This property does not override explicit + directions marked with `@code{^}' or `@code{_}' in the mudela file. + + @item @code{noAutoBeaming}@indexcode{beamAuto} @propertytype{boolean} + If set to 1 then beams are not generated automatically. + + @item @code{beamAutoEnd}@indexcode{beamAutoEnd} @propertytype{?} + Specifies when automatically generated beams can end. See + section XREF-autobeam [FIXME]. + + @item @code{beamAutoBegin}@indexcode{beamAutoBegin} @propertytype{?} + Specifies when automatically generated beams can start. See + section XREF-autobeam [FIXME]. + + +[outdated FIXME] + @item @code{beamQuantisation}@indexcode{beamQuantisation} @propertytype{symbol} + Set to @code{\none} for no quantization. Set to @code{\normal} to + quantize position and slope. Set to @code{\traditional} to avoid + wedges. These three settings are available via + @code{\beamposfree}@keyindex{beamposfree}, + @code{\beamposnormal}@keyindex{beamposnormal}, and + @code{\beampostraditional}@keyindex{beampostraditional}. + + @item @code{beamSlopeDamping}@indexcode{beamSlopeDamping} @propertytype{number} + Set to @code{\none} for undamped beams. Set to @code{\normal} for + damped beams. Set to @code{\infinity} for beams with zero slope. + The identifiers + @code{\beamslopeproportional}@keyindex{beamslopeproportional}, + @code{\beamslopedamped}@keyindex{beamslopedamped}, and + @code{\beamslopezero}@keyindex{beamslopezero} each set the + corresponding value. + + @item @code{dynamicDirection}@indexcode{dynamicDirection} @propertytype{direction} + Determines location of dynamic marks. Set to @code{\up} to print + marks above the staff; set to @code{\down} to print marks below + the staff. + + @item @code{dynamicStyle}@indexcode{dynamicStyle} @propertytype{string} + Set the text style for dynamics. + + @item @code{fontSize}@indexcode{fontSize} @propertytype{number} + Can be used to select smaller font sizes for music. The normal + font size is 0, and the two smaller sizes are -1 + and -2. + +@mudela[verbatim] +c''16 \property Staff.fontSize = -2 c''16 +@end mudela + + @item @code{forceHorizontalShift}@indexcode{forceHorizontalShift} + Force horizontal shift for collision resolution. It overrides + automatic collision resolution. The value is the shift amount + expressed in @code{note_width}, as set in the paper section. + +@item @code{collisionMergeDotted}@indexcode{collisionMergeDotted} @propertytype{boolean} + +Merge noteheads in collisions, even if they have a different number of +dots. This normal notation for polyphonic guitar music. + +@mudelafile[verbatim]{force-hshift.ly} + + +[FIXME: this should be moved] + +Lilypond always arranges note heads on alternate sides of a stem (that +is, within a single voice) as necessary to prevent collisions (note head +overlaps). For up stems, the upper note of a colliding pair is placed +on the right side of the stem, the lower on the left. For down stems, +the algorithm works in reverse. + +Lily also attempts to prevent collisions of note heads in different +voices. A situation where chords of two or more voices are played +simultaneously within one staff. + +By default, if only two voices (and both have opposite stem directions) +are in this 'collision group', the notes both are shifted by @code{0.5 +\quartwidth} if there are unisons or seconds between the voices. + +If there are more than two voices in a collision group, shifting is +inactive by default, since in this case, there are multiple chords with +the same stem direction. By distinguish between those chords, LilyPond +can do collision resolution in these cases as well. + +Distinguishing between voices with the same stem direction, is done by +setting the property @code{Voice.horizontalNoteShift}. It must be set +to a different integer for each voice. Then, all note heads in collision +groups (not just unisons and seconds) will be offset, one voice relative +another. The following fragment of sheet music shows how shifting is +done, with values of @code{horizontalNoteShift} printed over and under +the notes. In this case the chords are just simple notes. + +@c URG : mudela book bug. +@mudela[singleline,verbatim] +\score { + \notes \context Staff < + \context Voice = VA { \stemup f''4^"0" } + \context Voice = VB {\stemup + \property Voice.horizontalNoteShift = 1 d''4^" 1" } + \context Voice = VC { \stemup \property +Voice.horizontalNoteShift = 2 b'4^" 2" } + \context Voice = VD { \stemdown \property +Voice.horizontalNoteShift = 1 g'4_"1 " } + \context Voice = VE { \stemdown e'4_"0" } + > +} +@end mudela + +If you are not satisfied with the collision resolution of LilyPond, you +can override the horizontal shift value of the chord of one Voice, by +setting @code{forceHorizontalShift}. This sets the amount shift, +measured in black note head widths. + +To take complete control of note position shifts in complex passages, +you have set things up for normal collisions and override all shifts by +setting @code{forceHorizontalShift} to zero everywhere +@example +\property Voice.horizontalNoteShift = +\property Voice.forceHorizontalShift = "0.0" +@end example + +Then you can set the force property to a suitable value before each note +that really needs it (unisons and seconds), and reset it to 0.0 after +the note. + + @item @code{horizontalNoteShift}@indexcode{horizontalNoteShift} @propertytype{integer} + Enable LilyPond to shift notes horizontally if they collide with + other notes. This is useful when typesetting many voices on one + staff. The identifier @code{\shift}@keyindex{shift} is defined to + enable this. Traditionally, the outer chords (the upmost and + downmost voices), should have no @code{horizontalNoteShift}. + + @item @code{markScriptPadding}@indexcode{markScriptPadding} @propertytype{number} + Determines the extra space added between the mark and the closest + staff line or note. + + @item @code{markDirection}@indexcode{markDirection} @propertytype{direction} + 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. + + @item @code{midiInstrument}@indexcode{midiInstrument} @propertytype{string} + Sets the instrument for MIDI output. If this property is not set + then LilyPond will use the @code{instrument} property. This must + be set to one of the strings on the list of MIDI instruments that + appears in section XREF-midilist [FIXME]. If you use a string which + is not listed, LilyPond will silently substitute piano. + + @item @code{restStyle}@indexcode{restStyle} @propertytype{string} + Change the layout of rests shorter than quarter notes. + Currently, the standard layout @code{""} and mensural notation + @code{"mensural"} are available. Mensural rests of duration + 32 or shorter are not available. +@mudela[verbatim] +r\longa r\breve r1 r2 r4 r8 r16 r32 r64 r128 r128 +\property Staff.restStyle = "mensural" +r\longa r\breve r1 r2 r4 r8 r16 r32 r64 r128 r128 +@end mudela + + @item @code{scriptHorizontal}@indexcode{scriptHorizontal} @propertytype{boolean} + Put scripts left or right of note heads. Support for this is + limited. Accidentals will collide with scripts. + + @item @code{slurVerticalDirection}@indexcode{slurVerticalDirection} @propertytype{direction} + Set to @code{\free} for free choice of slur direction, set to + @code{\up} to force slurs up, set to @code{\down} to force slurs + down. The shorthands @code{\slurup}@keyindex{slurup}, + @code{\slurdown}@keyindex{slurdown}, and + @code{\slurboth}@keyindex{slurboth} are available. + + @item @code{slurDash}@indexcode{slurDash} @propertytype{number} + Set to NIL for normal slurs, 1 for dotted slurs, and a + larger value for dashed slurs. Identifiers + @code{\slurnormal}@keyindex{slurnormal} and + @code{\slurdotted}@keyindex{slurdotted} are predefined to set the + first two settings. + +@mudela[verbatim] + c4( )d + \property Voice.slurDash = 3 + c ( )e +@end mudela + +@item @code{stemLength}@indexcode{stemLength} + Set length of stems. Unit is `@code{interline}/2', so + @code{stemLength} defaults to 7. +@mudela[verbatim] +g''4 \property Voice.stemLength = #14 g4 \property Voice.stemLength = #3 g4 g,,4 +@end mudela + + @item @code{stemLeftBeamCount}@indexcode{stemLeftBeamCount} @propertytype{integer} + Specify the number of beams to draw on the left side of the next + note. Overrides automatic beaming. The value is only used once, + and then it is erased. + + @item @code{stemRightBeamCount}@indexcode{stemRightBeamCount} @propertytype{integer} + Specify the number of beams to draw on the right side of the next + note. Overrides automatic beaming. The value is only used once, + and then it is erased. + + @item @code{tieDash}@indexcode{tieDash} @propertytype{integer} + Set dashing of ties. See also @code{slurDash} + + @item @code{tieVerticalDirection}@indexcode{tieVerticalDirection} @propertytype{direction} + Set to @code{\free} for free choice of tie direction, set to + @code{\up} to force ties up, set to @code{\down} to force ties + down. + + @item @code{transposing}@indexcode{transposing} @propertytype{integer} + Transpose the MIDI output. Set this property to the number of + half-steps to transpose by. + + @item @code{textEmptyDimension}@indexcode{textEmptyDimension} @propertytype{boolean} + If set to true then text placed above or below the staff is + assumed to have zero width. @code{fatText} and @code{emptyText} +are predefined settings. + +@mudela[verbatim] +c4^"foo" \emptyText c4^"foo" c4 +@end mudela + + @item @code{textStyle}@indexcode{textStyle} @propertytype{string} + Set the text style for superscripts and subscripts. See above + for list of text styles. + + @item @code{textScriptPadding}@indexcode{textScriptPadding} @propertytype{number} + Determines the extra space added between superscripted resp. + subscripted text and the closest staff line or note. + + @item @code{verticalDirection}@indexcode{verticalDirection} @propertytype{direction} + Determines the direction of stems, subscripts, beams, slurs, and + ties. Set to @code{\down} to force them down, @code{\up} to force + them up, or @code{\free} to let LilyPond decide. This can be used + to distinguish between voices on the same staff. The + @code{\stemdown}@keyindex{stemdown}, @code{\stemup}@keyindex{stemup}, + and @code{\stemboth}@keyindex{stemboth} identifiers set this + property. + + + @item @code{tupletDirection}@indexcode{tupletDirection} @propertytype{direction} + 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. + + @item @code{tupletBracketVisibility}@indexcode{tupletBracketVisibility} @propertytype{boolean} or @propertytype{symbol} + @item @code{tupletNumberVisibility}@indexcode{tupletNumberVisibility} @propertytype{boolean} or @propertytype{symbol} + + These properties the visibility of the tuplet bracket and its +number respectively. Setting it to false will prevent printing of the +associated element. Setting the property to 'if-no-beam will make it +print only if there is no beam associated with this tuplet bracket. + +[fixme examples] + + @item @code{tupletInvisible}@indexcode{tupletInvisible} @propertytype{boolean} + + If set to true, tuplet bracket creation is switched off +entirely. This has the same effect as setting both +@code{tupletNumberVisibility} and @code{tupletBracketVisibility} to +@code{#f}, but as this does not even create elements, this setting +uses less memory and time. + + +@item @code{tupletSpannerDuration} @indexcode{tupletSpannerDuration} +@propertytype{moment} + +Normally a tuplet bracket is as wide as the +@code{\times} expression that gave rise to it. By setting this +property, you can make brackets last shorter. Example + +@mudela[verbatim,fragment] +\context Voice \times 2/3 { + \property Voice.tupletSpannerDuration = #(make-moment 1 4) + [c8 c c] [c c c] +} +@end mudela + +@end table + +@subsubheading Staff properties + +@cindex properties!Staff + +@table @code + + @item @code{barNonAuto}@indexcode{barNonAuto} @propertytype{boolean} + If set to true then bar lines will not be printed + automatically; they must be explicitly created with @code{\bar} + keywords. Unlike with the @code{\cadenza} keyword, measures are + still counted. Bar generation will resume according to that + count if this property is set to zero. + + @item @code{barNumberDirection}@indexcode{barNumberDirection} @propertytype{direction} + Set to @code{\up} or @code{\down} to put bar numbers above or below + the staff. + + @item @code{barNumberScriptPadding}@indexcode{barNumberScriptPadding} + Sets extra space between the bar number and the bar it labels. + + @item @code{barSize}@indexcode{barSize} + Specify the height of the bar lines if it should be different + than the staff height. +@mudela[verbatim] +c1 c1 \property Staff.barSize = 20 c1 c1 +@end mudela + + @item @code{barAtLineStart}@indexcode{barAtLineStart} @propertytype{boolean} + Set to true to produce a bar line after the clef at the start + of each line (but not at the beginning of the music). + + [BROKEN] + + @item @code{clefStyle}@indexcode{clefStyle} @propertytype{string} + Determines how clefs are typeset. If set to @code{transparent}, + the clefs are not printed at all, if set to + @code{fullSizeChanges}, clef changes in the middle of a line are + typeset with a full size clef. By default, clef changes are + typeset in smaller size. + + @item @code{supportedClefTypes}@indexcode{supportedClefTypes} @propertytype{alist} + + Clef settings supported. The value is an association list clef +descriptions indexed by clef name (alto, baritone, etc.). A clef +description is a list with the glyph name, and the staff position +where it should go. For internal use. + + @item @code{clefPitches}@indexcode{clefPitches} @propertytype{alist} + Settings for the position of the central C, relative to this clef + symbol. For internal use. + + @item @code{defaultClef}@indexcode{defaultClef} @propertytype{string} + Clef setting to use when this context is created. If unset, +no clef is printed upon creation. + + @item @code{marginDirection}@indexcode{marginDirection} @propertytype{direction} + Set to @code{\left} or @code{\right} to specify location of + marginal scripts. + + @item @code{marginScriptPadding}@indexcode{marginScriptPadding} + Specify extra space for marginal scripts. + + @item @code{forgetAccidentals}@indexcode{forgetAccidentals} @propertytype{boolean} + Causes accidentals to be printed at every note instead of + remembered for the duration of a measure. + + @item @code{noResetKey}@indexcode{noResetKey} @propertytype{boolean} + Do not reset the key at the start of a measure. Accidentals will + be printed only once and are in effect until overridden, possibly + many measures later. + + @item @code{staffSpace}@indexcode{staffLineLeading} @propertytype{number} + Specifies the distance (in points) between lines of the staff. + + @item @code{numberOfStaffLines}@indexcode{numberOfStaffLines} @propertytype{integer} + Specifies the number of staff lines. The default is 5. + + @item @code{postBreakPadding}@indexcode{postBreakPadding} @propertytype{number} + Extra space in points to be added after the clef, time signature + and key signature on the staff. Deprecated, do not use. + + @item @code{noVoltaBraces}@indexcode{noVoltaBraces} @propertytype{boolean} + Set to true to suppress the printing of brackets over alternate + endings specified by the command @code{\alternative}. + + + @item @code{barAlways}@indexcode{barAlways} @propertytype{boolean} + If set to true a bar line is drawn after each note. + + @item @code{defaultBarType}@indexcode{defaultBarType} @propertytype{string} + Sets the default type of bar line. See Section XREF-barlines [FIXME] + for a list of available bar types. + + @item @code{instrument}, @code{instr} @propertytype{string} + @indexcode{instrument}@indexcode{instr} + If @code{Instrument_name_engraver} +@cindex Instrument_name_engraver + is + added to the Staff translator, then the @code{instrument} property + is used to label the first line of the staff and the @code{instr} + property is used to label subsequent lines. If the + @code{midiInstrument} property is not set, then @code{instrument} + is used to determine the instrument for MIDI output. + + @item @code{keyOctaviation}@indexcode{keyOctaviation} @propertytype{boolean} + If set to false, then keys are the same in all octaves. If set + to true then the key signature for different octaves can be + different and is specified independently: + + @example + \keysignature bes fis' + @end example + + The default value is @code{#f}. Can be set to @code{#t} with + @code{\specialkey} or reset with @code{\normalkey}. + + @item @code{timeSignatureStyle}@indexcode{timeSignatureStyle} @propertytype{string} + Changes the default two-digit layout for time signatures. The + following values are recognized: + + @table @code + @item @code{C}@indexcode{C} + 4/4 and 2/2 are typeset as C and struck C, respectively. All + other time signatures are written with two digits. + + @item @code{old}@indexcode{old} + 2/2, 3/2, 2/4, 3/4, 4/4, 6/4, 9/4, 4/8, 6/8 and 9/8 are + typeset with old-style mensuration marks. All other time + signatures are written with two digits. + + @item @code{1}@indexcode{1} + All time signatures are typeset with a single + digit, e.g. 3/2 is written as 3. + + @item @indexcode{CM/N}@code{C}@var{M}@code{/}@var{N}, + @indexcode{oldM/N}@code{old}@var{M}@code{/}@var{N} or + @code{old6/8alt}@indexcode{old6/8alt} + Tells LilyPond to use a specific symbol as time signature. + @end table + + The different time signature characters are shown below with its + names: + + @mudela[center,verbatim] + + \score { + \notes\relative c'' { + \property Voice.textStyle = typewriter + \property Staff.timeSignatureStyle = "C2/2" + \time 2/2; a2^"C2/2" a2 + \property Staff.timeSignatureStyle = "C4/4" + \time 2/2; a2^"C4/4" a2 + \property Staff.timeSignatureStyle = "old2/2" + \time 2/2; a2^"old2/2" a2 + \property Staff.timeSignatureStyle = "old3/2" + \time 2/2; a2^"old3/2" a2 + \property Staff.timeSignatureStyle = "old2/4" + \time 2/2; a2^"old2/4" a2 + \property Staff.timeSignatureStyle = "old4/4" + \time 2/2; a2^"old4/4" a2 + \property Staff.timeSignatureStyle = "old6/4" + \time 2/2; a2^"old6/4" a2 + \property Staff.timeSignatureStyle = "old9/4" + \time 2/2; a2^"old9/4" a2 + \property Staff.timeSignatureStyle = "old4/8" + \time 2/2; a2^"old4/8" a2 + \property Staff.timeSignatureStyle = "old6/8" + \time 2/2; a2^"old6/8" a2 + \property Staff.timeSignatureStyle = "old6/8alt" + \time 2/2; a2^"old6/8alt" a2 + \property Staff.timeSignatureStyle = "old9/8" + \time 2/2; a2^"old9/8" a2 + } + \paper { + linewidth = 4.5 \in; + } + } + +@end mudela + + @item @code{voltaSpannerDuration}@indexcode{voltaSpannerDuration} @propertytype{moment} + Set to an integer to control the size of the brackets printed by + @code{\alternative}. The integer specifies the number of whole + notes duration to use for the brackets. It is rounded to the + nearest measure. This can be used to shrink the length of + brackets in the situation where one alternative is very large. + It may have odd effects if the specified duration is longer than + the music given in an @code{\alternative}. +@end table + +@subsubheading GrandStaff properties + +@cindex properties!GrandStaff + +@table @code + @item @code{maxVerticalAlign}@indexcode{maxVerticalAlign} @propertytype{number} + Set the maximum vertical distance between staffs. + + @item @code{minVerticalAlign}@indexcode{minVerticalAlign} @propertytype{number} + Set the minimum vertical distance between staffs. +@end table + +@subsubheading Score properties + +@cindex properties!Score + + + + +@table @code + @item @code{skipBars}@indexcode{skipBars} @propertytype{boolean} + Set to 1 to skip the empty bars that are produced by + multimeasure notes and rests. These bars will not appear on the + printed output. Set to zero (the default) to expand multimeasure + notes and rests into their full length, printing the appropriate + number of empty bars so that synchronization with other voices is + preserved. + + @quotation + +@mudela[fragment,verbatim,center] +r1 r1*3 R1*3\property Score.skipBars=1 r1*3 R1*3 + +@end mudela + @end quotation + +@item @code{breakAlignOrder}@indexcode{breakAlignOrder} @propertytype{list of string} + + Defines the order in which prefatory matter (clefs, key signatures) appears, eg. this puts the key signatures after the bar lines: +@example + \property Score.breakAlignOrder = #'( + "Span_bar" + "Breathing_sign" + "Clef_item" + "Staff_bar" + "Key_item" + "Time_signature" + ) +@end example + + +@item @code{timing}@indexcode{timing} @propertytype{boolean} + Keep administration of measure length, position, bar number, etc? +Switch off for cadenzas. + +@item @code{currentBarNumber}@indexcode{currentBarNumber} @propertytype{integer} + Contains the current barnumber. This property is incremented at +every barline. + +@item @code{measurePosition}@indexcode{measurePosition} @propertytype{Moment} + + How much of the current measure (measured in whole notes) have we had? + +@item @code{oneBeat}@indexcode{oneBeat} @propertytype{Moment} + + How long does one beat in the current time signature last? + +@item @code{measureLength}@indexcode{measureLength} @propertytype{Moment} + + How long does one measure in the current time signature last? + +@end table + +@subsubheading ChordNamesVoice properties + +@cindex properties!ChordNamesVoice + +@table @code + @item @code{chordInversion}@indexcode{chordInversion} @propertytype{boolean} + Determines whether LilyPond should look for chord inversions when + translating from notes to chord names. Set to 1 to find + inversions. The default is 0 which does not look for + inversions. +@end table + + + +@node Notation output definitions @section Notation output definitions @cindex output @@ -2368,7 +3047,8 @@ available properties. @cindex output definition -@node paper, , , Reference Manual +@node paper +@section paper The most important output definition is the @code{\paper} block, for music notation. The syntax is @@ -2449,7 +3129,8 @@ select. @cindex paper variables -@node Paper variables, , , Reference Manual +@node Paper variables +@section Paper variables There is a large number of paper variables that are used to control details of the layout. These variables control the defaults for the @@ -2463,7 +3144,7 @@ height in points. Nevertheless, here are some variables you may want to use or change: -@table @samp +@table @code @item @code{indent}@indexcode{indent} The indentation of the first line of music. @@ -2486,7 +3167,8 @@ Nevertheless, here are some variables you may want to use or change: @end table -@node contextdefs, , , Reference Manual +@node contextdefs +@section contextdefs @cindex context definition @@ -2528,7 +3210,7 @@ A context definition has this syntax: @var{typename} is one of -@table @samp +@table @code @item @code{Engraver_group_engraver}@indexcode{Engraver_group_engraver} The standard cooperation engraver. @@ -2607,7 +3289,7 @@ such an identifier outside of @code{\score}, you must do Some pre-defined identifiers can simplify modification of translators. The pre-defined identifiers are: -@table @samp +@table @code @item @code{StaffContext}@indexcode{StaffContext} Default Staff context. @@ -2655,13 +3337,14 @@ translator: -@node engravers, , , Reference Manual +@node engravers +@section engravers The engravers for paper output are: [incomplete, FIXME] -@table @samp +@table @code @item @code{Bar_engraver}@indexcode{Bar_engraver} Engraves bar lines. Normally in @code{Staff} and @code{RhythmicStaff}. @@ -2790,7 +3473,7 @@ The engravers for paper output are: -@node Sound output, , , Reference Manual +@node Sound output @section Sound output @@ -2818,7 +3501,8 @@ The contexts for MIDI output are defined in @file{ly/performer.ly}. @cindex MIDI instrument names -@node midilist, , , Reference Manual +@node midilist +@section midilist The MIDI instrument name is set by the @code{Staff.midiInstrument}@indexcode{Staff.midiInstrument} property or, @@ -2883,7 +3567,7 @@ piano. The types available for MIDI translators are: -@table @samp +@table @code @item @code{Performer_group_performer}@indexcode{Performer_group_performer} @item @code{Score_performer}@indexcode{Score_performer} @item @code{Staff_performer}@indexcode{Staff_performer} @@ -2891,7 +3575,7 @@ The types available for MIDI translators are: The performers for MIDI translators are: -@table @samp +@table @code @item @code{Key_performer}@indexcode{Key_performer} @item @code{Time_signature_performer}@indexcode{Time_signature_performer} @item @code{Note_performer}@indexcode{Note_performer} @@ -2901,7 +3585,7 @@ The performers for MIDI translators are: -@node Pre-defined Identifiers, , , Reference Manual +@node Pre-defined Identifiers @section Pre-defined Identifiers @@ -2912,7 +3596,7 @@ Various identifiers are defined in the initialization files to provide shorthands for some settings. Most of them are in @file{ly/declarations.ly}. -@table @samp +@table @code @item @code{\break}@keyindex{break} Force a line break in music by using a large argument for the keyword @code{\penalty}. diff --git a/Documentation/user/tutorial.itely b/Documentation/user/tutorial.itely index 9bd5e9e28e..4d9e32e2f1 100644 --- a/Documentation/user/tutorial.itely +++ b/Documentation/user/tutorial.itely @@ -1,16 +1,17 @@ + +@node Tutorial @chapter Tutorial -@node Tutorial, , , Top @menu -* Introduction:: Introduction -* The first tune:: The first tune -* Lyrics and chords:: Lyrics and chords -* Piano music:: Piano music -* end of tutorial:: The end +* Introduction:: Introduction +* The first tune:: The first tune +* Lyrics and chords:: Lyrics and chords +* Piano music:: Piano music +* end of tutorial:: The end @end menu -@node Introduction, , , Tutorial +@node Introduction @section Introduction @@ -29,7 +30,7 @@ subdirectory @file{input/tutorial/}. It is recommended that you experiment with writing Mudela input yourself, to get a feel for how LilyPond behaves. -@node The first tune, , , Tutorial +@node The first tune @section The first tune @@ -332,7 +333,7 @@ symbols and their placement is @emph{generated} from a high-level musical description. In other words, LilyPond would be best described by `music compiler' or `music to notation compiler'. -@node Lyrics and chords, , , Tutorial +@node Lyrics and chords @section Lyrics and chords In this section we show how to typeset a song of unknown @@ -692,7 +693,7 @@ will be set in two lines. @end example End the score block. -@node Piano music, , , Tutorial +@node Piano music @section Piano music Our third subject is a piece piano music. The fragment in the input @@ -956,7 +957,7 @@ parts. [TODO: demonstrate Hara-Kiri with scores and part extraction.] -@node end of tutorial, , , Tutorial +@node end of tutorial @section The end That's all folks. From here, you can either try fiddling with input diff --git a/VERSION b/VERSION index 7ff428f344..358ef34a53 100644 --- a/VERSION +++ b/VERSION @@ -2,7 +2,7 @@ PACKAGE_NAME=LilyPond MAJOR_VERSION=1 MINOR_VERSION=3 PATCH_LEVEL=46 -MY_PATCH_LEVEL=jcn2 +MY_PATCH_LEVEL=jcn1 # use the above to send patches: MY_PATCH_LEVEL is always empty for a # released version. diff --git a/stepmake/stepmake/texinfo-rules.make b/stepmake/stepmake/texinfo-rules.make index 42474ba6fc..cf7526c0b1 100644 --- a/stepmake/stepmake/texinfo-rules.make +++ b/stepmake/stepmake/texinfo-rules.make @@ -6,7 +6,7 @@ $(outdir)/%.info: $(outdir)/%.texi makeinfo --output=$@ $< $(outdir)/%.html: $(outdir)/%.texi - -makeinfo --force --output=$@ --html --no-headers $< + -makeinfo --force --output=$@ --html --no-split $< # we want footers even if website builds (or is built) partly $(footify) $@ -- 2.39.2