From a060fc94b65dbc25a7e1ec20f2f79a58036a2546 Mon Sep 17 00:00:00 2001 From: John Mandereau Date: Wed, 5 Aug 2009 13:37:52 +0200 Subject: [PATCH] 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. --- Documentation/GNUmakefile | 20 +- Documentation/common-macros.itexi | 94 + Documentation/css/lilypond-web-alt1.css | 894 ++ Documentation/css/lilypond-web.css | 881 ++ Documentation/css/text-to-speech.css | 24 + Documentation/fdl.itexi | 6 +- Documentation/general.texi | 137 + Documentation/general/GNUmakefile | 5 + Documentation/general/community.itexi | 578 ++ Documentation/general/download.itexi | 534 ++ Documentation/general/introduction.itexi | 777 ++ Documentation/general/manuals.itexi | 446 + Documentation/general/news.itexi | 3378 ++++++++ Documentation/gpl-2.0.itexi | 389 + Documentation/macros.itexi | 44 + Documentation/pictures/VTlogo_ITF.png | Bin 0 -> 4216 bytes Documentation/pictures/annotated-demo.svg | 7437 +++++++++++++++++ Documentation/pictures/background-image.png | Bin 0 -> 57961 bytes Documentation/pictures/carter-brey.jpg | Bin 0 -> 7629 bytes Documentation/pictures/darius-blasband.jpg | Bin 0 -> 10375 bytes .../pictures/double-lily-modified3.png | Bin 0 -> 51802 bytes Documentation/pictures/flat-design.png | Bin 0 -> 19144 bytes .../pictures/lao_banner_06_on_white_demo.png | Bin 0 -> 5433 bytes Documentation/pictures/lelie.png | Bin 0 -> 17397 bytes Documentation/pictures/lily-home.png | Bin 0 -> 2728 bytes Documentation/pictures/lilypond-book.png | Bin 0 -> 81677 bytes Documentation/pictures/logo-debian.png | Bin 0 -> 3099 bytes Documentation/pictures/logo-fedora.png | Bin 0 -> 5824 bytes Documentation/pictures/logo-freebsd.png | Bin 0 -> 5708 bytes Documentation/pictures/logo-linux.png | Bin 0 -> 2951 bytes Documentation/pictures/logo-macosx.png | Bin 0 -> 1655 bytes Documentation/pictures/logo-slackware.png | Bin 0 -> 1061 bytes Documentation/pictures/logo-suse.png | Bin 0 -> 1361 bytes Documentation/pictures/logo-ubuntu.png | Bin 0 -> 1725 bytes Documentation/pictures/logo-windows.png | Bin 0 -> 548 bytes Documentation/pictures/orm-finnendahl.jpg | Bin 0 -> 3246 bytes Documentation/pictures/summary-gradient.png | Bin 0 -> 504 bytes .../pictures/text-input-1-annotate.svg | 257 + .../pictures/text-input-2-annotate.svg | 224 + .../text-input-parts-both-annotate.svg | 193 + .../text-input-parts-single-annotate.svg | 167 + .../pictures/text-input-pop-annotate.svg | 211 + .../pictures/text-input-score-annotate.svg | 150 + Documentation/web-texi2html.init | 1093 +++ make/doc-i18n-root-rules.make | 4 +- python/auxiliar/postprocess_html.py | 7 +- stepmake/stepmake/texinfo-rules.make | 3 + 47 files changed, 17939 insertions(+), 14 deletions(-) create mode 100644 Documentation/css/lilypond-web-alt1.css create mode 100644 Documentation/css/lilypond-web.css create mode 100644 Documentation/css/text-to-speech.css create mode 100644 Documentation/general.texi create mode 100644 Documentation/general/GNUmakefile create mode 100644 Documentation/general/community.itexi create mode 100644 Documentation/general/download.itexi create mode 100644 Documentation/general/introduction.itexi create mode 100644 Documentation/general/manuals.itexi create mode 100644 Documentation/general/news.itexi create mode 100644 Documentation/gpl-2.0.itexi create mode 100644 Documentation/pictures/VTlogo_ITF.png create mode 100644 Documentation/pictures/annotated-demo.svg create mode 100644 Documentation/pictures/background-image.png create mode 100644 Documentation/pictures/carter-brey.jpg create mode 100644 Documentation/pictures/darius-blasband.jpg create mode 100644 Documentation/pictures/double-lily-modified3.png create mode 100644 Documentation/pictures/flat-design.png create mode 100644 Documentation/pictures/lao_banner_06_on_white_demo.png create mode 100644 Documentation/pictures/lelie.png create mode 100644 Documentation/pictures/lily-home.png create mode 100644 Documentation/pictures/lilypond-book.png create mode 100644 Documentation/pictures/logo-debian.png create mode 100644 Documentation/pictures/logo-fedora.png create mode 100644 Documentation/pictures/logo-freebsd.png create mode 100644 Documentation/pictures/logo-linux.png create mode 100644 Documentation/pictures/logo-macosx.png create mode 100644 Documentation/pictures/logo-slackware.png create mode 100644 Documentation/pictures/logo-suse.png create mode 100644 Documentation/pictures/logo-ubuntu.png create mode 100644 Documentation/pictures/logo-windows.png create mode 100644 Documentation/pictures/orm-finnendahl.jpg create mode 100644 Documentation/pictures/summary-gradient.png create mode 100644 Documentation/pictures/text-input-1-annotate.svg create mode 100644 Documentation/pictures/text-input-2-annotate.svg create mode 100644 Documentation/pictures/text-input-parts-both-annotate.svg create mode 100644 Documentation/pictures/text-input-parts-single-annotate.svg create mode 100644 Documentation/pictures/text-input-pop-annotate.svg create mode 100644 Documentation/pictures/text-input-score-annotate.svg create mode 100644 Documentation/web-texi2html.init 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 0000000000000000000000000000000000000000..bb45adfbb419414ede82b8a1a33e05459839968c GIT binary patch literal 4216 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 + + + + + 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 0000000000000000000000000000000000000000..dac7f63eb79dd9c2d787b8dee0df435b89070b89 GIT binary patch literal 57961 zcmV*hKu*7jP)00Hy}0ssI2M6^iV00001b5ch_0Itp) z=>Px#32;bRa{vGf6951U69E94oEQKAAOJ~3K~#9!?7i8tBsY>Js0T1JU+xkc$z(EX zD!XeIk)CgzPnoZomVRiF>6*@}ELL%eVBFQ+7C`3#wi{Fd50aT&?v*NLEFSLWW`IKV z=+SfVfB%pFi(Y;%`2m56K_FoGlj(mk{*H(iufY6ei&p}(H;KJq@$a{PJN$b7VbUvs z&8KXx9LtN3U(E8ik@ptQ?Shx@6Mdz0!P{FGf6%dKz5U{`|E$*`4^MOPKE+G0{itOu+1MS@+zgsUC zM4xLUvddd^yI!TwUmrH{S8ifx?CVCu%5*(UtQ``Yqex!&kS+<3E+UQ-2 zJZcDU2W>Gx2#)K>PFiG#^a!+29y$CVu9^AyAw4NMvPZ904sg+wL%W%PkjKbJ5%RYG z{Hr4p92U1OzN5nrFK!%^kRU{MqL66D7TQa2zc8lDS=HwB&UrAA#TwmU^S_z}#P#k{ zqOiUt^4|v#uTA*d_;<%Lz16ck^(azeE-5)X;%^Zzo3>e=64@c$e?VOfP|^V5Jt3S$ zkPiF!>8-32BwwN&V3azfmB_yNYOw+r>B>Nfkja!nNThN?#QIQ#5F55@CK_ARHM6P= zhrfLZ?w=g!mAx0MV&jirkL=i#c2T&1Qs~h9P3Eha7cY)QcBsiL68A*DMNnQSh4sxP zK>%vsMD?^*ktsR7EQT4b^!G?mr@JmlEyF%|ieu4vA>}E#iRl zU+`G0ZB7vd>x_jMsQDL!1P(nAxV`ubD`IG6F|zidRtl4fHLEAU9P3PP)I<=0l5WO9 zC#FdAAo|4x=wCzd*6T$BW-dTuC>xF0ED7e>8zFCTQufW1t~Rzxlezo)<{}CF#Y)e} zWyU{SMtom_`z4V*g~n*jI<12m-<%50u9V(Wzc*GKAdwGlu}+S5P-6jJ$>79xS@?id zg+b9SmK3vMh`89Nx&)0`y)nmNx)>|~Ks=Zs=E<>T0~JqDfi*yVfs!cbm1P3@k3Y?A zN&)pi)QZSY?w~?@AHA+h;_SJnxB$R%vYOCy_Lty(dCs25@(|l#Dk87E0HlR=A{kUA zDYBE8v$Gt+pp}i0e}QCiAYqF@UTJ&@&aQl1BC8_i6RPNn087?ib#O;bwAIVjRjhgPPi_RC9fzW|Lv zP6`7RYS3|(G^8->VOBHo)Sl_PvRLHiV$?_!s#;{%C}P?!k491@$4nhyBp-lkWS2-d za^AG6wiM6_$xKf{0x6DfKwNWTbla3BNF7UBZzf&msl{$Gvga^mW92oVpkqo_0Tl@p z3J$TUF5~QSlR#QvNVj=kf_qlNuHx(xrU?Dki#Q;(0&tF$kc`HVinCLk`j$^dgo4Jz z*Y{>)uu8y>(}^?y8v;;ZM zxE0?=OKTwWU$w<4ZNxYrmdlONa(1X`TYT*yN=pT)75_FNz)R--Bf~t9P8H*9Uql%k za>1o!_Nxh-)g|TQ>@l7L<#EDDn%YV9MIqO@smQLt-x*Mho)*Ptn&jCQeRl!!oykkv z<9v1kGA|y90w{sACs>cd387~LLeEJ#P+6#Pk-?3L9biZxLCI4#8c9_k3&~G}T&E$4 z+hA6FzrZq|p0?|=BqC)viN>V)?DP{%Dy92odAoEAjI86AmZGMBR%pRXO8nQ=I&++7 z5UZ@yC`e+LUl1FzxXD^%S94?uBpI7>%7C^`4}T#v~>!(&uy* z&dyorqLPqFX;323iG3(8Sg$X^{Q^KH6T|&c>H_Okt0Ou2kzGJ$DSP5+&i0e?IzX#1 z5;(gsG`j_KJs9e#N@yArt&Ulr2H1R_{d z-&99xK_OWHi3f=MG*cZ^q;Ynrq%0DT$yn|}nS@|{O711NUliGqRiMi8CA)(Pq^>81 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 NwMW`YWe=^<{{!zHd*uKC literal 0 HcmV?d00001 diff --git a/Documentation/pictures/carter-brey.jpg b/Documentation/pictures/carter-brey.jpg new file mode 100644 index 0000000000000000000000000000000000000000..34b970821abc1bef84b21ae42bd6d9b60ceb5e82 GIT binary patch literal 7629 zcmbW5byQSu+wb>KLka_f(j7CDQlfOj07DHRt#pH=q_hYk4Z_ecbV-LG(vl)2(jg!M z(y783f6qD3`@H9`^PX$1d#%0K75Dz`z1F_3>vJ=EvjR}4DI=5t5Z3rWd;oB>3Mo0E7_e1=4UqYyb`fgbM-P^a9M-=fwZ3 z8}wJwKL*0V#lt566A}@VU;`Q{02~l5E)E_pK0Y2+Iw%P12k;>Hl&pes1XMZ}U^aKC zP-tR4A-jBS7q#x^0}f$Jk1!(Q+jnSa={UK#VQ?N1(feW#9*Qd{Dk-a|BGgcN`UZ~- zjf}0VZEWrA9UMKqynUYe`uT@PM81f686A_9oRXUMCOrdPP>3liE-5W5ud8opY-(<4 zZR_so?du=-I5;#hIW;}=W%ldb>e~9Zjm@p^+dmGEj!#a{&Mz*n{^|k&xc`#%Z)N|N zE(lf^4jvvZ9{8^=5Y98~!iC`BvkDSW%ISbD+^N`vLJ6VriTSl%MC`)42h^4xpNVgC zh^%rR{+0HRvi~<>VgFys{w?gkbj<;zxFGDu!-W7cz>%L>#OUA;2i&)=#ksIQ$3aLj z7o&tpc7L?|Xk0^OL;6|>efxS@(Jjv|DL5ep7dTY4=%}Ab5%x#R!e{dc(xe+{J#!ja zq5aSh3)|D;H_oRRJ7V|WWyMMWB^hhn(o%z)8wzP)z(D5%qlo-e#cCNav6c+|puIH{ zwwKe8z8UK&OQkpM=aRm|kRcE9Yj{Wih7Z?l-s zGAD{XHXhk@3uu1qZmw_3nH^=|vjXo!`V_}i3pY{bt(>tsifpP=EHwSRDbvmc${Z@O zS9IN?df9PrqUt)vsJj^7I;w85SX}wfWRI5DW$|0noIOMtXC1wM6`m*u9rn=hJt~RCU56)&0mAAB-O9<74<(2Ki zUxqV_`D;sC%@h&(qs`J?Q(h=OLf>2&l5w^vwO+5o3qQ_s2euc?d844hD$U&p%7%9U{?Cf|LIk(dO1hZSiyXcIK91s9FT z%*%}BlY~F2fzl6l?i2=#hZOUwQ+bFoOdg`OAC^3ckrj5>)0}nqaNl9x9)~{*Gx6+*gS;~lcR>eVq(fZPCTm-Nq^J<+Eoe>|4BUo2YqRdf6*?fkTDnrgDuCjK3> zZWT4*MRcM?_IT6_N3AxIwx6g*#@FriA$N;yGEBH@C$78WS^pcGKcYZi3h`ouFKS`2{V(+`Z8PMEF3Mz?NgtZg7a}fyr3Jv zkE(=La%Nc10`_$_MlhoP0T_2FO9i@eFOQDQ=+#0z)H2JjAcP?t4M&v~q`&@Edz~rs z$IER?XLnR9P%zj%{_@B2Sb;gxh;<{b!KDu|m*Cw82-|bV!7Jr?g`YyL(FrxurznHq zyBg`?gY@?Pq?>L6OGiG5@xz~0@=Ad`;-_7ew6^h4`@!|zJG||b>?ziuBozhoc^H~x zrY($>ODAw7i=r@2It#rLh`)*;r;MghK-|V9 zm-P=e9x9mGJc$b)APXFiP=-TvJsXmqr)~y!#O$ej+H(JtSEF^vdE7vJqH)j94I8r<|(bF+`j6xHJM2EHj-t`7bB!tkf;hyj)9Q~ z7rlRck#4$v?caP{3b0izho1e)eJt9U{pdrLDz&l_+>|M$l)$%SUCJJmz9kyJMjK|* z=PH;c5kGFQDVVFae(DtJS*H52D^YoxefwIJ(jOZ0wzSLYq(U6UN7q-;QNCC{f|+kd zD60%#oRp@@YD@99U0CHQlO1f;zpfF4W zB38L4tlfQpt%aZXr)s;&^UqHPc>PRsZizo{oVj@Ou^zo|&WPvOQ{IQg^R?}CKjhZv-?jdvgVrY&apSr@toGUJ5gTkg<+?rJ zzmhR*wQc^@!J=f2wI!M|AnBeBH@D10yUBp@N&Q94o^~u8QuCG}SQ1@2km_is8~8~< z%wWo*u1?(M{y?MU;^OG-FrGA4JxVR$QO9?2s4+OI(z*IMf)lj-r;Kon{OC9D*!7(YZ_!Uw zm~*1GiI09`JuL;mI1f;9bk2m4mJKbJ)72e{y)Dt_~`$sQjjC%G*% zv8xsp1L=}+-I%6)?(uJuCTs8p5}NC=3jE!@b{1xDU|j}=R#F|1EhLs1IK-UdMVRoaQ!hVV z^OJzBf=^|N^jlj@ib)Z%T!3~9%^72P{fOaDOS2B7s7Zk562_*GSB0)YO-~FIJsbO(%cjgxDfzw3sX)CQl&<@UBLzG43{rvnv_z9+12S>(=)m z9antV6ZOthEh`DxYis6A_H;`$nps{Y6Vm$!CJQYiKT6N!s%K+T@aL*jP>Xf)rG2c~As%py9+g=YEQ)v`v zJ!HB*5^HV@uKUotVd<99x#V{6d&hd$+CToKq#fq_c``z>U~Q+M3o`b3o;$CG@$gRU zzG!AEM`8%6@9PIT*P>$?cJI?!q&x<4vIj-gIkJe~@P>+fA>*|f3j$l{SY&Q%86FN| zY(J5FIK>D_TE%E%TMGahF+ov`M&eDNKze&mRIH5E=0n)?D~CSEx+pPzC=N|7D@a6A z%Zr_g_)OPi=)_d+ClR5~ z)KDHFS&naioFZQtG{>l?(!U}le7P&zAFLK<2SXphh6d`@1MuAOsgxthN0Vn>ll^R5 z)VeKDF8l;OI&1lN02G{3QLNyUMIf0jvJbI13HM$>{`I2oLgq`5b8^ABaq$-fmZ}!mANirc8od^Q}3`t|nG1GBt{2^Vr_6U8n<;}fTis891Q|J_ z+Q3R2P;QaJeVr+7Y62jS*|DW*1C z@l_d3JP&%`s90w3u<9;5?M}|ODIt}d1?^Z&wJ!8lYl+YvSLRaqJt_M>R>_GNJZ^s& zW?zW zZTwM3p+JQ)!5bjAOy-1LfA!Mj8TQPT!Z$m_Ar#$HAK7?46#>JJC#RJTj9Ev%j9?30 zm(d~nS4XB80X-(tsIoJr+_9V@+3r}-6nfBL?rQ~t%Reh#PInys*kh8w;t0o}&}whK zQObtHyGTMUZ9pVZBcI1xRKG>kakZ&hi}t&eV=hY1hSh#g6<@+VFA)w$a^AbsC@r`! zsrq5SKfxE?pA72}tef|s3cfZoqaf^p2`C&@R!-8-Gqy%H1zyYR*Yf9l)+bC&xX`S3lX z1AXxN-+V1>K2Hd^r-Oz3;sV=Vyr0A#ImNkAZJPh(hf!2uwIObRob%j&_7~An0)lV8 z{)1QWaq+NoJa&r5!^g*h3(~)!1x!vtLPQE7r=*0CLm*VQ8SYR)>8K$P8de%QMn-04 zW~w`E9BfP+3{1>S|KJsDDwqI#i;(aZ6BGhv`XAfB@Jcvf{on8k0~VOzVMq4=u)lN# zgvBdZNTEQ1We$H41eOgE{S)*LTfv7AVBrc_PKS!k!d*!BFI$09v&$FOPH=Dvi(1yL zDxmbk!V9`S9~@$f(Ef{b{KpReDuQ(}VHpR`KN#fSUJw=@{3SP3Y&ZW6CLAaCjV+EH zRiz(Czz5`2e1EN;<1c%5sT@XBNi8bsZPtlTZA7Nj1ab=SB?D&XNjC_Vq%_asxL%2g&)PR7)m($v+> z;-2uyzK{A!_X)~n;)^L^OY$cE&fed8ohiK7SB&QHo9j>?nV5+%QvJ?`&iJJSddgqv zdJ)}w|BdWIcu9mqN&{tye$ZVDrdTaraWzv;2o2HJEeNmyW#O-)Dlug3k9ua$^0{)h zoDU*>o%x`qw?|d!rJ$2|?Bp@d@*MBsz45fI2J>j6J1~jva4T4=AaAYK17gaEohLx6 z6uY)+QAP3D>&!?YGNe0B`kQQZgp1=-YQ`a5RowowI4zSJB=S8*y`{;ft4LAX!UX!1#WnCAUQ`DcuRW$8*RG&1ch@STqZ!EEi zv*NE}NREaMRQR4fS2M728B{-~mDPD`sLIf4s^aQsbE0p@RgAYV)T6R_#$B%_i-!q@ zv~XRI#`^V882k`wX}z48N8x`BD~SDCzwFLH84Tk%{)ws9GMwe`fj2t^$#QP+}8{@(n z$wigMpvT1!vculG7bdh^h(}@6s;5+rx<9$|<|3WGu|P=&cN?DF>D<}d!_VH~!gj(M z+uZV!Cekbt$Gxj$8X6vKqILPob?oZpv~RT7*P-E$tnxo$EpKl%;i~`A>b~uo@Oeih zBJaiVy!xDk7M`#5uN3!Q{~r`FdTmum>r!f@2EGk3dy=-C!Ml`srvWyXRCq&O0z%x- zJ6>P+-ta7Qq~4Ho@4h1gPj1!|3I&0P^XTu+d6_N?U=ORr>ig!@b#+Q46kJ77JcRZ| z%U=6=dW6r;}p}mNM?NeV%9icHx2FRhd~qZcG78ax4Y$`E4KO^fMP*C~a(%A}X_1v3V0vuU&R8*abuv)c~D8o z-^1~kr)0HhDN_fj=Hqggm3va2lG?-Hw8D)rRI{|$nqaZcjNVI6f7))-5mla z4jNY=ZTOLz@zzT^?L&ZNx!#34>Uk#5c?5^qlUq-_xlGlcNYB-i4awEMtjOTCwrvWW z!#H>?+uL!P3WaMG#n_^e{ZG9YsF;scWxhWKxf~P8|az5g$#gi-S@g*41 zn3DKBt5?|2;}p@=xqT~GF!JMBeA|n87j>g?KtRLi>*xv6CojfE@M|BSrj(Ftq+-F) zBXOJ@H>Ocp<;1C&K404>-XU=>jdMG>BF)}RQONmGjkLcqCgEH2RC{DohbuIbW-~{L zyWjYpyP1marP#`bWvp+;KxT(@LVUJlfkaV&NUl(o%V#bLZfet@Ho~N|Boj~3hpDRh zJd1rkeI(L~tjd4bnK_kEoGp6QT?mbD3r7nxnvDXGu+>=#}B~p5`T-r=3=a_=x!lBXU zk&Em(Vk*Jy(;NN*$Vg#z@$EV_c`aCOA-7`d*6sPCBBLh&aadTWlpI4L%%ZRL^mP#- zJ5s4B=G5zzzi0lS9=@ZlOC>aHv$qkpmYBiH!WgbuCJ7GXBsnWWL2VqbJTgTz5}U~0I?f|Q`J3;UHmplfV^=g&Jl^G- z{N=5}sNA4aYgCQ++E9#k0^)*83S-VtxFSQyuPh9v*Hd0PbdWWlp8YqS9!Yz}B&YNnth&Dz<9~6l%+tv~2 zxJ2=)SX>&eiH;uX42jfdV>+nQHX{2Yhi#3drB=vOJiJ8A4b#*02TxERZ-sZW6_yv4 z)qFmP{Mz0CpEh6Adf*_|`L=JVnwu;1zPK}R7?TmfDNs>AqV2=8Y~O9&U%2v_PN8yC zqn>B?oogAtl=Js*E)AltyLQ&aViB_uB;~htshs3poDxACuh(gA<;f%WN#2JsCdrya zByMco03Sc%MZ-OoXIi%*dD~Q!RU%6e_mPEu;t;05f>$9NoKMIQVRXtK0(^KB{d|HA z!;O5Nrn%`4m;Cdtru>uE@;!7vn$Q+Asu7smc1Z_cZPNDz7h3Y9yR-0axn_kcIB%gQ zcu053z46sRu&?YEe*!JZ-!s;J%rj{pBJrcc=lA3}$vTt*M|E~H^tQlRKrR-SetGrY z-^t^O8I39O)FkrA^7%`~Cz3=5=69!L=jb@*hq$KFKtsTnbqf3|g{(R=sAibp7UgKxW4=?j)4s7Wf9B7}p4+p85t840{a=<{ Bvh)A| literal 0 HcmV?d00001 diff --git a/Documentation/pictures/darius-blasband.jpg b/Documentation/pictures/darius-blasband.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c679bfe89cfbe28c1adaed837237e46a5b3487d2 GIT binary patch literal 10375 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 literal 0 HcmV?d00001 diff --git a/Documentation/pictures/lily-home.png b/Documentation/pictures/lily-home.png new file mode 100644 index 0000000000000000000000000000000000000000..98047b74bfcc2ab2efffac46d5c36c205e7ac9c3 GIT binary patch literal 2728 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 literal 0 HcmV?d00001 diff --git a/Documentation/pictures/logo-debian.png b/Documentation/pictures/logo-debian.png new file mode 100644 index 0000000000000000000000000000000000000000..d163414d3b0f29612102322f8cc99cb3918196a2 GIT binary patch literal 3099 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 literal 0 HcmV?d00001 diff --git a/Documentation/pictures/logo-fedora.png b/Documentation/pictures/logo-fedora.png new file mode 100644 index 0000000000000000000000000000000000000000..5e0b437dfd09ad185142b0db1172aa1a062997f3 GIT binary patch literal 5824 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 literal 0 HcmV?d00001 diff --git a/Documentation/pictures/logo-freebsd.png b/Documentation/pictures/logo-freebsd.png new file mode 100644 index 0000000000000000000000000000000000000000..df203a116a45e68d71974e08fd397f972fbde3cc GIT binary patch literal 5708 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 literal 0 HcmV?d00001 diff --git a/Documentation/pictures/logo-linux.png b/Documentation/pictures/logo-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..b30937c581508a58bd8b0a2bb23f1509d7c56f28 GIT binary patch literal 2951 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 B6ukfd literal 0 HcmV?d00001 diff --git a/Documentation/pictures/logo-slackware.png b/Documentation/pictures/logo-slackware.png new file mode 100644 index 0000000000000000000000000000000000000000..01765f8b68bf83fde64280292b22f4ba5ab9a0d7 GIT binary patch literal 1061 zcmV+=1ls$FP)$pni_pga000McNliru(+C?B5&(?NBmn>b1F}g( zK~#90?N%{J<6sniJ^sNK3O3N88B$1~LM5{dj(R`C4%d~ZILn+wFF|s8*|!laq#OdwUzp2ZwJo8c$D8t6R7#!@`I^WmV z*E2IS4u`{LvrSJ=Z)|J?0)fGfda$*%<@I_Af(VDhfk1#Dh>MGh9-F(nyV==UyWQ?^ zI0%B+-`^()Vt049-`md44#O}L6B7)>Fbo5h`L0wdi;IgCMa5znUM3kwT&yM29qou+A3RrmJxn$4!AH>cC7s_OguJ5AGW zw;RB!FO$h60A#b-9!bAttJMO40e$)U`dY8oRaH%=(+HvS^K(NL3KjMvV z4Oy14O)8bbnKRcn{sU&8r>Cd5?aaK5v#qVI;S$GLx8SX+s?o*4V2~t90C2nAwOY-5 zjDAoQg$*Q08XFtK)rA)>m&-82Hnm#K=ksCDQ&Us8CP|XS^FR;;+#3e(?ic~Uhv`=E z+}zyl?JZtcDixp4cXD!ac6N4ufA8^lHa9nUo~I}Z8;~R!kH;-}<3%VGk|gQi;6Rq; za5&6y97R!hTp0H&MNy?vDU-=uU0pSs&1f{byu8fwJk~}c5gfv}>|(K4qtWLP*#3F7J`U fsMhxv?~lcIxTx=+Zy(Ce00000NkvXXu0mjf*ud*O literal 0 HcmV?d00001 diff --git a/Documentation/pictures/logo-suse.png b/Documentation/pictures/logo-suse.png new file mode 100644 index 0000000000000000000000000000000000000000..dba0cd17109a0a54ef0a22a85aa21d89fd64a836 GIT binary patch literal 1361 zcmV-X1+MyuP)h=2Zq|$wexwHBF_8f3!Tdf-3?(M(a+3)xEWU(cDzDEB4`~Uy{zsl0Z00001VoOIv z0Eh)0NB{r;32;bRa{vGf6951U69E94oEQKA00(qQO+^RP3LO#?4?{{wX8-^McS%G+ zR0!AQm)n}7APj&7Dj>8lDAjtvy#HHn08j1KPA~Ru)A_0x_{oXbDd68r@!vD&Pm(4y zm1c|Rs+seucD*@H{ep?wrs7^&Ary*GB3S8p0(0v*tLk>&gr z6R)NALVv7Jm{~A;#9n+~{Z@H9WLl}TfACLC0Ir^@XZ3vZdD$vR%%QKt;~{JNknK4W zW<;*b)b9C`7axrbZ=Y$_Tj~8RBhFjw~msq5vIc0(l8|+OT zWvkb81ya{ch9Ioh^||kjH2DNBF;%PM;-!xAtl)KZ)4HyRtj?G~A^{JyMZu%JYdDS$U`|wvxmrQMUc%2@P$&%)*=7FHc22XDm%A{F6R|o5s z?zBkkO*c3_M<8*n)j+wAeX@lbt7Hu)=3;YM5T-RJC>-1L278Jpw)(a&t%aw zJWA-aW-XNl7gLY9XWJ~aRHOiX%f#};Q;aNyNoF%Q(RmgobMO^rf|2ImGUrIc>Drpf zOdPnGkm)KC$Z@U17Hli{j!9#ZOkhxXDM{<1?{h3>tzVXFEZ*Ok>%ob^Lul$TZOldt zBwf|p-ncuS#g9w?N0UITdL&8C8TUp^vPoxdOj@^YPjPxG_ERRn{ZeMRkAS^frG^yS zU3$gNySk09)O~n^Gv@75tkPZ4QXk(Pc+BzSqvzBe)Hf`peOQz|oG^ciBQs`%*!aW6 z@+Nkh`$645%`S>NJz>U;FZV1XoyY67ZR<+kTD-$dlt=YE@3WKP@Scf_I=5w(;@rD~ zn6P+9p+g_XRh=TyR7H*qoTa+>TzSH$+u6;=uNjK7RGHVEmIcC zUHy}-EApuOz#O_m(C3{AnK>MD@|5XE`V>ibd5Pz|sIO5?A*pX!#-~RA_J5gJ9eo>@j%)Iexk<`6-SYnTuc8C9zh)UW zJByz*?h>;f4(c{BfAWL=oO$mSi9sJ}IycKOGA~EY7YA9}K*vHhfPN|$#C9+=tTqh*kKJza|tD+u-b_=))k&|pN> T+|=Uf00000NkvXXu0mjfvK*-K literal 0 HcmV?d00001 diff --git a/Documentation/pictures/logo-ubuntu.png b/Documentation/pictures/logo-ubuntu.png new file mode 100644 index 0000000000000000000000000000000000000000..bb9d0de4ffd848f60fbebdab579d9c716a6398aa GIT binary patch literal 1725 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 + + + + + + + + + + + + + + + + { \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) $< -- 2.39.5