From: John Mandereau Date: Wed, 5 Aug 2009 11:37:52 +0000 (+0200) Subject: Web: import new web site from web-gop branch. X-Git-Tag: release/2.13.4-1~198 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=a060fc94b65dbc25a7e1ec20f2f79a58036a2546;p=lilypond.git Web: import new web site from web-gop branch. Overall structure by Graham, with many comments and suggestions from -user. Patrick McCarty worked extensively on the css and its integration with texinfo. Jonathan worked on the Introduction. Patrick Schmidt did further work on the CSS and the News page. I reworked the structure of files and directories to integrate it as well as possible in Lily sources structure and build system. Status/to-do of this draft: * no PDF output -- best would be to generate per-page PDF and add "Print this page" links from HTML pages, which will be doable with a Texinfo parser; * no big HTML page output: this makes little sense for a website, and the init file is currently not compatible with it: the images paths in the CSS would need to be adjusted to have both one big page and multiple pages outputs; * HTML output: file names should be tweaked, which requires converting Jan's patch to texi2html script into a function in web-texi2html.init; * SVG annotated images should be converted to PNG; * examples of LilyPond scores are missing, they will likely go into a new directory e.g. Documentation/examples; * top news in the HTML website and a RSS feed should be generated from Documentation/general/news.itexi; * cross-references mechanisms between the new web site and the manuals should be set up; * download links should be generated using update-version database; * online and offline targets should be adjusted; * support for translating this document is yet to be added; * the CG should be updated. --- diff --git a/Documentation/GNUmakefile b/Documentation/GNUmakefile index 72aef14ca9..f04e7c4bfa 100644 --- a/Documentation/GNUmakefile +++ b/Documentation/GNUmakefile @@ -9,7 +9,7 @@ depth = .. NAME = documentation LANGS = $(shell $(PYTHON) $(top-src-dir)/python/langdefs.py) -MANUALS_SUBDIRS = application contributor essay learning notation +MANUALS_SUBDIRS = application contributor essay general learning notation SUBDIRS = $(MANUALS_SUBDIRS) snippets bibliography logo pictures misc po $(LANGS) STEPMAKE_TEMPLATES = documentation texinfo tex omf LOCALSTEPMAKE_TEMPLATES = lilypond ly @@ -51,7 +51,7 @@ OUT_TEXINFO_MANUALS = $(TEXINFO_MANUALS:%=$(outdir)/%.texi) # of the NR TEXI_FILES_FROM_TELY = $(outdir)/internals.texi -PDF_FILES = $(TEXINFO_MANUALS:%=$(outdir)/%.pdf) +PDF_FILES = $(subst $(outdir)/general.pdf,,$(TEXINFO_MANUALS:%=$(outdir)/%.pdf)) UNSPLITTED_HTML_MANUALS = changes SPLITTED_HTML_MANUALS = $(foreach manual, $(TEXINFO_MANUALS),\ @@ -72,7 +72,7 @@ OUT_HTML_FILES += $(HTML_PAGE_NAMES:%=$(outdir)/%.html) MAIN_INFO_DOC = lilypond-notation INFO_DOCS = lilypond-application lilypond-changes lilypond-contributor lilypond-internals \ - lilypond-essay lilypond-learning lilypond-notation music-glossary + lilypond-essay lilypond-learning lilypond-notation music-glossary lilypond ifeq ($(out),www) INFO_DOCS += lilypond-snippets endif @@ -87,6 +87,14 @@ include $(depth)/make/stepmake.make OUT_TXT_FILES = $(addprefix $(outdir)/, $(addsuffix .txt, $(README_TOP_FILES))) +### Web site idiosyncrases +## No big page +OUT_HTML_FILES := $(subst $(outdir)/general-big-page.html,,$(OUT_HTML_FILES)) + +## Different init file and CSS +$(outdir)/general/index.html: \ + TEXI2HTML_INIT = --init-file=$(top-src-dir)/Documentation/web-texi2html.init + ########### ### Targets @@ -143,11 +151,9 @@ ifeq ($(out),www) ## Extra images dependencies $(OUT_TEXINFO_MANUALS): $(outdir)/pictures -$(outdir)/pictures: pictures-subdir - ln -sf ../pictures/$(outdir) $@ - -pictures-subdir: +$(outdir)/pictures: $(MAKE) -C pictures WWW-1 + ln -sf ../pictures/$(outdir) $@ endif # Ugh, using '%' twice not possible diff --git a/Documentation/common-macros.itexi b/Documentation/common-macros.itexi index 38fdd6f9ca..985bce595d 100644 --- a/Documentation/common-macros.itexi +++ b/Documentation/common-macros.itexi @@ -123,3 +123,97 @@ UNTRANSLATED NODE: IGNORE ME @end macro @end ifnothtml + + +@c ***** Macros specific to the web site ***** + +@ifset web + +@macro help{TEXT} +@html +
+ + Help wanted: + \TEXT\ +
+@end html +@end macro + +@macro divId {ID} +@html +
+@end html +@end macro + +@macro divClass {CLASS} +@html +
+@end html +@end macro + +@macro divEnd +@c keep the space for proper nesting of

+ +@html +
+@end html +@end macro + + +@c not strictly necessary, but it makes things easier for updating news +@macro newsItem +@html +
+@end html +@end macro + +@macro newsEnd +@c keep the space for proper nesting of

+ +@html +
+@end html +@end macro + + + +@macro imageClickable{IMAGE-FILE, MORE-TEXT, CLICK-FILE, POSITION} +@html +
+ + \IMAGE-FILE\ + +

+ \MORE-TEXT\ +

+
+@end html +@ifnothtml +FIXME: broken image +@c @image{\IMAGE-FILE\} +@end ifnothtml +@end macro + +@macro imageFloat{IMAGE-FILE, POSITION} +@html +\IMAGE-FILE\ +@end html +@ifnothtml +FIXME: broken image +@c @image{\IMAGE-FILE\} +@end ifnothtml +@end macro + +@macro imageId{ID, IMAGE-FILE, ALT} +@html +
+ \ALT\ +
+@end html +@ifnothtml +FIXME: broken image +@c @image{\IMAGE-FILE\} +@end ifnothtml +@end macro + +@end ifset diff --git a/Documentation/css/lilypond-web-alt1.css b/Documentation/css/lilypond-web-alt1.css new file mode 100644 index 0000000000..d8fed90db3 --- /dev/null +++ b/Documentation/css/lilypond-web-alt1.css @@ -0,0 +1,894 @@ +/* this is Graham Percival's experimental CSS */ + +/* Generic elements */ + +html { + padding: 0; + margin: 0; +} + +body { + position: absolute; + top: 0; + left: 1%; + right: 1%; + width: 98%; + min-width: 34em; + max-width: 70em; + font-size: 95%; + line-height: 1.5; + background: #fff url(../pictures/background-image.png) no-repeat 0 0; + text-align: justify; + padding: 0; + margin: 0 auto; +} + +hr { + display: none; +} + +p { + margin: 0.5em; +} + +h1, h2, h3, h4, h5 { + margin: 1em 10px; +} + +li { + margin-right: 1em; +} + +a img { + border: 0; +} + +/* Table of Contents */ + +/* first level toc (unnumbered) */ +div#tocframe { + position: absolute; + top: 0; + left: 0; + right: 0; + background: #9ccc7c; + max-width: 70em; + font-size: 100%; + line-height: 1; + padding: 0; + -moz-border-radius-bottomleft: 7px; + -moz-border-radius-bottomright: 7px; + -webkit-border-bottom-left-radius: 7px; + -webkit-border-bottom-right-radius: 7px; + margin: 0; +} + +#tocframe a { + color: #000; +} + +#tocframe ul.toc { + list-style-type: none; + padding: 0; + margin: 0; +} + +#tocframe > ul:first-child > li:first-child a { + text-indent: -999em; + background: #9ccc7c url(../pictures/lily-home.png) no-repeat 50% 50%; + width: 9%; + /* css3 no go yet? */ + border-bottom-left-radius: 30px; + -moz-border-radius-bottomleft: 7px; + -webkit-border-bottom-left-radius: 7px; +} + +#tocframe > ul:first-child > li:first-child a:hover { + background: #bdee9d url(../pictures/lily-home.png) no-repeat 50% 50%; + width: 9%; +} + +#tocframe > ul:first-child > li:first-child.toc_current a { + text-indent: -999em; + background: #8cbc6c url(../pictures/lily-home.png) no-repeat 50% 50%; + width: 9%; +} + +#tocframe > ul:first-child > li:first-child.toc_current a:hover { + text-indent: -999em; + background: #acdd8c url(../pictures/lily-home.png) no-repeat 50% 50%; + width: 9%; +} + +#tocframe > ul:first-child > li:last-child { + width: 9%; + -moz-border-radius-bottomright: 7px; + -webkit-border-bottom-right-radius: 7px; +} + +#tocframe li { + display: inline; + padding: 0; + margin: 0; +} + +/* search box */ +#tocframe li form { + float: left; + width: 17%; + background: #9ccc7c; + font-size: 100%; + padding: 0.5em 0.8%; + margin: 0; +} + +#tocframe li form input { + display: block; + float: left; + width: 95%; + font-size: 100%; + padding: 0.1em; + border: 0; + margin: 0; + -moz-border-radius-topright: 20px; + -moz-border-radius-bottomright: 20px; + -webkit-border-top-right-radius: 20px; + -webkit-border-bottom-right-radius: 20px; +} + +#tocframe li a { + float: left; + width: 18%; + text-align: center; + font-weight: bold; + padding: 0.85em 0; + margin: 0; + background: #9ccc7c; +} + +#tocframe li a:hover { + background: #bdee9d; + text-decoration: none; +} + +#tocframe li.toc_current a, +#tocframe li.toc_current a:hover { + background: #8cbc6c; + text-decoration: none; +} + +/* second level toc (unnumberedsec) */ + +#tocframe .toc .toc { + position: absolute; + top: 3.8em; + left: 1%; + right: 1%; + font-size: 82%; + padding: 0; + margin: 0; +} + +#tocframe .toc .toc li { + display: inline; + padding: 0; + margin: 0; +} + +#tocframe .toc .toc li:first-child a { + -moz-border-radius-topleft: 7px; + -moz-border-radius-bottomleft: 7px; + -webkit-border-top-left-radius: 7px; + -webkit-border-bottom-left-radius: 7px; +} + +#tocframe .toc .toc li:last-child a { + -moz-border-radius-topright: 7px; + -moz-border-radius-bottomright: 7px; + -webkit-border-top-right-radius: 7px; + -webkit-border-bottom-right-radius: 7px; +} + +#tocframe .toc .toc li a { + float: left; + width: auto; + background: #ceffae; + line-height: 2; + text-decoration: none; + text-indent: 0; + font-weight: normal; + padding: 0 0.5em; + margin: 0; +} + + +#tocframe .toc .toc li.toc_current a { + background: #8cbc6c; +} + +#tocframe .toc .toc li.toc_current a:hover { + background: #acdd8c; +} + +#tocframe .toc .toc li a:hover { + background: #bdee9d; +} + +/* colored second-level TOC items */ +#tocframe .toc .toc li.color1 a { + text-decoration: none; + background: #9ccc7c; +} + +#tocframe .toc .toc li.color2 a { + text-decoration: none; + background: #bbcf81; +} + +#tocframe .toc .toc li.color3 a { + text-decoration: none; + background: #dbd286; +} + +#tocframe .toc .toc li.color4 a { + text-decoration: none; + background: #fad58c; +} + +/* having this useless style makes the perl init file easier */ +#tocframe .toc .toc li.colorDefault a { +} + +#tocframe .toc .toc li.color1 a:hover { + background: #addd8d; +} + +#tocframe .toc .toc li.color2 a:hover { + background: #ccdf92; +} + +#tocframe .toc .toc li.color3 a:hover { + background: #ece297; +} + +#tocframe .toc .toc li.color4 a:hover { + background: #fbe69d; +} + +#tocframe .toc .toc li.color1.toc_current a { + background: #beee9e; +} + +#tocframe .toc .toc li.color1.toc_current a:hover { + background: #beee9e; +} + +#tocframe .toc .toc li.color2.toc_current a { + background: #ddefa3; +} + +#tocframe .toc .toc li.color2.toc_current a:hover { + background: #ddefa3; +} + +#tocframe .toc .toc li.color3.toc_current a { + background: #fdf4a8; +} + +#tocframe .toc .toc li.color3.toc_current a:hover { + background: #fdf4a8; +} + +#tocframe .toc .toc li.color4.toc_current a { + background: #fcf7ae; +} + +#tocframe .toc .toc li.color4.toc_current a:hover { + background: #fcf7ae; +} + +/* third level toc (unnumberedsubsec) */ + +#tocframe .toc .toc .toc { + position: absolute; + top: 2em; + left: 5%; + font-size: 100%; +} + +#tocframe .toc .toc .toc li { + display: inline; + padding: 0; + margin: 0; +} + +#tocframe .toc .toc .toc li a { + float: left; + width: auto; + background: #ceffae; + text-decoration: none; + text-indent: 0; + font-weight: normal; + padding: 0 0.75em; + margin: 0; +} + +#tocframe .toc .toc .toc li a:hover { + background: #bdee9d; +} + +#tocframe .toc .toc .toc li.toc_current a { + background: #acdd8c; +} + +#tocframe .toc .toc .toc li.toc_current a:hover { + background: #acdd8c; +} + +/* Divs */ +div#main { + position: relative; + /* this value may need to be adjusted */ + top: 6.0em; + left: 0; + right: 0; + width: 100%; + max-width: 70em; + margin: 0 auto 11.7em; + /* Necessary to stretch over floated content; + * will cause scrollbars to appear for content + * that is wider than the width of this div + */ + overflow: auto; +} + +/* FIXME: does not work in IE<=6 */ +#main > a:first-child { + position: absolute; + top: -10em; +} + +div#pageHeader { + width: 100%; + height: 10em; + border: solid #ddd; + border-width: 0; + margin: 0 0 1.4em 0; +} + +#pageHeader .heading { + top: 3em; + font-size: 4em; + text-align: left; + padding: 0; + margin: 0 0 0 215px; +} + +#pageHeader p { + text-align: left; + padding: 0; + margin: 0 0 0 215px; +} + +div#lilylogo { + position: absolute; + top: 0; + right: 4em; +} + +div#cmws { + position: absolute; + top: 0; + left: 50%; +} + +div#quickSummary { +/* + text-align: left; + margin: 1.4em 13em 0 0; + padding-top: 5em; +*/ + text-align: left; + position: absolute; + top: 11em; + right: 0; + width: 16em; + border-left: 1px solid #5b7f64; + background: #eef; +} + +#quickSummary .subheading { +/* + padding: 0 0.5em; + border-bottom: 10px solid #5b7f64; + margin: 0; +*/ + background: #5b7f64; + color: #fff; + text-align: center; + padding: 0 0.5em; + margin: 0; +} + +#quickSummary p { + padding: 0.5em; + margin: 0; +} + +div#news { + padding: 0; + margin: 0 16em 1em 0; +} + +div.news-item { +} + +.news-item .subsubheading { + text-align: left; + padding: 0 0 0 0.5em; + border-bottom: 1px solid #5b7f64; + margin: 0; + overflow: hidden; +} + +.testimonial-item { + /* Not sure how to style the testimonials */ + clear: both; + margin: 2em 0; +} + +.testimonial-item .subsubheading { + text-align: left; + padding: 0 0 0 0.5em; +} + +.testimonial-item img.float-left, +.testimonial-item img.float-right { + margin: 1em 1em 2em; +} + +.testimonial-item p { + padding: 0 0.5em; +} + +.news-item p { + text-align: left; + padding: 0.5em; + margin: 0; +} + +div#latestVersion { + position: absolute; + top: 32em; + right: 0; + width: 12em; + text-align: center; + border-left: 1px solid #5b7f64; +} + +#latestVersion .subheading { + background: #5b7f64; + color: #fff; + text-align: center; + padding: 0 0.5em; + margin: 0; +} + +#latestVersion .subsubheading { + background: #bdee9d; + padding: 0.18em 0.25em; + border-bottom: 1px solid #5b7f64; + margin: 0; +} + +#latestVersion p { + font-size: 90%; + padding: 0.5em; + margin: 0; +} + +div#footer { + clear: both; + position: relative; + width: 100%; + /* FIXME: may need to be adjusted */ + margin-top: 7em; +} + +div#language { + position: absolute; + top: 0; + left: 0; + right: 50%; + width: 50%; + text-indent: 0.5em; + padding: 0; +} + +#language h3 { + padding: 0; + border-bottom: 10px solid #5b7f64; + margin: 0; +} + +#language p { + padding: 0; + margin: 0.25em 0 0 0; +} + +#verifier_texinfo { + position: absolute; + top: 0; + right: 0; + left: 50%; +} + +#verifier_texinfo h3 { + text-indent: -9999em; + padding: 0; + border-bottom: 10px solid #5b7f64; + margin: 0 0 0.25em 0; +} + +#verifier_texinfo img { + float: right; + padding: 0; + margin: 0 0.5em 0 0; +} + +#verifier_texinfo p { + clear: right; + text-align: right; + font-size: 0.8em; + padding: 0; + margin: 0 0.5em; +} + +h1.unnumbered, h2.unnumberedsec, h3.unnumberedsubsec { + position: relative; + height: 0; + overflow: hidden; + text-indent: -999em; + padding: 0; + margin: 0; +} + +table { + text-align: left; + padding: 0 0 0 0.5em; + border-left: 3px solid green; + margin: 1em 0 0 1em; +} + +table td { + padding: 0.4em; +} + +table a { + text-align: left; +} + +.verbatim { + margin: 10px; +} + +.float-left { + float: left; +} + +.float-center { + text-align: center; + display: block; + margin: 0 auto; +} + +.float-right { + float: right; +} + +img.float-left, +img.float-right { + background: #fff; + padding: 1em; + border: 1px solid #bbb; + margin: 0.1em 0.5em; +} + +div.float-left a.clickable, +div.float-center a.clickable, +div.float-right a.clickable { + text-decoration: overline; + margin-left: 1em; +} + +.clear-both { + clear: both; +} + +.align-right { + text-align: right; +} + +.heading-center { + text-align: center; + width: 75%; + margin: 0 auto; +} + +.heading-center h2 { + padding: 0.25em 0; + margin: 0; +} + +/* Columns */ + +.column-center-top { + float: left; + width: 99.5%; + text-align: center; + border: 1px solid #8bbb6b; + margin: 1em auto; +} + +/* color1 */ +.column-center-top h3 { + background: #9ccc7c; + text-align: left; + border-bottom: 1px solid #8bbb6b; +} + +.column-left-top { + float: left; + width: 49%; + margin: 1em 0; +} + +.column-left-bottom { + clear: both; + float: left; + width: 49%; + margin: 1em 0; +} + +.column-left-top, +.column-left-bottom { + border: 1px solid #aabe70; +} + +/* color2 */ +.column-left-top h3, +.column-left-bottom h3 { + background: #bbcf81; + border-bottom: 1px solid #aabe70; +} + +.column-right-top { + float: right; + width: 49%; + margin: 1em 0; +} + +.column-right-bottom { + float: right; + width: 49%; + margin: 1em 0; +} + +.column-right-top, +.column-right-bottom { + border: 1px solid #cac175; +} + +/* color3 */ +.column-right-top h3, +.column-right-bottom h3 { + background: #dbd286; + border-bottom: 1px solid #cac175; +} + +.column-center-bottom { + clear: both; + width: 99.5%; + text-align: center; + border: 1px solid #e9c47b; + margin: 1em auto 0; +} + +/* color4 */ +.column-center-bottom h3 { + background: #fad58c; + text-align: left; + border-bottom: 1px solid #e9c47b; +} + +.column-center-top, +.column-center-bottom, +.column-left-top, +.column-left-bottom, +.column-right-top, +.column-right-bottom { + background: #f5fffa; +} + +.column-center-top h3, +.column-center-bottom h3, +.column-left-top h3, +.column-left-bottom h3, +.column-right-top h3, +.column-right-bottom h3 { + padding: 0 0.5em; + margin: 0; +} + +.column-center-top h4, +.column-center-bottom h4, +.column-left-top h4, +.column-left-bottom h4, +.column-right-top h4, +.column-right-bottom h4 { + padding: 0.5em 0.5em 0; + margin: 0 0 0.5em 0; +} + +.column-center-top ul, +.column-center-bottom ul, +.column-left-top ul, +.column-left-bottom ul, +.column-right-top ul, +.column-right-bottom ul { + list-style-type: none; + padding: 0; + margin: 0.5em 0; +} + +.column-center-top li, +.column-center-bottom li, +.column-left-top li, +.column-left-bottom li, +.column-right-top li, +.column-right-bottom li { + text-align: left; + padding: 0 0.5em 0; + margin: 0 0 0.5em 0; +} + +.column-center-top p, +.column-center-bottom p, +.column-left-top p, +.column-left-bottom p, +.column-right-top p, +.column-right-bottom p { + text-align: left; +} + +.column-center-top img.float-left, +.column-center-top img.float-right, +.column-center-bottom img.float-left, +.column-center-bottom img.float-right, +.column-left-top img.float-left, +.column-left-top img.float-right, +.column-left-bottom img.float-left, +.column-left-bottom img.float-right, +.column-right-top img.float-left, +.column-right-top img.float-right, +.column-right-bottom img.float-left, +.column-right-bottom img.float-right { + margin: 0.5em; +} + +/* Centered divs by color */ + +div.color1, +div.color2, +div.color3, +div.color4 { + clear: both; + width: 99.5%; + background: #f5fffa; + margin: 1em auto; +} + +div.color1 h3, +div.color2 h3, +div.color3 h3, +div.color4 h3 { + padding: 0 0.5em; + margin: 0; +} + +div.color1 { + border: 1px solid #8bbb6b; + margin: 1em auto; +} + +div.color1 h3 { + background: #9ccc7c; + border-bottom: 1px solid #8bbb6b; +} + +div.color2 { + border: 1px solid #aabe70; +} + +div.color2 h3 { + background: #bbcf81; + border-bottom: 1px solid #aabe70; +} + +div.color3 { + border: 1px solid #cac175; +} + +div.color3 h3 { + background: #dbd286; + border-bottom: 1px solid #cac175; +} + +div.color4 { + border: 1px solid #e9c47b; +} + +div.color4 h3 { + background: #fad58c; + border-bottom: 1px solid #e9c47b; +} + +.keep-bullets ul { + list-style-type: disc; + padding: 0; + margin: 0.5em 1.5em; +} + +.keep-bullets li { + padding: 0; +} + +.warning { + background: #eef; + text-align: left; + padding: 0; + border: 1px solid green; + /* Experimental rounded corners */ + -moz-border-radius: 10px; + -webkit-border-radius: 10px; + margin: 1em; +} + +.warning p { + padding: 0.5em; + margin: 0; +} + +.hide { + position: relative; + text-indent: -999em; + height: 0; + overflow: hidden; +} + +.help { + background: #f77; + color: black; + text-align: center; + font-weight: bold; + width: 75%; + padding: 1em; + border: 10px dotted green; + margin: 1em auto; +} + +.legal { + font-size: 0.6em; +} + + +/* kill title, probably best done in the init file, though */ +h1.settitle { + position: relative; + height: 0; + overflow: hidden; + text-indent: -999em; + padding: 0; + margin: 0; +} + diff --git a/Documentation/css/lilypond-web.css b/Documentation/css/lilypond-web.css new file mode 100644 index 0000000000..3b3994905f --- /dev/null +++ b/Documentation/css/lilypond-web.css @@ -0,0 +1,881 @@ +/* Generic elements */ + +html { + padding: 0; + margin: 0; +} + +body { + position: absolute; + top: 0; + left: 1%; + right: 1%; + width: 98%; + min-width: 42em; + max-width: 70em; + font-size: 95%; + line-height: 1.5; + background: #fff url(../pictures/background-image.png) no-repeat 0 0; + text-align: justify; + padding: 0; + margin: 0 auto; +} + +hr { + display: none; +} + +p { + margin: 0.5em; +} + +h1, h2, h3, h4, h5 { + margin: 1em 10px; +} + +li { + margin-right: 1em; +} + +a img { + border: 0; +} + +/* Table of Contents */ + +/* first level toc (unnumbered) */ +div#tocframe { + position: absolute; + top: 0; + left: 0; + right: 0; + background: #9ccc7c; + max-width: 70em; + font-size: 100%; + line-height: 1; + padding: 0; + -moz-border-radius-bottomleft: 7px; + -moz-border-radius-bottomright: 7px; + -webkit-border-bottom-left-radius: 7px; + -webkit-border-bottom-right-radius: 7px; + margin: 0; +} + +#tocframe a { + color: #000; +} + +#tocframe ul.toc { + list-style-type: none; + padding: 0; + margin: 0; +} + +#tocframe > ul:first-child > li:first-child a { + text-indent: -999em; + background: #9ccc7c url(../pictures/lily-home.png) no-repeat 50% 50%; + width: 9%; + /* css3 no go yet? */ + border-bottom-left-radius: 30px; + -moz-border-radius-bottomleft: 7px; + -webkit-border-bottom-left-radius: 7px; +} + +#tocframe > ul:first-child > li:first-child a:hover { + background: #bdee9d url(../pictures/lily-home.png) no-repeat 50% 50%; + width: 9%; +} + +#tocframe > ul:first-child > li:first-child.toc_current a { + text-indent: -999em; + background: #8cbc6c url(../pictures/lily-home.png) no-repeat 50% 50%; + width: 9%; +} + +#tocframe > ul:first-child > li:first-child.toc_current a:hover { + text-indent: -999em; + background: #acdd8c url(../pictures/lily-home.png) no-repeat 50% 50%; + width: 9%; +} + +#tocframe > ul:first-child > li:last-child { + width: 9%; + -moz-border-radius-bottomright: 7px; + -webkit-border-bottom-right-radius: 7px; +} + +#tocframe li { + display: inline; + padding: 0; + margin: 0; +} + +/* search box */ +#tocframe li form { + float: left; + width: 17%; + background: #9ccc7c; + font-size: 100%; + padding: 0.5em 0.8%; + margin: 0; +} + +#tocframe li form input { + display: block; + float: left; + width: 95%; + font-size: 100%; + padding: 0.1em; + border: 0; + margin: 0; + -moz-border-radius-topright: 20px; + -moz-border-radius-bottomright: 20px; + -webkit-border-top-right-radius: 20px; + -webkit-border-bottom-right-radius: 20px; +} + +#tocframe li a { + float: left; + width: 18%; + text-align: center; + font-weight: bold; + padding: 0.85em 0; + margin: 0; + background: #9ccc7c; +} + +#tocframe li a:hover { + background: #bdee9d; + text-decoration: none; +} + +#tocframe li.toc_current a, +#tocframe li.toc_current a:hover { + background: #8cbc6c; + text-decoration: none; +} + +/* second level toc (unnumberedsec) */ + +#tocframe .toc .toc { + position: absolute; + top: 3.8em; + left: 1%; + right: 1%; + font-size: 82%; + padding: 0; + margin: 0; +} + +#tocframe .toc .toc li { + display: inline; + padding: 0; + margin: 0; +} + +#tocframe .toc .toc li:first-child a { + -moz-border-radius-topleft: 7px; + -moz-border-radius-bottomleft: 7px; + -webkit-border-top-left-radius: 7px; + -webkit-border-bottom-left-radius: 7px; +} + +#tocframe .toc .toc li:last-child a { + -moz-border-radius-topright: 7px; + -moz-border-radius-bottomright: 7px; + -webkit-border-top-right-radius: 7px; + -webkit-border-bottom-right-radius: 7px; +} + +#tocframe .toc .toc li a { + float: left; + width: auto; + background: #ceffae; + line-height: 2; + text-decoration: none; + text-indent: 0; + font-weight: normal; + padding: 0 0.5em; + margin: 0; +} + + +#tocframe .toc .toc li.toc_current a { + background: #8cbc6c; +} + +#tocframe .toc .toc li.toc_current a:hover { + background: #acdd8c; +} + +#tocframe .toc .toc li a:hover { + background: #bdee9d; +} + +/* colored second-level TOC items */ +#tocframe .toc .toc li.color1 a { + text-decoration: none; + background: #9ccc7c; +} + +#tocframe .toc .toc li.color2 a { + text-decoration: none; + background: #bbcf81; +} + +#tocframe .toc .toc li.color3 a { + text-decoration: none; + background: #dbd286; +} + +#tocframe .toc .toc li.color4 a { + text-decoration: none; + background: #fad58c; +} + +/* having this useless style makes the perl init file easier */ +#tocframe .toc .toc li.colorDefault a { +} + +#tocframe .toc .toc li.color1 a:hover { + background: #addd8d; +} + +#tocframe .toc .toc li.color2 a:hover { + background: #ccdf92; +} + +#tocframe .toc .toc li.color3 a:hover { + background: #ece297; +} + +#tocframe .toc .toc li.color4 a:hover { + background: #fbe69d; +} + +#tocframe .toc .toc li.color1.toc_current a { + background: #beee9e; +} + +#tocframe .toc .toc li.color1.toc_current a:hover { + background: #beee9e; +} + +#tocframe .toc .toc li.color2.toc_current a { + background: #ddefa3; +} + +#tocframe .toc .toc li.color2.toc_current a:hover { + background: #ddefa3; +} + +#tocframe .toc .toc li.color3.toc_current a { + background: #fdf4a8; +} + +#tocframe .toc .toc li.color3.toc_current a:hover { + background: #fdf4a8; +} + +#tocframe .toc .toc li.color4.toc_current a { + background: #fcf7ae; +} + +#tocframe .toc .toc li.color4.toc_current a:hover { + background: #fcf7ae; +} + +/* third level toc (unnumberedsubsec) */ + +#tocframe .toc .toc .toc { + position: absolute; + top: 2em; + left: 5%; + font-size: 100%; +} + +#tocframe .toc .toc .toc li { + display: inline; + padding: 0; + margin: 0; +} + +#tocframe .toc .toc .toc li a { + float: left; + width: auto; + background: #ceffae; + text-decoration: none; + text-indent: 0; + font-weight: normal; + padding: 0 0.75em; + margin: 0; +} + +#tocframe .toc .toc .toc li a:hover { + background: #bdee9d; +} + +#tocframe .toc .toc .toc li.toc_current a { + background: #acdd8c; +} + +#tocframe .toc .toc .toc li.toc_current a:hover { + background: #acdd8c; +} + +/* Divs */ +div#main { + position: relative; + /* this value may need to be adjusted */ + top: 7.7em; + left: 0; + right: 0; + width: 100%; + max-width: 70em; + margin: 0 auto 11.7em; + /* Necessary to stretch over floated content; + * will cause scrollbars to appear for content + * that is wider than the width of this div + */ + overflow: auto; +} + +/* FIXME: does not work in IE<=6 */ +#main > a:first-child { + position: absolute; + top: -10em; +} + +div#pageHeader { + width: 100%; + height: 10em; + padding-top: 2em; + border: solid #ddd; + border-width: 0; + margin: 0 0 1.4em 0; +} + +#pageHeader .heading { + font-size: 4em; + text-align: left; + padding: 0; + margin: 0 0 0 340px; +} + +#pageHeader p { + font-size: 1.2em; + font-style: italic; + text-align: left; + padding: 0; + margin: 0 0 0 340px; +} + +div#lilylogo { + position: absolute; + top: 0; + left: 0; +} + +div#cmws { + position: absolute; + top: 0; + left: 50%; +} + +div#quickSummary { + text-align: left; + margin: 4em 13em 0 0; +} + +#quickSummary .subheading { + background: #fff url(../pictures/summary-gradient.png) repeat-y 0 0; + color: #fff; + padding: 0 0.5em; + /* border-bottom: 10px solid #5b7f64; */ + margin: 0; +} + +#quickSummary p { + padding: 0.5em; + margin: 0; +} + +div#news { + padding: 0; + margin: 0 13em 1em 0; +} + +div.news-item { +} + +.news-item .subsubheading { + text-align: left; + padding: 0 0 0 0.5em; + border-bottom: 1px solid #5b7f64; + margin: 0; + overflow: hidden; +} + +.testimonial-item { + /* Not sure how to style the testimonials */ + clear: both; + margin: 2em 0; +} + +.testimonial-item .subsubheading { + text-align: left; + padding: 0 0 0 0.5em; +} + +.testimonial-item img.float-left, +.testimonial-item img.float-right { + margin: 1em 1em 2em; +} + +.testimonial-item p { + padding: 0 0.5em; +} + +.news-item p { + text-align: left; + padding: 0.5em; + margin: 0; +} + +div#latestVersion { + position: absolute; + top: 12.4em; + right: 0; + width: 12em; + text-align: center; + border-left: 1px solid #5b7f64; +} + +#latestVersion .subheading { + background: #5b7f64; + color: #fff; + text-align: center; + padding: 0 0.5em; + margin: 0; +} + +#latestVersion .subsubheading { + background: #bdee9d; + padding: 0.18em 0.25em; + border-bottom: 1px solid #5b7f64; + margin: 0; +} + +#latestVersion p { + font-size: 90%; + padding: 0.5em; + margin: 0; +} + +div#footer { + clear: both; + position: relative; + width: 100%; + /* FIXME: may need to be adjusted */ + margin-top: 7em; +} + +div#language { + position: absolute; + top: 0; + left: 0; + right: 50%; + width: 50%; + text-indent: 0.5em; + padding: 0; +} + +#language h3 { + padding: 0; + border-bottom: 10px solid #5b7f64; + margin: 0; +} + +#language p { + padding: 0; + margin: 0.25em 0 0 0; +} + +#verifier_texinfo { + position: absolute; + top: 0; + right: 0; + left: 50%; +} + +#verifier_texinfo h3 { + text-indent: -9999em; + padding: 0; + border-bottom: 10px solid #5b7f64; + margin: 0 0 0.25em 0; +} + +#verifier_texinfo img { +/* + float: right; +*/ + padding: 0; + margin: 0 0.5em 0 0; +} + +#verifier_texinfo p { + clear: right; + text-align: right; + font-size: 0.8em; + padding: 0; + margin: 0 0.5em; +} + +h1.unnumbered, h2.unnumberedsec, h3.unnumberedsubsec { + position: relative; + height: 0; + overflow: hidden; + text-indent: -999em; + padding: 0; + margin: 0; +} + +table { + text-align: left; + padding: 0 0 0 0.5em; + border-left: 3px solid green; + margin: 1em 0 0 1em; +} + +table td { + padding: 0.4em; +} + +table a { + text-align: left; +} + +.verbatim { + margin: 10px; +} + +.float-left { + float: left; +} + +.float-center { + text-align: center; + display: block; + margin: 0 auto; +} + +.float-right { + float: right; +} + +img.float-left, +img.float-right { + background: #fff; + padding: 1em; + border: 1px solid #bbb; + margin: 0.1em 0.5em; +} + +div.float-left a.clickable, +div.float-center a.clickable, +div.float-right a.clickable { + text-decoration: overline; + margin-left: 1em; +} + +.clear-both { + clear: both; +} + +.align-right { + text-align: right; +} + +.heading-center { + text-align: center; + width: 75%; + margin: 0 auto; +} + +.heading-center h2 { + padding: 0.25em 0; + margin: 0; +} + +/* Columns */ + +.column-center-top { + float: left; + width: 99.5%; + text-align: center; + border: 1px solid #8bbb6b; + margin: 1em auto; +} + +/* color1 */ +.column-center-top h3 { + background: #9ccc7c; + text-align: left; + border-bottom: 1px solid #8bbb6b; +} + +.column-left-top { + float: left; + width: 49%; + margin: 1em 0; +} + +.column-left-bottom { + clear: both; + float: left; + width: 49%; + margin: 1em 0; +} + +.column-left-top, +.column-left-bottom { + border: 1px solid #aabe70; +} + +/* color2 */ +.column-left-top h3, +.column-left-bottom h3 { + background: #bbcf81; + border-bottom: 1px solid #aabe70; +} + +.column-right-top { + float: right; + width: 49%; + margin: 1em 0; +} + +.column-right-bottom { + float: right; + width: 49%; + margin: 1em 0; +} + +.column-right-top, +.column-right-bottom { + border: 1px solid #cac175; +} + +/* color3 */ +.column-right-top h3, +.column-right-bottom h3 { + background: #dbd286; + border-bottom: 1px solid #cac175; +} + +.column-center-bottom { + clear: both; + width: 99.5%; + text-align: center; + border: 1px solid #e9c47b; + margin: 1em auto 0; +} + +/* color4 */ +.column-center-bottom h3 { + background: #fad58c; + text-align: left; + border-bottom: 1px solid #e9c47b; +} + +.column-center-top, +.column-center-bottom, +.column-left-top, +.column-left-bottom, +.column-right-top, +.column-right-bottom { + background: #f5fffa; +} + +.column-center-top h3, +.column-center-bottom h3, +.column-left-top h3, +.column-left-bottom h3, +.column-right-top h3, +.column-right-bottom h3 { + padding: 0 0.5em; + margin: 0; +} + +.column-center-top h4, +.column-center-bottom h4, +.column-left-top h4, +.column-left-bottom h4, +.column-right-top h4, +.column-right-bottom h4 { + padding: 0.5em 0.5em 0; + margin: 0 0 0.5em 0; +} + +.column-center-top ul, +.column-center-bottom ul, +.column-left-top ul, +.column-left-bottom ul, +.column-right-top ul, +.column-right-bottom ul { + list-style-type: none; + padding: 0; + margin: 0.5em 0; +} + +.column-center-top li, +.column-center-bottom li, +.column-left-top li, +.column-left-bottom li, +.column-right-top li, +.column-right-bottom li { + text-align: left; + padding: 0 0.5em 0; + margin: 0 0 0.5em 0; +} + +.column-center-top p, +.column-center-bottom p, +.column-left-top p, +.column-left-bottom p, +.column-right-top p, +.column-right-bottom p { + text-align: left; +} + +.column-center-top img.float-left, +.column-center-top img.float-right, +.column-center-bottom img.float-left, +.column-center-bottom img.float-right, +.column-left-top img.float-left, +.column-left-top img.float-right, +.column-left-bottom img.float-left, +.column-left-bottom img.float-right, +.column-right-top img.float-left, +.column-right-top img.float-right, +.column-right-bottom img.float-left, +.column-right-bottom img.float-right { + margin: 0.5em; +} + +/* Centered divs by color */ + +div.color1, +div.color2, +div.color3, +div.color4 { + clear: both; + width: 99.5%; + background: #f5fffa; + margin: 1em auto; +} + +div.color1 h3, +div.color2 h3, +div.color3 h3, +div.color4 h3 { + padding: 0 0.5em; + margin: 0; +} + +div.color1 { + border: 1px solid #8bbb6b; + margin: 1em auto; +} + +div.color1 h3 { + background: #9ccc7c; + border-bottom: 1px solid #8bbb6b; +} + +div.color2 { + border: 1px solid #aabe70; +} + +div.color2 h3 { + background: #bbcf81; + border-bottom: 1px solid #aabe70; +} + +div.color3 { + border: 1px solid #cac175; +} + +div.color3 h3 { + background: #dbd286; + border-bottom: 1px solid #cac175; +} + +div.color4 { + border: 1px solid #e9c47b; +} + +div.color4 h3 { + background: #fad58c; + border-bottom: 1px solid #e9c47b; +} + +.keep-bullets ul { + list-style-type: disc; + padding: 0; + margin: 0.5em 1.5em; +} + +.keep-bullets li { + padding: 0; +} + +.warning { + background: #eef; + text-align: left; + padding: 0; + border: 1px solid green; + /* Experimental rounded corners */ + -moz-border-radius: 10px; + -webkit-border-radius: 10px; + margin: 1em; +} + +.warning p { + padding: 0.5em; + margin: 0; +} + +.hide { + position: relative; + text-indent: -999em; + height: 0; + overflow: hidden; +} + +.help { + background: #f77; + color: black; + text-align: center; + font-weight: bold; + width: 75%; + padding: 1em; + border: 10px dotted green; + margin: 1em auto; +} + +.legal { + font-size: 0.6em; +} + + +/* kill title, probably best done in the init file, though */ +h1.settitle { + position: relative; + height: 0; + overflow: hidden; + text-indent: -999em; + padding: 0; + margin: 0; +} + diff --git a/Documentation/css/text-to-speech.css b/Documentation/css/text-to-speech.css new file mode 100644 index 0000000000..96c1f20da9 --- /dev/null +++ b/Documentation/css/text-to-speech.css @@ -0,0 +1,24 @@ +@media aural { + h1, h2, h3, + h4, h5, h6 { voice-family: paul, male; stress: 20; richness: 90 } + h1 { pitch: x-low; pitch-range: 90 } + h2 { pitch: x-low; pitch-range: 80 } + h3 { pitch: low; pitch-range: 70 } + h4 { pitch: medium; pitch-range: 60 } + h5 { pitch: medium; pitch-range: 50 } + h6 { pitch: medium; pitch-range: 40 } + li, dt, dd { pitch: medium; richness: 60 } + dt { stress: 80 } + pre, code, tt { pitch: medium; pitch-range: 0; stress: 0; richness: 80 } + em { pitch: medium; pitch-range: 60; stress: 60; richness: 50 } + strong { pitch: medium; pitch-range: 60; stress: 90; richness: 90 } + dfn { pitch: high; pitch-range: 60; stress: 60 } + s, strike { richness: 0 } + i { pitch: medium; pitch-range: 60; stress: 60; richness: 50 } + b { pitch: medium; pitch-range: 60; stress: 90; richness: 90 } + u { richness: 0 } + a:link { voice-family: harry, male } + a:visited { voice-family: betty, female } + a:active { voice-family: betty, female; pitch-range: 80; pitch: x-high} +} + diff --git a/Documentation/fdl.itexi b/Documentation/fdl.itexi index 158e5c6c30..1fc964c023 100644 --- a/Documentation/fdl.itexi +++ b/Documentation/fdl.itexi @@ -1,13 +1,15 @@ - +@c -*- coding: utf-8; mode: texinfo; -*- +@ifclear web @node GNU Free Documentation License @appendix GNU Free Documentation License +@end ifclear @cindex FDL, GNU Free Documentation License @center Version 1.1, March 2000 @display Copyright @copyright{} 2000 Free Software Foundation, Inc. -59 Temple Place, Suite 330, Boston, MA 02111-1307, USA +51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. diff --git a/Documentation/general.texi b/Documentation/general.texi new file mode 100644 index 0000000000..cbf4de3bf3 --- /dev/null +++ b/Documentation/general.texi @@ -0,0 +1,137 @@ +\input texinfo @c -*- coding: utf-8; mode: texinfo; -*- +@ignore + Translation of GIT committish: FILL-IN-HEAD-COMMITTISH + + When revising a translation, copy the HEAD committish of the + version that you are working on. See TRANSLATION for details. +@end ignore + +@setfilename lilypond.info +@settitle GNU LilyPond New Website +@documentencoding UTF-8 +@documentlanguage en + +@set web +@include macros.itexi + +@afourpaper + +@ifnottex +@node Top +@top GNU LilyPond --- Web site +@chapheading The music typesetter +@end ifnottex + + +@finalout + +@titlepage +@title LilyPond +@subtitle The music typesetter +@titlefont{New Website} +@author The LilyPond development team + +Copyright @copyright{} 1999--2009 by the authors + +@quotation +Permission is granted to copy, distribute and/or modify this document +under the terms of the GNU Free Documentation License, Version 1.1 +or any later version published by the Free Software Foundation; +with no Invariant Sections. +A copy of the license is included in the section entitled ``GNU +Free Documentation License''. +@end quotation + +@vskip 20pt + +For LilyPond version +@end titlepage + +@copying +Copyright @copyright{} 1999--2009 by the authors + +@quotation +Permission is granted to copy, distribute and/or modify this document +under the terms of the GNU Free Documentation License, Version 1.1 +or any later version published by the Free Software Foundation; +with no Invariant Sections. +A copy of the license is included in the section entitled ``GNU +Free Documentation License''. +@end quotation +@end copying + +@divId{pageHeader} +@heading LilyPond + +... music notation for everyone +@divEnd + +@c @imageId{cmws,web-clef-g-eight-alpha.png,Catchy Musical Web Snippet} +@imageId{lilylogo,double-lily-modified3.png,LilyPond logo} +@c @im ageId{cmws,web-snippet-alpha.png,Catchy Musical Web Snippet} + +@divId{quickSummary} +@subheading What is LilyPond? + +LilyPond is an open-source music engraving program, devoted to +producing the highest-quality sheet music possible. We bring the +aesthetics of traditionally engraved music to computer printouts. + +@divClass{align-right} +Read more in our @ref{Introduction}! +@divEnd +@divEnd + + +@divId{news} +FIXME: process news items like the old web site: +select first 4 items to insert here, and generate +RSS. + +@c @include news-front.itexi + +@divClass{float-right} +(@ref{Old news}) +@divEnd + +@divEnd + + +@divId{latestVersion} +@subheading Quick links + +@c TODO: javascript to detect OS and suggest download? + +@subsubheading Stable + +@ref{Download, Download 2.12.3} + +@ref{Manuals, Manuals 2.12.3} + +@subsubheading Unstable + +@ref{Development, Download 2.13.2} + +@ref{Development, Manuals 2.13.2} + +@divEnd + + +@divClass{hide} +@menu +* Introduction:: Start here to creating sheet music. +* Download:: Get LilyPond. +* Manuals:: Read The Fine Manuals (RTFM). +* Community:: Contact other users. +@end menu +@divEnd + +@contents + + +@include general/introduction.itexi +@include general/download.itexi +@include general/manuals.itexi +@include general/community.itexi + +@bye diff --git a/Documentation/general/GNUmakefile b/Documentation/general/GNUmakefile new file mode 100644 index 0000000000..c93c9e0624 --- /dev/null +++ b/Documentation/general/GNUmakefile @@ -0,0 +1,5 @@ +depth = ../.. + +LOCALSTEPMAKE_TEMPLATES = ly + +include $(depth)/make/stepmake.make diff --git a/Documentation/general/community.itexi b/Documentation/general/community.itexi new file mode 100644 index 0000000000..78051260a9 --- /dev/null +++ b/Documentation/general/community.itexi @@ -0,0 +1,578 @@ +@c -*- coding: utf-8; mode: texinfo; -*- +@ignore + Translation of GIT committish: FILL-IN-HEAD-COMMITTISH + + When revising a translation, copy the HEAD committish of the + version that you are working on. See TRANSLATION for details. +@end ignore + +@node Community +@unnumbered Community + + +@divClass{column-center-top} +@subheading Interacting with the community + +@itemize + +@item +@ref{Contact}: get help, discuss, and keep in touch! + +@item +@ref{Tiny examples}: these are @emph{highly} recommended when +discussing LilyPond. + +@item +@ref{Bug reports}: something went wrong. + +@end itemize +@divEnd + +@divClass{column-left-bottom} +@subheading Making LilyPond better + +@itemize + +@item +@ref{Help us}: your assistance is requested. + +@item +@ref{Development}: for contributors and testers. + +@item +@ref{Authors}: the people who made LilyPond what it is today. + +@end itemize +@divEnd + +@divClass{column-right-bottom} +@subheading Miscellaneous + +@itemize + +@item +@ref{Publications}: what we wrote, and have had written about us. + +@item +@ref{Old news}: an archive. + +@end itemize +@divEnd + + +@divClass{hide} +@menu +* Contact:: +* Tiny examples:: +* Bug reports:: +* Help us:: +* Development:: +* Authors:: +* Publications:: +* Old news:: +@end menu +@divEnd + + +@node Contact +@unnumberedsec Contact + + +@divClass{column-left-bottom} +@subheading User Discussions and Help + +@subsubheading User mailist + +The main place for users to discuss and help each other is the +@uref{http://mail.gnu.org/mailman/listinfo/lilypond-user, +lilypond-user@@gnu.org} mailist. To see what this mailist is +like, read the +@uref{http://mail.gnu.org/archive/html/lilypond-user/, +lilypond-user archives}. + +You may easily post messages to the mailist with the +@uref{http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.general, +lilypond.general gmane interface}. + +@warning{When asking questions, please use @ref{Tiny examples}!} + +@help{we could add a "subscribe to -user" box here?} + + +@subsubheading IRC + +Some level of support is provided on our IRC channel, + +@example +@uref{irc://irc.freenode.net/lilypond, #lilypond@@irc.freenode.net} +@end example + +This channel has no public archive, so any question that may +be useful for others would better be posted to one of the mailing lists. + + +@subsubheading Other languages + +@help{send mailists or forums where non-English discussion occurs.} + +@divEnd + + +@divClass{column-right-top} +@subheading Stay Informed + +@subsubheading LilyPond Report + +The easiest way to keep touch is by reading our community +newsletter, the @uref{http://news.lilynet.net/, LilyPond Report}. + +@subsubheading Releases mailing list + +@uref{http://mail.gnu.org/mailman/listinfo/info-lilypond, +info-lilypond@@gnu.org} +is a low-volume, read-only list which receives notifications of +new releases. To see what the mailist is like, browse the +@uref{http://mail.gnu.org/archive/html/info-lilypond/, +info-lilypond archive}. + +@divEnd + + +@divClass{column-right-bottom} +@subheading Developer Discussion + +Most developer discussion takes place on +@uref{http://mail.gnu.org/mailman/listinfo/lilypond-devel, +lilypond-devel@@gnu.org}. Patches should be sent here. You can +browse the @uref{http://mail.gnu.org/archive/html/lilypond-devel/, +lilypond-devel archives}, or send a message directly with the +@uref{http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.development, +lilypond.development gmane interface}. + +Bug-specific discussion takes place on the +@uref{http://mail.gnu.org/mailman/listinfo/bug-lilypond, +bug-lilypond@@gnu.org}. You can browse the +@uref{http://mail.gnu.org/archive/html/bug-lilypond/, bug-lilypond +archives}. + +@warning{Before sending a message to the bug list, please read our +guidelines for @ref{Bug reports}.} + +@divEnd + + + +@node Tiny examples +@unnumberedsec Tiny examples + +@divClass{column-center-top} +@subheading What are @qq{Tiny examples}? + +A tiny example is an example from which nothing can be removed. + +These used to be called @qq{minimal examples}. +@divEnd + +@divClass{column-left-bottom} +@subheading Why create them? + +@divClass{keep-bullets} +@itemize + +@item +The simpler the example is, the quicker potential helpers can +understand it and help you. + +@item +A simple example demonstrates that you have put effort towards +solving the problem yourself. When people send huge portions of +input, it looks like they don't care how if we help them or not. + +@item +Creating a tiny example forces you to understand what is +happening. Many false problem reports can be avoided by +attempting to create a tiny example; if you cannot replicate a +@qq{bug} in a tiny example, then the problem was probably an +insufficient understanding of LilyPond, not an actual bug! + +@end itemize +@divEnd + +@divEnd + + +@divClass{column-right-bottom} +@subheading How do I create them? + +@divClass{keep-bullets} +@itemize + +@item +Include the \version number. + +@item +Make it small! Examples about spacing or page layout might +require many bars of music, but most issues can be reproduced +using only a single measure. + +@item +When trying to create an example, try commenting out @w{(@code{%} +or @code{%@{ @dots{} %@}})} sections of your file. If you can +comment something while still demonstrating the main idea, then +remove the commented-material! + +@item +Avoid using complicated notes, keys, or time signatures, unless +the bug is about the behavior of those items. + +@item +Do not use @code{\override} or @code{\set} commands unless the bug +is about those particular commands. + +@end itemize +@divEnd + +@divEnd + + + + +@node Bug reports +@unnumberedsec Bug reports + +@divClass{column-center-top} +@subheading Step 1: Known bugs + +If you have input that results in a crash or an erroneous output, +then that is a bug. There is a list of current bugs on our google +bug tracker, + +@example +@uref{http://code.google.com/p/lilypond/issues/list} +@end example + +@warning{Please @strong{DO NOT} add bug reports directly to the +bug tracker. Once an issue has been added to the tracker, feel +free to add more information to that report.} + +@divEnd + + +@divClass{column-left-bottom} +@subheading Step 2: Creating a bug report + +If you have discovered a bug which is not listed, please help us +by creating a bug report. + +@warning{We only accept bug reports in the form of @ref{Tiny +examples}. We have very limited resources to deal with bug +reports, so any non-minimal example will be rejected. Almost +every bug can be demonstrated in four notes or less!} + +Here is an example of a good bug report: + +@example +%% the octavation command doesn't +%% change the output at all! + +\version "2.10.0" +\paper@{ ragged-right=##t @} +\relative c''' @{ + c1 + #(set-octavation 1) + c1 +@} +@end example + +@divEnd + +@divClass{column-right-bottom} +@subheading Step 3: Sending a bug report + +Once you have verified that the issue is not already known and +created a bug report, please send it to us! + +Unfortunately there is a strict @qq{no top-posting} check on the +bug list, which is often incorrectly triggered by lilypond files. +To avoid this, please add + +@example +> I'm not top posting. +@end example + +@noindent +(you must include the @code{>} ) to the top of your bug report. + +@uref{http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs, +Post with the gmane lilypond.bugs interface}, or send an email to +@uref{mailto:bug-lilypond@@gnu.prg, bug-lilypond@@gnu.org}. + +Once your bug has been sent to the list, our Bug Meister will +examine the report. He may ask you for more information, or may +add the report to the tracker and let you know what the issue +number is. + +You may mark the bug so that you automatically receive emails when +any activity on the bug occurs. This requires you have a google +account. +@divEnd + + +@node Help us +@unnumberedsec Help us + +FIXME: before going live, rewrite this to apply to lilypond +generally. Right now it's (deliberately) website-specific. + +@subheading This document + +@subsubheading High priority / blocks release + +- Features page. + +- python: automatically insert latest version numbers into these + pages. Script already exists for the old website, but might + (or might not!) require tweaking. + +- translation infrastructure. + +@subsubheading Low priority / may never + +- perl: web-texi2html.pl needs to be un-hacked; I did things + really messily. Possibly even merge/share functions with + the doc init.pl file? + +- somebody to implement/work on a media=handheld CSS sheet + +- remove the attributes from the tag. In general, clean up + the HTML produced by texi2html + + + +@node Development +@unnumberedsec Development + + +@divClass{heading-center} +@heading Development materials for LilyPond 2.13.3 + +@warning{These are @emph{unstable development} versions. If you +have the slighest doubt about how to use or install LilyPond, we +urge you to use the stable @ref{Download}, and read the stable +@ref{Manuals}.} + +@divEnd + +@divClass{column-left-bottom} +@subheading Download + +@uref{http://download.linuxaudio.org/lilypond/binaries/linux-x86/lilypond-2.13.3-1.linux-x86.sh, +lilypond-2.13.3-1.linux-x86.sh} + +@uref{http://download.linuxaudio.org/lilypond/binaries/linux-64/lilypond-2.13.3-1.linux-64.sh, +lilypond-2.13.3-1.linux-64.sh} + +@uref{http://download.linuxaudio.org/lilypond/binaries/linux-ppc/lilypond-2.13.3-1.linux-ppc.sh, +lilypond-2.13.3-1.linux-ppc.sh} + +@uref{http://download.linuxaudio.org/lilypond/binaries/freebsd-x86/lilypond-2.13.3-1.freebsd-x86.sh, +lilypond-2.13.3-1.freebsd-x86.sh} + +@uref{http://download.linuxaudio.org/lilypond/binaries/freebsd-64/lilypond-2.13.3-1.freebsd-64.sh, +lilypond-2.13.3-1.freebsd-64.sh} + +@uref{ +http://download.linuxaudio.org/lilypond/binaries/darwin-x86/lilypond-2.13.3-1.darwin-x86.tar.bz2, +lilypond-2.13.3-1.darwin-x86.tar.bz2} + +@uref{ +http://download.linuxaudio.org/lilypond/binaries/darwin-x86/lilypond-2.13.3-1.darwin-ppc.tar.bz2, +lilypond-2.13.3-1.darwin-ppc.tar.bz2} + +@uref{ +http://download.linuxaudio.org/lilypond/binaries/mingw/lilypond-2.13.3-1.mingw.exe, +lilypond-2.13.3-1.mingw-exe} + + +@subheading Manuals + +LM: +@uref{lm-html, html} +@uref{lm-pdf, pdf} + +MG: +@uref{mg-html, html} +@uref{mg-pdf, pdf} + +AE: +@uref{ae-html, html} +@uref{ae-pdf, pdf} + +@smallspace + +NR: +@uref{nr-html, html} +@uref{nr-pdf, pdf} + +...etc... +SL-link +AU-link + +FAQ-link (? maybe?) +Changes-link +IR-link + +@divEnd + + +@divClass{column-right-bottom} +@subheading Contributors' Guide + +FIXME write CG intro + links. + +@divEnd + + + +@node Authors +@unnumberedsec Authors + +combo of: + +http://lilypond.org/web/about/thanks + +Documentation/topdocs/AUTHORS.texi + +and maybe: +http://lilypond.org/web/switch/ + + + + +@node Publications +@unnumberedsec Publications + +@divClass{column-center-top} + +@subheading What we wrote + +@divClass{keep-bullets} +@itemize + +@item +Han-Wen Nienhuys and Jan Nieuwenhuizen, @emph{LilyPond, a system +for automated music engraving}. Proceedings of the XIV Colloquium +on Musical Informatics (XIV CIM 2003), Firenze, Italy, May 2003. +(@uref{ http://lilypond.org/web/images/xivcim.pdf, PDF 95k}) + +@item +Han-Wen Nienhuys, @emph{LilyPond, Automated music formatting and +the Art of Shipping}. Forum Internacional Software Livre 2006 +(FISL7.0) (@uref{http://lilypond.org/web/images/FISL7-slides.pdf, +PDF 1095k}) + +@item +Erik Sandberg, @emph{Separating input language and formatter in +GNU Lilypond}. Master's Thesis, Uppsala University, Department of +Information Technology March 2006. +(@uref{http://lilypond.org/web/images/thesis-erik-sandberg.pdf, +PDF 750k}) + +@end itemize + +@divEnd +@divEnd + + +@divClass{column-center-bottom} + +@subheading What others wrote + +@divClass{keep-bullets} +@itemize + +@item +February 2008 + +In @uref{http://www.musicbyandrew.ca/finale-lilypond-1.html, +articles on his personal site}, Andrew Hawryluk compares Finale +and LilyPond in general terms, and evaluates in detail engraving +capabilities of both pieces of software. The second article is an +instructive analysis of Rachmaninoff's Piano Prelude 6 engraving, +including comparisons with a reference hand-engraved edition. + +@item +December 2005 + +linux journal cover Linux Journal publishes an article titled +@uref{http://www.linuxjournal.com/article/8364, Make Stunning +Schenker Graphs with GNU LilyPond}. It is a in-depth but hands-on +feature article with crisp LilyPond graphics. Author Kris Shaffer +remarks “GNU Lilypond generates beautiful graphics that make +commercial alternatives seem second-rate.” + +@item +August 20, 2005 + +The Belgian newspaper De Standaard investigates what drives Free +Software authors in an article titled +@uref{http://www.standaard.be/Artikel/Detail.aspx?artikelId=G42H5GD6, +Delen van KENNIS zonder WINSTBEJAG} (Non-profit sharing of +knowlegde) in its `DS2 bijlage'. LilyPond is used as an example +and the article is interspersed with quotes from an `email +interview' with Jan Nieuwenhuizen. This marks LilyPond's first +appearance in mainstream printed press. + +@item +June 2005 + +A French article on the LilyPond 2.6 release appeared on +@uref{http://linuxfr.org/2005/06/27/19210.html, linuxfr.org}. + +@item +October 2004 + +The editors of Computer!Totaal, a Dutch computer magazine, +@uref{http://lilypond.org/web/images/computer-totaal.jpeg, +describe LilyPond} in the October 2004 issue as: @qq{Wonderful +free (open source) software [..] The sheet music produced by +LilyPond is exceptionally pretty [..] a very powerful system that +can do almost anything.} + +@item +July, August 2004 + +Dave Phillips wrote an introductory article for Linux Journal At +the sounding edge: LilyPond, parts +@uref{http://www.linuxjournal.com/article/7657, one} and +@uref{http://www.linuxjournal.com/article/7719, two}. + +@item +March 2004 + +Chris Cannam interviewed Han-Wen Nienhuys and Jan Nieuwenhuizen on +linuxmusician.com (site now defunct). This interview was also +reviewed in a +@uref{http://slashdot.org/article.pl?sid=04/03/13/2054227&tid=, +slashdot story}. + +@item +February 2004 + +Jazz singer Gail Selkirk writes about +@uref{http://www.songbirdofswing.com/editorial_page/lilypond/, +Diving into LilyPond}. @qq{... you can make lead sheets or full +orchestral parts, and the results can be stunning.} +@uref{http://www.computermusic.co.uk/, Computer Music Special}, +issue CMS06. + +@end itemize + +@divEnd +@divEnd + + +@node Old news +@unnumberedsec Old news + +@include general/news.itexi diff --git a/Documentation/general/download.itexi b/Documentation/general/download.itexi new file mode 100644 index 0000000000..d5234cacd7 --- /dev/null +++ b/Documentation/general/download.itexi @@ -0,0 +1,534 @@ +@c -*- coding: utf-8; mode: texinfo; -*- +@ignore + Translation of GIT committish: FILL-IN-HEAD-COMMITTISH + + When revising a translation, copy the HEAD committish of the + version that you are working on. See TRANSLATION for details. +@end ignore + +@node Download +@unnumbered Download + +@divClass{heading-center} +@heading Downloads for LilyPond 2.12.2 + +@divEnd + +@warning{LilyPond is a @strong{text-based} music engraver; it is +more similar to a programming language than a graphical score +editing program. Before downloading LilyPond, please read about +our @ref{Text input}.} + +@divClass{column-left-top} +@subheading For users + +@itemize + +@item +@c TODO: duplicate to avoid underlined refs in HTML? icky. +@ref{Unix, @sourceimage{logo-linux} @sourceimage{logo-freebsd}} +@ref{Unix, Unix (Linux and FreeBSD)} + +@item +@ref{MacOS X, @sourceimage{logo-macosx}} +@ref{MacOS X, MacOS X} + +@item +@ref{Windows, @sourceimage{logo-windows}} +@ref{Windows, Microsoft Windows} + +@end itemize + +@divEnd + +@divClass{column-right-top} +@subheading For developers + +@itemize + +@item +@ref{Source}: +for packagers + +@item +@ref{Old downloads}: +old versions + +@item @ref{Development}: +latest unstable version + +@end itemize +@divEnd + + +@divClass{column-center-bottom} + +@subheading Software License + +LilyPond is published under the @ref{GPL, GNU General Public +License}. +@divEnd + + +@divClass{color1} + +@subheading Sponsors + +Many thanks to @uref{http://www.vt.edu/, Virgina Tech} and +@uref{http://www.linuxaudio.org/, linuxaudio.org} for sponsoring +our bandwidth. + +@sourceimage{VTlogo_ITF} @sourceimage{lao_banner_06_on_white_demo} + +@subheading Legalese + +@divClass{legal} +All logos and product images are copyright and trademark +acknowledged. + +@logoLegalLinux + +@logoLegalFreeBSD + +@logoLegalMacOSX + +@logoLegalWindows + +@divEnd +@divEnd + + +@divClass{hide} +@menu +* Unix:: +* MacOS X:: +* Windows:: +* Source:: +* Old downloads:: +* GPL:: +@end menu +@divEnd + + +@node Unix +@unnumberedsec Unix + +@divClass{column-center-top} +@subheading Generic Packages or Distribution-Specific Packages? + +Many distributions include LilyPond in their normal package +system. These versions are easier to install and uninstall than +the generic packages, but they may be older. If you wish to use +our generic packages, please uninstall the official version from +your system using the normal package manager for your distribution. +See your distribution's documentation about how to use their +package manager. + +@divEnd + + +@divClass{column-left-top} +@subheading Generic Packages + +@subsubheading Download + +@itemize + +@item +@sourceimage{logo-linux} +@uref{http://download.linuxaudio.org/lilypond/binaries/linux-x86/lilypond-2.12.2-1.linux-x86.sh, +Linux x86: LilyPond 2.12.2} (if in doubt, use this) + +@item +@sourceimage{logo-linux} +@uref{http://download.linuxaudio.org/lilypond/binaries/linux-64/lilypond-2.12.2-1.linux-64.sh, +Linux 64-bit: LilyPond 2.12.2} + +@item +@sourceimage{logo-linux} +@uref{http://download.linuxaudio.org/lilypond/binaries/linux-ppc/lilypond-2.12.2-1.linux-ppc.sh, +Linux PPC: LilyPond 2.12.2} + +@item +@sourceimage{logo-freebsd} +@uref{http://download.linuxaudio.org/lilypond/binaries/freebsd-x86/lilypond-2.12.2-1.freebsd-x86.sh, +FreeBSD i386: LilyPond 2.12.2} + +@item +@sourceimage{logo-freebsd} +@uref{http://download.linuxaudio.org/lilypond/binaries/freebsd-64/lilypond-2.12.2-1.freebsd-64.sh, +FreeBSD amd64: LilyPond 2.12.2} + +@end itemize + + +@subsubheading Install + +In the shell, type: + +@example +cd PATH-TO-DOWNLOAD-DIRECTORY +sh lilypond-X.Y.Z-EXAMPLE.sh +@end example + +@subsubheading Uninstall + +In the shell, type: + +@example +uninstall-lilypond +@end example + +@divEnd + + +@divClass{column-right-top} +@subheading Distribution-specific Packages + +Please use your distribution's package manager to install or +upgrade to these versions. + +@itemize + +@item +@sourceimage{logo-fedora} +@uref{https://admin.fedoraproject.org/pkgdb/packages/name/lilypond, +Fedora: LilyPond 2.12.0} + +@item +@sourceimage{logo-ubuntu} +@uref{https://launchpad.net/ubuntu/+source/lilypond, +Ubuntu: LilyPond 2.12.1} + +@item +@sourceimage{logo-slackware} +@uref{http://www.johannes-schoepfer.de/lilypond/, +Slackware: LilyPond 2.12.1} + +@item +@sourceimage{logo-debian} +@uref{http://packages.debian.org/search?keywords=lilypond, +Debian: LilyPond 2.10.33} + +@item +@sourceimage{logo-suse} +@uref{http://opensuse.org/?fixme=urg-no-lilypond-package-page, +openSUSE: LilyPond 2.10.33} + +@end itemize + +@divEnd + + +@divClass{column-center-bottom} +@subheading Legalese + +@divClass{legal} +All logos and product images are copyright and trademark +acknowledged. + +@logoLegalLinux + +@logoLegalFreeBSD + +@divEnd +@divEnd + + +@node MacOS X +@unnumberedsec MacOS X + +@divClass{column-left-top} +@subheading Packages + +@subsubheading Download + +@itemize + +@item +@sourceimage{logo-macosx} +@uref{ +http://download.linuxaudio.org/lilypond/binaries/darwin-x86/lilypond-2.12.2-1.darwin-x86.tar.bz2, +lilypond-2.12.2-1.darwin-x86.tar.bz2} +For Intel chips (if in doubt, use this). + +@item +@sourceimage{logo-macosx} +@uref{ +http://download.linuxaudio.org/lilypond/binaries/darwin-x86/lilypond-2.12.2-1.darwin-ppc.tar.bz2, +lilypond-2.12.2-1.darwin-ppc.tar.bz2} +For G3 and G4 CPUs (old Apple computers). + +@end itemize + +@subsubheading Install + +Double-click the downloaded file, then drag it to wherever you +want. + +@subsubheading Uninstall + +Delete the LilyPond.app folder. + +@divEnd + + +@divClass{column-right-top} +@subheading Running on the command-line + +@warning{If you are happy with the GUI, then please ignore these +instructions.} + +FIXME: once 2.12.4 is out, delete a bunch of this -- IIRC we now +*do* provide Python, so this stuff gets much easier. + +@subsubheading Using Python scripts on MacOS 10.3 or 10.4 + +LilyPond binaries for MacOS X do not provide Python, but Python 2.4 or +newer is required by @command{convert-ly}. Therefore, if you use MacOS +10.3 or 10.4, you must install a newer Python version from +@uref{http://python.org/download/}, then edit the first line of +@command{convert-ly} and @command{lilypond-book} as follows: if the +Python binary you just installed is in your @var{PATH}, the first line +should be + +@example +#!/usr/bin/env python +@end example + +@noindent +otherwise it should be + +@example +#!@var{/path/to/newly_installed/python} +@end example + + +@subsubheading MacOS X on the command line + +The scripts --- such as @command{lilypond-book}, @command{convert-ly}, +@command{abc2ly}, and even @command{lilypond} itself --- are included +inside the @code{.app} file for MacOS@tie{}X. They can be run from +the command line by invoking them directly, e.g. + +@example +@var{path/to}/LilyPond.app/Contents/Resources/bin/lilypond +@end example + +@noindent +The same is true of the other scripts in that directory, including +@command{lilypond-book}, @command{convert-ly}, @command{abc2ly}, etc. + +Alternatively, you may create scripts which add the path +automatically. Create a directory to store these scripts, + +@example +mkdir -p ~/bin +cd ~/bin +@end example + +Create a file called @code{lilypond} which contains + +@example +exec @var{path/to}/LilyPond.app/Contents/Resources/bin/lilypond "$@@" +@end example + +Create similar files @code{lilypond-book}, @code{convert-ly}, and +any other helper programs you use (@code{abc2ly}, @code{midi2ly}, +etc). Simply replace the @code{bin/lilypond} with +@code{bin/convert-ly} (or other program name) in the above file. + +Make the file executable, + +@example +chmod u+x lilypond +@end example + +Now, add this directory to your path. Modify (or create) +a file called @code{.profile} in your home directory such that it contains + +@example +export PATH=$PATH:~/bin +@end example + +@noindent +This file should end with a blank line. + +Note that @var{path/to} will generally be @code{/Usages/}. + + + +@divEnd + + +@divClass{column-center-bottom} +@subheading Legalese + +@divClass{legal} +All logos and product images are copyright and trademark +acknowledged. + +@logoLegalMacOSX + +@divEnd +@divEnd + + + +@node Windows +@unnumberedsec Windows + +@divClass{column-left-top} +@subheading Packages + +@subsubheading Download + +@itemize + +@item +@sourceimage{logo-windows} +@uref{ +http://download.linuxaudio.org/lilypond/binaries/mingw/lilypond-2.12.2-1.mingw.exe, +lilypond-2.12.2-1.mingw-exe} +For Windows ME, NT, 2000, XP, and Vista. + +@end itemize + +@subsubheading Install + +@enumerate + +@item +Locate the downloaded file and double-click on it to start the +installer. You will be presented a window titled @qq{Open File - +Security Warning}, click on Run to continue. + +@item +You will be presented the License Agreement; read this carefully, +and click on the Next button if you accept it. + +@item +Preferably leave the destination folder to the default, else +browse to choose a different location, and click on the Next +button. + +@item +Next is the Installation Options window, leave the three options +checked, as you will want to have all of these installed. Click +on the Next button. + +@item +Installation now commences, wait a minute or less for installation +to complete. There is a Show Details button that when clicked on +will show all the files installed and where, nothing you +necessarily need to look at. Click on the Finish button. + +@item +Lilypond is now installed. + +@end enumerate + +@subsubheading Uninstall + +There are two uninstallation routes - + +@enumerate + +@item +Choose Uninstall from the Lilypond menu from the start menu + +@item +Open your Install/Uninstall Applications on the Control Panel, +scroll down to Lilypond and click on the Uninstall buttom. + +@end enumerate + +@divEnd + + +@divClass{column-right-top} +@subheading Running on the command-line + +@warning{If you are happy with the GUI, then please ignore these +instructions.} + +@help{don't know} + +@divEnd + + +@divClass{column-center-bottom} +@subheading Legalese + +@divClass{legal} +All logos and product images are copyright and trademark +acknowledged. + +@logoLegalWindows + +@divEnd +@divEnd + + + +@node Source +@unnumberedsec Source + +@warning{We @strong{do not} recommend that you attempt to build +LilyPond yourself; almost all user needs are better met with the +pre-built version.} + +@divClass{column-left-bottom} +@subheading Source tarball + +@uref{http://download.linuxaudio.org/lilypond/sources/v2.12/lilypond-2.12.2.tar.gz, +lilypond-2.12.2-source.tar.bz2} + +For an extensive listing of all versions (old and new), see our +@uref{http://download.linuxaudio.org/lilypond/binaries/, download +site}. + +@divEnd + +@divClass{column-right-bottom} +@subheading Compiling instructions + +Instructions are listed in @@ref@{FIXME development-install@}. + +@divEnd + + +@node Old downloads +@unnumberedsec Old downloads + +@divClass{column-center-top} +@subheading All versions + +For an extensive listing of all versions (old and new), see our +@uref{http://download.linuxaudio.org/lilypond/binaries/, download +site}. + +@divEnd + + +@node GPL +@unnumberedsec GPL + +@divClass{column-center-top} +@subheading Software license + +GNU LilyPond is published under the GNU General Public License. +An introduction to this license, and our reasons for choosing it, +is given in @ref{Freedom}. + +@divEnd + +@divClass{column-center-bottom} +@subheading GNU General Public License version 2 + +@include gpl-2.0.itexi + +@divEnd + + + diff --git a/Documentation/general/introduction.itexi b/Documentation/general/introduction.itexi new file mode 100644 index 0000000000..108c0953e2 --- /dev/null +++ b/Documentation/general/introduction.itexi @@ -0,0 +1,777 @@ +@c -*- coding: utf-8; mode: texinfo; -*- +@ignore + Translation of GIT committish: FILL-IN-HEAD-COMMITTISH + + When revising a translation, copy the HEAD committish of the + version that you are working on. See TRANSLATION for details. +@end ignore + +@node Introduction +@unnumbered Introduction + +@divClass{column-center-top} +@subheading Our Goal + +@imageFloat{flat-design.png,right} + +The inspiration for LilyPond came when two musicians became +annoyed with the bland and boring look of computer-printed +sheet music. All musicians prefer reading beautiful music, so why +couldn't programmers write software to produce better printed +parts? + +This software just does that: it prints music in the best +traditions of classical engraving with minimum fuss. Don't waste +time on tuning spacing, moving around symbols, or shaping slurs. +Impress friends and colleagues with sharp sheet music! +@divEnd + +@divClass{column-left-top} +@subheading Why use LilyPond? + +@itemize + +@item +@ref{Features}: What can LilyPond do? + +@item +@ref{Examples}: I want to see some music! + +@item +@ref{Freedom}: LilyPond is Free Software. + +@end itemize +@divEnd + +@divClass{column-right-top} +@subheading Who uses it? + +@itemize + +@item +@ref{Productions}: Real-life use of LilyPond. + +@item +@ref{Testimonials}: What do people say? + +@end itemize +@divEnd + +@divClass{column-center-bottom} +@subheading Why not use LilyPond? + +@itemize + +@item +@ref{Text input}: You write music as @emph{text}?! + +@end itemize +@divEnd + + + +@divClass{hide} +@menu +* Features:: What can LilyPond do? +* Examples:: I want to see some music! +* Freedom:: Freedom and the GPL. +* Productions:: Real-life use of LilyPond. +* Testimonials:: What do people say about it? +* Text input:: You write music as text?! +@end menu +@divEnd + + + +@node Features +@unnumberedsec Features + +@help{hoping to delegate this. Desired: an enthusiastic +attempt to sway people towards trying lilypond. The warnings +about writing music as text come in Crash Course, not here. Maybe +draw inspiration from +http://lilypond.org/web/about/features +and +http://lilypond.org/web/switch/tour +and +http://lilypond.org/web/switch/advantages +} + +@subheading Why switch to LilyPond? + + +@subsubheading Excellent classical engraving + +@imageFloat{flat-design.png,right} + +The point of using LilyPond is to produce elegant sheet music that +is easy to read. LilyPond's developer community has spent +thousands of hours developing powerful music engraving software +that results in beautifully engraved music. All of LilyPond's +style settings, font designs and algorithms have been inspired by +the finest hand-engraved music. LilyPond output has the same +strong, balanced and elegant look as the best-engraved classical +scores + + +@subsubheading No fiddling + +Don't waste time with tweaking the output; LilyPond gets the +formatting correct right from the start. It determines spacing by +itself, and breaks lines and pages to provide a tight and uniform +layout. Clashes between lyrics, notes, and chords are resolved +and slurs and beams are sloped, automatically! + + +@subsubheading Text-based input + +LilyPond takes ASCII input, which you can produce in your favorite +text editor, quickly and comfortably. No more futzing with the +mouse. The input contains all the information, so there is no +need to remember complex command sequences. Simply save an input +for later reference. + + +@subsubheading Mix music and text + +@imageFloat{lilypond-book.png,right} + +Put fragments of music into texts without cutting and pasting +pictures. Integrate music into LaTeX or HTML seamlessly, or add +music to OpenOffice.org with ooolilypond. + + + +@subsubheading Free software + +LilyPond can be downloaded free of charge! Yep - It's free. Get +it from the download page. + +It's also free (as in @qq{speech}) software. It comes with source +code, and permission to change and copy it. So, are you irritated +by a bug, or yearning for a feature? Simply add it yourself, or +pay someone else to do it. + + +@subsubheading Extensible design + +All settings can be changed to suit your personal +typographical taste. If that still is not enough, there is always +the built-in scripting language, a dialect of the powerful +language LISP. Settings, variables and functions are all +documented in the comprehensive program reference manual. + + +@subsubheading Excellent support + +LilyPond runs on all popular platforms: Linux, MacOS X, and +Windows. LilyPond comes with extensive documetation and hundreds +of example files. There is an active user community answering +questions on the Lilypond user mailing list, while the development +team makes sure that problems are solved quickly. + + + +@divClass{column-center-bottom} +@subheading Where now? + +Still not convinced? Look at some neat @ref{Examples}. If you've +already decided to try LilyPond, first read about our +@ref{Text input}. +@divEnd + + + +@node Examples +@unnumberedsec Examples + +Lilypond is a powerful and flexible tool for engraving tasks of +all kinds. Please browse our gallery of examples and be inspired! + +@ignore +Here is a passage from Franz Liszt's solo piano transcription +of the Overture to Wagner's @emph{Tannhäuser}. The spacing +in this example was all performed by Lilypond's formatting +algorithms, without tweaks of any kind. It +handles cross-staff beaming gracefully and puts the system brace +perfectly around all three staves. + +@imageClickable{liszt-wagner-small.png, (click to enlarge), +liszt-wagner.png, center} +@end ignore + +@newsItem +@subsubheading Classical Music +This organ work by J.S. Bach is a fairly typical engraving project +in Lilypond. + +@imageClickable{bach-bwv610-small.png, (click for longer +excerpt), bach-bwv610.png, center} +@newsEnd + +@newsItem +@subsubheading Complex Notation + +This example from @emph{Goyescas} by Enrique Granados shows some +of the more advanced features of typesetting, including kneed +beams, cross-staff stems, and voice-follow lines. + +@imageClickable{granados-small.png, (click to enlarge), +granados.png, center} +@newsEnd + +@newsItem +@subsubheading Early Music +Lilypond also supports various types of ancient notation, such +as this passage of Gregorian chant. + +@imageClickable{ancient-headword-small.png, (click to enlarge), +ancient-headword.png, center} +@newsEnd + +@newsItem +@subsubheading Modern Music +Contemporary composers find Lilypond well-suited to displaying +unusual notation. Here is an excerpt from Trevor Bača's +@emph{Čáry}, for unaccompanied bass flute. + +@imageClickable{cary-small.png, (click to enlarge), +cary.png, center} +@newsEnd + + +@newsItem +@subsubheading Efficient, flexible creation of performance materials +Various performance materials can be created from the same source +code. This is an excerpt of @uref{http://nicolas.sceaux.free.fr/, +Nicolas Sceaux's} engraving of Handel's @emph{Giulio Cesare}, in +full score, piano-vocal reduction, and a violin part. + +@imageClickable{sesto-small.png, (click to enlarge), +sesto.png, center} + +@imageClickable{sesto-1-small.png, (click to enlarge), +sesto-1.png, center} + +@imageClickable{sesto-2-small.png, (click to enlarge), +sesto-2.png, center} + +@newsEnd + +@help NEED BETTER TABLATURE EXAMPLE!! + +@newsItem +@subsubheading Tablature +Lilypond supports tablature notation, which can be customized to +suit any instrument that reads from tablature. Here is a passage +from a Bach Lute Suite, with tablature generated automatically +from the notes entered for the traditional staff. + +@imageClickable{bach-tab-example-small.png, (click to enlarge), +bach-tab-example.png, center} +@newsEnd + +@newsItem +@subsubheading Schenker Graphs +Standard output can be modified heavily. Here someone has created +an impressive Schenkerian analysis. + +@imageClickable{bach-schenker-small.png, (click to enlarge), +bach-schenker.png, center} +@newsEnd + +@newsItem +@subsubheading Vocal Music +Lilypond is excellent for vocal music of all kinds, from sacred +hymns to opera. Here is a medieval motet with slightly unusual +requirements. The tenor voice is written in a different meter +than the others, but must line up as if it were in the same meter. +Lilypond handles this most elegantly. Note also the incipits with +Vaticana style clefs, the slashed stems indicating plicated notes, +and the ligature braces above certain groups of notes. + +@imageClickable{aucun-snippet-small.png, (click to enlarge), +aucun-snippet.png, center} +@newsEnd + +@newsItem +@subsubheading Educational Applications +Lilypond is perfectly suited for educational purposes as well. +Here is an example of a simple counterpoint exercise. + +@imageClickable{theory-small.png, (click to enlarge), +theory.png, center} +@newsEnd + +@help NEED BETTER POP EXAMPLE!! Also a better theory example would be nice. + +@newsItem +@subsubheading Popular Music +It is simple to create pop lead sheets with melody, lyrics, +chord names, and fretboards. In this example you see some of the +predefined fretboard diagrams, but these can be heavily customized +to suit nearly any situation. + +@imageClickable{chart-small.png, (click to enlarge), +chart.png, center} +@newsEnd + +@help NEED DIFFERENT ORCHESTRAL OR OPERA EXAMPLE?! + +@newsItem +@subsubheading Large Projects +Lilypond is excellent for large projects like operas or works for +full symphony orchestra, as well. Score, parts, piano reductions, +and conductors' scores can be produced from the same source files. + +@imageClickable{orchestral-small.png, (click to enlarge), +orchestral.png, center} +@newsEnd + + +@divClass{column-center-bottom} +@subheading Where now? + +Still not convinced? LilyPond is Free software, granting you +@ref{Freedom}. If you've already decided to try LilyPond, first +read about our @ref{Text input}. +@divEnd + + +@node Freedom +@unnumberedsec Freedom + +@divClass{column-center-top} +@subheading Free Software + +@uref{http://www.gnu.org/, GNU} LilyPond is written and maintained +by a community of enthusiasts. It is published under the +@ref{GPL, GNU General Public License} and the @ref{FDL, GNU Free +Documentation License}, giving everybody the freedom to fix, +modify, and extend the program. Creating beautiful music should +not require hundreds of dollars of software! +@divEnd + + +@c @divClass{column-left-top} +@divClass{color2} +@divClass{keep-bullets} +@subheading What are the benefits to users? + +@itemize + +@item +No cost: download and try it out! What do you have to lose? + +@item +Sharing: if you like the program, give a copy to your friends, +teachers, students, and colleagues! + +@item +Source available: if you are curious about how LilyPond creates +some notation, you can see exactly how it is done. + +@item +Extendible: you can add features, fix bugs, and change the +functionality. If you are not a programmer, you can hire somebody +to do those tasks. + +This may not seem appealing to casual musicians, but the ability +to extend software can be highly valuable to serious composers, +companies, and academics. + +@item +Future safety: if a commercial company goes bankrupt, what happens +to any electronic music which depends on their products? This is +not a concern with LilyPond; even if the entire development team +quits (extremely unlikely), the program will still be legally +available for copying, modifications, and distribution. + + +@end itemize + +@divEnd +@divEnd + + +@c @divClass{column-right-top} +@divClass{color3} +@divClass{keep-bullets} +@subheading Why do LilyPond developers @qq{give away} their work for free? + +Most of us view LilyPond development as a hobby or volunteer work. +So this question is really asking @qq{why do people volunteer}? + +@itemize + +@item +Fun: working towards a goal can be enjoyable, especially when you +work as a team! + +@item +Shared goals: we all want beautiful sheet music, but few people +have the expertise (and nobody has the time!), to create a program +which can handle all situations. By working together -- one +person improves the automatic beaming code, another person +improves the shape of slurs, and a third person writes +documentation explaining how to use these features -- we can +achieve our goal with only a fraction of the individual effort. + +@item +@qq{Gift culture}: the Free Software (or @qq{Open Source}) +movement has created many great software projects, such as +@uref{http://kernel.org/, GNU/Linux}, +@uref{http://www.getfirefox.com/, Mozilla Firefox}, and +@uref{http://www.wesnoth.org/, Battle for Wesnoth}. Having +benefitted from these projects, some developers want to @qq{give +back} to the community. + +@item +Work experience: contributing to open-source projects is a great +way to practice programming, documentation writing, or design. +This experience has helped some developers gain job offers or +scholarships. + + +@end itemize + +@divEnd +@divEnd + + +@divClass{column-center-bottom} +@subheading Where now? + +Still not convinced? Read about some of our users' +@ref{Productions} and sheet music. If you've already decided to +try LilyPond, first read about our @ref{Text input}. +@divEnd + + +@node Productions +@unnumberedsec Productions + +@help{more references to publishers who use lilypond} + +@divClass{column-left-top} +@subheading Concerts + +Lilypond engravings have been used for performances around the world. +Some highlights: + +@divClass{keep-bullets} +@itemize + +@item +@emph{Affaire Étrangère}, an opera by Valentin Villenave, with +libretto by Lewis Trondheim, premiered February 1, 2009, by +@uref{http://www.orchestre-montpellier.com/, L'Opéra Montpellier}. + +@item +@uref{http://www.mercurybaroque.org/02/02109.aspx, Mercury Baroque}'s +performance of Lully's @emph{Armide}, May 15-16, 2009, in Houston, +Texas (engraving by @uref{http://nicolas.sceaux.free.fr/, +Nicolas Sceaux}). + +@item +Instrumental excerpts from Rameau's @emph{Hippolyte et Aricie} at +St. James's Church in Manhattan, May 8, 2009, by Frederick Renz +and his ensemble @uref{http://www.earlymusicny.org/, Early Music +New York} (engraving by Nicolas Sceaux). + +@end itemize +@divEnd + +@divEnd + + +@divClass{column-right-top} +@subheading Published sheet music + +@divClass{keep-bullets} +@itemize + +@item +@uref{http://www.adoromusicpub.com/, Adoro Music Publishing}, +high-quality scores of sacred music, available for immediate +download or in traditional paper format. +@end itemize +@divEnd + +@divEnd + + +@divClass{column-center-bottom} +@subheading Where now? + +Still not convinced? Read some of our users' @ref{Testimonials}. +If you've already decided to try LilyPond, first read about our +@ref{Text input}. +@divEnd + + +@node Testimonials +@unnumberedsec Testimonials + +@divClass{testimonial-item} +@imageFloat{carter-brey.jpg, right} +@subsubheading @uref{http://nyphil.org/meet/orchestra/index.cfm?page=profile&personNum=7, Carter Brey}, Principal Cellist, New York Philharmonic + +@qq{... I've written a couple of encore pieces for solo cello +which I've printed with LilyPond and which I'm going to submit to +Schirmer for publication. I'll bet their engraved version wouldn't +look half as sharp as mine!} +@divEnd + + +@divClass{testimonial-item} +@imageFloat{orm-finnendahl.jpg, left} +@subsubheading @uref{http://icem-www.folkwang-hochschule.de/~finnendahl/, Orm Finnendahl}, professor of Composition, Musikhochschule Freiburg + +@qq{Although I don't know [LilyPond] very well yet, I'm *very* +impressed. I used the program to input a motet of Josquin Desprez +in mensural notation and there's no doubt that lilypond outscores +all other notation programs easily concerning speed, ease of use +and look!} +@divEnd + + +@divClass{testimonial-item} +@imageFloat{darius-blasband.jpg, right} +@subsubheading Darius Blasband, composer (Brussels, Belgium) + +@qq{[..after the first orchestra rehearsal] I got numerous +compliments about the quality of the scores. Even more +importantly, while Lilypond provides numerous hacks to improve the +way its scores look, what the orchestra got from me is basically +the raw, untouched output.} + +@divEnd + + +@divClass{testimonial-item} +@subsubheading Kieren MacMillan, composer (Toronto, Canada) + +@qq{thanks and kudos to the development team for their incredible +work. I've never seen anything approaching the output that I get +from Lilypond -- I'm totally confident that my music publishing +needs will be fulfilled beyond my expectations using this great +application. [..] basically untweaked Lilypond output [..] looks +better than most recent "professional" publications I've compared +it to (q.v., just about any Warner Bros. score, and even many of +the most recent by "the old houses"). [..]} + +@qq{Beat that, Finale/Sibelius/Igor/whatever!!!} +@divEnd + + +@divClass{testimonial-item} +@subsubheading Chris Cannam, lead programmer of the @uref{http://www.rosegardenmusic.com/, RoseGarden} project. + +@qq{Lilypond is obviously the zillion-ton gorilla [of great music +typesetting].} +@divEnd + + +@divClass{testimonial-item} +@subsubheading Chris Snyder, @uref{http://www.adoromusicpub.com/, Adoro Music Publishing} + +@qq{The way that music is entered for LilyPond causes me to think in a +more musical way -- there have been times when I've been stumped as +to how to tell Lily to engrave something, only to realize that +even if I did get it exactly as the composer wanted, the music +would be confusing to read. LilyPond makes it much easier for me +to work in my dual editor+engraver role.} + +@qq{I've been using LilyPond exclusively for my fledgling music +publishing business. Virtually without exception, every composer +has been blown away by the quality of the engraving when presented +with the proofs of their music about to be published. I deserve +some of the credit for this -- I spend a lot of time tweaking +output, especially ties (mainly in chords) -- but LilyPond gives +me an excellent starting point, a very intuitive interface, and +the ability to modify absolutely anything if I want to take the +time. I'm convinced that no commercial product can come close.} +@divEnd + + +@divClass{testimonial-item} +@subsubheading David Bobroff, Bass Trombone, Iceland Symphony Orchestra + +@qq{I think Lilypond is great [..] The more I learn about LilyPond +the more I like it!} +@divEnd + + +@divClass{testimonial-item} +@subsubheading Vaylor Trucks, Electric guitar player (Yes, @uref{http://www.allmanbrothersband.com/modules.php?op=modload&name=userpage&file=content&page_id=12, related to}) + +@qq{I am super impressed with LilyPond [..]} + +@qq{THIS IS THE BEST PROGRAM EVER!!!} + +@qq{Thank you all SO MUCH for your hard work and dedication!} +@divEnd + + +@divClass{testimonial-item} +@subsubheading @uref{http://nicolas.sceaux.free.fr/, Nicolas Sceaux}, @uref{http://www.mutopiaproject.org/, Mutopia} contributor + +@qq{I had a kind of hate-passion relationship with it. Passion +because the first score I saw was so amazing! The description of +LilyPond lies about its beautifulness, it is too modest! [..] as +LilyPond is getting always better, and as I look closer how things +are done in scheme, I have less and less frustrations. Anyway, +what I mean is: thank you for providing LilyPond, it is really +good.} +@divEnd + + +@divClass{testimonial-item} +@subsubheading @uref{http://www.troff.org/whoswho.html#werner, Werner Lemberg}, Conductor at the Theatre in Koblenz, Germany and distinguished GNU Hacker. + +@qq{Anyway, LilyPond does an amazingly good job!} +@divEnd + + +@divClass{testimonial-item} +@subsubheading Paul Davis, developer of @uref{http://jackaudio.org/, JACK} and @uref{http://www.ardour.org/, Ardour}. + +@qq{I think [LilyPond is] an incredible program, and it produces +wonderful, wonderful output. when i read an interview about it +last year, i was raving to several friends of mine about its +potential.} +@divEnd + + +@divClass{column-center-bottom} +@subheading Where now? + +Read about our @ref{Text input}. +@divEnd + + + +@node Text input +@unnumberedsec Text input + +@c TRANSLATORS: so far it's mostly from +@c http://lilypond.org/web/switch/howto + +@subheading @qq{Compiling} Music + +@imageClickable{nereid-shot-small.png, (click to enlarge), +nereid-shot.png, right} + +LilyPond is a @emph{compiled} system: it is run on a text file +containing the notes. The resulting output is viewed on-screen or +printed. In some ways, LilyPond is more similar to a programming +language than graphical score editing software. + +You do not write music by dragging notes from a graphical toolbar +and placing them on a dynamically refreshing score; you write +music by typing text. This text is interpreted (or @qq{compiled}) +by LilyPond, which produces beautifully engraved sheet music. + +People accustomed to graphical user interfaces might need to learn +a new way of working, but the results are definitely worth it! + +@warning{We present a quick overview of our text input -- it's not +as complicated as it sounds! Don't worry about understanding +every detail in these examples; our beginner documentation covers +everything at a much more gradual pace.} + + +@subsubheading It's as simple as A B C + +Notes are encoded with letters and numbers. Special commands are +entered with backslashes. + +@imageFloat{text-input-1-annotate.png,center} +@imageFloat{text-input-1-output.png,center} + +Alterations are made with different names: add @code{-is} for +sharp, and @code{-es} for flat (these are Dutch note names, other +languages are available). LilyPond figures out where to put +accidentals. + +@imageFloat{text-input-2-annotate.png,center} +@imageFloat{text-input-2-output.png,center} + + +@subsubheading Pop music + +Put chords and lyrics together to get a lead sheet: + +@help{change the lyrics. svg available} + +@imageFloat{text-input-pop-annotate.png,center} +@imageFloat{text-input-pop-output.png,center} + + + +@subsubheading Orchestral parts + +The input file contains the notes of piece. Score and parts can +be made from a single input file. So, changing a note always +affects both parts and score. To share the notes, the music is +assigned to a variable: + +@imageFloat{text-input-parts-both-annotate.png,center} + + +This variable is then used in a single part (here transposed, with +condensed multi rests): + +@imageFloat{text-input-parts-single-annotate.png,center} +@imageFloat{text-input-parts-single-output.png,center} + + +The same variable is used in the full score (here in concert +pitch): + +@imageFloat{text-input-score-annotate.png,center} +@imageFloat{text-input-score-output.png,center} + + +@subsubheading Beginner Documentation + +We realize that many users find this way of entering music a bit +odd. For this reason, we have written extensive documentation to +help new users, beginning with @ref{Learning}. + +Please read the Learning Manual before complaining about bugs! +New users occasionally believe that LilyPond is not working +correctly, when in fact it is working precisely as designed. + +@help{any suggestions for a picture here?} + + +@subsubheading Easier editing environments + +LilyPond is primarily concerned with producing top-quality +engraved sheet music; creating a Graphical User Interface (GUI) +would distract us from this goal. However, there are other +projects aimed at making it easier to create LilyPond input files. + +Some editing environments include syntax highlighting, automatic +command completion, and pre-made templates. Other programs +actually provide a GUI which allows direct manipulation of a +graphical score. For more information, see our documentation +about @@ref@{FIXME alternate editing environments@}. + + +@divClass{column-center-bottom} +@subheading Where now? + +You are now ready to @ref{Download, Download LilyPond}. + +Still not convinced? Many composers, musicians, and conductors +have learned how to write music in our input format. Experienced +users even report that they can enter a full score in LilyPond +faster than with a piano keyboard or mouse+GUI! Perhaps you would +like to review the @ref{Features}, @ref{Examples}, or +@ref{Freedom} that LilyPond provides, or read about users' +@ref{Productions} and @ref{Testimonials}. +@divEnd + diff --git a/Documentation/general/manuals.itexi b/Documentation/general/manuals.itexi new file mode 100644 index 0000000000..3f2f6862a8 --- /dev/null +++ b/Documentation/general/manuals.itexi @@ -0,0 +1,446 @@ +@c -*- coding: utf-8; mode: texinfo; -*- +@ignore + Translation of GIT committish: FILL-IN-HEAD-COMMITTISH + + When revising a translation, copy the HEAD committish of the + version that you are working on. See TRANSLATION for details. +@end ignore + +@node Manuals +@unnumbered Manuals + +@divClass{heading-center} +@heading Documentation for LilyPond 2.12.2 + +@divEnd + +@divClass{column-center-top} +@subheading Introduction + +@itemize + +@item @ref{Text input}: +LilyPond is a @strong{text-based} music engraver. If you are not +familiar with this concept, please read this now! + +@item @ref{Learning}: +a @qq{must-read} gentle introduction to LilyPond. + +@item @ref{Glossary}: +@emph{(optional reading)} +explains musical terms and gives translations for users unfamiliar +with English musical terms. + +@item @ref{Essay}: +@emph{(optional reading)} +background information about the engraving process and the +aesthetics of 19th century music engraving. + + +@end itemize + +@divEnd + +@divClass{column-left-top} +@subheading Regular use + +@itemize + +@item @ref{Notation}: +the main portion of the documentation; provides detailed +information about creating notation. + +@item @ref{Snippets}: +short tricks, tips, and examples. + +@item @ref{Usage}: +discusses the actual programs and operating system-specific +issues. + +@end itemize + +@divEnd + + +@divClass{column-right-top} +@subheading Infrequent Use + +@itemize + +@item @ref{FAQ}: +links to the answers of Frequently Asked Questions. + +@item @ref{Changes}: +updates since the last major version. + +@item @ref{Internals}: +information about LilyPond's internal structures, which is +required for constructing tweaks. + +@end itemize + +@divEnd + + +@divClass{column-center-bottom} +@subheading Other material + +@itemize + +@item @ref{Translated}: +translation status for non-English readers. + +@item @ref{Old}: +manuals for older versions. + +@item @ref{Development}: +manuals for the unstable version. + +@item @ref{FDL}: +these manuals are published under the GNU Free Documentation +License. + +@end itemize + +@divEnd + + +@divClass{hide} +@menu +* Learning:: Learning. +* Glossary:: Glossary. +* Essay:: Essay. +* Notation:: Reference. +* Usage:: Usage. +* Snippets:: Snippets. +* FAQ:: FAQ. +* Changes:: NEWS. +* Internals:: Internals. +* Translated:: Translation. +* Old:: Old. +* FDL:: Licence. +@end menu + +@divEnd + + +@c TRANSLATORS: most of the text in this file came from +@c LM 1.1 About the documentation (before this section was +@c removed in July 2009). + +@node Learning +@unnumberedsec Learning + +This book explains how to begin learning LilyPond, as well as +explaining some key concepts in easy terms. You should read these +chapters in a linear fashion. + +There is a paragraph @strong{See also} at the end of each section, +which contains cross-references to other sections: you should not +follow these cross-references at first reading; when you have read +all of the Learning, you may want to read some sections +again and follow cross-references for further reading. + +@itemize + +@item +@item +@rlearning{Tutorial}: gives a gentle introduction to typesetting music. +First time users should start here. + +@item +@rlearning{Fundamental concepts}: explains some general concepts about +the LilyPond file format. If you are not certain where to place a +command, read this chapter! + +@item +@rlearning{Tweaking output}: shows how to change the default engraving +that LilyPond produces. + +@item +@rlearning{Working on LilyPond projects}: discusses practical uses of +LilyPond and how to avoid some common problems. Read this before +undertaking large projects! + +@end itemize + +The Learning also contains appendices which are not part of the +recommended linear reading. They may be useful for later +viewing: + +@itemize + +@item +@rlearning{Templates}: shows ready-made templates of LilyPond pieces. +Just cut and paste a template into a file, add notes, and you're +done! + +@item +@rlearning{Scheme tutorial}: presents a short introduction to Scheme, +the programming language that music functions use. This is +material for advanced tweaks; many users never touch Scheme at +all. + +@end itemize + + +@node Glossary +@unnumberedsec Glossary + +@rglosnamed{Top,Music glossary} +this explains musical terms, and includes translations to various +languages. If you are not familiar with music notation or music +terminology (especially if you are a non-native English speaker), +it is highly advisable to consult the glossary. + + +@node Essay +@unnumberedsec Essay + +blah + + +@node Notation +@unnumberedsec Notation + +This book explains all the LilyPond commands which produce +notation. + +@warning{The Notation assumes that the reader knows +basic material covered in the Learning and is familiar with +the English musical terms presented in the Musical Glossary.} + +@itemize + +@item +@ruser{Musical notation}: +discusses topics grouped by notation construct. This section +gives details about basic notation that will be useful in almost +any notation project. + +@item +@ruser{Specialist notation}: +discusses topics grouped by notation construct. This section +gives details about special notation that will only be useful for +particular instrument (or vocal) groups. + +@item +@ruser{General input and output}: +discusses general information about LilyPond input files and +controlling output. + +@item +@ruser{Spacing issues}: +discusses issues which affect the global output, such as selecting +paper size or specifying page breaks. + +@item +@ruser{Changing defaults}: +explains how to tweak LilyPond to produce exactly the notation you +want. + +@item +@ruser{Interfaces for programmers}: +explains how to create music functions with scheme. + +@end itemize + +The Notation also contains appendices with useful +reference charts. + +@itemize + +@item +@ruser{Literature list}: +contains a set of useful reference books for those who wish to +know more on notation and engraving. + +@item +@ruser{Notation manual tables}: +are a set of tables showing the chord names, MIDI instruments, a +list of color names, and the Feta font. + +@item +@ruser{Cheat sheet}: +is a handy reference of the most common LilyPond commands. + +@item +@ruser{LilyPond command index}: +an index of all LilyPond @code{\commands}. + +@item +@ruser{LilyPond index}: +a complete index. + +@end itemize + + +@node Usage +@unnumberedsec Usage + +This book explains how to execute the programs and how to integrate +LilyPond notation with other programs. + +@itemize + +@item +@rprogram{Install}: +explains how to install LilyPond, including compilation if +desired. + +@item +@rprogram{Setup}: +describes how to configure your computer for optimum LilyPond +usage, such as using special environments for certain text +editors. + +@item +@rprogram{Running LilyPond}: +shows how to run LilyPond and its helper programs. In addition, +this section explains how to upgrade input files from previous +versions of LilyPond. + +@item +@rprogram{LilyPond-book}: +explains the details behind creating documents with in-line music +examples, like this manual. + +@item +@rprogram{Converting from other formats}: +explains how to run the conversion programs. These programs are +supplied with the LilyPond package, and convert a variety of music +formats to the @code{.ly} format. + +@end itemize + + +@node Snippets +@unnumberedsec Snippets + +@rlsrnamed{Top,LilyPond Snippets}: this shows a +selected set of LilyPond snippets from the +@uref{http://lsr@/.dsi@/.unimi@/.it,LilyPond Snippet Repository} +(LSR). All the snippets are in the public domain. + +Please note that this document is not an exact subset of LSR. LSR +is running a stable LilyPond version, so any snippet which +demonstrates new features of a development version must be added +separately. These are stored in @file{input/new/} in the LilyPond +source tree. + +The list of snippets for each subsection of the Notation are +also linked from the @strong{See also} portion. + + +@node FAQ +@unnumberedsec FAQ + +@warning{to be moved into the actual Documentation/ in master)} + + +@subheading Where are the graphical canvas, menus, and toolbars? + +LilyPond requires you to write music as text. Please read about +our @ref{Text input}. + + +@subheading There's a lot of documentation! Do I need to read it? + +You need to read the @ref{Learning}. As for the rest of +documentation, you only need to read the sections which discuss +the notation that you wish to create. + + +@subheading That's still a lot of reading! Is it worth it? + +Please decide for yourself; the reasons why you might want to use +LilyPond are given in the @ref{Introduction}. + + +@subheading Something isn't working! How do I fix it? + +This is explained in @@ref@{FIXME LM or AU x.y@}. + + +@subheading Why do you change the syntax? + +This is explained in @@ref@{FIXME AU x.y@}. + + +@node Changes +@unnumberedsec Changes + +previous-named "NEWS" doc. + +this is a summary of important changes +and new features in LilyPond since the previous version. + + + +@node Internals +@unnumberedsec Internals + +@rinternalsnamed{Top,Internals}: this is a set +of heavily cross linked HTML pages which document the nitty-gritty +details of each and every LilyPond class, object, and function. +It is produced directly from the formatting definitions in the +source code. + +Almost all formatting functionality that is used internally is +available directly to the user. For example, most variables that +control thickness values, distances, etc., can be changed in input +files. There are a huge number of formatting options, and all of +them are described in this document. Each section of the Notation +Reference has a @b{See also} subsection, which refers to the +generated documentation. In the HTML document, these subsections +have clickable links. + + + +@node Translated +@unnumberedsec Translated + +blah + + +@node Old +@unnumberedsec Old + +Documentation for previous stable versions: + +@itemize + +@item @uref{http://lilypond.org/doc/v2.12/Documentation/, +LilyPond 2.12 Documentation} + +@item @uref{http://lilypond.org/doc/v2.10/Documentation/, +LilyPond 2.10 Documentation} + +@item @uref{http://lilypond.org/doc/v2.8/Documentation/, +LilyPond 2.8 Documentation} + +@item FIXME etc. + +@end itemize + + +@node FDL +@unnumberedsec FDL + +@divClass{column-center-top} +@subheading Documentation license + +The documentation for GNU LilyPond is published under the GNU Free +Documentation License. An introduction to this license, and our +reasons for choosing it, is given in @ref{Freedom}. + +@divEnd + +@divClass{column-center-bottom} +@subheading GNU Free Documentation License 1.1 + +@include fdl.itexi + +@divEnd + + diff --git a/Documentation/general/news.itexi b/Documentation/general/news.itexi new file mode 100644 index 0000000000..7893a6d83f --- /dev/null +++ b/Documentation/general/news.itexi @@ -0,0 +1,3378 @@ +@c -*- coding: utf-8; mode: texinfo; -*- + +@ignore + +NOTE: + + * avoid "HERE" as name for links, use descriptive link names like + @uref{,Download LilyPond 2.5.16} + + * avoid putting links in running text. They make text harder to read. + Preferably: (@uref{,...}, etc. ) + + * use a descriptive title in @subsubheading + + * writing date in "Month DD, YYYY" format is required for + generating the RSS feed; in case the message (and thus the date) + is not in English, you must write a well-formed date in English + like above in a comment between the closing brace of @emph and the + following line + (see "Japanese translation" below for an example). + + * Split news items in small chunks. It's OK to have more than 1 item + on one day. + + +FIXME + + * add macro for long Google issues list URL +@end ignore + +@newsItem +@subsubheading New Website! @emph{20 Aug 2009} + +As you can see, we have a new website design. Many thanks to +texi2html and CSS for being so flexible! + +(FIXME: change date when this is actually announced on lilypond.org) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.13.3. @emph{July 2, 2009} + +This unstable release contains working menus in OSX 10.5; many +thanks to Christian Hitz for fixing this long-standing problem! +This release also contains numerous other bugfixes and features +such as ties with variable thickness, partially dashed slurs, and +eyeglasses. + +We are planning another 2.12 release in the next week or two, +which will include the menu fixes for OSX 10.5. Normal users may +wish to wait for this release rather than using an unstable +release. For changes and download links, see @ref{Development}. +@newsEnd + + + +@newsItem +@subsubheading Hungarian translation! @emph{22 May 2009} + +Elkészült a lilypond.org nagy részének magyar fordítása a LilyPond +honosítási projekt első lépéseként. A projekt célja a LilyPond +szabad kottaszedő szoftver minél széleskörűbben elérhetővé tétele +a magyar felhasználók számára a teljes weboldal és dokumentáció +lefordítása révén. A teljes dokumentáció lefordításához +közreműködőket keresünk. Ha részt vennél a honosításban, küldj egy +e-mailt a harmathdenes AT gmail.com címre! +@newsEnd + + +@newsItem +@subsubheading LilyPond Report #15. @emph{18 May 2009} + +The @emph{LilyPond Report} is a short, informal opinion column +about the LilyPond project: its team, its world, its community. +Read it @uref{http://news.lilynet.net/The-LilyPond-Report-15, +here}! +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.13.3. @emph{July 2, 2009} + +This unstable release contains working menus in OSX 10.5; many +thanks to Christian Hitz for fixing this long-standing problem! +This release also contains numerous other bugfixes and features +such as ties with variable thickness, partially dashed slurs, and +eyeglasses.@* +We are planning another 2.12 release in the next week or two, +which will include the menu fixes for OSX 10.5. Normal users may +wish to wait for this release rather than using an unstable +release.@* +@ref{Changes}, +@ref{Development}. +@newsEnd + + +@newsItem +@subsubheading A LilyPond weboldala magyarul. @emph{May 22, 2009} + +Elkészült a lilypond.org nagy részének magyar fordítása a LilyPond +honosítási projekt első lépéseként. A projekt célja a LilyPond +szabad kottaszedő szoftver minél széleskörűbben elérhetővé tétele +a magyar felhasználók számára a teljes weboldal és dokumentáció +lefordítása révén. A teljes dokumentáció lefordításához +közreműködőket keresünk. Ha részt vennél a honosításban, küldj egy +e-mailt a @code{harmathdenes AT gmail.com} címre! +

Harmath Dénes, a LilyPond honosítási projekt +vezetője +@newsEnd + + +@newsItem +@subsubheading The LilyPond Report #15. @emph{May 18, 2009} + +The @emph{LilyPond Report} is a short, informal opinion column about the LilyPond project: +its team, its world, its community. +Follow @uref{http://news.lilynet.net/The-LilyPond-Report-15,this link} +to read the full issue... +@newsEnd + + +@newsItem +@subsubheading The LilyPond Report #14. @emph{April 13, 2009} + +The @emph{LilyPond Report} is back, on a new website! +This short, informal, weekly opinion column is about the LilyPond project: its team, its world, its community. +Follow @uref{http://news.lilynet.net/The-LilyPond-Report-14,this link} to read the full issue... +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.12.2 and 2.13.0 — @emph{March 21, 2009} + +As a very belated announcement, the stable version of LilyPond is +now 2.12.2, and the next development version has begun with +2.13.0. +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.12.0 @qq{Rune} — @emph{December 27, 2008} + +A new stable release of LilyPond is available. +@* +@uref{announce-v2.12,Announcement}, +@ref{Changes}, +@ref{Download}. +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.11.65 — Release Candidate. @emph{December 2, 2008} + +This release has improvements to MusicXML import, contributed by +Reinhold Kainhofer, and adds support for splitting a book in several +book parts, contributed by Nicolas Sceaux. +Nested contexts of the same type are now allowed with any depth, and +overriding nested properties can be done with list syntax, thanks to +Neil Puttock. +This is hopefully the last Release Candidate before stable release 2.12, +so you are welcome to test this release if you can to report new +issues.@* +@uref{http://code.google.com/p/lilypond/issues/list?can=1&q=fixed_2_11_65&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes}, +@ref{Changes}, +@ref{Old downloads}. +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.11.64. @emph{November 18, 2008} + +LilyPond 2.11.64 is available. MusicXML import has been improved, +including church modes support, and a few bugs in the compilation +and documentation building processes are fixed. The three +documentation manuals are now fully translated in Spanish, thanks +to Francisco Vila. The font cache problem in Windows binaries +which used to cause excessive slowness should be fixed. +@* +@ref{Changes}, +@ref{Old downloads}. +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.11.63. @emph{October 29, 2008} + +LilyPond 2.11.63 is available. This release has lots of updates to the +documentation and translations. +@ref{Old downloads}. +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.11.62 – Release Candidate. @emph{October 11, 2008} + +LilyPond 2.11.62 is available. This is is one of the last releases +before 2.12, so testing it is encouraged. In addition to a bugfix +in @code{\tempo} command, this release has lot of updates +to Spanish and German documentation translations, and the +stylesheet for HTML documentation has been improved. +@* +@uref{http://code.google.com/p/lilypond/issues/list?can=1&q=fixed_2_11_62&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes}, +@ref{Old downloads}. +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.11.61 available. @emph{October 1, 2008} + +LilyPond 2.11.61 has been released. It has updates to +documentation translations, and a new automatic accidentals style +(teaching) has been added. +@* +@uref{http://code.google.com/p/lilypond/issues/list?can=1&q=fixed_2_11_61&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes}, +@ref{Changes}, +@ref{Old downloads}. +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.11.60 available. @emph{September 25, 2008} + +LilyPond 2.11.60 has been released. A new style of double repeat +bar line has been added, and @code{printallheaders} variable in +score block has been renamed to @code{print-all-headers}. +@ref{Old downloads}. +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.11.59 available. @emph{September 20, 2008} + +Release 2.11.59 is out. LilyPond now uses 64 bit integers for +rational numbers, which allows typesetting more complex polymetric +music. This release also has updates to German and Spanish +translations of the documentation. +@ref{Old downloads}. +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.11.58 available. @emph{September 13, 2008} + +LilyPond 2.11.58 is a beta release, which means the next stable +release is expected in a few weeks. This release is also special, +as it includes code which supports more flexible automatic +accidentals rules, written several months ago by Rune Zedeler, +deceased since then. All the development team express their +condolences to his family and his friends. Besides this, +automatic beaming has been improved by Carl Sorensen, support +for creating stem flags in a new style has been contributed by +Reinhold Kainhofer, and a few bugs have been fixed. +@* +@uref{http://code.google.com/p/lilypond/issues/list?can=1&q=fixed_2_11_58&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes}, +@ref{Changes}, +@ref{Old downloads}. +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.11.57 available. @emph{August 27, 2008} + +LilyPond 2.11.57 is out. This release adds support for harp pedal +diagrams, contributed by Reinhold Kainhofer, and some changes in +markup command names have been made. +@* +@ref{Changes}, +@ref{Old downloads}. +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.11.56 available. @emph{August 17, 2008} + +LilyPond 2.11.56 is out. This release features transposable fret +diagrams, contributed by Carl Sorensen. Translations status pages +are now available from the documentation start page. Two +predefined commands @code{\pointAndClickOn}, +@code{\pointAndClickOff} have also been added. +@* +@ref{Changes}, +@ref{Old downloads}. +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.11.55 available. @emph{August 6, 2008} + +LilyPond 2.11.55 is out. This release fixes several bugs, and for octavation brackets +@code{set-octavation} has been replaced by a more user-friendly command, @code{\ottava}. +@uref{http://code.google.com/p/lilypond/issues/list?can=1&q=fixed_2_11_55&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes}, +@ref{Old downloads}. +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.11.54 available. @emph{July 30, 2008} + +LilyPond 2.11.54 is out. This release fixes a bug in tie formatting +following a line break, and changes the behavior of @code{short-indent} +so that short instrument names are no longer indented in the margin. +@uref{http://code.google.com/p/lilypond/issues/list?can=1&q=fixed_2_11_54&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes}, +@ref{Old downloads}. +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.11.53 available. @emph{July 23, 2008} + +LilyPond 2.11.53 is out. This release fixes a lot of bugs. +@* +@uref{http://code.google.com/p/lilypond/issues/list?can=1&q=fixed_2_11_53&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes}, +@ref{Old downloads}. +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.11.52 available. @emph{July 14, 2008} + +Release 2.11.52 fixes wrong offset of a bar number when it follows +a breath mark, and syntax changes made in recent development +releases are now fully listed on the News page. @ref{Changes}, +@uref{http://code.google.com/p/lilypond/issues/list?can=1&q=fixed_2_11_52&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes}, +@ref{Old downloads}. +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.11.51 available. @emph{July 8, 2008} + +Release 2.11.51 has a couple of bugfixes, and a lot of changes in +predefined command names. Fret diagrams formatting has been +improved by Carl Sorensen, it is now controlled +by @code{fret-diagram-details} property. +@uref{http://code.google.com/p/lilypond/issues/list?can=1&q=fixed_2_11_51&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes}, +@ref{Old downloads}. +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.11.50 available. @emph{July 2, 2008} + +Release 2.11.50 adds support for metronome marks with text, and +backslashed numbers for figured bass, contributed by +Reinhold Kainhofer. +@uref{http://code.google.com/p/lilypond/issues/list?can=1&q=fixed_2_11_50&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes}, +@ref{Old downloads}. +@newsEnd + + +@newsItem +@subsubheading The LilyPond Report #13. @emph{June 23, 2008} + +This short, informal, weekly opinion column is about the LilyPond project: its team, its world, its community. +Follow @uref{http://valentin.villenave.info/The-LilyPond-Report-13,this link} to read the full issue... +@newsEnd + + +@newsItem +@subsubheading The LilyPond Report #12. @emph{June 16, 2008} + +This short, informal, weekly opinion column is about the LilyPond project: its team, its world, its community. +Follow @uref{http://valentin.villenave.info/The-LilyPond-Report-12,this link} to read the full issue... +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.11.49 released. @emph{June 12, 2008} + +LilyPond 2.11.49 is out. It fixes a number of bugs, including bugs in beams formatting. +@* +@uref{http://code.google.com/p/lilypond/issues/list?can=1&q=fixed_2_11_49&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes}, +@ref{Old downloads}. +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.11.48 released. @emph{June 9, 2008} + +LilyPond 2.11.48 is out. This release fixes a few bugs, and +@code{\compressMusic} has been renamed +to @code{\scaleDurations}. +@* +@uref{http://code.google.com/p/lilypond/issues/list?can=1&q=fixed_2_11_48&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes}, +@ref{Old downloads}. +@newsEnd + + +@newsItem +@subsubheading The LilyPond Report #11. @emph{June 9, 2008} + +This short, informal, weekly opinion column is about the LilyPond project: its team, its world, its community. +Follow @uref{http://valentin.villenave.info/The-LilyPond-Report-11,this link} to read the full issue... +@newsEnd + + +@newsItem +@subsubheading The LilyPond Report #10. @emph{June 2, 2008} + +Welcome to this special tenth issue of the @emph{LilyPond Report}, entirely dedicated to Algorithmic Composition systems.@* +Follow @uref{http://valentin.villenave.info/The-LilyPond-Report-10,this link} to read the full issue... +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.11.47 released. @emph{May 28, 2008} + +LilyPond now allows all text context properties to be markups, +except in @code{\lyricmode}. This release also fixes +regression tests maintenance for developers. +@uref{http://code.google.com/p/lilypond/issues/list?can=1&q=fixed_2_11_47&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes}, +@ref{Old downloads}. +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.11.46 available. @emph{May 22, 2008} + +Release 2.11.46 fixes a lot of bugs and includes a rewrite of +dynamics engravers. Support for slur-shaped arpeggios has been added. +@ref{Changes}, +@uref{http://code.google.com/p/lilypond/issues/list?can=1&q=fixed_2_11_46&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes}, +@ref{Old downloads}. +@newsEnd + + +@newsItem +@subsubheading RSS feed - @emph{May 21, 2008} + +A RSS feed is now available on lilypond.org. It contains all +news announced on the web site start page: releases, LilyPond +report, new translations of the site and publications. +@uref{http://lilypond.org/web/lilypond-rss-feed.xml,Feed URL}. +The info mailing list (see @ref{Contact}) is still used to +announce releases and special events. +@newsEnd + + +@newsItem +@subsubheading The LilyPond Report #9. @emph{May 05, 2008} + +Welcome to this ninth issue of the @emph{LilyPond Report}!@* +This short, informal, weekly opinion column is about the LilyPond project: its team, its world, its community. +Follow @uref{http://valentin.villenave.info/The-LilyPond-Report-9,this link} to read the full issue... +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.11.45 available. @emph{April 26, 2008} + +Release 2.11.45 fixes a couple of bugs in the formatting +engine. @code{lilypond-book} has been improved, with better +performance, a bugfix about included files, and more flexibility +for preprocessing documents with LaTeX variants. Support for +enclosing text in a rounded box has been contributed by Valentin +Villenave. +@ref{Changes}, +@uref{http://code.google.com/p/lilypond/issues/list?can=1&q=fixed_2_11_45&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes}, +@ref{Old downloads}. +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.11.44 available. @emph{April 14, 2008} + +Release 2.11.44 is available. Support for figured bass and chord +names has been added to the MusicXML +converter. @uref{http://code.google.com/p/lilypond/issues/list?can=1&q=fixed_2_11_44&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes}, +@ref{Old downloads}. +@newsEnd + + +@newsItem +@subsubheading lilypond.org日本語訳 (lilypond.org Japanese translation). @emph{2008å¹´4月8日 (April 4, 2008)} + +Lilypond.orgのいくつかのページの日本語訳が出来ました。 +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.11.43 available. @emph{March 31, 2008} + +Release 2.11.43 has been available since March 27. It fixes a +couple of formatting bugs, and the font cache problem with +MS-Windows binaries which caused excessive slowness has been +fixed. @uref{http://code.google.com/p/lilypond/issues/list?can=1&q=fixed_2_11_43&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes}, +@ref{Old downloads}. +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.11.42 available. @emph{March 9, 2008} + +Release 2.11.42 is out. It fixes some formatting and spacing +bugs. (@uref{http://code.google.com/p/lilypond/issues/list?can=1&q=fixed_2_11_42&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes}, +@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading Comparison of music engraving with Finale and LilyPond. @emph{February 25, 2008} + +In three articles, Andrew Hawryluk compares Finale and LilyPond in +general terms, and evaluates in detail engraving capabilities of +both pieces of software. The second article is an instructive +analysis of Rachmaninoff's Piano Prelude 6 engraving, including +comparisons with a reference hand-engraved edition. +@uref{http://www.musicbyandrew.ca/finale-lilypond-1.html,Read +the articles}. +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.11.41 available. @emph{February 25, 2008} + +Release 2.11.41 is available. It has a few bugfixes, updated +program messages in French, German, Spanish and Vietnamese, and +updates to the MusicXML converter. (@uref{http://code.google.com/p/lilypond/issues/list?can=1&q=fixed_2_11_41&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes}, +@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.11.37 available. @emph{January 3, 2008} + +Release 2.11.37 is available. It has a few bugfixes, and +documentation changes. (@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.11.36 available. @emph{December 13, 2007} + +Release 2.11.36 is now available. It has many bugfixes, updates +for MusicXML import, and it includes major documentation changes from +Grand Documentation Project. (@uref{http://code.google.com/p/lilypond/issues/list?can=1&q=fixed_2_11_36&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes}, @ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.11.33 and 2.10.33 available. @emph{September 20, 2007} + +Release 2.11.33 is now available. +(@uref{http://code.google.com/p/lilypond/issues/list?can=1&q=fixed_2_10_33&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes +2.10}, @uref{http://code.google.com/p/lilypond/issues/list?can=1&q=fixed_2_11_33&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes +2.11}, @ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.11.32 available. @emph{September 2, 2007} + +Release 2.11.32 is now available. +(@uref{http://code.google.com/p/lilypond/issues/list?can=1&q=fixed_2_11_32&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes}, @ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.11.31 available. @emph{August 31, 2007} + +Release 2.11.31 is now available. It has more bugfixes, updates +for MusicXML import and lots of updates for the translations. +(@uref{http://code.google.com/p/lilypond/issues/list?can=1&q=fixed_2_11_31&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes}, @ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.11.30 available. @emph{August 20, 2007} + +Release 2.11.30 is now available. It has various bugfixes among +others in the new spacing code, MusicXML import and lots of updates +for the translations. (@uref{http://code.google.com/p/lilypond/issues/list?can=1&q=fixed_2_11_30&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes}, @ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.10.29 and 2.11.29 available. @emph{August 11, 2007} + +Release 2.11.29 is now available. 2.10.29 has a few small fixes. +2.11.29 has several bugfixes, among others in the new spacing code, +and lots of updates for the translations. +(@uref{http://code.google.com/p/lilypond/issues/list?can=1&q=fixed_2_10_29&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes +2.10}, @uref{http://code.google.com/p/lilypond/issues/list?can=1&q=fixed_2_11_29&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes +2.11}, @ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.11.28 for FreeBSD x86_64. @emph{August 10, 2007} + +Release 2.11.28 is now available as a binary installer for +FreeBSD x86_64. Download +@uref{http://lilypond.org/download/binaries/freebsd-64/lilypond-2.11.28-1.freebsd-64.sh,the installer} and +do @emph{sh lilypond-2.11.28-1.freebsd-64.sh} in a command window. +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.11.28 available - @emph{July 25, 2007} +Release 2.11.28 has several updates to the manual and its +translations, an plethora of bugfixes and a complete cleanup of the +spacing engine code. +(@uref{http://code.google.com/p/lilypond/issues/list?can=1&q=fixed_2_11_28&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes +2.11}, @ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.11.26 available - @emph{June 8, 2007} + +Release 2.11.26 supports page markers, eg. for use in +tables-of-contents. In addition, it fixes a number of bugs. Enjoy! +(@uref{http://code.google.com/p/lilypond/issues/list?can=1&q=fixed_2_11_26&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes +2.11}, @ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.10.25 and 2.11.25 available - @emph{May 20, 2007} + +Release 2.11.25 has support for toplevel page breaking commands, +and page breaking as a whole has been sped up significantly. Enjoy! +(@uref{http://code.google.com/p/lilypond/issues/list?can=1&q=fixed_2_11_25&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes +2.11}, @uref{http://code.google.com/p/lilypond/issues/list?can=1&q=fixed_2_10_25&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes +2.10}, @ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.10.23 and 2.11.23 available - @emph{May 1, 2007} +This has lots of bugfixes. (@uref{http://code.google.com/p/lilypond/issues/list?can=1&q=fixed_2_11_23&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes +2.11}, @uref{http://code.google.com/p/lilypond/issues/list?can=1&q=fixed_2_10_23&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes +2.10}, @ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading Übersetzung der Dokumentation - @emph{10. April 2007} +Die Kapitel 1-5 (der Abschnitt für Anfänger) des +LilyPond-Benutzerhandbuchs +sind auf deutsch übersetzt — sie sind erhältlich für +die @ref{Changes} +online und @ref{Old downloads}. +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.11.22 available - @emph{April 10, 2007} +This release has updates of the dot collision code. (@uref{http://code.google.com/p/lilypond/issues/list?can=1&q=fixed_2_11_22&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes +}, @ref{Changes}, @ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.11.21 available - @emph{March 24, 2007} +This release has some documentation updates. +(@uref{http://code.google.com/p/lilypond/issues/list?can=1&q=fixed_2_11_21&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes +}, @ref{Changes}, @ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading Traduction de la documentation en français - @emph{25 février 2007} +Les chapitres 1 à 4 et 6 du manuel de l'utilisateur sont +désormais traduits, et disponibles en ligne — @uref{@@DOC@@v2.10/Documentation/user/lilypond/index.fr.html,version +2.10}, @uref{@@DOC@@v2.11/Documentation/user/lilypond/index.fr.html,version +2.11}. Les traductions sont également incluses dans la @uref{install,documentation téléchargeable}. +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.10.20 and 2.11.20 available - @emph{February 25, 2007} +This release fixes many bugs. +(@uref{http://code.google.com/p/lilypond/issues/list?can=1&q=fixed_2_11_20&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes +2.11}, +@uref{http://code.google.com/p/lilypond/issues/list?can=1&q=fixed_2_10_20&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes +2.10}, @ref{Changes}, @ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.10.19 and 2.11.19 available - @emph{February 18, 2007} +This release fixes many bugs. +(@uref{http://code.google.com/p/lilypond/issues/list?can=1&q=fixed_2_11_19&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes +2.11}, +@uref{http://code.google.com/p/lilypond/issues/list?can=1&q=fixed_2_10_19&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes +2.10}, @ref{Changes}, @ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.11.18 available - @emph{February 12, 2007} +This release fixes still more bugs, and included +singing support through festival contributed by Milan Zamazal. (@uref{http://code.google.com/p/lilypond/issues/list?can=1&q=fixed_2_11_18&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes +2.11}, @ref{Changes}, @ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.11.17 available - @emph{February 9, 2007} +This release fixes still more bugs. +(@uref{http://code.google.com/p/lilypond/issues/list?can=1&q=fixed_2_11_17&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes +2.11}, @ref{Changes}, +@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.10.16 and 2.11.16 available - @emph{February 4, 2007} +This release fixes many bugs. +(@uref{http://code.google.com/p/lilypond/issues/list?can=1&q=fixed_2_11_16&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes +2.11}, +@uref{http://code.google.com/p/lilypond/issues/list?can=1&q=fixed_2_10_16&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes +2.10}, +@ref{Changes}, +@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.10.15 and 2.11.15 available - @emph{February 1, 2007} +This release will stretch piano staves on a +system-by-system basis and add a few glyphs: a black harmonic note +head and the slashed mirrored flat. (@uref{http://code.google.com/p/lilypond/issues/list?can=1&q=fixed_2_11_15&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes +2.11}, +@uref{http://code.google.com/p/lilypond/issues/list?can=1&q=fixed_2_10_15&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes +2.10}, +@ref{Changes}, @ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.10.14 and 2.11.14 available - @emph{January 26, 2007} +This release has a rewrite of the line-spanner code, responsible for +among other glissandi and text-crescendos, making them more flexible. +(@uref{http://code.google.com/p/lilypond/issues/list?can=1&q=fixed_2_11_14&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes}, +@ref{Changes}, @ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.10.13 and 2.11.13 available - @emph{January 17, 2007} +This release fixes a few minor but irritating bugs. In addition, the +2.11 release has updates of the tutorial. +(@uref{http://code.google.com/p/lilypond/issues/list?can=1&q=fixed_2_11_13&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes}, +@ref{Changes}, @ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.11.12 available - @emph{January 17, 2007} +This release fixes lots of bugs. In particular, the tie formatting has +been further improved, and memory usage has been improved enormously. +(@uref{http://code.google.com/p/lilypond/issues/list?can=1&q=fixed_2_11_12&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes}, +@ref{Changes}, @ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.10.12 available - @emph{January 17, 2007} +This release mirrors 2.11.12. Notably, it has the same memory +usage improvements. (@uref{http://code.google.com/p/lilypond/issues/list?can=1&q=fixed_2_10_12&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes}, +@ref{Changes}, @ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.10.11 available - @emph{January 12, 2007} +This release mostly has the same fixes as 2.11.11. (@uref{http://code.google.com/p/lilypond/issues/list?can=1&q=fixed_2_10_11&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes}, +@ref{Changes}, @ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.11.11 available - @emph{January 11, 2007} +This release has further fixes for popular bugs. Timing of the MIDI +output won't get confused by tuplets and grace notes anymore. Some fat +has also been trimmed of the skyline code performance. (@uref{http://code.google.com/p/lilypond/issues/list?can=1&q=fixed_2_11_11&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes}, +@ref{Changes}, @ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.11.10 available - @emph{January 8, 2007} +LilyPond 2.11.10 has further review of the test-suite, performance and +code coverage. This brought to light several problems that were +fixed. Notably, 2.11.10 fixes lots of regressions in optical +correction spacing and MIDI dynamics. Also, this version is 20 to 50 +% faster than previous 2.11 releases. (@uref{http://code.google.com/p/lilypond/issues/list?can=1&q=fixed_2_11_10&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes}, +@ref{Changes}, @ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.10.10 available - @emph{January 8, 2007} +This release fixes several popular bugs, among others: MIDI files +that go silent after (de)crescendi, and tuplets problems with quoting +and part-combining (@uref{http://code.google.com/p/lilypond/issues/list?can=1&q=fixed_2_11_10&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes}, +@ref{Changes}, @ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.11.9 and 2.10.9 available - @emph{January 3, 2007} +This release has a couple of bugfixes, and —in 2.11.9&mdash +further improvements in the regression test suite (@uref{http://code.google.com/p/lilypond/issues/list?can=1&q=fixed_2_11_9&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes}, +@ref{Changes}, @ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.11.8 and 2.10.8 available - @emph{January 3, 2007} +New! Improved! With even more bugfixes! (@uref{http://code.google.com/p/lilypond/issues/list?can=1&q=fixed_2_11_8&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes}, +@ref{Changes}, @ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading @code{lilypond.org} auf deutsch - @emph{31. Dezember 2006} +Die LilyPond-Webseiten sind jetzt auch auf deutsch übersetzt! +@newsEnd + + +@newsItem +@subsubheading @code{lilypond.org} en español - @emph{December 29, 2006} +¡Ya está disponible la versión en español del sitio web de LilyPond! +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.11.7 and 2.10.7 available - @emph{January 1, 2007} +New! Improved! With even more bugfixes! (@uref{http://code.google.com/p/lilypond/issues/list?can=1&q=fixed_2_11_7&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes}, +@ref{Changes}, @ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.11.6 available - @emph{December 30, 2006} +This release supports arbitrary fractional alterations, allowing +music with different microtonal conventions to be typeset. +(@uref{http://code.google.com/p/lilypond/issues/list?can=1&q=fixed_2_11_6&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes}, +@ref{Changes}, @ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.10.6 available - @emph{December 30, 2006} +New! Improved! With even more bugfixes! +(@uref{http://code.google.com/p/lilypond/issues/list?can=1&q=fixed_2_10_6&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes}, +@ref{Changes}, @ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.11.5 available - @emph{December 24, 2006} +These releases complete the translation infrastructure for +Documentation. +(@uref{http://code.google.com/p/lilypond/issues/list?can=1&q=fixed_2_10_5&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes}, +@ref{Changes}, @ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.10.5 available - @emph{December 24, 2006} +New! Improved! With even more bugfixes! +(@uref{http://code.google.com/p/lilypond/issues/list?can=1&q=fixed_2_10_5&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes}, +@ref{Changes}, @ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.11.4 available - @emph{December 21, 2006} +The vertical spacing improvements that were introduced in 2.11.0 now work +within a system as well as between systems. (@uref{http://code.google.com/p/lilypond/issues/list?can=1&q=fixed_2_11_4&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes}, +@ref{Changes}, @ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.11.3 available - @emph{December 19, 2006} +This release has @uref{http://lilypond.org/doc/v2.11/compare-v2.10.3/index.html,graphical +test results} and several website build improvements. (@uref{http://code.google.com/p/lilypond/issues/list?can=1&q=fixed_2_11_3&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes}, +@ref{Changes}, @ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.10.3 available - @emph{December 19, 2006} +This release fixes several bugs. +(@uref{http://code.google.com/p/lilypond/issues/list?can=1&q=fixed_2_10_3&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes}, +@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LinuxPPC binaries available! - @emph{December 19, 2006} +From now on, our GUB binary builds include support for Linux/PPC. (@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading Traduction du tutoriel en français. @emph{December 13, 2006} +Fruit du travail d'une équipe de traducteurs, le tutoriel en +français est maintenant disponible en ligne. @uref{@@DOC@@v2.10/Documentation/user/lilypond/Tutorial.fr.html,Version +2.10}, @uref{@@DOC@@v2.11/Documentation/user/lilypond/Tutorial.fr.html,Version +2.11}. +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.11.2 available - @emph{December 12, 2006} +This release supports glissandi and harmonics in tablature. (@uref{http://code.google.com/p/lilypond/issues/list?can=1&q=fixed_2_11_2&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes}, +@ref{Changes}, @ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.10.2 available - @emph{December 12, 2006} +A new stable release of LilyPond is available. (@uref{http://code.google.com/p/lilypond/issues/list?can=1&q=fixed_2_10_2&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes}, +@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.11.1 available - @emph{December 4, 2006} +This release has improved support for horizontal spacing. (@uref{http://code.google.com/p/lilypond/issues/list?can=1&q=fixed_2_11_1&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes}, +@ref{Changes}, @ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.10.1 available - @emph{December 3, 2006} +A new stable release of LilyPond is available. (@uref{http://code.google.com/p/lilypond/issues/list?can=1&q=fixed_2_10_1&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes}, +@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.11.0 available - @emph{November 27, 2006} +This release has improved support for vertical spacing. (@ref{Changes}, @ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.10.0 available - @emph{November 11, 2006} +A new stable release of LilyPond is available. (@uref{announce-v2.10.html,Announcement}, @ref{Changes}, @ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading GIT repository online - @emph{November 11, 2006} +LilyPond development has moved over its source code to @uref{http://git.or.cz,GIT}, the fast version control +system. Check out our repository at @uref{http://git.sv.gnu.org/gitweb/?p=lilypond.git;a=summary,gnu.org}. +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.9.29 available - @emph{November 5, 2006} +This release has many more bugfixes. (@uref{http://code.google.com/p/lilypond/issues/list?can=1&q=fixed_2_9_29&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes}, +@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.9.28 available - @emph{November 3, 2006} +This release has many more bugfixes. (@uref{http://code.google.com/p/lilypond/issues/list?can=1&q=fixed_2_9_28&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes}, +@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.9.27 available - @emph{October 28, 2006} +This release has a new @code{FretBoards} context, and some further +bugfixes. (@ref{Changes}, @uref{http://code.google.com/p/lilypond/issues/list?can=1&q=fixed_2_9_27&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes}, +@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading Music streams thesis available - @emph{October 21, 2006} +The last months, Erik Sandberg has been overhauling the internals of +Lily. This change introduces a new intermediate format, Music Streams, +which will make it easier get music data out of LilyPond. A copy of +the thesis is now available from lilypond.org +(@ref{Publications}). +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.9.26 available - @emph{October 20, 2006} +This release has further bugfixes. (@uref{http://code.google.com/p/lilypond/issues/list?can=1&q=fixed_2_9_26&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes}, +@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.9.25 available - @emph{October 18, 2006} +This release has more bugfixes; from now on, binaries are also +available for x86/64. (@uref{http://code.google.com/p/lilypond/issues/list?can=1&q=fixed_2_9_25&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes}, +@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.9.24 available - @emph{October 15, 2006} +This release has support for right hand guitar fingerings, and offers +some bugfixes. (@ref{Changes}, +@uref{http://code.google.com/p/lilypond/issues/list?can=1&q=fixed2924&colspec=ID+Type+Status+Priority+Milestone+Owner+Summary,Bugfixes}, +@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.9.23 available - @emph{October 12, 2006} +This release cuts fragments of EPS directly from your finished score, +and makes it easier to insert ties into lyrics. (@ref{Changes}, @ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.9.22 available - @emph{October 9, 2006} +Test this release candidate for LilyPond 2.10! (@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.9.21 available - @emph{October 4, 2006} +Test this release candidate for LilyPond 2.10! (@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.9.20 available - @emph{October 3, 2006} +Test this release candidate for LilyPond 2.10! (@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.9.17 available - @emph{September 2, 2006} +This release fixes many bugs. Among others, MacOS X QuickTime now +honors tempo changes are in the MIDI output. (@ref{Changes}, @ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.9.16 available - @emph{August 25, 2006} +In this release, chords may be partially tied and lyric extenders have +tunable padding. Moreover, many bugs were fixed +(@ref{Changes}, @ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.9.15 available - @emph{August 20, 2006} +This releases fixes many bugs in the 2.9.14 release. (@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.8.6 available - @emph{August 8, 2006} +This release contains a few minor bugfixes; the source tarball is also +available. (@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.9.14 available - @emph{August 4, 2006} +This release supports instrument name changes, dotted barlines and +better spacing for floating grace notes. In addition, it contains +ongoing work by Erik Sandberg to extend the interpretation phase with +stream support. (@ref{Changes}, @ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.9.13 available - @emph{July 23, 2006} +This release supports doits and falls, and more tuning options for +grace note spacing and tuplet brackets. (@ref{Changes}, @ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.9.12 available - @emph{July 18, 2006} +This release supports pdftex for lilypond-book, and uses PdfTeX for +generating manuals, so page numbers and references are now clickable. +(@ref{Changes}, @ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.9.11 available - @emph{July 12, 2006} +This release wraps improvements of the last two weeks. As a new +feature, it supports tunable tuplet number formatting for nested +tuplets. (@ref{Changes}, @ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.9.10 available - @emph{June 15, 2006} +This releases fixes a couple of bugs in 2.9.9. +(@ref{Changes}, +@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.9.9 available - @emph{June 15, 2006} +This releases fixes many bugs in 2.9.8 and earlier. +(@ref{Changes}, +@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.9.8 available - @emph{June 6, 2006} +2.9.8 has support for different spacing sections within a single +score, and better infrastructure for automated regression testing. +(@ref{Changes}, +@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.8.4 available - @emph{June 4, 2006} +2.8.4 fixes some minor bugs, and includes a backport of the +infrastructure for automated regression testing. +(@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading First test results available - @emph{June 4, 2006} +After a week of frantic tweaking, the first automated testing results +are available. You can now see @uref{http://lilypond.org/doc/v2.9/compare-v2.8.4/index.html,in full +glory} what features are broken in the development release +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.9.7 available - @emph{May 30, 2006} +2.9.7 has improvements in the formatting for figured bass, and +includes a new framework for detecting bugs earlier, which will make +the development releases even better +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.9.6 available - @emph{May 24, 2006} +This +release has new features in beam formatting: beams may now be put on +single stems, and obey the @code{beatGrouping} property. MusicXML +converter. (@ref{Changes}, @ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading New essay pages! - @emph{May 22, 2006} +The @emph{Automated Engraving} essay has been updated with material +from the @uref{http://fisl.softwarelivre.org,FISL} talk, with +pages on @uref{about/automated-engraving/problem-statement,modeling +notation} and @uref{about/automated-engraving/scoring-esthetics,algorithms for +esthetics}. Happy reading! +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.9.5 available - @emph{May 17, 2006} +This release supports object rotation, hairpins with circled tips, +hairpins that run to barlines before notes and improvements in the +MusicXML converter. +(@ref{Changes}, @ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.9.4 available - @emph{May 12, 2006} +This release has support for feathered beaming, and note head styles in +the markup @code{\note} command. In addition, it has a lot of updates +of the manual and a clean up of the spring spacer. +(@ref{Changes}, @ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.8.2 available - @emph{May 12, 2006} +This release has fixes for minor bugs and compilation issues. +(@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.9.3 is out! - @emph{May 7, 2006} +This new release has lots of updates of the manual, courtesy Graham +and the contributors of the mailing. It handles formatting for ties in +arpegiated chords better (feature sponsored by +Steve Doonan), it has al niente hairpins, courtesy of Erlend Aasland, +and some cleanups of the PostScript output, courtesy David Feuer. (@ref{Changes}, @ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading FISL7.0 slides available - @emph{April 22, 2006} +The slides for Han-Wen's talk at +@uref{http://fisl.softwarelivre.org,FISL 7} are now online. +(@ref{Publications}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.8.1 is out! - @emph{April 3, 2006} +Important bugfixes include CJK font handling and a Darwin/x86 port. +(@ref{Changes}, @ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.9.1 is out! - @emph{April 3, 2006} +It's mostly a bugfix release, and it's almoste the same as 2.8.1. This +release mainly fixes problems with CJK font loading. +(@ref{Changes}, @ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond on MacOS X/Intel - @emph{March 31, 2006} +LilyPond now also runs on Intel based macs, offering a 400% +speedup over the emulated PowerPC binaries. (@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.8.0 is out! - @emph{March 22, 2006} +Version 2.8 is here! Read the @uref{announce-v2.8.html,release +announcement}. (@ref{Changes}, @ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.7.39 is out - @emph{March 17, 2006} +This release has even more bug fixes. Please test before 2.8 is +released. (@ref{Changes}, +@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.7.38 is out - @emph{March 12, 2006} +This is likely to be the last release candidate before we release 2.8, +so report any bugs that you might find. New attractions include: +lilypond postscript files now work with GSView, cut & pasting lily +code from PDF files should now work, and spacing fixes for +multi-measure rests. +(@ref{Changes}, +@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.7.37 is out - @emph{March 4, 2006} +This release has more bug fixes. Please help us by testing it! +(@ref{Changes}, +@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.7.36 is out - @emph{February 24, 2006} +This is another release candidate for 2.8. It has lots of bug fixes +and polishes to the documentation. It also contains support for +creating ties that are only on their right side connected to note +heads, which is handy for repeats (feature sponsored by Steve Doonan). +The documentation suite can now be downloaded as a separate tarball +from lilypond.org. (@ref{Changes}, +@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.7.35 is out - @emph{February 19, 2006} +This release has lots of bugs fixes. The plan is to release 2.8 at the +end of this month, so bug reports are @strong{very} welcome. By +definition a bug is release critical if it wasn't present in version +2.6. (@ref{Changes}, +@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.7.34 is out - @emph{February 16, 2006} +This release has a bunch of bugfixes, and new features. Newly created +contexts may also be named with @code{\new Voice = +"alto"}. Thicknesses of tie and slurs may be tuned separately for +the endings and the middle +part. (@ref{Changes}, +@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.7.33 is out - @emph{February 10, 2006} +Items directly connected with a music input element may be +parenthesized, for example, +@verbatim +{ + c4 -\parenthesize -. + +} +@end verbatim + +This feature was sponsored by Ramana Kumar. (@ref{Changes}, +@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.7.32 is out - @emph{February 7, 2006} +This release contains some syntax changes: words inside the \paper and +\layout block are henceforth written with dashes, for instance: + +@verbatim +{ + \layout { + ragged-right = ##t + } +} +@end verbatim + +Furthermore, in this release, we have dropped some legacy code from +our library. Now, lily uses standard C++ strings and the STL +vector. (@ref{Changes}, +@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.7.31 is out - @emph{February 2, 2006} +This release fixes a load of bugs, and has some internal +cleanups. Exported C++ members are now named +ly:class-name::function-name in Scheme instead of +Class_name::function_name. We are now using C++ vectors and strings +instead of our own. The Linux/FreeBSD builds now include wrappers for +Python scripts too, so you can run convert-ly and midi2ly. +(@ref{Changes}, +@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.7.30 is out - @emph{January 30, 2006} +This release has a few bug fixes, like the solfa note head shape and +collisions, the \epsfile command, and in getting No. ligature in +normal words. (@ref{Changes}, +@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.7.29 is out - @emph{January 27, 2006} +This release has the following new features. Alignments of staves may +be tuned per system (feature sponsored by Trevor Baca), individual +systems may be positioned manually (feature sponsored by Trevor Baca +and Nicolas Sceaux), a linebreaking configuration can now be saved as +a `.ly' file automatically. This allows vertical alignments to be +stretched to fit pages in a second formatting run (feature sponsored +by Trevor Baca and Nicolas +Sceaux). (@ref{Changes}, +@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.7.28 is out - @emph{January 22, 2006} +This release contains numerous small fixes that were already in our +GUB binaries. In addition, it has further polish for formatting of +tied chords. Theses improvements were sponsored by Steve +Doonan. (@ref{Changes}, +@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.7.27, release 4 - @emph{January 13, 2006} + +The fourth release of our Grand Unified Binary for 2.7.27 is +available. This release uses Pango 1.11.1, which has support for +ligatures and kerning. Enjoy! (@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.7.27, release 3 - @emph{January 12, 2006} +The third release of our Grand Unified Binaries is available. This +release fixes external font-support, the decompression flag for +Linux. Also, we have support for @strong{FreeBSD} as well! Jump +to the @ref{Old downloads} get them! +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.7.27 binaries are out - @emph{January 7, 2006} +Starting with 2.7.26, the development team has been working on the +installers. We're proud to announce another version of these: they are +now available for +@uref{http://lilypond.org/download/binaries/linux-x86/lilypond-2.7.27-1.linux.sh, +Linux/x86}, +@uref{http://lilypond.org/download/binaries/MacOS/lilypond-2.7.27-2.zip, +MacOS X} and +@uref{http://lilypond.org/download/binaries/mingw/lilypond-2.7.27-2.exe, +Windows}. +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.7.27 is out - @emph{January 7, 2006} +This release allows you to switch staff lines on and off individually +(feature sponsored by Andrea +Valle). (@ref{Changes}, +@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading Linux Journal article - @emph{January 2006} +Linux Journal publishes an article on +@uref{http://www.linuxjournal.com/article/8364,@emph{Make +Stunning Schenker Graphs with GNU LilyPond}}. It is a +in-depth but hands-on feature article with crisp LilyPond +graphics. +@* +Author Kris Shaffer remarks +“GNU Lilypond generates beautiful graphics that make commercial +alternatives seem second-rate.” +This article is now available @uref{http://www.linuxjournal.com/article/8583,on-line}. +@newsEnd + + +@newsItem +@subsubheading New binaries for LilyPond 2.7.26 - @emph{January 4, 2006} +The Development team has been working around the clock to improve +to fix the first wave bugs reported by you. The new results for MacOS +and Windows are up on the @ref{Old downloads} +page. Let us know how you fare! +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.7.26 is out - @emph{December 31, 2005} +This release has an improvement in the MusicXML importer (feature +sponsored by Mark vd Borre's Music Academy): now, staves and voices +are also setup, so you can readily run LilyPond on the .ly output. +The important occasion for this release is our new build +environment: we have completely revamped it, which means that binaries +for all platforms (including MacOS, Windows, Linux/x86, but probably +FreeBSD too) will be more quickly available for download. +A happy 2006 from the LilyPond Development Team! +(@ref{Changes}, +@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.7.25 is out - @emph{December 24, 2005} +This release has various bugfixes. Also, stems on the center line now +have their directions interpolated to minimize the number of direction +changes (feature sponsored by Basil Crow and Mike +Rolish). (@ref{Changes}, +@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.7.24 is out - @emph{December 20, 2005} +This release fixes a couple of bugs, but more importantly, slurs now +avoid TupletNumbers, and tuplet numbers may enter the staff (feature +sponsored by Trent Johnston), tuplet brackets and numbers are +implemented as separate grobs, TupletBracket and TupletNumber (rewrite +sponsored by Trent Johnston), string arguments for music functions may +be specified without # marks. This allows syntactical constructs (like +\clef and \bar) to be expressed in generic music +functions. (@ref{Changes}, +@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.7.23 is out - @emph{December 19, 2005} +This release has the following new features: +@itemize +@item +Ties in chords are also formatted using score based +formatting. This reduces the number of collisions for ties in chords +(feature sponsored by Steve Doonan). +@item +With the \tweak music function, layout objects that are directly +connected to input may be tuned easily (feature sponsored by Sean Reed +and Bertalan Fodor). +@item +Generic music functions may now also be used on +articulations and chord elements (feature sponsored by Sean Reed and +Bertalan Fodor). +@item +Better support for MusicXML, more options for spacing Lyrics; +it is now possible to separately specify minimum distances for normal +and hyphenated syllables (features sponsored by Mark van den Borre and +Bertalan Fodor. +@end itemize +(@ref{Changes}, +@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.7.22 is out - @emph{December 9, 2005} +This release has better support for MusicXML: it also supports ties, +beams and editorial accidentals. It also has more options for spacing +Lyrics; it is now possible to separately specify minimum distances for +normal and hyphenated syllables. These features were sponsored by Mark +van den Borre and Bertalan +Fodor. (@ref{Changes}, +@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.7.21 is out - @emph{December 5, 2005} +Saint Nicholas brings you ... a @uref{http://www.musicxml.org/,MusicXML} convertor for LilyPond! +The convertor is basic, but working. Check out the @uref{http://www.lilypond-design.com/sponsor/open-features.html#inputfilter, +LilyPond Software Design} pages for MusicXML features that can be +sponsored. +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.7.20 is out - @emph{December 2, 2005} +This release contains the following improvements: Texts set in a +TrueType font are now kerned. Using the TeX no longer requires linking +or dynamically opening the kpathsea library, making the backend more +easily usable on various systems (feature sponsored by Christian Ebert +of Black Trash +Productions). (@ref{Changes}, +@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.6.5 is out - @emph{December 1, 2005} +This release updates the bugreporting address and reorganizes the +documentation tree. (@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.7.19 is out - @emph{November 26, 2005} +This version contains a few bugfixes, and now allows the type of +brackets in system start bracket hierarchies to be specified. Also, +the horizontal alignment of rehearsal marks may be changed: marks can +be put on key signatures, clefs, time signatures, +etc. (@ref{Changes}, +@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.7.18 is out - @emph{November 21, 2005} +This version features nestable system start delimiters, like bracket, +brace. It also adds "square" line bracket (feature sponsored by Trevor +Baca). It also has refactored routines for tie formatting. This will +make it easier to get better tie formatting for chords (feature +sponsored by Steve Doonan). It also has a few bug +fixes. (@ref{Changes}, +@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.7.17 is out - @emph{November 17, 2005} +This version has refactored routines for tie formatting. This will +make it easier to get better tie formatting for chords (feature +sponsored by Steve Doonan). It also has a few bug +fixes. (@ref{Changes}, +@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.7.16 is out - @emph{November 11, 2005} +This release fixes a large number of bugs. Please upgrade before +reporting bugs in the 2.7 series. (@ref{Changes}, +@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.7.15 is out - @emph{November 3, 2005} +This release has another massive cleanup of the backend. Each grob +property may also be a "grob closure". This means that it is possible +to combine functions. Calculation of extent and offset of grob is now +controlled via the `X-extent', `Y-extent', `X-offset' and `Y-offset' +properties. (@ref{Changes}, +@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.7.14 is out - @emph{October 23, 2005} +This release has more cleanup in the layout-engine. Now, +properties that have Procedure values are thought to be procedures +that compute said property, i.e. +@verbatim + +\override Beam #'direction = #(lambda (grob) +(if (> (random 10) 5) UP DOWN)) + +@end verbatim +will set a random direction for beams. (@ref{Changes}, +@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.7.13 is out - @emph{October 18, 2005} +This release features slashed numerals, plus signs and interruptible +extender lines for figured bass. Merging of Figured bass lines has +been made switchable with the figuredBassCenterContinuations +property. For each grob, a subproperty in `callbacks' property defines +the procedure which computes it. This is major internal cleanup, which +also provides advanced tweakability for power +users. (@ref{Changes}, +@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.6.4 is out - @emph{October 11, 2005} +This release fixes a few minor problems with the stable +series. (@ref{Changes}, +@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.7.12 is out - @emph{October 07, 2005} +It features more annotations for the page layout engine and some more +sponsored features. Beamlets may stick out of the side of beams +(feature sponsored by Trevor Baca); new support for figured bass with +support for continuation lines and tuning of figures, brackets, and +alignments (feature sponsored by Trent Johnston); vertical alignments +of staves can now be tuned easily for individual systems (feature +sponsored by Nicolas +Sceaux). (@ref{Changes}, +@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.7.11 is out - @emph{October 02, 2005} +Vertical spacing for page layout can now be tuned for each system +individually (feature sponsored by Trevor Baca and Nicolas +Sceaux). The slope of a stem-tremolo may be set manually (feature +sponsored by Sven Axelsson). There are a number of cleanups in the +handling and representation of systems, among other features and bug +fixes. (@ref{Changes}, +@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.7.10 is out - @emph{September 13, 2005} +This version adds proper support for "laissez vibrer ties", just enter +\laissezVibrer after a chord. This feature was sponsored by Henrik +Frisk. It also has a couple of minor +bugfixes. (@ref{Changes}, +@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.7.9 is out - @emph{September 5, 2005} +This is mainly a bugfix +release. (@ref{Changes}, +@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading Traduction française du site - @emph{September 03, 2005} +Grâce à @uref{about/thanks#website,l'équipe des traducteurs}, +de nombreuses pages du site sont maintenant disponibles en français, +notamment l'@uref{about/automated-engraving/index.fr.html,essai sur +la gravure musicale}. +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.7.8 is out - @emph{August 29, 2005} +This release has support for right-to-left text formatting in markup +commands (sponsored by Aaron Mehl). In addition, it fixes a great +number of bugs, among others, support for writing MIDI files. (@ref{Changes}, +@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading Article in `De Standaard' - @emph{August 20, 2005} +The Belgian newspaper @emph{De Standaard} investigates what drives +Free Software authors in an article titled @emph{Delen van KENNIS +zonder WINSTBEJAG} (Non-profit sharing of +knowlegde) using LilyPond as an example. This marks +LilyPond's first appearance in mainstream printed press. +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.7.7 is out - @emph{August 22, 2005} +This release has a rewriting of tie formatting which was sponsored by +Bertalan Fodor, Jay Hamilton, Kieren MacMillan, Steve Doonan, Trevor +Baca, and Vicente Solsona +Dellá. (@ref{Changes}, +@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.7.6 is out - @emph{August 19, 2005} +This release adds support for numbered percent repeats, a feature +sponsored by Yoshinobu Ishizaki. It also has bugfixes for clashes +between slurs and symbols, like fingers dynamic +signs. (@ref{Changes}, +@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.7.5 is out - @emph{August 16, 2005} +Lily 2.7.5 has a large number of bugfixes, among others, in slur +formatting, spacing, rest collisions and tuplet bracket +formatting. (@ref{Changes}, +@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.7.4 is out - @emph{August 7, 2005} +LilyPond 2.7.4 has support for proportional notation, where the space +for a note is proportional to the time it +takes. (@ref{Changes}, +@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.6.3 is out - @emph{August 4, 2005} +This release fixes a memory corruption bug that was triggered by +\override'ing Beam settings. (@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.6.2 is out - @emph{August 2, 2005} +This release has a few bugfixes, among them: the autopackage will run +in more platforms, LilyPond will be much quicker for large +lilypond-book documents, and the up and down Fa note heads for shaped +heads have been +swapped. (@ref{Changes}, +@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.7.3 is out - @emph{July 25, 2005} +LilyPond 2.7.3 has improvements in performance which should result in +faster operations (15 to 20 percent). It also contains the new +"\displayLilyMusic" function. +(@ref{Changes}, +@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.7.2 is out - @emph{July 21, 2005} +LilyPond 2.7.2 has support for suggested accidentals for musica +ficta notation, easy entry for lyric melismata and improvements for +quicker entry of scores. (@ref{Changes}, +@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.6 released - @emph{June 27, 2005} +Version 2.6 is the latest stable release of LilyPond. +It now +installs in a snap on Windows, MacOS X, and any version of Linux (x86). +@strong{Get up and running in minutes!} Pango text formatting lets you +print @strong{Unicode } lyrics in your favorite script and font. Create +@strong{SVG} files, and edit them in Inkscape. +(@uref{announce-v2.6.html,Announcement}, @ref{Old downloads}, @ref{Changes}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.7.1 is out - @emph{July 20, 2005} +LilyPond 2.7.1 has no user-visible changes. However, due to +restructuring @qq{under the hood}, this version will be 10 to +20 % faster. (@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.6.1 is out - @emph{July 11, 2005} +This version fixes a few minor bugs found in +2.6.0, and also works on DOS-based Windows versions. (@ref{Changes}, +@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading LilyPond 2.7 is out - @emph{July 9, 2005} +LilyPond 2.7.0 is out. It has support for paragraph text and +pitched trill notation. (@ref{Changes}, +@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading 2.5.31 released - @emph{June 22, 2005} +LilyPond 2.5.32 is now available for download (binaries for Fedora + +MacOS only). It has a few very minor bugfixes, and a rewrite of the +TTF embedding code, which should be a lot more robust now. +(@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading Traduction du site de LilyPond - @emph{15 juin 2005} +@uref{about/thanks#website,L'équipe des traducteurs} vous présente +le site de LilyPond en français. Nous travaillons sur la traduction des +pages encore non traduites. Bon surf ! +@newsEnd + + +@newsItem +@subsubheading 2.5.31 for Windows and MacOS - @emph{June 15, 2005} +2.5.31 is now available for both Windows and MacOS X. The Windows +version should now work with embedding TTF fonts, and the MacOS X has +better help functionality. +(@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading 2.5.31 released - @emph{June 15, 2005} +This release has a few bugfixes. In the MacOS X version, ClickEdit has +been renamed to LilyPond, and you can now upgrade your files and +compile them directly from +LilyPond. (@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading 2.5.30 released - @emph{June 10, 2005} +This is (hopefully) the last Release Candidate before 2.6. Give it a +good shake to find those last bugs! (@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading 2.5.29 released - @emph{June 7, 2005} +In this release the documentation also has pictures. In addition, the +Mac version can also read native mac fonts (.dfonts and fonts in +resource forks). (@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading 2.5.27 released - @emph{May 31, 2005} +It has a big bunch of minor bugfixes. This is another release +candidate for version 2.6, which should be released within the next 2 +weeks. Please send a bug report if you find a critical problem with this +release. (@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading Windows and MacOS installers available - @emph{May 26, 2005} +There are now a native, standalone installers for Windows and +MacOS. They also support PDF point & click. (@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading 2.5.26 released - @emph{May 26, 2005} +This release has a couple of small bugfixes. +@newsEnd + + +@newsItem +@subsubheading 2.5.25 released - @emph{May 20, 2005} +This release has many small bugfixes and updates to the +documentation. (@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading 2.5.24 released - @emph{May 12, 2005} +2.5.24 fixes a bunch of bugs; in particular, chord symbols (such as +slashed o) should now work on all platforms. This release has a new +feature: it is now possible to make staves appear in a different order +from the order that they were defined. (@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading 2.5.23 released - @emph{May 6, 2005} +This release has a couple of small bugfixes, and a new feature. It is +now possible to start and stop the StaffSymbol, during a piece of +music, by doing \stopStaff \startStaff. This can be used to produce +Ossia +staves. (@ref{Changes}, +@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading 2.5.22 released - @emph{May 3, 2005} +2.5.22 is a bugfix +release. The most visible improvement is in the PDF : this release +will produce smaller PDF files, with symbols that look better on +screen. +(@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading April 25, 2005 - 2.5.21 released! +2.5.21 has more bugfixes. It also has support for "grid +lines", bar like vertical line, which are aligned with the notes. The +auto-beam engraver was rewritten, so it also works with irregular time +signatures like 5/8. +(@ref{Changes}, +@ref{Old downloads}) +@newsEnd + + +@newsItem +@subsubheading April 18, 2005 +LilyPond 2.5.20 has lots of bugfixes, in particular, MIDI files of +multi-movement pieces don't overwrite each other. Version 2.5.20 also +supports putting arrows on lines, such as glissandi. +More details are in the +the @ref{Changes} +file, or go straight to @ref{Old downloads}. +@newsEnd + + +@newsItem +@subsubheading April 15, 2005 +LilyPond 2.5.19 was released. The command `\epsfile' allows inclusion +of EPS graphics into markup texts and the music function +`\musicDisplay' will display a music expression as indented +Scheme code. Take a look at +the @ref{Changes} +file and @ref{Old downloads}. +@newsEnd + + +@newsItem +@subsubheading April 6, 2005 +2.5.18 is a bugfix release. It has many small cleanups in the +web-based documentation, and many small cleanups all over the +place. @ref{Old downloads} +@newsEnd + + +@newsItem +@subsubheading March 31, 2005 +2.5.17 is out. This release features many small bugfixes. In addition, +it has support for string number notation for guitar. This feature was +sponsored by Gunther Strube. @ref{Old downloads} +@newsEnd + + +@newsItem +@subsubheading March 20, 2005 +LilyPond 2.5.16 is out. This release fixes a few minor but irritating +errors. A Fedora Core 3 binary is also available. +@ref{Old downloads} +@newsEnd + + +@newsItem +@subsubheading March 14, 2005 +LilyPond 2.5.15 is out. This release has clean ups in the SVG output, +and now uses the LilyPond number font for time signatures. It is +now possible to add text before and after music. This can be used to +add verses after a music. Take a look at the @ref{Changes} +file and @ref{Old downloads}! +@newsEnd + + +@newsItem +@subsubheading March 7, 2005 +LilyPond 2.5.14 is out. It is now possible (and in fact, encouraged), +to build LilyPond either without the Kpathsea TeX library or with the +Kpathsea dynamically loaded, but only for the -btex backend. This +means that packages do not have to depend on TeX anymore. With this, +the Windows download size will go down significantly. Take a look at +the @ref{Changes} +file and download @ref{Old downloads}! +@newsEnd + + +@newsItem +@subsubheading March 7, 2005 +LilyPond 2.4.5 is out. This release backports the tieWaitForNote +feature and has support for tetex-3.0. +@ref{Old downloads} +@newsEnd + + +@newsItem +@subsubheading February 28, 2005 +LilyPond 2.5.13 is available for Fedora Core 3. You need to install @uref{http://lilypond.org/download/binaries/Fedora-3/ghostscript-8.15rc3-0.i386.rpm,ESP +Ghostscript 8.15rc3}. Unfortunately, this version of Ghostscript +lacks the IJS dynamic library, which means that it will conflict with +the gimp-print package. You may install it with --nodeps. Use at your +own risk. +@newsEnd + + +@newsItem +@subsubheading February 28, 2005 +LilyPond 2.5.13 is out. This release has Point and click support for +PDF output. You can read more about it @uref{http://lilypond.org/doc/v2.5/Documentation/user/out-www/lilypond/Point-and-click.html,here}. +Take a look at the @ref{Changes} +file and download @ref{Old downloads}! +@newsEnd + + +@newsItem +@subsubheading February 26, 2005 +The @uref{http://lsr.dsi.unimi.it/,Lilypond Snippet +Repository (LSR)} is a searchable database of Lilypond code +snippets. You can add snippets too, so join the LSR project, and +contribute creative ideas for using Lilypond. +@newsEnd + + +@newsItem +@subsubheading February 21, 2005 +LilyPond 2.5.12 is out. The big news is that this release supports +TrueType fonts. This means that it is now possible to use @strong{all} +fonts available via FontConfig. Also, arpeggios may be written out +using ties and individual objects may have colors! Take a look at +the @ref{Changes} +file and @ref{Old downloads}! +@newsEnd + + +@newsItem +@subsubheading February 4, 2005 +LilyPond 2.5.11 is out. In this +release, foreign character sets are now supported in lilypond-book +too, and it is possible to put system separators between systems. +@ref{Old downloads}! +@newsEnd + + +@newsItem +@subsubheading January 31, 2005 +LilyPond 2.5.10 is out. This release +sports as new EPS backend, based on the PS backend. This backend is +used in the new and improved lilypond-book script. +@ref{Old downloads} +@newsEnd + + +@newsItem +@subsubheading January 26, 2005 +LilyPond 2.5.9 is out. This release fixes a couple of annoying +bugs in the direct PS output for piano braces. +@ref{Old downloads} +@newsEnd + + +@newsItem +@subsubheading January 16, 2005 +LilyPond 2.5.8 is out. This +release has many internal code cleanups. In addition, +accuracy of error reporting has been improved. +See the +@uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.3065&content-type=text/vnd.viewcvs-markup, +change log +} and @ref{Old downloads}! +@newsEnd + + +@newsItem +@subsubheading January 11, 2005 +LilyPond 2.5.7 is out. This release has a completely usable +Pango integration for the PS backend. The default font is +Century Schoolbook from the PS font suite. It also has +small updates to the tablature settings by Erlend Aasland, +assorted manual updates by Graham, and an overhaul of the +font code by Werner. +@ref{Old downloads} +and check out the changes in +the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.3048&content-type=text/vnd.viewcvs-markup,ChangeLog}. +@newsEnd + + +@newsItem +@subsubheading January 02, 2005 +LilyPond 2.5.6 was released. This is a "technology preview" +release, which means that it has all kinds of nifty +features, but is not actually usable for producing nicely +printed scores. For this reason, an RPM of this release was +not produced. The PS backend is now completely switched over +to Pango/FontConfig: for -f ps, LilyPond only accepts UTF8 +input, all text fonts are loaded through Pango, the TeX +backend now offloads all metric computations to LaTeX, the +SVG and GNOME backends are broken, most probably. +@ref{Old downloads} +and check out the +changes in the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.3013&content-type=text/vnd.viewcvs-markup,ChangeLog}. +@newsEnd + + +@newsItem +@subsubheading December 28, 2004 +LilyPond 2.5.5 is out. It is the first one to link against +FontConfig and Pango, although it is only available in the "-f +ps" output. The default output format has been changed back TeX +while we stabilize the Pango/FontConfig integration. +@ref{Old downloads} +and check out the changes in +the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev= 1.3000&content-type=text/vnd.viewcvs-markup,ChangeLog}. +@newsEnd + + +@newsItem +@subsubheading December 20, 2004 +LilyPond 2.5.4 is out. This release has some major +brainsurgery in the font handling. As of now, LilyPond loads +the music fonts in OpenType font format using FreeType. +This has made a lot of things simpler, including font +handling for the GNOME backend and SVG backend. +@ref{Old downloads} +and check out the +changes in the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2974&content-type=text/vnd.viewcvs-markup,ChangeLog}. +@newsEnd + + +@newsItem +@subsubheading December 3, 2004 +LilyPond 2.5.3 was released. A new script, `\espressivo' has +been added, for a combination of crescendo and decrescendo +on a single note. In markups, expressions stacked with +`\column', `\center-align', etc, are not grouped with `< ... +>' anymore, but with `@{ ... @}'. LilyPond will now avoid line +breaks that cause long texts to stick outside of the page +staff. Grace notes following a main note, used to be entered +by letting the grace notes follow a skip in a parallel +expression. +@ref{Old downloads} +and +check out the changes in the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2908&content-type=text/vnd.viewcvs-markup,ChangeLog}. +@newsEnd + + +@newsItem +@subsubheading November 26, 2004 +LilyPond 2.5.2 was released. It has several goodies, +including solfa-notation (shaped noteheads), and an easier +mechanism for customizing title, footer and header +layout. Don't forget to rebuild the fonts, as they have been +changed to accomodate the solfa-notation. +@ref{Old downloads} +and check out the changes in +the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2898&content-type=text/vnd.viewcvs-markup,ChangeLog}. +@newsEnd + + +@newsItem +@subsubheading November 20, 2004 +LilyPond 2.5.1 is out. This is an experimental release, +containing some proof-of-concept code for our graphical +layout editor. You can add and remove things from the file, +and the tweaks will still work, as long as the tweaked notes +remain in the place (ie. start at the same time-wise and be +part of the same context). Further attractions are: the +gnome backend now also draws beams and slurs, updates to the +SVG backend, support for the lmodern font set for TeX, +various bugfixes. +@ref{Old downloads} +and check out the changes in +the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2881&content-type=text/vnd.viewcvs-markup,ChangeLog}. +@newsEnd + + +@newsItem +@subsubheading November 12, 2004 +The LilyPond development is OPEN once again! The first +release of the 2.5 series has the following new Features: +Positioning of slurs can now be adjusted manually, Grace +notes are correctly quoted and formatted when using cue +notes, Cue notes can now be created with +@verbatim + +\cueDuring #VOICE-NAME #DIRECTION { MUSIC } + +@end verbatim +Stemlets (short stems over beamed rests) have been added. +In addition, Jan hacked together some highly experimental +code where you can use the mouse to drag and drop objects in +the -f gnome backend. These tweaks can be saved and are +applied to the PS and TeX output as well. +@ref{Old downloads} +and check out +the changes in the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2837&content-type=text/vnd.viewcvs-markup,ChangeLog}. +@newsEnd + + +@newsItem +@subsubheading November 11, 2004 +LilyPond 2.4.2 is out. This release fixes a number of security +problems with --safe, and adds a lot of polishing fixes. +@ref{Old downloads} +@newsEnd + + +@newsItem +@subsubheading November 4, 2004 +LilyPond 2.4.1 is out. This release includes a number of small +fixes that were made to 2.4.0 last week. +@ref{Old downloads} +and check out the changes in +the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2780.2&content-type=text/vnd.viewcvs-markup,ChangeLog}. +@newsEnd + + +@newsItem +@subsubheading October 31, 2004 +LilyPond 2.4.0 was just @uref{announce-v2.4.html,released!} +This new stable version has support for page-layout, +completely rewritten slur formatting and many other +improvements. Read about them in the @ref{Changes} +file. +@ref{Old downloads} +@newsEnd + + +@newsItem +@subsubheading October 29, 2004 +LilyPond 2.3.26 is out. This is another 2.4 release +candidate. This release fixes a number of minor bugs, and +some problems with the conversion scripts. +@ref{Old downloads} +and check out the changes in +the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2773&content-type=text/vnd.viewcvs-markup,ChangeLog}. +@newsEnd + + +@newsItem +@subsubheading October 29, 2004 +2.3.25 is the final release candidate for Lilypond 2.4. +Werner has been overhauling the TeX macros and +lilypond-book. In addition, this release contains an +important fix for raggedbottom page-layout. +@ref{Old downloads} +and check out the changes in +the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2765&content-type=text/vnd.viewcvs-markup,ChangeLog}. +@newsEnd + + +@newsItem +@subsubheading October 27, 2004 +LilyPond 2.3.24 is a further polished 2.4 release candidate. +This release has more improvements by Werner for the TeX +backend, and a bunch of other small fixes. +@ref{Old downloads} +and check out the changes in +the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2752&content-type=text/vnd.viewcvs-markup,ChangeLog}. +@newsEnd + + +@newsItem +@subsubheading October 24, 2004 +LilyPond 2.3.23 has bugfixes in the documentation, lilypond-book and +--preview output. This release can be considered as a release +candidate for LilyPond 2.4. +@ref{Old downloads} +and check out the changes in +the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2742&content-type=text/vnd.viewcvs-markup,ChangeLog}. +@newsEnd + + +@newsItem +@subsubheading October 10, 2004 +LilyPond 2.3.22 fixes a bunch more bugs, to make 2.4 a really +stable release. In addition, it renames the \paper@{@} block to +\layout@{@}. The \bookpaper@{@} block is now called +\paper@{@}. +@ref{Old downloads} +and +check out the changes in the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2709&content-type=text/vnd.viewcvs-markup,ChangeLog}. +@newsEnd + + +@newsItem +@subsubheading October 09, 2004 +LilyPond 2.3.21 is out. It is a serious release candidate for +the next stable release LilyPond. This version has a cleanup +and some small formatting improvements of the slur +code. +@ref{Old downloads} +and check +out the changes in the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2692&content-type=text/vnd.viewcvs-markup,ChangeLog}. +@newsEnd + + +@newsItem +@subsubheading October 02, 2004 +LilyPond 2.3.20 was released. It fixes the biggest problems +with encoding and the TeX backend. As a result, latin1 +characters (like the german SS) show up correctly in the +output once again. Also it has the usual bugfixes and updates +in the documentation. +@ref{Old downloads} +and check out the changes in +the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2674&content-type=text/vnd.viewcvs-markup,ChangeLog}. +@newsEnd + + +@newsItem +@subsubheading September 29, 2004 +The LilyPond development team will be present at the @uref{http://www.nluug.nl/events/sane2004/bazaar/index.html,Free +Software Bazaar} of the NLUUG SANE 2004 conference today. If you +are in the neighborhood, drop by for live contact with the Team or +just a friendly chat. Registration is not required to attend. +@newsEnd + + +@newsItem +@subsubheading September 26, 2004 +LilyPond 2.3.19 is out. It's mainly a bugfix release. +@ref{Old downloads} +and check out the changes +in the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2652&content-type=text/vnd.viewcvs-markup,ChangeLog}. +@newsEnd + + +@newsItem +@subsubheading September 20, 2004 +LilyPond 2.3.18 was released. It has further improvements in +the slur formatting, and a small syntax change: the mode +changing commands (`\chords', `\lyrics', etc.) have been +renamed to `\chordmode', `\lyricmode', etc. The command +`\chords' is an abbreviation for \new ChordNames \chordmode +... `\drums', `\lyrics', `\chords', `\figures' function +similarly. +@ref{Old downloads} +and check out the changes in +the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2614&content-type=text/vnd.viewcvs-markup,ChangeLog}. +@newsEnd + + +@newsItem +@subsubheading September 11, 2004 +LilyPond 2.3.16 was released. It fixes a couple of annoying +bugs, and has an important addition in the slur-formatter. Slurs that +pass note heads much closer than the average distance get an extra +penalty. This fixes a lot of difficult slurring cases. See +input/regression/new-slur for some examples. +Please consider this release as a 3.0 pre-release so try to find as +many bugs as possible. A report including a small .ly example +can be filed at bug-lilypond@@gnu.org +In this case, a bug is defined as something that the current 2.3 does +worse than the latest 2.2 release. We want to be sure that no output +will get uglier by upgrading to 3.0, so that once 3.0 is out, nothing +will hold users back in switching. +@ref{Old downloads} +and check out the changes in +the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2562&content-type=text/vnd.viewcvs-markup,ChangeLog}. +@newsEnd + + +@newsItem +@subsubheading September 10, 2004 +LilyPond 2.3.15 was released. It fixes for some gaffes with +the new vertical spacing engine, has lots of documentation +updates, and has support for landscape output in the direct +postscript output. Also, the types of events quoted with +`\quote' can now be tuned with `quotedEventTypes'. By default, +only notes and rests end up in quotes. +@ref{Old downloads} +and check out the changes in +the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2553&content-type=text/vnd.viewcvs-markup,ChangeLog}. +@newsEnd + + +@newsItem +@subsubheading September 6, 2004 +LilyPond 2.3.14 was released and has exciting features! +LilyPond will try to keep staves at the same distances across a +page, but it will stretch distances to prevent collisions; key +signature cancellations are now printed before the bar line; +different voices that all use "\quote" can now refer to each +other. +@ref{Old downloads} +and check out +the changes in the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2534&content-type=text/vnd.viewcvs-markup,ChangeLog}. +@newsEnd + + +@newsItem +@subsubheading August 29, 2004 +LilyPond now has a Documentation +Editor, Graham Percival. From now on, he will oversee that +useful information flows from the mailiing list into the +manual. Also, if there are unclear sections in the manual, +let him know via one of the mailing lists. +As a start of his career, he worked to transform the +"Templates" section of the website into a readable and comprehensive +chapter of the user manual. +A lot of cheers for Graham! +@newsEnd + + +@newsItem +@subsubheading August 29, 2004 +LilyPond 2.3.13 was released. The new slur code was +improved, scripts can be made to avoid slurs, by setting +inside-slur to #f. It is no longer necessary to instantiate +"up" and "down" staves separately when using +\autochange. Jurgen Reuter refreshed the logic around +mensural flags, so they are adjusted for staff lines once +again. +@ref{Old downloads} +and +check out the changes in the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2520&content-type=text/vnd.viewcvs-markup,ChangeLog}. +@newsEnd + + +@newsItem +@subsubheading August 24, 2004 +LilyPond 2.2.6 fixes a few minor issues, among others, the +disappearing metronome mark. +@ref{Old downloads} +and check out the changes in +the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2000.2.33&content-type=text/vnd.viewcvs-markup,ChangeLog}. +@newsEnd + + +@newsItem +@subsubheading August 23, 2004 +LilyPond 2.3.12 is out. This release has a lot of fixes and +a new feature: there is now support for putting two slurs on +chords, both above and below. This is switched on with the +`doubleSlurs' property. +@ref{Old downloads} +and check out the changes in +the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2489&content-type=text/vnd.viewcvs-markup,ChangeLog}. +@newsEnd + + +@newsItem +@subsubheading August 3, 2004 +LilyPond 2.3.11 is out. This release basically is 2.3.10 with a few +annoying bugs fixed. +@ref{Old downloads} +and check out +the changes in the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2449&content-type=text/vnd.viewcvs-markup,ChangeLog}. +@newsEnd + + +@newsItem +@subsubheading August 1, 2004 +LilyPond 2.3.10 is out. This release has a major clean-up of the +input/test/ directory. Many examples have been moved to the regression +test or manual, and the superfluous or outdated ones have been +removed. The directory has gone from 146 examples to 72 examples. That +means that we're halfway cleaning it out. Incidentally, the manual +has gone from 200 to 220 pages. New features: +@itemize +@item +Running trills now have their own spanner and event. They are +started and stopped with \startTrillSpan and \stopTrillSpan +@item +There is a new markup command `\postscript' that takes a string +that is dumped as verbatim PostScript +@end itemize + +@ref{Old downloads} +and check out +the changes in the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2435&content-type=text/vnd.viewcvs-markup,ChangeLog}. +@newsEnd + + +@newsItem +@subsubheading July 30, 2004 +LilyPond 2.3.9 is out. The important change is that lilypond +now once-again directly runs the binary. The old wrapper script has +been renamed to lilypond-latex.py, and should only be used for legacy +projects. The recommended route is either using lilypond directly +(with \book, you can have multiple movements within one document), or +to run lilypond-book with a LaTeX wrapper file. +This release also fixes a bunch of small errors. I now consider +LilyPond feature complete for a 3.0 release. Next on the TODO list is +updating the manual, and after that's done we can release 3.0. The +projected date for this to happen is in about a month. +@ref{Old downloads} +and check out +the changes in the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2416&content-type=text/vnd.viewcvs-markup,ChangeLog}. +@newsEnd + + +@newsItem +@subsubheading July 23, 2004 +Lilypond 2.3.8 fixes a few minor bugs in the new slur code, +and has rewritten support for ledger lines. Now, in tight +situations, ledger lines will be shortened so they stay +separate. This also required a cleanup of the Ambitus +implementation. +@ref{Old downloads} +and check out the changes in the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2395&content-type=text/vnd.viewcvs-markup,ChangeLog}. +@newsEnd + + +@newsItem +@subsubheading July 19, 2004 +LilyPond 2.3.7 was released and has new exciting features! +The slur formatting has been rewritten. The new slur code +works similar to the Beam formatter: scores are assigned for +all esthetic components of a slur. A large number of +combinations for begin and end points is then tried out. +Slurs will now also take into account collisions with staff +lines, scripts (like staccato and accent) and accidentals. In +the LilyPond emacs mode, the `|' will now display the current +beat within the measure. +@ref{Old downloads} +and check out the changes in +the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2383&content-type=text/vnd.viewcvs-markup,ChangeLog}. +@newsEnd + + +@newsItem +@subsubheading July 15, 2004 +LilyPond 2.2.5 was released. It has a few bug fixes from +2.3.x. +@ref{Old downloads} +and check +out the changes in the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2000.2.28&content-type=text/vnd.viewcvs-markup,ChangeLog}. +@newsEnd + + +@newsItem +@subsubheading July 11, 2004 +An introductory article on LilyPond appeared on @uref{http://www.linuxjournal.com/article.php?sid=7657&mode=thread&order=0,Linux +Journal}. +@newsEnd + + +@newsItem +@subsubheading July 5, 2004 +LilyPond 2.3.6 was released. This release has more updates +for the Fret diagram code (thanks, Carl!), fixes a bunch of +bugs, including a serious one that trashed a lot of beam +formatting, and was also present in the 2.2 series. +@ref{Old downloads} +and check out the changes +in the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2306&content-type=text/vnd.viewcvs-markup,ChangeLog}. +@newsEnd + + +@newsItem +@subsubheading July 5, 2004 +LilyPond 2.2.4 was released. It is mainly a bug fix +release. +@ref{Old downloads} +and +check out the changes in the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2000.2.23&content-type=text/vnd.viewcvs-markup,ChangeLog}. +@newsEnd + + +@newsItem +@subsubheading June 25, 2004 +LilyPond 2.3.5 has numerous small bugfixes and cleanups, and +features more work in the experimental GNOME output +module. Adventurous hackers can check the instructions at +scm/output-gnome.scm and try to run +buildscripts/guile-gnome.sh to see what the fuss is all about. +Carl Sorensen also provided us with more patches to the +fret-diagram output. Check out the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2293&content-type=text/vnd.viewcvs-markup,ChangeLog} +and +@ref{Old downloads}. +@newsEnd + + +@newsItem +@subsubheading June 20, 2004 +LilyPond 2.2.3 has a turkish translation and fixes a few minor +bugs that were reported over the past month. Check out the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2000.2.16&content-type=text/vnd.viewcvs-markup,ChangeLog} for a full description and +@ref{Old downloads}. +@newsEnd + + +@newsItem +@subsubheading June 13, 2004 +LilyPond 2.3.4 further improves the output backends. As a +result, manual page-breaks, multiple output formats and putting +@code{\score} into markups now works. Check out the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2242&content-type=text/vnd.viewcvs-markup,ChangeLog} +and +@ref{Old downloads}. +@newsEnd + + +@newsItem +@subsubheading May 31, 2004 +LilyPond 2.3.3 has many internal changes relating to the output +backend (PostScript) and page-layout. In addition, it contains a few +bugfixes for recently reported problems. Check out the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2207&content-type=text/vnd.viewcvs-markup,ChangeLog} +and +@ref{Old downloads}. +@newsEnd + + +@newsItem +@subsubheading May 31, 2004 +LilyPond 2.2.2 is out. It has a number of small bugfixes, so upgrade +if any of these errors concern you. Check out the @uref{http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/lilypond/lilypond/ChangeLog?rev=1.2000.2.9,ChangeLog} +or head straight to the +@ref{Old downloads}. +@newsEnd + + +@newsItem +@subsubheading May 26, 2004 +LilyPond 2.3.2 is out. This release has a lot of internal +changes relating to page layout, but also sports experimental +fret-diagram code. Check out the @ref{Changes} or head straight to the +@ref{Old downloads}. +@newsEnd + + +@newsItem +@subsubheading May 9, 2004 +LilyPond 2.3.1 is out. This release has many new and cool +features. Check out the @ref{Changes} or head straight to the +@ref{Old downloads}. +@newsEnd + + +@newsItem +@subsubheading May 4, 2004 +Help LilyPond get better, and join in on LilyPond +development! This +@uref{devel/participating/call-for-help.html,call for +help} was posted on the mailing list a month ago, and we +are still looking for a Release Meister, Code Janitor, +Newsletter editor and a Writer for implementation +Documentation. Of course, any other help is also welcome! +@newsEnd + + +@newsItem +@subsubheading May 3, 2004 +LilyPond 2.2.1 has been released. It fixes a handful of bugs. +@ref{Old downloads}. +@newsEnd + + +@newsItem +@subsubheading April 17, 2004 +LilyPond 2.2.0 is now available +on Windows, and should find its way to the Cygwin mirrors +soon. +@newsEnd + + +@newsItem +@subsubheading April 12, 2004 +LilyPond 2.3.0 is the first release +in the 2.3 cycle. The focus for 2.3 is page layout, so +instrumentalists can force parts to have page breaks at sane turning +points. This release is @emph{experimental}; expect things to break! +More info in the @ref{Changes}. +@ref{Old downloads}. +@newsEnd + + +@newsItem +@subsubheading April 8, 2004 +A French article on the new LilyPond +release appeared on @uref{http://linuxfr.org/2004/04/08/15968.html,linuxfr.org}. +@newsEnd + + +@newsItem +@subsubheading April 8, 2004 +Binaries for LilyPond 2.2.0 are available for +MacOS X, Slackware, Mandrake and Debian Woody. +@ref{Old downloads} +@newsEnd + + +@newsItem +@subsubheading April 1, 2004 +LilyPond 2.2.0 is out! This new stable version has +completely revamped support for for orchestral score +formatting, cue notes, font size management, lyric formatting, +drum notation/playback and document integration. Read about it in +the @uref{announce-v2.2.html,announcement} or skip to the +@ref{Old downloads}. +@newsEnd + + +@newsItem +@subsubheading March 31, 2004 +LilyPond 2.1.37 has build fixes for Cygwin and SUSE, +bugfixes for part-combining and chord tremolos and even more +documentation polish. This should be the final release +candidate; expect only regression bugs to be fixed before +2.2. +@ref{Old downloads}. +@newsEnd + + +@newsItem +@subsubheading March 30, 2004 +LilyPond 2.1.36 has many fixes in +the user manual. +@ref{Old downloads}. +@newsEnd + + +@newsItem +@subsubheading March 28, 2004 +LilyPond 2.1..35 fixes a slew of +bugs, and has the @code{raggedlast} option, which causes +paragraph like line breaking for scores. More info in the +@ref{Changes}. +@ref{Old downloads} +@newsEnd + + +@newsItem +@subsubheading March 22, 2004 +LilyPond 2.1.34 fixes minor bugs, and has more rewriting. +@ref{Old downloads}. +@newsEnd + + +@newsItem +@subsubheading March 21, 2004 +LilyPond 2.1.33 fixes a serious bug, and a few other +irritations. +@ref{Old downloads} +@newsEnd + + +@newsItem +@subsubheading March 20, 2004 +LilyPond 2.1.32 has more rewriting +in the user manual. There is also an experimental +implementation of optimal page breaking (Postscript backend +only). +@ref{Old downloads}. +@newsEnd + + +@newsItem +@subsubheading March 15, 2004 +LilyPond 2.1.31 is out. It has fixes the alignment of bass +figures and spurious dynamic warnings in MIDI. New +attractions include rewritten font-selection routines. See +the +@ref{Changes} and +@ref{Old downloads}. +@newsEnd + + +@newsItem +@subsubheading March 14, 2004 +The +@uref{http://linuxmusician.com/index.php?option=articles&task=viewarticle&artid=10,linuxmusician.com interview} made the +@uref{http://slashdot.org/article.pl?sid=04/03/13/2054227&mode=thread&tid=141&tid=188,slashdot +frontpage!}. +@newsEnd + + +@newsItem +@subsubheading March 11, 2004 +@uref{http://linuxmusician.com,linuxmusician.com} is +running an +@uref{http://linuxmusician.com/index.php?option=articles&task=viewarticle&artid=10,interview} +with Han-Wen Nienhuys and Jan Nieuwenhuizen, the main +authors of LilyPond. +@newsEnd + + +@newsItem +@subsubheading March 11, 2004 +LilyPond 2.1.30 has editorial fixes for the manual, and +experimental support for page layout in the PostScript +backend. See the +@ref{Changes} and +@ref{Old downloads}. +@newsEnd + + +@newsItem +@subsubheading March 9, 2004 +LilyPond 2.1.29 fixes a couple of MIDI bugs, and has +experimental support for producing titles with +@code{markup}. +@newsEnd + + +@newsItem +@subsubheading February 29, 2004 +In LilyPond 2.1.28 Scheme property functions may be used +argument to @code{set!}. In addition, parts of the manual +have been proofread and corrected in this release. See the +@ref{Changes} and +@ref{Old downloads}. +@newsEnd + + +@newsItem +@subsubheading February 24, 2004 +LilyPond 2.1.27 takes into account instrument transpositions +when quoting other voices. This release also fixes a number +of lyrics related bugs. See the +@ref{Changes} and +@ref{Old downloads}. +@newsEnd + + +@newsItem +@subsubheading February 23, 2004 +LilyPond 2.1.26 has a new, experimental feature for quoting +other voices in instrumental parts. This can be used to +produce cue notes. More information in the +@ref{Changes}. +@ref{Old downloads} +@newsEnd + + +@newsItem +@subsubheading February 18, 2004 +LilyPond 2.1.25 fixes many bugs, and changes the conventions +for altering accidental rules. +@ref{Old downloads} +@newsEnd + + +@newsItem +@subsubheading February 16, 2004 +LilyPond 2.1.24 has a big +internal rewrite. One of its practical consequences is that +@code{\with} now also works with @code{Score} +contexts. Further 2.1.23, which was not announced here, +fixes a few bugs caused by the change of @code{\property} +syntax and has updates in the Program Reference document. +More information in the +@ref{Changes}. +@ref{Old downloads} +@newsEnd + + +@newsItem +@subsubheading February 13, 2004 +LilyPond 2.1.22 has a +simplification of the @code{\property} syntax: it is +shorter and more consistent now. More information in the +@ref{Changes}. +@ref{Old downloads} +@newsEnd + + +@newsItem +@subsubheading February 12, 2004 +In LilyPond 2.1.21, output +tweaks can be done at multiple levels of the context +hierarchy. In addition, it has a bunch of bugfixes, +improvements in the documentation. More information in the +@ref{Changes}. +@ref{Old downloads} +@newsEnd + + +@newsItem +@subsubheading February 9, 2004 +LilyPond 2.1.20 has MIDI +output for drums. It also sports a completely rewritten +lilypond-book script, which is cleaner, shorter, and faster. +It also has a large number of bugfixes. +More information in the +@ref{Changes}. +@ref{Old downloads} +@newsEnd + + +@newsItem +@subsubheading February 5, 2004 +LilyPond 2.1.19 has rewritten +support for drum notation. This release also makes some +long-standing cleanups: the removal of @code{Thread} (all +functionality is now moved into @code{Voice}) and Lyrics +(functionality moved to @code{LyricsVoice}) context. +More information in the +@ref{Changes}. +@ref{Old downloads} +@newsEnd + + +@newsItem +@subsubheading February 4, 2004 +LilyPond 2.1.18 is out. This +release has the new part-combiner installed by default, and a +similar implementation of @code{autochange}. More information +in the +@ref{Changes}. +@ref{Old downloads} +@newsEnd + + +@newsItem +@subsubheading February 2, 2004 +LilyPond 2.1.17 is out. It adds texts +(solo, a due) for the part combiner. It also reinstates the +@code{--safe} option which prevents havoc by Scheme exploits. More +information in the +@ref{Changes}. +@newsEnd + + +@newsItem +@subsubheading January 28, 2004 +LilyPond 2.1.16 is out; its main feature +is that it fixes the autobeams gaffe of 2.1.15. The part-combiner +has been tested successfully on larger pieces. In the near future, +expect more part-combining eye-candy. +More information in +the +@ref{Changes}. +@ref{Old downloads} +@newsEnd + + +@newsItem +@subsubheading January 26, 2004 +LilyPond 2.1.15 further improves the part-combiner, and fixes many +bugs, among others in pedal brackets and finger positioning. +More information in +the +@ref{Changes}. @ref{Old downloads} +@newsEnd + + +@newsItem +@subsubheading January 21, 2004 +LilyPond 2.1.14 +has the first release of the new part combiner. If you have scores that +use part-combining, please consider giving it a test-run. In addition +many bugs relating to mixed staff sizes have been fixed. +More information in +the +@ref{Changes}. @ref{Old downloads} +@newsEnd + + +@newsItem +@subsubheading January 20, 2004 +The lilypond.org domain has been moved to a new server. This +will result in better connectivity and more bandwidth. Due +to security concerns, the new server does not offer FTP +access, but only HTTP downloads. +@newsEnd + + +@newsItem +@subsubheading January 20, 2004 +LilyPond 2.1.13 fixes a small but +nasty bug in side-positioning placement, and some bugs in +tuplet, tie and accidental formatting. This release contains +rudimentary work on a new part-combiner. +@ref{Old downloads} +@newsEnd + + +@newsItem +@subsubheading January 19, 2004 +LilyPond 2.1.12 fixes many bugs +and improves formatting of ottava brackets. More information in +the +@ref{Changes}. @ref{Old downloads} +@newsEnd + + +@newsItem +@subsubheading January 18, 2004 +LilyPond 2.1.11 is now also +available for Windows! For downloading, go +@uref{http://www.inf.bme.hu/~berti/lilypond/,here}. +@newsEnd + + +@newsItem +@subsubheading January 17, 2004 +In 2.1.11, the mechanism for +setting staff size and page is much simplified. In addition +there are improvements in the notehead shape, and there is +balloon help! +More information in the +@ref{Changes}. @ref{Old downloads} +@newsEnd + + +@newsItem +@subsubheading January 16, 2004 +LilyPond 2.1.10 has a load of +bugfixes and a shorter syntax for octave checks. More +information in the +@ref{Changes}. @ref{Old downloads} +@newsEnd + + +@newsItem +@subsubheading January 13, 2004 +LilyPond 2.1.9 has a new mechanism +for adding lyrics to melodies. It is now possible to have +different melismatic variations for each stanza. More +information in the +@ref{Changes}. @ref{Old downloads} +@newsEnd + + +@newsItem +@subsubheading January 9, 2004 +LilyPond 2.1.8 has an important new +feature: it is now possible to use @code{\property} to tune +the appearance of spanning objects like @code{StaffSymbol} and +@code{SystemStartBrace}. In addition, contexts may be +modified with @code{\remove} and @code{\consists} for +individual music expressions. +More information in the +@ref{Changes}. @ref{Old downloads} +@newsEnd + + +@newsItem +@subsubheading January 7, 2004 +An update to the stable branch, +version 2.0.2, was released today. It contains a couple of +minor bugfixes. @ref{Old downloads} +@newsEnd + + +@newsItem +@subsubheading January 6, 2004 +LilyPond 2.1.7 continues to +improve the layout of the Schubert test piece; this release +focuses on dot placement and multi measure rests centering. +More information in the +@ref{Changes} and download @uref{install/#2.1,here}. +@newsEnd + + +@newsItem +@subsubheading January 4, 2004 +LilyPond 2.1.6 continues to +improve the layout of lyrics. More +information in the +@uref{@@DOC@@v2.1/Documentation/topdocs/out-www/NEWS.html,release +notes} and download @uref{install/#2.1,here}. +@newsEnd + + +@newsItem +@subsubheading January 2, 2004 +in LilyPond 2.1.5, the lyric +alignment is completely revamped, and now matches my Edition +Peters version of the Schubert song Sängers Morgen. More +information in the +@ref{Changes} and download @uref{install/#2.1,here}. +@newsEnd + + +@newsItem +@subsubheading December 30, 2003 +LilyPond 2.1.4 is released. Font shapes and linethickness +are now truly different for different staff sizes, thus lending +an engraved look to scores printed in smaller type too. See the +@ref{Changes} and download @uref{install/#2.1,here}. +@newsEnd + + +@newsItem +@subsubheading December 23, 2003 +LilyPond 2.1.3 released. +Interpreting and formatting is now done while parsing the +file. This allows for Scheme manipulation of music, and could +be used to implement experimental MusicXML output (volunteers +to implement this are welcome!) See the +@ref{Changes} and download @uref{install/#2.1,here}. +@newsEnd + + +@newsItem +@subsubheading December 17, 2003 +LilyPond 2.1.2 released. This +release has a new mechanism for setting font sizes, which +combines different font design sizes and continuous font +scaling. See the +@ref{Changes} and download @uref{install/#2.1,here}. +@newsEnd + + +@newsItem +@subsubheading December 16, 2003 +LilyPond 2.1.1 released. This +release wraps together all the small fixes made during +Han-Wen's absence. See the +@ref{Changes} and download @uref{install/#2.1,here}. +@newsEnd + + +@newsItem +@subsubheading October 11, 2003 +LilyPond 2.1.0 released. See the +@ref{Changes} and +download @uref{install/#2.1,here}. +@newsEnd + + +@newsItem +@subsubheading October 11, 2003 +LilyPond 2.0.1 binaries for Mandrake 9.1 +available from +@uref{http://rpm.nyvalls.se/sound9.1.html,here} +thanks to Heikki Junes. +@newsEnd + + +@newsItem +@subsubheading October 9, 2003 +LilyPond 2.0.1 binaries for Slackware 9 +available from @uref{install/#2.0,here}, +thanks to Ricardo Hoffman. +@newsEnd + + +@newsItem +@subsubheading October 5, 2003 +LilyPond 2.0.1 binaries are available for Macos X, many thanks to +Matthias Neeracher. +@ref{Old downloads} +@newsEnd + + +@newsItem +@subsubheading October 4, 2003 +LilyPond 2.0.1 binaries are available for Windows (Cygwin +version 1.5). +@ref{Old downloads}. Thanks to Bertalan +Fodor, our new Cygwin maintainer! +@newsEnd + + +@newsItem +@subsubheading September 29, 2003 +LilyPond 2.0.1 is released. It +contains minor bugfixes. +See the @ref{Changes} +or download @uref{install/#2.0,here} directly. +@newsEnd + + +@newsItem +@subsubheading September 27, 2003 +PlanetCCRMA has been updated to include LilyPond 2.0. Go +@uref{http://www-ccrma.stanford.edu/planetccrma/software/soundapps.html#lilypond, +here} to download. Thanks to Fernando Pablo +Lopez-Lezcano! +@newsEnd + + +@newsItem +@subsubheading September 24, 2003 +LilyPond 2.0.0 is released. The +focus of this release is cleanups of the syntax: entering music is +now much easier and more efficient. Read the announcement +@uref{announce-v2.0.html,here}, or go to the +@uref{install/#2.0,download page} directly. +@newsEnd + + +@newsItem +@subsubheading September 24, 2003 +LilyPond 1.9.10 is released. This is +the final LilyPond 2.0 release candidate. Check +the @ref{Changes} and +download @uref{install/,here}. +@newsEnd + + +@newsItem +@subsubheading September 23, 2003 +LilyPond 1.9.9 is released. This is +the second LilyPond 2.0 prerelease. Check +the @ref{Changes} and +download @uref{install/,here}. +@newsEnd + + +@newsItem +@subsubheading September 19, 2003 +LilyPond 1.9.8 is released. This is +the first LilyPond 2.0 prerelease. Check +the @ref{Changes} and +download @uref{install/,here}. +@newsEnd + + +@newsItem +@subsubheading September 17, 2003 +LilyPond 1.9.7 is released. LilyPond +now has support for quarter tone accidentals! +@ref{Old downloads} +@newsEnd + + +@newsItem +@subsubheading September 16, 2003 +LilyPond 1.9.6 is released. +It has a lot of minor fixes and updates. +@ref{Old downloads} +@newsEnd + + +@newsItem +@subsubheading September 10, 2003 +LilyPond 1.9.5 is released. +With this release, the 1.9 branch is feature +complete. After some stabilization and documentation work, 2.0 +will be available in a few weeks. +@ref{Old downloads} +@newsEnd + + +@newsItem +@subsubheading September 9, 2003 +LilyPond 1.8.2 is released. This +release fixes a couple of minor bugs. +@ref{Old downloads} +@newsEnd + + +@newsItem +@subsubheading September 7, 2003 +LilyPond 1.8 binaries are available +for Windows (Cygwin version 1.5). +@ref{Old downloads} +@newsEnd + + +@newsItem +@subsubheading August 31, 2003 +LilyPond 1.9.4 is released. +@emph{This is an experimental release}: read the +@uref{http://mail.gnu.org/archive/html/lilypond-devel/2003-08/msg00133.html,announcement} +before trying. +@newsEnd + + +@newsItem +@subsubheading August 31, 2003 +LilyPond 1.8 binaries for slackware +available. Get them @uref{install/,here}. +@newsEnd + + +@newsItem +@subsubheading August 31, 2003 +LilyPond 1.9.3 is released. This +release supports tagging for music version control, and has better +fingering placement flexibility. Read the +@ref{Changes} and get it @uref{download#1.9,here}. +@newsEnd + + +@newsItem +@subsubheading August 28, 2003 +LilyPond 1.9.2 is released. Read the +@ref{Changes} and get it +@uref{download#1.9,here}. +@newsEnd + + +@newsItem +@subsubheading August 26, 2003 +LilyPond 1.9.1 is released. Read the +@ref{Changes} and get it +@uref{download#1.9,here}. +@newsEnd + + +@newsItem +@subsubheading August 25, 2003 +The LilyPond 1.9 development release is available. Read the +@ref{Changes} and get it +@uref{download#1.9,here}. +@newsEnd + + +@newsItem +@subsubheading August 25, 2003 +Mandrake 9.1 RPMS available, get them +@uref{http://rpm.nyvalls.se/sound9.1.html,here}. +@newsEnd + + +@newsItem +@subsubheading August 21, 2003 +LilyPond 1.8.1 was released. Get it @uref{install/,here}, or +read the @ref{Changes}. +@newsEnd + + +@newsItem +@subsubheading August 18, 2003 +PlanetCCRMA (eg. RedHat 8 and 9) +has been updated to 1.8. +Download @uref{http://www-ccrma.stanford.edu/planetccrma/software/soundapps.html#lilypond,here.} +@newsEnd + + +@newsItem +@subsubheading August 7, 2003 +LilyPond 1.8 is released. Read +@ref{Changes} and get it @uref{install/,here}. +@newsEnd + + +@newsItem +@subsubheading August 7, 2003 +New website went live! +@newsEnd + + +@newsItem +@subsubheading August 6, 2003 +Announced new website. +@newsEnd + + +@newsItem +@subsubheading August 1, 2003 +LilyPond 1.7.30 released. +@newsEnd + + +@newsItem +@subsubheading July 30, 2003 +Website: present @uref{about/automated-engraving/index.html,treatise} +about music engraving, music printing software, and LilyPond's +unique faculties. +@newsEnd + + +@newsItem +@subsubheading July 29, 2003 +1.7.29 - release candidate 4 has been released. Packages for +Red Hat, Debian, Cygwin are @uref{install/,available}. +@newsEnd + diff --git a/Documentation/gpl-2.0.itexi b/Documentation/gpl-2.0.itexi new file mode 100644 index 0000000000..38aa91822b --- /dev/null +++ b/Documentation/gpl-2.0.itexi @@ -0,0 +1,389 @@ +@c The GNU General Public License. +@center Version 2, June 1991 + +@c This file is intended to be included within another document, +@c hence no sectioning command or @node. + +@display +Copyright @copyright{} 1989, 1991 Free Software Foundation, Inc. +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + +Everyone is permitted to copy and distribute verbatim copies +of this license document, but changing it is not allowed. +@end display + +@heading Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software---to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + +@heading TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + +@enumerate 0 +@item +This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The ``Program'', below, +refers to any such program or work, and a ``work based on the Program'' +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term ``modification''.) Each licensee is addressed as ``you''. + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + +@item +You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + +@item +You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + +@enumerate a +@item +You must cause the modified files to carry prominent notices +stating that you changed the files and the date of any change. + +@item +You must cause any work that you distribute or publish, that in +whole or in part contains or is derived from the Program or any +part thereof, to be licensed as a whole at no charge to all third +parties under the terms of this License. + +@item +If the modified program normally reads commands interactively +when run, you must cause it, when started running for such +interactive use in the most ordinary way, to print or display an +announcement including an appropriate copyright notice and a +notice that there is no warranty (or else, saying that you provide +a warranty) and that users may redistribute the program under +these conditions, and telling the user how to view a copy of this +License. (Exception: if the Program itself is interactive but +does not normally print such an announcement, your work based on +the Program is not required to print an announcement.) +@end enumerate + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + +@item +You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + +@enumerate a +@item +Accompany it with the complete corresponding machine-readable +source code, which must be distributed under the terms of Sections +1 and 2 above on a medium customarily used for software interchange; or, + +@item +Accompany it with a written offer, valid for at least three +years, to give any third party, for a charge no more than your +cost of physically performing source distribution, a complete +machine-readable copy of the corresponding source code, to be +distributed under the terms of Sections 1 and 2 above on a medium +customarily used for software interchange; or, + +@item +Accompany it with the information you received as to the offer +to distribute corresponding source code. (This alternative is +allowed only for noncommercial distribution and only if you +received the program in object code or executable form with such +an offer, in accord with Subsection b above.) +@end enumerate + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + +@item +You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + +@item +You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +@item +Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + +@item +If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + +@item +If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + +@item +The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and ``any +later version'', you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + +@item +If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + +@iftex +@heading NO WARRANTY +@end iftex +@ifinfo +@center NO WARRANTY + +@end ifinfo + +@item +BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM ``AS IS'' WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + +@item +IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. +@end enumerate + +@iftex +@heading END OF TERMS AND CONDITIONS +@end iftex +@ifinfo +@center END OF TERMS AND CONDITIONS + +@end ifinfo + +@page +@heading Appendix: How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the ``copyright'' line and a pointer to where the full notice is found. + +@smallexample +@var{one line to give the program's name and a brief idea of what it does.} +Copyright (C) @var{yyyy} @var{name of author} + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +@end smallexample + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + +@smallexample +Gnomovision version 69, Copyright (C) @var{year} @var{name of author} +Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. +This is free software, and you are welcome to redistribute it +under certain conditions; type `show c' for details. +@end smallexample + +The hypothetical commands @samp{show w} and @samp{show c} should show +the appropriate parts of the General Public License. Of course, the +commands you use may be called something other than @samp{show w} and +@samp{show c}; they could even be mouse-clicks or menu items---whatever +suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a ``copyright disclaimer'' for the program, if +necessary. Here is a sample; alter the names: + +@example +Yoyodyne, Inc., hereby disclaims all copyright interest in the program +`Gnomovision' (which makes passes at compilers) written by James Hacker. + +@var{signature of Ty Coon}, 1 April 1989 +Ty Coon, President of Vice +@end example + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. diff --git a/Documentation/macros.itexi b/Documentation/macros.itexi index 7a4828dd6a..38609b25ef 100644 --- a/Documentation/macros.itexi +++ b/Documentation/macros.itexi @@ -431,3 +431,47 @@ @end macro @end iftex + +@c ***** Macros specific to the web site ***** + +@ifset web + +@c LEGALESE + +@macro logoLegalLinux +Tux the Linux Penguin was created by +@uref{mailto:lewing@@isc.tamu.edu, lewing@@isc.tamu.edu} with +@uref{http://www.isc.tamu.edu/~lewing/gimp/, the Gnu Image +Manipulation Program}. + +@end macro + +@macro logoLegalFreeBSD +The FreeBSD logo is a registered trademark of +@uref{http://www.freebsd.org/, The FreeBSD Foundation}. + +@end macro + +@macro logoLegalMacOSX +The @qq{X image} is not a registered trademark. It was created by +@uref{http://en.wikipedia.org/wiki/User:Nihonjoe, Nihonjoe} and +@uref{http://en.wikipedia.org/wiki/User:CyberSkull, CyberSkull}, and +placed under the GNU Free Documentation License version 1.2 or later. +We found the image on +@uref{http://commons.wikimedia.org/wiki/File:Mac_OS_X_Userbox_X.png, +this Wikipedia Commons page}. + +@end macro + +@macro logoLegalWindows +The @qq{four colored rectangles image} is not a registered +trademark. It was created by +@uref{http://en.wikipedia.org/wiki/User:Rohitbd, Rohitbd} and +placed under the GNU Free Documentation License version 1.2. We +found the image on +@uref{http://commons.wikimedia.org/wiki/Category:Microsoft_Windows_logos, +this Wikipedia Commons page}. + +@end macro + +@end ifset diff --git a/Documentation/pictures/VTlogo_ITF.png b/Documentation/pictures/VTlogo_ITF.png new file mode 100644 index 0000000000..bb45adfbb4 Binary files /dev/null and b/Documentation/pictures/VTlogo_ITF.png differ diff --git a/Documentation/pictures/annotated-demo.svg b/Documentation/pictures/annotated-demo.svg new file mode 100644 index 0000000000..acc7beea91 --- /dev/null +++ b/Documentation/pictures/annotated-demo.svg @@ -0,0 +1,7437 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +  + + + + + +  + + + та + + + Nacht. + + +  + + +  + + + + + +  + + + + + +  + + + + + + + + + + + + + + +  + + +  + + +  + + +  + + + + + + + + + cresc. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +  + + +  + + +  + + +  + + +  + + +  + + + + + +  + + + + + +  + + + + + +  + + + + + +  + + + + + +  + + + + + +  + + + ほへ + + + ner + + +  + + + + + +  + + + + + +  + + +  + + + + + +  + + + та + + + + + + Schö + + +  + + +  + + + + + +  + + +  + + + + + +  + + + + + + + + + + + + + + + + + + + + + + + +  + + +  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +  + + + ちり + + + Tag, + + +  + + + + + +  + + + + + +  + + + + + + + + +  + + + ぬる + + + + + + du + + + + + + + + + + + +  + + +  + + + + + +  + + + + + + + + + + + +  + + +  + + + + + +  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +  + + +  + + +  + + +  + + + f + + +  + + + Жъл + + + bist + + + + + + + + +  + + + + + +  + + + + + +  + + +  + + + + + +  + + + дю + + + + + + er + + +  + + + + + +  + + +  + + + + + +  + + +  + + + + + +  + + + + + + + + +  + + + + + + + + + + + + + + + + + +  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +  + + + + + + ля + + + + + + wacht. + + +  + + +  + + + + + +  + + + + + +  + + +  + + +  + + +  + + +  + + + + + +  + + + + + +  + + +  + + + + + +  + + +  + + +  + + +  + + +  + + +  + + + + + +  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 6 + + +  + + +  + + +  + + +  + + +  + + + + + + + + +  + + +  + + + + + + + + +  + + +  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +  + + + + + + + + +  + + +  + + +  + + +  + + +  + + + + + + та + + + Licht! + + + + + +  + + + + + +  + + + + + + + + +  + + + + + +  + + +  + + +  + + + та + + + Aus + + +  + + +  + + +  + + + + + + + + +  + + +  + + + + + +  + + +  + + + + + + + + +  + + +  + + +  + + + ほへど + + + + + + gol + + +  + + + + + + + + +  + + +  + + + + + + nen + + +  + + +  + + + + + + + + + + + + de + + +  + + +  + + +  + + +  + + + + + +  + + +  + + + + + + + + + + + + + + + + + +  + + + + + + + + +  + + +  + + +  + + + ぬるを + + + + + + Pfor + + +  + + +  + + + + + +  + + + + + +  + + + + + +  + + +  + + +  + + + ちり + + +  + + + + + +  + + + + + + + + + + + +  + + + + + + + + +  + + + + + +  + + + + + + + + + + + +  + + +  + + + дю + + + brichst + + + + + + + + + + + + + + + + + + + + +  + + + + + + + + +  + + + + + +  + + +  + + + Жъл + + + ten + + +  + + + + + +  + + + + + + + + + + + +  + + + + + +  + + +  + + +  + + +  + + + + + +  + + + + + + + + + + + +  + + +  + + +  + + +  + + +  + + +  + + +  + + +  + + + זה + + + + + + sie + + +  + + + + + +  + + + + + + + + +  + + + + + +  + + +  + + +  + + +  + + + ля + + + + + + du + + + + + + + + +  + + + + + + + + + + + + + + +  + + +  + + + はに + + + + + + durch + + + + + + + + + + + + + + + + + + + + +  + + +  + + + + + + いろ + + + gend + + +  + + + + + + + + + + + + + + + + + + + + +  + + +  + + +  + + +  + + + כיף + + + die + + + + + + + + +  + + + + + +  + + + + + + + + +  + + + + + +  + + +  + + +  + + +  + + +  + + +  + + + + + +  + + + + + +  + + + + + + + + +  + + + + + + + + + + + + + + + + + +  + + + 3 + + +  + + +  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +  + + +  + + + + + + + + + + + + geschwind + + + etwas + + + Lieblich, + + + + + +  + + + + + +  + + + + + + + + +  + + +  + + + + + + + + +  + + +  + + +  + + +  + + + + + + + + +  + + +  + + +  + + +  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +  + + +  + + + + + + + + +  + + +  + + + + + + + + +  + + +  + + + + + + + + +  + + +  + + + + + + + + +  + + +  + + + + + + + + +  + + +  + + + + + + + + +  + + +  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +  + + +  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +  + + +  + + +  + + + + + + + + +  + + +  + + +  + + +  + + + + + +  + + +  + + +  + + +  + + +  + + +  + + + + + +  + + +  + + +  + + + + + + + + + + + + + + +  + + + + + +  + + + + + + + + + + + + + + +  + + +  + + +  + + +  + + +  + + +  + + +  + + +  + + + 2. + + + いろはに + + + 1. + + + + + + Sü + + +  + + +  + + + + + +  + + +  + + + כיף + + + ßes + + +  + + +  + + +  + + +  + + + 8 + + + 6 + + +  + + + 8 + + + 6 + + +  + + + 8 + + + 6 + + + 2. + + +  + + + + + + + + + + + + + + + LilyPond demo + + + + + + + + + + + + Slurs avoid accents + Automated collisionresolution + Rest under beamsautomatically moved + Unicode support for all texts + Dots avoid flagsautomatically + Cross staff slurs and beams + Advanced accidental placement + Heavier font and linesfor smaller staves + Horizontal shiftfor tilted slurs + Ledger linesstay separate + Clefs foldedunder other notes + Rounded tipson all symbols + Different thicknessesfor ledger, staff and bar lines + Compensation foroptical illusions + LilyPond's automatic typography + Ledger lines shortenedafter accidentals + Lyrics never collide + + + + + + + + + + + + + diff --git a/Documentation/pictures/background-image.png b/Documentation/pictures/background-image.png new file mode 100644 index 0000000000..dac7f63eb7 Binary files /dev/null and b/Documentation/pictures/background-image.png differ diff --git a/Documentation/pictures/carter-brey.jpg b/Documentation/pictures/carter-brey.jpg new file mode 100644 index 0000000000..34b970821a Binary files /dev/null and b/Documentation/pictures/carter-brey.jpg differ diff --git a/Documentation/pictures/darius-blasband.jpg b/Documentation/pictures/darius-blasband.jpg new file mode 100644 index 0000000000..c679bfe89c Binary files /dev/null and b/Documentation/pictures/darius-blasband.jpg differ diff --git a/Documentation/pictures/double-lily-modified3.png b/Documentation/pictures/double-lily-modified3.png new file mode 100644 index 0000000000..7bdb50b6b7 Binary files /dev/null and b/Documentation/pictures/double-lily-modified3.png differ diff --git a/Documentation/pictures/flat-design.png b/Documentation/pictures/flat-design.png new file mode 100644 index 0000000000..80507a4224 Binary files /dev/null and b/Documentation/pictures/flat-design.png differ diff --git a/Documentation/pictures/lao_banner_06_on_white_demo.png b/Documentation/pictures/lao_banner_06_on_white_demo.png new file mode 100644 index 0000000000..397c6c8120 Binary files /dev/null and b/Documentation/pictures/lao_banner_06_on_white_demo.png differ diff --git a/Documentation/pictures/lelie.png b/Documentation/pictures/lelie.png new file mode 100644 index 0000000000..7e691a76aa Binary files /dev/null and b/Documentation/pictures/lelie.png differ diff --git a/Documentation/pictures/lily-home.png b/Documentation/pictures/lily-home.png new file mode 100644 index 0000000000..98047b74bf Binary files /dev/null and b/Documentation/pictures/lily-home.png differ diff --git a/Documentation/pictures/lilypond-book.png b/Documentation/pictures/lilypond-book.png new file mode 100644 index 0000000000..cd05bd912f Binary files /dev/null and b/Documentation/pictures/lilypond-book.png differ diff --git a/Documentation/pictures/logo-debian.png b/Documentation/pictures/logo-debian.png new file mode 100644 index 0000000000..d163414d3b Binary files /dev/null and b/Documentation/pictures/logo-debian.png differ diff --git a/Documentation/pictures/logo-fedora.png b/Documentation/pictures/logo-fedora.png new file mode 100644 index 0000000000..5e0b437dfd Binary files /dev/null and b/Documentation/pictures/logo-fedora.png differ diff --git a/Documentation/pictures/logo-freebsd.png b/Documentation/pictures/logo-freebsd.png new file mode 100644 index 0000000000..df203a116a Binary files /dev/null and b/Documentation/pictures/logo-freebsd.png differ diff --git a/Documentation/pictures/logo-linux.png b/Documentation/pictures/logo-linux.png new file mode 100644 index 0000000000..b30937c581 Binary files /dev/null and b/Documentation/pictures/logo-linux.png differ diff --git a/Documentation/pictures/logo-macosx.png b/Documentation/pictures/logo-macosx.png new file mode 100644 index 0000000000..e0b6fae04a Binary files /dev/null and b/Documentation/pictures/logo-macosx.png differ diff --git a/Documentation/pictures/logo-slackware.png b/Documentation/pictures/logo-slackware.png new file mode 100644 index 0000000000..01765f8b68 Binary files /dev/null and b/Documentation/pictures/logo-slackware.png differ diff --git a/Documentation/pictures/logo-suse.png b/Documentation/pictures/logo-suse.png new file mode 100644 index 0000000000..dba0cd1710 Binary files /dev/null and b/Documentation/pictures/logo-suse.png differ diff --git a/Documentation/pictures/logo-ubuntu.png b/Documentation/pictures/logo-ubuntu.png new file mode 100644 index 0000000000..bb9d0de4ff Binary files /dev/null and b/Documentation/pictures/logo-ubuntu.png differ diff --git a/Documentation/pictures/logo-windows.png b/Documentation/pictures/logo-windows.png new file mode 100644 index 0000000000..d915c654e7 Binary files /dev/null and b/Documentation/pictures/logo-windows.png differ diff --git a/Documentation/pictures/orm-finnendahl.jpg b/Documentation/pictures/orm-finnendahl.jpg new file mode 100644 index 0000000000..e1cb456eb0 Binary files /dev/null and b/Documentation/pictures/orm-finnendahl.jpg differ diff --git a/Documentation/pictures/summary-gradient.png b/Documentation/pictures/summary-gradient.png new file mode 100644 index 0000000000..bb723265cb Binary files /dev/null and b/Documentation/pictures/summary-gradient.png differ diff --git a/Documentation/pictures/text-input-1-annotate.svg b/Documentation/pictures/text-input-1-annotate.svg new file mode 100644 index 0000000000..e27f3655c8 --- /dev/null +++ b/Documentation/pictures/text-input-1-annotate.svg @@ -0,0 +1,257 @@ + + + + + + + + + + + + + + + + + { \time 2/4 \clef bass c4 c g g a a g2} + + + + + + + + + + + + + + + + +_("Commands start with \\") + +_("Letters are notes") + + + +_("Numbers are durations") + + + + + image/svg+xml + + + + + + diff --git a/Documentation/pictures/text-input-2-annotate.svg b/Documentation/pictures/text-input-2-annotate.svg new file mode 100644 index 0000000000..dc63cd3fd4 --- /dev/null +++ b/Documentation/pictures/text-input-2-annotate.svg @@ -0,0 +1,224 @@ + + + + + + + \relative c'' { \key c \minor g( <ees c'>) <d f gis b>-. <ees g bes>-.} + + + + + + + + + + + + + + + + + +_("Add articulations") + +_("Add -es for flat, -is for sharp") + +_("Enclose pitches in < > for chords") + + + + image/svg+xml + + + + + + diff --git a/Documentation/pictures/text-input-parts-both-annotate.svg b/Documentation/pictures/text-input-parts-both-annotate.svg new file mode 100644 index 0000000000..d9f020f51b --- /dev/null +++ b/Documentation/pictures/text-input-parts-both-annotate.svg @@ -0,0 +1,193 @@ + + + + + + + + _("hornNotes") =\relative c { \time 2/4 R2*3 r4 f8 a cis4 f e d}_("bassoonNotes") =\relative c { \clef bass r4 d,8 f gis4 c b bes a8 e f4 g d gis f} + + + + + + + + + + + + + _("Enter multi-rest") + + + _("Store notes in variable") + + + + + + image/svg+xml + + + + + diff --git a/Documentation/pictures/text-input-parts-single-annotate.svg b/Documentation/pictures/text-input-parts-single-annotate.svg new file mode 100644 index 0000000000..6e7dae5dcd --- /dev/null +++ b/Documentation/pictures/text-input-parts-single-annotate.svg @@ -0,0 +1,167 @@ + + + + + + + + + + { \set Score.skipBars = ##t \transpose f c' \_("hornNotes")} + + + + + + + + + + + + + + + + + + + + + + _("Condense multi-rests") + + + + _("Transpose for F instrument") + + + + + _("Reuse variable") + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/Documentation/pictures/text-input-pop-annotate.svg b/Documentation/pictures/text-input-pop-annotate.svg new file mode 100644 index 0000000000..01fdd70d05 --- /dev/null +++ b/Documentation/pictures/text-input-pop-annotate.svg @@ -0,0 +1,211 @@ + + + + + + << \chords { c1:m7 f2:7 c2 } \relative c'' { g2 es8( c4.) f8 f es d c2 } \addlyrics { Li ly, got me on my knees }>> + + + + + + + + _("Enter chord names") + + + _("Enter melody") + + + _("Enter lyrics") + + + + + +_("Combine melody and lyrics") + + + + + image/svg+xml + + + + + diff --git a/Documentation/pictures/text-input-score-annotate.svg b/Documentation/pictures/text-input-score-annotate.svg new file mode 100644 index 0000000000..c45a7c7621 --- /dev/null +++ b/Documentation/pictures/text-input-score-annotate.svg @@ -0,0 +1,150 @@ + + + + + + + + + + + << \new Staff \_("hornNotes") \new Staff \_("bassoonNotes")>> + + + + + + + + + + + + + + + + + + + +_("Create staff") + + + + + +_("Combine staffs in parallel") + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/Documentation/web-texi2html.init b/Documentation/web-texi2html.init new file mode 100644 index 0000000000..b0bfac7857 --- /dev/null +++ b/Documentation/web-texi2html.init @@ -0,0 +1,1093 @@ +#!/usr/bin/env perl +# -*- coding: utf-8; -*- + +### texi2html customization script for LilyPond +### Author: Reinhold Kainhofer , 2008. +### Some code parts copied from texi2html and adapted. These functions +### were written mainly by Patrice Dumas +### License: GPLv2+ +### +### +### Features implemented here: +### -) For split manuals, the main page is index.html. +### -) All @unnumbered* sections are placed into the same file +### (implemented by split_at_numbered_sections) +### -) Use our custom CSS file, with IE-specific fixes in another CSS file, +### impelmented by lilypond_css_lines +### -) TOC (folded, with the current page highlighted) in an overflown

+### is added to every page; implemented by: +### lilypond_print_element_header -- building of the TOC +### lilypond_toc_body -- generation of customized TOC output +### lilypond_print_page_head -- start
+### print_lilypond_page_foot -- closing id=main, output of footer & TOC +### -) External refs are formatted only as "Text of the node" (not as >>see +### "NODE" section "SECTION" in "BOOK"<< like with default texi2html). Also, +### the leading "(book-name)" is removed. +### Implemented by overriding lilypond_external_ref +### -) Navigation bars on top/bottom of the page and between sections are not +### left-aligned, but use a combination of left/center/right aligned table +### cells; For this, I heavily extend the texi2html code to allow for +### differently aligned cells and for multi-line tables); +### Implemented in lilypond_print_navigation +### -) Different formatting than the default: example uses the same formatting +### as quote. +### -) Allow translated section titles: All section titles can be translated, +### the original (English) title is associated with @translationof. This is +### needed, because the file name / anchor is generated from the original +### English title, since otherwise language-autoselection would break with +### posted links. +### Since it is then no longer possible to obtain the file name from the +### section title, I keep a sectionname<=>filename/anchor around. This way, +### xrefs from other manuals can simply load that map and retrieve the +### correct file name for the link. Implemented in: +### lilypond_unknown (handling of @translationof, in case +### extract_texi_filenames.py messes up...) +### lilypond_element_file_name (correct file name: use the map) +### lilypond_element_target_name (correct anchor: use the map) +### lilypond_init_map (read in the externally created map from disk) +### lilypond_external_href (load the map for xrefs, use the correct +### link target) +### -) The HTML anchors for all sections are derived from the node name / +### section title (pre-generated in the .xref-map file). Implemented by: +### lilypond_element_target_name (adjust section anchors) +### -) Use the standard footnote format "nr text" instead of the +### ugly format of texi2html (

(nr)

text

). Implemented in +### makeinfo_like_foot_line_and_ref +### makeinfo_like_foot_lines +### makeinfo_like_paragraph +### +### +### Useful helper functions: +### -) texinfo_file_name($node_name): returns a texinfo-compatible file name +### for the given string $node_name (whitespace trimmed/replaced by -, +### non-standard chars replaced by _xxxx (ascii char code) and forced to +### start with a letter by prepending t_g if necessary) + + +package Texi2HTML::Config; + +############################################################################# +### TRANSLATIONS +############################################################################# + +use utf8; +my $LY_LANGUAGES = {}; +$LY_LANGUAGES->{'fr'} = { + 'Back to Documentation Index' => 'Retour à l\'accueil de la documentation', +}; +$LY_LANGUAGES->{'es'} = { + 'Back to Documentation Index' => 'Volver al índice de la documentación', +}; +$LY_LANGUAGES->{'de'} = { + 'Back to Documentation Index' => 'Zur Dokumentationsübersicht', +}; +$LY_LANGUAGES->{'ja'} = { + 'Back to Documentation Index' => 'ドキュメント インデックスに戻る', +}; + + +sub ly_get_string () { + my $lang = $Texi2HTML::THISDOC{current_lang}; + my $string = shift; + if ($lang and $lang ne "en" and $LY_LANGUAGES->{$lang}->{$string}) { + return $LY_LANGUAGES->{$lang}->{$string}; + } else { + return $string; + } +} + + +############################################################################# +### SETTINGS FOR TEXI2HTML +############################################################################# + +# Validation fix for texi2html<=1.82 +$Texi2HTML::Config::DOCTYPE = ''; + +@Texi2HTML::Config::CSS_REFS = ( + {FILENAME => "lilypond-web.css", TITLE => "Default style"}, + {FILENAME => "lilypond-web-alt1.css", TITLE => "Alternate style 1"}, +); + +# GOP tweak: We don't have alternate stylesheets right now +#@Texi2HTML::Config::ALT_CSS_REFS = ( +# {FILENAME => "lilypond.css", TITLE => "Andrew Hawryluk's design" }, +# {FILENAME => "lilypond-blue.css", TITLE => "Kurt Kroon's blue design" }, +#); + +$Texi2HTML::Config::USE_ACCESSKEY = 1; +$Texi2HTML::Config::USE_LINKS = 1; +$Texi2HTML::Config::USE_REL_REV = 1; +$Texi2HTML::Config::SPLIT_INDEX = 0; +$Texi2HTML::Config::SEPARATED_FOOTNOTES = 0; # Print footnotes on same page, not separated +# FIXME: remove for GOP +#if ($Texi2HTML::Config::SPLIT eq 'section') { +# $Texi2HTML::Config::element_file_name = \&lilypond_element_file_name; +#} + +## GOP tweak: +# FIXME: creates duplicate anchors, which causes Opera to barf; +# should be fixed in lilypond-texi2html.init too +# $Texi2HTML::Config::element_target_name = \&lilypond_element_target_name; +$default_print_element_header = $Texi2HTML::Config::print_element_header; +$Texi2HTML::Config::print_element_header = \&lilypond_print_element_header; +$Texi2HTML::Config::print_page_foot = \&print_lilypond_page_foot; +$Texi2HTML::Config::print_navigation = \&lilypond_print_navigation; +$Texi2HTML::Config::external_ref = \&lilypond_external_ref; +$default_external_href = $Texi2HTML::Config::external_href; +$Texi2HTML::Config::external_href = \&lilypond_external_href; +$default_toc_body = $Texi2HTML::Config::toc_body; +$Texi2HTML::Config::toc_body = \&lilypond_toc_body; +$Texi2HTML::Config::css_lines = \&lilypond_css_lines; +$default_unknown = $Texi2HTML::Config::unknown; +$Texi2HTML::Config::unknown = \&lilypond_unknown; +$default_print_page_head = $Texi2HTML::Config::print_page_head; +$Texi2HTML::Config::print_page_head = \&lilypond_print_page_head; +# $Texi2HTML::Config::foot_line_and_ref = \&lilypond_foot_line_and_ref; +$Texi2HTML::Config::foot_line_and_ref = \&makeinfo_like_foot_line_and_ref; +$Texi2HTML::Config::foot_lines = \&makeinfo_like_foot_lines; +$Texi2HTML::Config::paragraph = \&makeinfo_like_paragraph; + + + +# Examples should be formatted similar to quotes: +$Texi2HTML::Config::complex_format_map->{'example'} = { + 'begin' => q{"
"}, + 'end' => q{"
\n"}, + 'style' => 'code', + }; + +%Texi2HTML::config::misc_pages_targets = ( + 'Overview' => 'Overview', + 'Contents' => 'Contents', + 'About' => 'About' +); + + +my @section_to_filename; + + + + +############################################################################# +### DEBUGGING +############################################################################# + +use Data::Dumper; +$Data::Dumper::Maxdepth = 2; + +sub print_element_info($) +{ + my $element = shift; + print "~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"; + print "Element: $element\n"; + print Dumper($element); +} + + + + + +############################################################################# +### HELPER FUNCTIONS +############################################################################# + +# Convert a given node name to its proper file name (normalization as explained +# in the texinfo manual: +# http://www.gnu.org/software/texinfo/manual/texinfo/html_node/HTML-Xref-Node-Name-Expansion.html +sub texinfo_file_name($) +{ + my $text = shift; + my $result = ''; + # File name normalization by texinfo: + # 1/2: letters and numbers are left unchanged + # 3/4: multiple, leading and trailing whitespace is removed + $text = main::normalise_space($text); + # 5/6: all remaining spaces are converted to '-', all other 7- or 8-bit + # chars are replaced by _xxxx (xxxx=ascii character code) + while ($text ne '') { + if ($text =~ s/^([A-Za-z0-9]+)//o) { # number or letter stay unchanged + $result .= $1; + } elsif ($text =~ s/^ //o) { # space -> '-' + $result .= '-'; + } elsif ($text =~ s/^(.)//o) { # Otherwise use _xxxx (ascii char code) + my $ccode = ord($1); + if ( $ccode <= 0xFFFF ) { + $result .= sprintf("_%04x", $ccode); + } else { + $result .= sprintf("__%06x", $ccode); + } + } + } + # 7: if name does not begin with a letter, prepend 't_g' (so it starts with a letter) + if ($result !~ /^[a-zA-Z]/) { + $result = 't_g' . $result; + } + # DONE + return $result +} + + +# Load a file containing a nodename<=>filename map (tab-sepatared, i.e. +# NODENAME\tFILENAME\tANCHOR +# Returns a ref to a hash "Node title" => ["FilenameWithoutExt", "Anchor"] +sub load_map_file ($) +{ + my $mapfile = shift; + my $node_map = (); + + if (open(XREFFILE, $mapfile)) { + my $line; + while ( $line = ) { + # parse the tab-separated entries and insert them into the map: + chomp($line); + my @entries = split(/\t/, $line); + if (scalar (@entries) == 3) { + $node_map->{$entries[0]} = [$entries[1], $entries[2]]; + } else { + print STDERR "Invalid entry in the node file $mapfile: $line\n"; + } + } + close (XREFFILE); + } else { + print STDERR "WARNING: Unable to load the map file $mapfile\n"; + } + return $node_map; +} + + +# Split the given path into dir and basename (with .texi removed). Used mainly +# to get the path/basename of the original texi input file +sub split_texi_filename ($) +{ + my $docu = shift; + my ($docu_dir, $docu_name); + if ($docu =~ /(.*\/)/) { + chop($docu_dir = $1); + $docu_name = $docu; + $docu_name =~ s/.*\///; + } else { + $docu_dir = '.'; + $docu_name = $docu; + } + $docu_name =~ s/\.te?x(i|info)?$//; + return ($docu_dir, $docu_name); +} + + + + + +############################################################################# +### CSS HANDLING +############################################################################# + +# Include our standard CSS file, not hard-coded CSS code directly in the HTML! +# For IE, conditionally include the lilypond-ie-fixes.css style sheet +sub lilypond_css_lines ($$) +{ + my $import_lines = shift; + my $rule_lines = shift; + return if (defined($Texi2HTML::THISDOC{'CSS_LINES'})); + if (@$rule_lines or @$import_lines) + { + $Texi2HTML::THISDOC{'CSS_LINES'} = "\n"; + } + foreach my $ref (@CSS_REFS) + { + $Texi2HTML::THISDOC{'CSS_LINES'} .= "{TITLE}\" href=\"$ref->{FILENAME}\">\n"; + } + + # GOP tweak: We don't have alternate stylesheets + #foreach my $ref (@Texi2HTML::Config::ALT_CSS_REFS) + #{ + # $Texi2HTML::THISDOC{'CSS_LINES'} .= "{FILENAME}\" title=\"$ref->{TITLE}\">\n"; + #} + + # GOP tweak: We aren't using an IE-specific stylesheet + #$Texi2HTML::THISDOC{'CSS_LINES'} .= "\n"; +} + + + + + +############################################################################# +### SPLITTING BASED ON NUMBERED SECTIONS +############################################################################# + +# FIXME: removed for GOP. + + +############################################################################# +### CLEANER LINK TITLE FOR EXTERNAL REFS +############################################################################# + +# The default formatting of external refs returns e.g. +# "(lilypond-internals)Timing_translator", so we remove all (...) from the +# file_and_node argument. Also, we want only a very simple format, so we don't +# even call the default handler! +sub lilypond_external_ref($$$$$$) +{ + my $type = shift; + my $section = shift; + my $book = shift; + my $file_node = shift; + my $href = shift; + my $cross_ref = shift; + + my $displaytext = ''; + + # 1) if we have a cross ref name, that's the text to be displayed: + # 2) For the top node, use the (printable) name of the manual, unless we + # have an explicit cross ref name + # 3) In all other cases use the section name + if ($cross_ref ne '') { + $displaytext = $cross_ref; + } elsif (($section eq '') or ($section eq 'Top')) { + $displaytext = $book; + } else { + $displaytext = $section; + } + + $displaytext = &$anchor('', $href, $displaytext) if ($displaytext ne ''); + return &$I('%{node_file_href}', { 'node_file_href' => $displaytext }); +} + + + + + +############################################################################# +### HANDLING TRANSLATED SECTIONS: handle @translationof, secname<->filename +### map stored on disk, xrefs in other manuals load that map +############################################################################# + + +# Try to make use of @translationof to generate files according to the original +# English section title... +sub lilypond_unknown($$$$$) +{ + my $macro = shift; + my $line = shift; + my $pass = shift; + my $stack = shift; + my $state = shift; + + # the @translationof macro provides the original English section title, + # which should be used for file/anchor naming, while the title will be + # translated to each language + # It is already used by extract_texi_filenames.py, so this should not be + # necessary here at all. Still, I'll leave the code in just in case the + # python script messed up ;-) + if ($pass == 1 and $macro eq "translationof") { + if (ref($state->{'element'}) eq 'HASH') { + $state->{'element'}->{'translationof'} = main::normalise_space($line); + } + return ('', 1, undef, undef); + } else { + return &$default_unknown($macro, $line, $pass, $stack, $state); + } +} + + + + +my %translated_books = (); +# Construct a href to an external source of information. +# node is the node with texinfo @-commands +# node_id is the node transliterated and transformed as explained in the +# texinfo manual +# node_xhtml_id is the node transformed such that it is unique and can +# be used to make an html cross ref as explained in the texinfo manual +# file is the file in '(file)node' +sub lilypond_external_href($$$) +{ + my $node = shift; + my $node_id = shift; + my $node_hxmlt_id = shift; + my $file = shift; + + # 1) Keep a hash of book->section_map + # 2) if not file in keys hash => try to load the map (assign empty map if + # non-existent => will load only once!) + # 3) if node in the section=>(file, anchor) map, replace node_id and + # node_xhtml_id by the map's values + # 4) call the default_external_href with these values (or the old ones if not found) + + if (($node_id ne '') and defined($file) and ($node_id ne 'Top')) { + my $map_name = $file; + $map_name =~ s/-big-page//; + + # Load the map if we haven't done so already + if (!exists($translated_books{$map_name})) { + my ($docu_dir, $docu_name) = split_texi_filename ($Texi2HTML::THISDOC{'input_file_name'}); + my $map_filename = main::locate_include_file ("${map_name}.$Texi2HTML::THISDOC{current_lang}.xref-map") + || main::locate_include_file ("${map_name}.xref-map"); + $translated_books{$map_name} = load_map_file ($map_filename); + } + + # look up translation. use these values instead of the old filename/anchor + my $section_name_map = $translated_books{$map_name}; + my $node_text = main::remove_texi($node); + if (defined($section_name_map->{$node_text})) { + ($node_id, $node_hxmlt_id) = @{$section_name_map->{$node_text}}; + } else { + print STDERR "WARNING: Unable to find node '$node_text' in book $map_name.\n"; + } + } + + if (defined $file) { + return &$default_external_href($node, $node_id, $node_hxmlt_id, $file); + } else { + return &$default_external_href($node, $node_id, $node_hxmlt_id); + } +} + + + + + +############################################################################# +### CUSTOM TOC FOR EACH PAGE (in a frame on the left) +############################################################################# + +my $page_toc_depth = 2; +my @default_toc = []; + + +# Initialize the toc_depth to 1 if the command-line option -D=short_toc is given +sub lilypond_init_toc_depth () +{ + if (exists($main::value{'short_toc'}) and not exists($main::value{'bigpage'})) { + $page_toc_depth = 1; + } +} +# Set the TOC-depth (depending on a texinfo variable short_toc) in a +# command-handler, so we have them available when creating the pages +push @Texi2HTML::Config::command_handler_process, \&lilypond_init_toc_depth; + + +# recursively generate the TOC entries for the element and its children (which +# are only shown up to maxlevel. All ancestors of the current element are also +# shown with their immediate children, irrespective of their level. +# Unnumbered entries are only printed out if they are at top-level or 2nd level +# or their parent element is an ancestor of the currently viewed node. +# The conditions to call this method to print the entry for a child node is: +# -) the parent is an ancestor of the current page node +# -) the parent is a numbered element at top-level toplevel (i.e. show numbered +# and unnumbered 2nd-level children of numbered nodes) +# -) the child element is a numbered node below level maxlevel +sub generate_ly_toc_entries($$$) +{ + my $element = shift; + my $element_path = shift; + # FIXME + #my $maxlevel = shift; + my $maxlevel = 1; + # Skip undefined sections, plus all sections generated by index splitting + return() if (not defined($element) or exists($element->{'index_page'})); + my @result = (); + my $level = $element->{'toc_level'}; + my $is_parent_of_current = $element->{'id'} && $element_path->{$element->{'id'}}; + my $ind = ' ' x $level; + # GDP hack: leave this open for color + my $this_css_class = " class=\""; + $this_css_class .= $is_parent_of_current ? " toc_current" : ""; + + # GDP tweak: if the node name is in the color_X list + # TODO: use a hash, load from file? + # FIXME: load from file, to allow for translations! +# HORRIBLE HACK + my @color_1 = ( + + "Learning", "Glossary", "Essay", + "Contact", "Tiny examples", "Bug reports" + ); + my @color_2 = ( + "Features", "Examples", "Freedom", + "Unix", "MacOS X", "Windows", + "Notation", "Usage", "Snippets", + "Help us", "Development", "Authors" + ); + my @color_3 = ( + "Productions", "Testimonials", + "Source", "Old downloads", + "FAQ", "Changes", "Internals", + "Publications", "Old news" + ); + my @color_4 = ( + "Text input", + "GPL", + "Translated", "Old", "FDL" + ); + + my $addColor = " colorDefault"; + foreach $color (@color_1) { + if ($element->{'text'} eq $color) { + $addColor = " color1"; + } + } + foreach $color (@color_2) { + if ($element->{'text'} eq $color) { + $addColor = " color2"; + } + } + foreach $color (@color_3) { + if ($element->{'text'} eq $color) { + $addColor = " color3"; + } + } + foreach $color (@color_4) { + if ($element->{'text'} eq $color) { + $addColor = " color4"; + } + } + + $this_css_class .= $addColor . "\""; + + + + + my $entry = "$ind" . &$anchor ($element->{'tocid'}, "$element->{'file'}#$element->{'target'}",$element->{'text'}); + + push (@result, $entry); + my $children = $element->{'section_childs'}; + if (defined($children) and (ref($children) eq "ARRAY")) { + my $force_children = $is_parent_of_current or ($level == 1 and $element->{'number'}); + my @child_result = (); + foreach my $c (@$children) { + my $is_numbered_child = defined ($c->{'number'}); + my $below_maxlevel = $c->{'toc_level'} le $maxlevel; + if ($force_children or ($is_numbered_child and $below_maxlevel)) { + my @child_res = generate_ly_toc_entries($c, $element_path, $maxlevel); + push (@child_result, @child_res); + } + } + # if no child nodes were generated, e.g. for the index, where expanded pages + # are ignored, don't generate a list at all... + if (@child_result) { + push (@result, "\n$ind\n"); + + # GOP tweak: (next 2 lines; alternates) + push (@result, "$ind" . &$anchor ($element->{'tocid'}, "$element->{'file'}#$element->{'target'}","(main)")); + #push (@result, "$ind" . &$anchor ($element->{'tocid'}, "$element->{'file'}#$element->{'target'}","(".$element->{'text'}." main)")); + push (@result, @child_result); + push (@result, "$ind\n"); + } + } + push (@result, "$ind\n"); + return @result; +} + + +# Print a customized TOC, containing only the first two levels plus the whole +# path to the current page +sub lilypond_generate_page_toc_body($) +{ + my $element = shift; + my $current_element = $element; + my %parentelements; + $parentelements{$element->{'id'}} = 1; + # Find the path to the current element + while ( defined($current_element->{'sectionup'}) and + ($current_element->{'sectionup'} ne $current_element) ) + { + $parentelements{$current_element->{'sectionup'}->{'id'}} = 1 + if ($current_element->{'sectionup'}->{'id'} ne ''); + $current_element = $current_element->{'sectionup'}; + } + return () if not defined($current_element); + # Create the toc entries recursively +#FIXME + my @toc_entries = ("\n"); +# my @toc_entries = ("
\n", "\n"); + +# FIXME: add link to main page, really hackily. + if ($element->{'sectionup'}) { + # it's not the top element + push (@toc_entries, "
  • Main
  • \n"); + } else { + push (@toc_entries, "
  • Main
  • \n"); + } + + my $children = $current_element->{'section_childs'}; +# FIXME: generate toc + foreach ( @$children ) { + push (@toc_entries, generate_ly_toc_entries($_, \%parentelements, $page_toc_depth)); + } +# FIXME: add search entry box + push (@toc_entries, "
  • \n"); + + push (@toc_entries, "\n"); +#FIXME +# push (@toc_entries, "
    \n"); + push (@toc_entries, "\n"); + return @toc_entries; +} + +sub lilypond_print_toc_div ($$) +{ + my $fh = shift; + my $tocref = shift; + my @lines = @$tocref; + # use default TOC if no custom lines have been generated + @lines = @default_toc if (not @lines); + if (@lines) { + + print $fh "\n\n
    \n"; + #print $fh "
    \n"; + + # Remove the leading "GNU LilyPond --- " from the manual title + my $topname = $Texi2HTML::NAME{'Top'}; + $topname =~ s/^GNU LilyPond(:| &[mn]dash;) //; + + # construct the top-level Docs index (relative path and including language!) + my $lang = $Texi2HTML::THISDOC{current_lang}; + if ($lang and $lang ne "en") { + $lang .= "."; + } else { + $lang = ""; + } + my $reldir = ""; + $reldir = "../" if ($Texi2HTML::Config::SPLIT eq 'section'); + my $uplink = $reldir."index.${lang}html"; + +# print $fh "

    << " . +# &ly_get_string ('Back to Documentation Index') . +# "

    \n"; + +# print $fh '

    ' . &$anchor('', +# $Texi2HTML::HREF{'Top'}, +# $topname, +# 'title="Start of the manual"' +# ) . "

    \n"; + + + foreach my $line (@lines) { + print $fh $line; + } + + print $fh "
    \n\n"; + } +} + +# Create the custom TOC for this page (partially folded, current page is +# highlighted) and store it in a global variable. The TOC is written out after +# the html contents (but positioned correctly using CSS), so that browsers with +# css turned off still show the contents first. +our @this_page_toc = (); +sub lilypond_print_element_header +{ + my $first_in_page = shift; + my $previous_is_top = shift; + if ($first_in_page and not @this_page_toc) { + if (defined($Texi2HTML::THIS_ELEMENT)) { + # Create the TOC for this page + @this_page_toc = lilypond_generate_page_toc_body($Texi2HTML::THIS_ELEMENT); + } + } + return &$default_print_element_header( $first_in_page, $previous_is_top); +} + +# Generate the HTML output for the TOC +sub lilypond_toc_body($) +{ + my $elements_list = shift; + # Generate a default TOC for pages without THIS_ELEMENT + @default_toc = lilypond_generate_page_toc_body(@$elements_list[0]); + return &$default_toc_body($elements_list); +} + +# Print out the TOC in a
    at the beginning of the page +sub lilypond_print_page_head($) +{ + my $fh = shift; + &$default_print_page_head($fh); + print $fh "
    \n"; +} + +# Print out the TOC in a
    , which will be formatted as a +# sidebar mimicking a TOC frame +sub print_lilypond_page_foot($) +{ + my $fh = shift; + my $program_string = &$program_string(); +# print $fh "

    $program_string
    $PRE_BODY_CLOSE

    \n"; + # GOP tweaks: + # Do not include language selection in div#main + print $fh "\n
    \n\n"; + + print $fh "\n\n"; + print $fh "
    \n"; + print $fh "
    \n"; + print $fh "

    Other languages

    \n"; + print $fh "

    Deutsch, Español, Français, Magyar.

    \n"; + print $fh "

    About automatic language selection.

    \n"; + print $fh "
    \n"; + + print $fh "
    \n"; + print $fh "

    Validation

    \n"; + print $fh "

    Thanks to webdev.nl"; + print $fh " for hosting lilypond.org.\n"; + print $fh "\n"; + print $fh "\"Valid

    \n"; + print $fh "

    Web pages created with"; + print $fh " "; + print $fh " GNU Texinfo\n"; + print $fh " and "; + print $fh " texi2html.

    \n"; + print $fh "
    "; + print $fh "
    "; + + # Print the TOC frame and reset the TOC: + lilypond_print_toc_div ($fh, \@this_page_toc); + @this_page_toc = (); + + # Close the page: + print $fh "\n\n"; +} + + + + + +############################################################################# +### NICER / MORE FLEXIBLE NAVIGATION PANELS +############################################################################# + +sub get_navigation_text +{ + my $button = shift; + my $text = $NAVIGATION_TEXT{$button}; + if ( ($button eq 'Back') or ($button eq 'FastBack') ) { + $text = $text . $Texi2HTML::NODE{$button} . " "; + } elsif ( ($button eq 'Forward') or ($button eq 'FastForward') ) { + $text = " " . $Texi2HTML::NODE{$button} . $text; + } elsif ( $button eq 'Up' ) { + $text = " ".$text.": " . $Texi2HTML::NODE{$button} . " "; + } + return $text; +} + + +# Don't automatically create left-aligned table cells for every link, but +# instead create a only on an appropriate '(left|right|center)-aligned-cell-n' +# button text. It's alignment as well as the colspan will be taken from the +# name of the button. Also, add 'newline' button text to create a new table +# row. The texts of the buttons are generated by get_navigation_text and +# will contain the name of the next/previous section/chapter. +sub lilypond_print_navigation +{ + my $buttons = shift; + my $vertical = shift; + my $spacing = 1; + my $result = "\n"; + + $result .= "" unless $vertical; + my $beginofline = 1; + foreach my $button (@$buttons) + { + $result .= qq{\n} if $vertical; + # Allow (left|right|center)-aligned-cell and newline as buttons! + if ( $button =~ /^(.*)-aligned-cell-(.*)$/ ) + { + $result .= qq{} unless $beginofline; + $result .= qq{} unless $beginofline; + $result .= qq{}; + $result .= qq{}; + $beginofline = 1; + + } + elsif (ref($button) eq 'CODE') + { + $result .= &$button($vertical); + } + elsif (ref($button) eq 'SCALAR') + { + $result .= "$$button" if defined($$button); + } + elsif (ref($button) eq 'ARRAY') + { + my $text = $button->[1]; + my $button_href = $button->[0]; + # verify that $button_href is simple text and text is a reference + if (defined($button_href) and !ref($button_href) + and defined($text) and (ref($text) eq 'SCALAR') and defined($$text)) + { # use given text + if ($Texi2HTML::HREF{$button_href}) + { + my $anchor_attributes = ''; + if ($USE_ACCESSKEY and (defined($BUTTONS_ACCESSKEY{$button_href})) and ($BUTTONS_ACCESSKEY{$button_href} ne '')) + { + $anchor_attributes = "accesskey=\"$BUTTONS_ACCESSKEY{$button_href}\""; + } + if ($USE_REL_REV and (defined($BUTTONS_REL{$button_href})) and ($BUTTONS_REL{$button_href} ne '')) + { + $anchor_attributes .= " rel=\"$BUTTONS_REL{$button_href}\""; + } + $result .= "" . + &$anchor('', + $Texi2HTML::HREF{$button_href}, + get_navigation_text($$text), + $anchor_attributes + ); + } + else + { + $result .= get_navigation_text($$text); + } + } + } + elsif ($button eq ' ') + { # handle space button + $result .= + ($ICONS && $ACTIVE_ICONS{' '}) ? + &$button_icon_img($BUTTONS_NAME{$button}, $ACTIVE_ICONS{' '}) : + $NAVIGATION_TEXT{' '}; + #next; + } + elsif ($Texi2HTML::HREF{$button}) + { # button is active + my $btitle = $BUTTONS_GOTO{$button} ? + 'title="' . $BUTTONS_GOTO{$button} . '"' : ''; + if ($USE_ACCESSKEY and (defined($BUTTONS_ACCESSKEY{$button})) and ($BUTTONS_ACCESSKEY{$button} ne '')) + { + $btitle .= " accesskey=\"$BUTTONS_ACCESSKEY{$button}\""; + } + if ($USE_REL_REV and (defined($BUTTONS_REL{$button})) and ($BUTTONS_REL{$button} ne '')) + { + $btitle .= " rel=\"$BUTTONS_REL{$button}\""; + } + if ($ICONS && $ACTIVE_ICONS{$button}) + { # use icon + $result .= '' . + &$anchor('', + $Texi2HTML::HREF{$button}, + &$button_icon_img($BUTTONS_NAME{$button}, + $ACTIVE_ICONS{$button}, + $Texi2HTML::SIMPLE_TEXT{$button}), + $btitle + ); + } + else + { # use text + $result .= + '[' . + &$anchor('', + $Texi2HTML::HREF{$button}, + get_navigation_text($button), + $btitle + ) . + ']'; + } + } + else + { # button is passive + $result .= + $ICONS && $PASSIVE_ICONS{$button} ? + &$button_icon_img($BUTTONS_NAME{$button}, + $PASSIVE_ICONS{$button}, + $Texi2HTML::SIMPLE_TEXT{$button}) : + + "[" . get_navigation_text($button) . "]"; + } + $result .= "\n" if $vertical; + $result .= "\n" if $vertical; + } + $result .= "" unless $beginofline; + $result .= "" unless $vertical; + $result .= "
    }; + $beginofline = 0; + } + elsif ( $button eq 'newline' ) + { + $result .= qq{
    \n"; +# return $result; + return "\n"; +} + + +@Texi2HTML::Config::SECTION_BUTTONS = + ('left-aligned-cell-1', 'FastBack', + 'center-aligned-cell-3', 'Top', 'Contents', 'Index', 'About', + 'right-aligned-cell-1', 'FastForward', + 'newline', + 'left-aligned-cell-2', 'Back', + 'center-aligned-cell-1', 'Up', + 'right-aligned-cell-2', 'Forward' + ); + +# buttons for misc stuff +@Texi2HTML::Config::MISC_BUTTONS = ('center-aligned-cell-3', 'Top', 'Contents', 'Index', 'About'); + +# buttons for chapter file footers +# (and headers but only if SECTION_NAVIGATION is false) +@Texi2HTML::Config::CHAPTER_BUTTONS = + ('left-aligned-cell-1', 'FastBack', + 'center-aligned-cell-3', 'Top', 'Contents', 'Index', 'About', + 'right-aligned-cell-1', 'FastForward', + ); + +# buttons for section file footers +@Texi2HTML::Config::SECTION_FOOTER_BUTTONS = + ('left-aligned-cell-1', 'FastBack', + 'center-aligned-cell-3', 'Top', 'Contents', 'Index', 'About', + 'right-aligned-cell-1', 'FastForward', + 'newline', + 'left-aligned-cell-2', 'Back', + 'center-aligned-cell-1', 'Up', + 'right-aligned-cell-2', 'Forward' + ); + +@Texi2HTML::Config::NODE_FOOTER_BUTTONS = + ('left-aligned-cell-1', 'FastBack', + 'center-aligned-cell-3', 'Top', 'Contents', 'Index', 'About', + 'right-aligned-cell-1', 'FastForward', + 'newline', + 'left-aligned-cell-2', 'Back', + 'center-aligned-cell-1', 'Up', + 'right-aligned-cell-2', 'Forward' + ); + + + + + +############################################################################# +### FOOTNOTE FORMATTING +############################################################################# + +# Format footnotes in a nicer way: Instead of printing the number in a separate +# (nr) heading line, use the standard way of prepending nr immediately +# before the fn text. + + +# The following code is copied from texi2html's examples/makeinfo.init and +# should be updated when texi2html makes some changes there! + +my $makekinfo_like_footnote_absolute_number = 0; + +sub makeinfo_like_foot_line_and_ref($$$$$$$$) +{ + my $foot_num = shift; + my $relative_num = shift; + my $footid = shift; + my $docid = shift; + my $from_file = shift; + my $footnote_file = shift; + my $lines = shift; + my $state = shift; + + $makekinfo_like_footnote_absolute_number++; + + # this is a bit obscure, this allows to add an anchor only if formatted + # as part of the document. + $docid = '' if ($state->{'outside_document'} or $state->{'multiple_pass'}); + + if ($from_file eq $footnote_file) + { + $from_file = $footnote_file = ''; + } + + my $foot_anchor = "" . &$anchor($docid, "$footnote_file#$footid", $relative_num) . ""; + $foot_anchor = &$anchor($docid, "$footnote_file#$footid", "($relative_num)") if ($state->{'preformatted'}); + +# unshift @$lines, "
  • "; +# push @$lines, "
  • \n"; + return ($lines, $foot_anchor); +} + +sub makeinfo_like_foot_lines($) +{ + my $lines = shift; + unshift @$lines, "
    \n

    $Texi2HTML::I18n::WORDS->{'Footnotes_Title'}

    \n"; +#
      \n"; +# push @$lines, "
    "; + return $lines; +} + +my %makekinfo_like_paragraph_in_footnote_nr; + +sub makeinfo_like_paragraph ($$$$$$$$$$$$$) +{ + my $text = shift; + my $align = shift; + my $indent = shift; + my $paragraph_command = shift; + my $paragraph_command_formatted = shift; + my $paragraph_number = shift; + my $format = shift; + my $item_nr = shift; + my $enumerate_style = shift; + my $number = shift; + my $command_stack_at_end = shift; + my $command_stack_at_begin = shift; + my $state = shift; +#print STDERR "format: $format\n" if (defined($format)); +#print STDERR "paragraph @$command_stack_at_end; @$command_stack_at_begin\n"; + $paragraph_command_formatted = '' if (!defined($paragraph_command_formatted) or + exists($special_list_commands{$format}->{$paragraph_command})); + return '' if ($text =~ /^\s*$/); + foreach my $style(t2h_collect_styles($command_stack_at_begin)) + { + $text = t2h_begin_style($style, $text); + } + foreach my $style(t2h_collect_styles($command_stack_at_end)) + { + $text = t2h_end_style($style, $text); + } + if (defined($paragraph_number) and defined($$paragraph_number)) + { + $$paragraph_number++; + return $text if (($format eq 'itemize' or $format eq 'enumerate') and + ($$paragraph_number == 1)); + } + my $open = '[0]) and $command_stack_at_begin->[0] eq 'footnote') + { + my $state = $Texi2HTML::THISDOC{'state'}; + $makekinfo_like_paragraph_in_footnote_nr{$makekinfo_like_footnote_absolute_number}++; + if ($makekinfo_like_paragraph_in_footnote_nr{$makekinfo_like_footnote_absolute_number} <= 1) + { + $open.=' class="footnote"'; + my $document_file = $state->{'footnote_document_file'}; + if ($document_file eq $state->{'footnote_footnote_file'}) + { + $document_file = ''; + } + my $docid = $state->{'footnote_place_id'}; + my $doc_state = $state->{'footnote_document_state'}; + $docid = '' if ($doc_state->{'outside_document'} or $doc_state->{'multiple_pass'}); + my $foot_label = &$anchor($state->{'footnote_footnote_id'}, + $document_file . "#$state->{'footnote_place_id'}", + "$state->{'footnote_number_in_page'}"); + $footnote_text = "[${foot_label}] "; + } + } + return $open.'>'.$footnote_text.$text.'

    '; +} + + +############################################################################# +### OTHER SETTINGS +############################################################################# + +# For split pages, use index.html as start page! +if ($Texi2HTML::Config::SPLIT eq 'section') { + $Texi2HTML::Config::TOP_FILE = 'index.html'; +} + + +return 1; diff --git a/make/doc-i18n-root-rules.make b/make/doc-i18n-root-rules.make index 6026c9e986..12c878c0bd 100644 --- a/make/doc-i18n-root-rules.make +++ b/make/doc-i18n-root-rules.make @@ -30,10 +30,8 @@ $(XREF_MAPS_DIR)/%.$(ISOLANG).xref-map: $(outdir)/%.texi $(XREF_MAPS_DIR)/%.xref $(MASTER_TEXI_FILES): $(ITELY_FILES) $(ITEXI_FILES) $(outdir)/pictures $(outdir)/pictures: pictures-subdir - ln -sf $(top-build-dir)/Documentation/pictures/$(outdir) $@ - -pictures-subdir: $(MAKE) -C $(top-build-dir)/Documentation/pictures WWW-1 + ln -sf $(top-build-dir)/Documentation/pictures/$(outdir) $@ $(TRANSLATION_LILY_IMAGES): $(MASTER_TEXI_FILES) find $(outdir) \( -name 'lily-*.png' -o -name 'lily-*.ly' \) | sed 's!$(outdir)/!!g' | xargs $(buildscript-dir)/mass-link hard $(outdir) $(top-build-dir)/Documentation/$(outdir) diff --git a/python/auxiliar/postprocess_html.py b/python/auxiliar/postprocess_html.py index 308e4370ac..3db9fda8d1 100644 --- a/python/auxiliar/postprocess_html.py +++ b/python/auxiliar/postprocess_html.py @@ -94,7 +94,9 @@ def source_links_replace (m, source_val): return 'href="' + os.path.join (source_val, m.group (1)) + '"' splitted_docs_re = re.compile ('(Documentation/out-www/(notation|\ -music-glossary|application|learning|snippets))/') +music-glossary|application|general|learning|snippets))/') +lily_snippets_re = re.compile ('(href|src)="(../lily-.*?|.*?[.]png)"') +pictures_re = re.compile ('src="(pictures/.*?)"') docindex_link_re = re.compile (r'href="index.html"') @@ -105,7 +107,8 @@ docindex_link_re = re.compile (r'href="index.html"') # this also fixes missing PNGs only present in translated docs def hack_urls (s, prefix): if splitted_docs_re.match (prefix): - s = re.sub ('(href|src)="(../lily-.*?|.*?[.]png)"', '\\1="../\\2"', s) + s = lily_snippets_re.sub ('\\1="../\\2"', s) + s = pictures_re.sub ('src="../\\1"', s) # we also need to replace in the lsr, which is already processed above! if 'input/' in prefix or 'Documentation/topdocs' in prefix or \ diff --git a/stepmake/stepmake/texinfo-rules.make b/stepmake/stepmake/texinfo-rules.make index a403626e07..97256f4c62 100644 --- a/stepmake/stepmake/texinfo-rules.make +++ b/stepmake/stepmake/texinfo-rules.make @@ -29,6 +29,9 @@ $(outdir)/%.info: $(outdir)/%.texi $(outdir)/$(INFO_IMAGES_DIR).info-images-dir- $(outdir)/lilypond-%.info: $(outdir)/%.texi $(outdir)/$(INFO_IMAGES_DIR).info-images-dir-dep $(outdir)/version.itexi $(MAKEINFO) -I$(src-dir) -I$(outdir) --output=$@ $< +$(outdir)/lilypond.info: general.texi $(outdir)/$(INFO_IMAGES_DIR).info-images-dir-dep $(outdir)/version.itexi + $(MAKEINFO) -I$(src-dir) -I$(outdir) --output=$@ $< + $(outdir)/%-big-page.html: $(outdir)/%.texi $(XREF_MAPS_DIR)/%.xref-map $(outdir)/version.itexi $(TEXI2HTML) --I=$(src-dir) --I=$(outdir) -D bigpage --output=$@ $(TEXI2HTML_INIT) $<