From: David Kastrup Date: Sun, 13 Oct 2013 14:14:03 +0000 (+0200) Subject: Merge branch 'translation' into staging X-Git-Tag: release/2.17.29-1~19 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=25ca54b640c067e2286a1d7ba47f24a1b4dc070e;hp=29af9bda720e7624494abbacb9895ac7d63b5221;p=lilypond.git Merge branch 'translation' into staging Conflicts: Documentation/it/usage/updating.itely --- diff --git a/Documentation/GNUmakefile b/Documentation/GNUmakefile index 44d4d04b02..c1a194b54b 100644 --- a/Documentation/GNUmakefile +++ b/Documentation/GNUmakefile @@ -7,8 +7,6 @@ depth = .. ############# ### Variables -OUT_DIST_FILES = $(outdir)/ly-grammar.txt - NAME = documentation LANGS = $(shell $(PYTHON) $(top-src-dir)/python/langdefs.py) SUBDIRS = logo pictures misc po css topdocs \ @@ -88,6 +86,13 @@ endif include $(depth)/make/stepmake.make +DOCUMENTATION_INCLUDES += -I $(outdir) \ + -I $(top-build-dir)/Documentation/snippets/out \ + -I $(top-src-dir)/Documentation/included \ + -I $(top-src-dir)/Documentation/pictures \ + -I $(top-src-dir)/Documentation \ + -I $(top-src-dir)/input/regression + OUT_TXT_FILES = $(addprefix $(outdir)/, $(addsuffix .txt, $(README_TOP_FILES))) @@ -205,24 +210,24 @@ $(OUT_TXT_FILES:%.txt=%.html): $(outdir)/%.html: $(outdir)/%.txt $(buildscript-dir)/text2html $< # Explicitly list the dependencies on generated content -$(outdir)/web.texi: $(outdir)/we-wrote.itexi $(outdir)/others-did.itexi $(outdir)/weblinks.itexi +$(outdir)/web.texi: $(outdir)/we-wrote.itexi $(outdir)/others-did.itexi $(outdir)/weblinks.itexi $(outdir)/version.itexi ifeq ($(out),www) ## Extra images dependencies $(OUT_TEXINFO_MANUALS): $(outdir)/pictures $(outdir)/pictures: - $(MAKE) -C pictures WWW-1 + $(MAKE) -C pictures out=www WWW-1 ln -sf ../pictures/$(outdir) $@ $(outdir)/web.texi: $(outdir)/css $(outdir)/ly-examples $(outdir)/css: - $(MAKE) -C css + $(MAKE) -C css out=www WWW-1 ln -sf ../css/$(outdir) $@ $(outdir)/ly-examples: - $(MAKE) -C ly-examples + $(MAKE) -C ly-examples out=www WWW-1 ln -sf ../ly-examples/$(outdir) $@ endif @@ -275,7 +280,7 @@ $(outdir)/%.php: %.php $(top-build-dir)/mf/$(outconfbase)/feta16list.ly: $(MAKE) -C $(top-src-dir)/mf -$(outdir)/notation.texi: $(outdir)/ly-grammar.txt +$(outdir)/contributor.texi: $(outdir)/ly-grammar.txt ## Rules for the automatically generated documentation $(outdir)/ly-grammar.txt: $(top-src-dir)/lily/parser.yy diff --git a/Documentation/changes.tely b/Documentation/changes.tely index f2266666d0..01c5e2d48e 100644 --- a/Documentation/changes.tely +++ b/Documentation/changes.tely @@ -61,6 +61,76 @@ which scares away people. @end ignore +@item +LilyPond no longer automatically infers a @samp{\defaultchild} +context in a context definition with @samp{\accepts} clauses. Any +context definition without an explicit or inherited +@samp{\defaultchild} definition counts as a @samp{Bottom} context +and will be eligible for rhythmic events and overrides without +causing the implicit creation of other contexts. Be sure to +specify a @samp{\defaultchild} for non-@samp{Bottom} contexts when +defining them from scratch. + +@item +There is now extensive support for both discant and bass accordion +register symbols in the @samp{scm accreg} module, see +@ruser{Accordion Registers}. +@lilypond[verbatim,quote] +#(use-modules (scm accreg)) +\new PianoStaff +<< + \new Staff \relative + { \clef "treble" \discant "10" + r8 s32 f'[ bes f] s e[ a e] s d[ g d] s16 e32[ a] + \discant "121" + << { r16 r r } \\ + { d r a r bes r } >> | + 1 + } + \new Staff \relative + { \clef "treble" \freeBass "1" + r8 d'32 s16. c32 s16. bes32 s16. a32[ cis] s16 + \clef "bass" \stdBass "Master" + << { r16 ^"b" r ^"am" r ^"gm" | + 1^"a" } \\ + { d8_"D" c_"C" bes_"B" | a1_"A" } + >> + } +>> +@end lilypond + +@item +New commands @code{markLengthOn} and @code{markLengthOff} control +the allowance of horizontal space for tempo and rehearsal marks. + +@lilypond[quote,relative=2] +\markLengthOn +\compressFullBarRests +\tempo "Molto vivace" c2 c' +\mark\default +\tempo "Meno mosso" R1*16 +\mark\default +g,2 g +\bar "||" +\markLengthOff +\tempo "Molto vivace" c2 c' +\mark#1 +\tempo "Meno mosso" R1*16 +\mark\default +g,2 g +@end lilypond + +@item +Rehearsal marks at the beginning of a line are now placed to the right +of the clef and key signature by default. As in previous versions, the +@code{break-alignable-interface} controls the behavior. + +@lilypond[quote,relative=2] +\set Score.barNumberVisibility = #all-bar-numbers-visible +\set Timing.currentBarNumber = #72 +\bar"||" \time 3/4 \key e\major \mark#10 \tempo "Adagio" b2. +@end lilypond + @item Decimal numbers can now be written directly in music, without a hash sign. Together with the previous change diff --git a/Documentation/contributor/doc-work.itexi b/Documentation/contributor/doc-work.itexi index c1dd8adae8..680522cbc9 100644 --- a/Documentation/contributor/doc-work.itexi +++ b/Documentation/contributor/doc-work.itexi @@ -276,8 +276,6 @@ Level 3 subsections are created with @@subsection Foo @end example -@itemize -@item Level 4 headings and menus must be preceded by level 3 headings and menus, and so on for level 3 and level 2. If this is not what is wanted, please use: @@ -286,11 +284,9 @@ wanted, please use: @@subsubsubheading Foo @end example -@item Please leave two blank lines above a @code{@@node}; this makes it easier to find sections in texinfo. -@item Do not use any @code{@@} commands for a @code{@@node}. They may be used for any @code{@@sub...} sections or headings however. @@ -304,7 +300,6 @@ but instead: @@subsection @@code@{Foo@} Bar @end example -@item No punctuation may be used in the node names. If the heading text uses punctuation (in particular, colons and commas) simply leave this out of the node name and menu. @@ -318,17 +313,34 @@ this out of the node name and menu. @@subsection Foo: Bar @end example -@item -With the exception of @code{@@} commands and punctuation, the -section name should match the node name exactly. +Backslashes must not be used in node names or section headings. +If the heading text should include a backslash simply leave this +out of the node name and menu and replace it with @code{@@bs@{@}} +in the heading text. + +@example +@@menu +* The set command +@@end menu + +@@node The set command +@@subsection The @@code@{@@bs@{@}set@} command +@end example + +References to such a node may use the third argument of the +@code{@@ref} command to display the texually correct heading. + +@example +@@ref@{The set command,,The @@code@{@@bs@{@}set command@} +@end example + +With the exception of @code{@@} commands, @code{\} commands and +punctuation, the section name should match the node name exactly. -@item Sectioning commands (@code{@@node} and @code{@@section}) must not appear inside an @code{@@ignore}. Separate those commands with a space, ie @code{@@n}@tie{}@code{ode}. -@end itemize - Nodes must be included inside a @example diff --git a/Documentation/cs/learning/common-notation.itely b/Documentation/cs/learning/common-notation.itely index b17443a46c..258e2ce108 100644 --- a/Documentation/cs/learning/common-notation.itely +++ b/Documentation/cs/learning/common-notation.itely @@ -8,7 +8,7 @@ Guide, node Updating translation committishes. @end ignore -@c \version "2.17.25" +@c \version "2.17.28" @ignore Tutorial guidelines: @@ -552,7 +552,7 @@ vytvářet uvozením hudebního výrazu příkazem @code{\appoggiatura} (dlouhý příraz, prodleva) a @code{\acciaccatura} (příraz, krátká appogiatura). @lilypond[verbatim,quote,relative=2] -c2 \grace { a32[ b] } c2 | +c2 \grace { a32 b } c2 | c2 \appoggiatura b16 c2 | c2 \acciaccatura b16 c2 | @end lilypond diff --git a/Documentation/cs/learning/fundamental.itely b/Documentation/cs/learning/fundamental.itely index a0eee4d3a1..2f8cc035d2 100644 --- a/Documentation/cs/learning/fundamental.itely +++ b/Documentation/cs/learning/fundamental.itely @@ -8,7 +8,7 @@ Guide, node Updating translation committishes. @end ignore -@c \version "2.17.18" +@c \version "2.17.29" @c Translators: Pavel Fric @node Základní pojmy @@ -1735,8 +1735,7 @@ abzuleiten. @tab Erstellt Notenschlüssel. @item Completion_heads_engraver @tab Teilt Noten in kleiner Werte, wenn sie über die Taktlinie reichen. -@c The old Dynamic_engraver is deprecated. -jm -@item New_dynamic_engraver +@item Dynamic_engraver @tab Erstellt Dynamik-Klammern und Dynamik-Texte. @item Forbid_line_break_engraver @tab Verbietet Zeilenumbrüche, solange ein musikalisches Element aktiv ist. diff --git a/Documentation/cs/usage/external.itely b/Documentation/cs/usage/external.itely index 073ada5667..90036373b1 100644 --- a/Documentation/cs/usage/external.itely +++ b/Documentation/cs/usage/external.itely @@ -285,7 +285,7 @@ Quantisiert Tondauern zu Vielfachen von @var{LÄNGE}. @item -e, --explicit-durations Gibt alle Tondauern explizit an. -@item -h,--help +@item -h, --help Zeigt eine Zusammenfassung der Programmbenutzung und der Optionen. @item -k, --key=@var{acc}[:@var{Moll}] @@ -358,7 +358,7 @@ unterstützt: @item -a, --absolute Konvertiert in absolute Tonhöhen. -@item -h,--help +@item -h, --help Zeigt eine Zusammenfassung der Programmbenutzung und der Optionen. @item -l, --language=SPRACHE @@ -376,13 +376,13 @@ von Artikulations- und Lautstärkebezeichnungen. Konvertiert keine Informationen über die Balkensetzung aus der MusicXML-Datei. Stattdessen wird dies LilyPond überlassen. -@item -o,--output=@var{Dateiname} +@item -o, --output=@var{Dateiname} Die Ausgabe wird in die Datei @var{Dateiname}@file{.ly} geschrieben. Wird als @var{Dateiname} nur @file{-} angegeben, wird das Ergebnis der Konvertierung an der Kommandozeile ausgegeben. Wird diese Option nicht angegeben, so erfolgt die Ausgabe in die Datei @var{XML-Datei}@file{.ly}. -@item -r,--relative +@item -r, --relative Konvertiert in relative Tonhöhen. (Standardeinstellung) @item -v, --verbose @@ -391,7 +391,7 @@ Gibt ausführliche informative Meldungen während der Konvertierung aus. @item --version Gibt die Versionsnummer aus. -@item -z,--compressed +@item -z, --compressed Die Eingabedatei wird als komprimierte MusicXML-Datei eingelesen. Dies ist die Standardeinstellung für Dateien mit der Erweiterung @file{.xml}. @@ -425,15 +425,15 @@ Die folgenden Kommandozeilenoptionen werden von @command{abc2ly} unterstützt: @table @code -@item -b,--beams=None +@item -b, --beams=None Die Balkensetzung aus der ABC-Datei erhalten. -@item -h,--help +@item -h, --help Zeigt eine Zusammenfassung der Programmbenutzung und der Optionen. -@item -o,--output=@var{Dateiname} +@item -o, --output=@var{Dateiname} Die Ausgabe wird in die Datei @var{Dateiname}@file{.ly} geschrieben. -@item -s,--strict +@item -s, --strict Strenge Auslegung einer erfolgreichen Konvertierung. -@item -v,--version +@item -v, --version Gibt die Versionsnummer aus. @end table @@ -512,9 +512,9 @@ Die folgenden Kommandozeilenoptionen werden von @command{etf2ly} unterstützt: @table @code -@item -h,--help +@item -h, --help Zeigt eine Zusammenfassung der Programmbenutzung und der Optionen. -@item -o,--output=@var{Dateiname} +@item -o, --output=@var{Dateiname} Die Ausgabe wird in die Datei @var{Dateiname}@file{.ly} geschrieben. @item --version Gibt die Versionsnummer aus. diff --git a/Documentation/cs/usage/running.itely b/Documentation/cs/usage/running.itely index 6030539b29..c0ab293214 100644 --- a/Documentation/cs/usage/running.itely +++ b/Documentation/cs/usage/running.itely @@ -152,7 +152,7 @@ Die folgenden Kommandozeilenoptionen werden von @command{lilypond} unterstützt: @table @code -@item -e,--evaluate=@var{expr} +@item -e, --evaluate=@var{expr} Wertet den Scheme-Ausdruck @var{expr} aus, bevor die @file{.ly} Dateien gelesen und interpretiert werden. Die @code{-e} Option kann auch mehrfach angegeben werden, die Ausdrücke @@ -174,7 +174,7 @@ Am Beginn der @file{.ly}-Datei muss dann das @code{guile-user} Modul noch gelade @end example -@item -f,--format=@var{Format} +@item -f, --format=@var{Format} Bestimmt das Ausgabeformat. Mögliche Werte von @var{Format} sind @code{svg}, @code{ps}, @code{pdf} und @code{png}. @@ -182,7 +182,7 @@ Beispiel: @code{lilypond -fpng @var{Dateiname}.ly} -@item -d,--define-default=@var{Variable}=@var{Wert} +@item -d, --define-default=@var{Variable}=@var{Wert} Damit wird die interne Programmoption @var{Variable} auf den Scheme-Wert @var{Wert} gesetzt. Wird kein @var{Wert} angegeben, so wird @var{#t} benutzt. Um eine Option auszuschalten, kann der Präfix @code{no-} dem Namen @@ -338,10 +338,10 @@ ist in Verbindung mit @code{-dpreview} nützlich. -@item -h,--help +@item -h, --help Zeigt eine Zusammenfassung der Programmbenutzung und der Optionen. -@item -H,--header=@var{FELD} +@item -H, --header=@var{FELD} Gibt den Inhalt eines Feldes aus dem @code{\header}-Block in die Datei @file{Dateiname.@var{FELD}} aus. @@ -355,14 +355,14 @@ Mehrere -I-Optionen können angegeben werden. Die Suche beginnt mit dem ersten definierten Verzeichnis und setzt in den weiteren Verzeichnissen fort, wenn die gesuchte Datei nicht in dem Verzeichnis gefunden wird. -@item -i,--init=@var{Initialisierungsdatei} +@item -i, --init=@var{Initialisierungsdatei} Benutzt @var{Initialisierungsdatei} zur gesamten Programminitialisierung. Der Standardwert ist @file{init.ly}. @cindex Verzeichnis, Ausgabe speichern in @cindex Ausgabedateiname -@item -o,--output=@var{DATEI} +@item -o, --output=@var{DATEI} Schreibt das Ergebnis der Verarbeitung mit LilyPond in die Ausgabedatei @var{DATEI}. Wenn ein Verzeichnis mit dem Namen existiert, werden die Ausgabedateien in dieses Verzeichnis gespeichert, wobei der Dateiname der Eingabedatei @@ -391,7 +391,7 @@ werden durch @item --pdf Erzeugt PDF-Dateien. Dies impliziert @code{--ps}. -@item -j,--jail=@var{Benutzer},@var{Gruppe},@var{Jail-Verzeichnis},@var{Arbeitsverzeichnis} +@item -j, --jail=@var{Benutzer},@var{Gruppe},@var{Jail-Verzeichnis},@var{Arbeitsverzeichnis} Führt @command{lilypond} in einem chroot-Jail aus. Die @code{--jail} Option ist eine flexiblere Alternative zu @code{--safe}, wenn @@ -453,14 +453,14 @@ dies unterstützt -- auch den zur Verfügung stehenden Hauptspeicher. @end table -@item -v,--version +@item -v, --version Gibt die Versionsnummer aus. -@item -V,--verbose +@item -V, --verbose Gibt ausführliche informative Meldungen aus: Zeigt die vollen Dateipfade aller gelesenen Dateien sowie Informationen über die Laufzeit. -@item -w,--warranty +@item -w, --warranty Zeigt die Garantiebedingungen an, unter denen GNU LilyPond steht. (Es besteht @strong{KEINERLEI GARANTIE}!) @end table diff --git a/Documentation/cs/usage/updating.itely b/Documentation/cs/usage/updating.itely index 37575f8f66..5f05a50375 100644 --- a/Documentation/cs/usage/updating.itely +++ b/Documentation/cs/usage/updating.itely @@ -132,16 +132,16 @@ convert-ly [@var{volba}]@dots{} @var{souborovýnázev}@dots{} Mohou se používat následující volby: @table @code -@item -e,--edit +@item -e, --edit Použít převod přímo na vstupní soubor, takže je přímo změněn. -@item -f,--from=@var{od-čísloverze} +@item -f, --from=@var{od-čísloverze} Nastavuje číslo verze, od kterého má převod začít. Když tato volba není použita, odhadne @command{convert-ly} číslo verze na základě údaje o @code{\version} v souboru. Například @code{--from=2.10.25} -@item -n,--no-version +@item -n, --no-version Obvykle do výstupu @command{convert-ly} přidá záznam @code{\version} k převáděnému souboru. Zadání této volby povede k potlačení tohoto chování. diff --git a/Documentation/de/extending/scheme-tutorial.itely b/Documentation/de/extending/scheme-tutorial.itely index f5d248033c..954f1dce5c 100644 --- a/Documentation/de/extending/scheme-tutorial.itely +++ b/Documentation/de/extending/scheme-tutorial.itely @@ -660,7 +660,8 @@ Scheme-Ausdruck zu benutzen. Die Eingabe von LilyPond ist in Zeichen und Ausdrücke gegliedert, so etwa wie die menschliche Sprache sich in Wörter und Sätze gliedert. LilyPond hat einen Lexer, der Zeichen erkennt (Zahlen, Zeichenketten, Scheme-Elemente, -Tonhöhen usw.) und einen Parser, der die Syntax versteht, @ruser{LilyPond grammar}. +Tonhöhen usw.) und einen Parser, der die Syntax versteht, +@rcontribnamed{LilyPond grammar, LilyPond-Grammatik}. Wenn dann eine bestimmte Syntaxregel als zuständig erkannt wurde, werden die damit verknüpften Aktionen ausgeführt. diff --git a/Documentation/de/learning/common-notation.itely b/Documentation/de/learning/common-notation.itely index f07eda95c3..e108d0b0c0 100644 --- a/Documentation/de/learning/common-notation.itely +++ b/Documentation/de/learning/common-notation.itely @@ -8,7 +8,7 @@ Guide, node Updating translation committishes. @end ignore -@c \version "2.17.25" +@c \version "2.17.28" @ignore Tutorial guidelines: @@ -561,7 +561,7 @@ eingegeben, Vorhalte durch den Befehl @code{\appoggiatura} und Vorschläge mit @code{\acciaccatura}. @lilypond[verbatim,quote,relative=2] -c2 \grace { a32[ b] } c2 | +c2 \grace { a32 b } c2 | c2 \appoggiatura b16 c2 | c2 \acciaccatura b16 c2 | @end lilypond diff --git a/Documentation/de/learning/fundamental.itely b/Documentation/de/learning/fundamental.itely index bd96bfc91f..77e3112483 100644 --- a/Documentation/de/learning/fundamental.itely +++ b/Documentation/de/learning/fundamental.itely @@ -8,7 +8,7 @@ Guide, node Updating translation committishes. @end ignore -@c \version "2.17.18" +@c \version "2.17.29" @c Translators: Till Paala, Reinhold Kainhofer @node Grundbegriffe @@ -1770,8 +1770,7 @@ abzuleiten. @tab Erstellt Notenschlüssel. @item Completion_heads_engraver @tab Teilt Noten in kleiner Werte, wenn sie über die Taktlinie reichen. -@c The old Dynamic_engraver is deprecated. -jm -@item New_dynamic_engraver +@item Dynamic_engraver @tab Erstellt Dynamik-Klammern und Dynamik-Texte. @item Forbid_line_break_engraver @tab Verbietet Zeilenumbrüche, solange ein musikalisches Element aktiv ist. diff --git a/Documentation/de/notation.tely b/Documentation/de/notation.tely index 729c265302..966c0b6c6b 100644 --- a/Documentation/de/notation.tely +++ b/Documentation/de/notation.tely @@ -1,6 +1,6 @@ \input texinfo @c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*- @ignore - Translation of GIT committish: ebe492ca408fb0d9abf80b94c56197eef8dc2f09 + Translation of GIT committish: 00cd4ff0b8dc4978344ba966bec06ddbc445f7e9 When revising a translation, copy the HEAD committish of the version that you are working on. For details, see the Contributors' @@ -61,7 +61,6 @@ Anhänge @c * Literatur:: Wichtige Literatur über die Notation. * Notationsübersicht:: Tabellen und Grafiken. * Befehlsübersicht:: Überblick über die LilyPond-Syntax. -* LilyPond-Grammatik:: Syntaxdiagramm für LilyPond * GNU Free Documentation License:: Die Lizenz dieses Handbuchs. * Index der LilyPond-Befehle:: * LilyPond-Index:: @@ -88,16 +87,6 @@ Anhänge @include notation/notation-appendices.itely @include notation/cheatsheet.itely -@node LilyPond-Grammatik -@appendix LilyPond-Grammatik -@translationof LilyPond grammar - -Dieser Anhang enthält eine Beschreibung der LilyPond-Grammatik, -wie sie der Parser ausgibt. - -@verbatiminclude ly-grammar.txt - - @include fdl.itexi diff --git a/Documentation/de/notation/ancient.itely b/Documentation/de/notation/ancient.itely index 4110837698..f5f2869cfb 100644 --- a/Documentation/de/notation/ancient.itely +++ b/Documentation/de/notation/ancient.itely @@ -259,7 +259,7 @@ erklärt in @ref{Weiße Mensuralligaturen} und @seealso Glossar: @rglos{ligature}. - + Notationsreferenz: @ref{Weiße Mensuralligaturen}, @ref{Ligaturen der gregorianischen Quadratnotation}. @@ -2493,7 +2493,7 @@ augmentum-Punkte hinzuzufügen. @seealso Glossar: @rglos{ligature}. - + Notationreferenz: @ref{ Ligaturen der gregorianischen Quadratnotation}, @ref{Weiße Mensuralligaturen}, @@ -2956,7 +2956,7 @@ In Arbeit. @c try Till Rettig @c Add example of white noteheads: @c In the french baroque some composers used white noteheads in slow pieces, -@c mainly in 3/2-time. A quarter looks there like a eighth with a white +@c mainly in 3/2-time. A quarter looks there like an eighth with a white @c notehead. (Franz-Rudolf Kuhnen) @c TODO Add example of this: diff --git a/Documentation/de/notation/fretted-strings.itely b/Documentation/de/notation/fretted-strings.itely index 6580c77bc9..94334225fb 100644 --- a/Documentation/de/notation/fretted-strings.itely +++ b/Documentation/de/notation/fretted-strings.itely @@ -8,7 +8,7 @@ Guide, node Updating translation committishes. @end ignore -@c \version "2.17.11" +@c \version "2.17.27" @c Translators: Till Paala @@ -673,7 +673,7 @@ benutzen, kann man benutzen: \layout @{ \context @{ \TabStaff - stringTunings = \stringTuning \notemode @{ @} + stringTunings = \stringTuning @} @} @end example diff --git a/Documentation/de/notation/notation-appendices.itely b/Documentation/de/notation/notation-appendices.itely index 39b7fa5d9d..1a14675ecb 100644 --- a/Documentation/de/notation/notation-appendices.itely +++ b/Documentation/de/notation/notation-appendices.itely @@ -1603,7 +1603,8 @@ Wenn dies nicht erreicht werden kann, ist die Datei nicht korrekt und ensprechende Fehlermeldungen werden ausgegeben. Die syntaktischen Gruppierungen und die Regeln, nach welchen die Gruppen aus ihren Einzelteilen nach der LilyPond-Syntax erstellt werden, finden sich in der Datei @file{lily/parser.yy} -und werden in der Backus Normal Form (BNF) in @ref{LilyPond-Grammatik} +und werden in der Backus Normal Form (BNF) in +@rcontribnamed{LilyPond grammar, LilyPond-Grammatik} gezeigt. Diese Datei wird benutzt, um den Parser während der Programmkompilation zu erstellen. Hierzu wird der Parser-Ersteller Bison verwendet. Er ist Teil des Quellcodes und nicht in die binäre Installation von LilyPond diff --git a/Documentation/de/notation/rhythms.itely b/Documentation/de/notation/rhythms.itely index 07ae0def72..d5b60f1a50 100644 --- a/Documentation/de/notation/rhythms.itely +++ b/Documentation/de/notation/rhythms.itely @@ -7,7 +7,7 @@ Guide, node Updating translation committishes. @end ignore -@c \version "2.17.25" +@c \version "2.17.28" @c Translators: Till Paala @@ -2516,7 +2516,7 @@ normalen Balken gesetzt. @lilypond[quote,verbatim,relative=2] c4 d8[ -\grace { e32[ d c d] } +\grace { e32 d c d } e8] e[ e \grace { f16 } e8 e] @@ -3298,7 +3298,7 @@ keine logische Zeit im Takt ein. @lilypond[quote,relative=2,verbatim] c4 \grace b16 a4( -\grace { b16[ c16] } a2) +\grace { b16 c16 } a2) @end lilypond Es gibt drei Arten von Verzierungen: @@ -3313,7 +3313,7 @@ zwischen Noten notiert, die selber einen Legatobogen haben. @lilypond[quote,relative=2,verbatim] \acciaccatura d8 c4 \appoggiatura e8 d4 -\acciaccatura { g16[ f] } e2 +\acciaccatura { g16 f } e2 \slashedGrace a,8 g4 \slashedGrace b16 a4( \slashedGrace b8 a2) @@ -3324,8 +3324,8 @@ synchronisiert. Im nächsten Beispiel stehen im einen System zwei 16-Noten für jede 8-Note des zweiten Systems: @lilypond[quote,relative=2,verbatim] -<< \new Staff { e2 \grace { c16[ d e f] } e2 } - \new Staff { c2 \grace { g8[ b] } c2 } >> +<< \new Staff { e2 \grace { c16 d e f } e2 } + \new Staff { c2 \grace { g8 b } c2 } >> @end lilypond @funindex \afterGrace @@ -3374,7 +3374,7 @@ gesetzt. @lilypond[quote,verbatim,relative=2] \new Voice { << { d1^\trill_( } - { s2 s4. \grace { c16[ d] } } >> + { s2 s4. \grace { c16 d } } >> c1) } @end lilypond diff --git a/Documentation/de/notation/simultaneous.itely b/Documentation/de/notation/simultaneous.itely index e938e80e16..1eb7afce45 100644 --- a/Documentation/de/notation/simultaneous.itely +++ b/Documentation/de/notation/simultaneous.itely @@ -7,7 +7,7 @@ Guide, node Updating translation committishes. @end ignore -@c \version "2.17.25" +@c \version "2.17.28" @c Translators: Till Paala @@ -96,7 +96,7 @@ komplexere Möglichkeiten, derartige Elemente zu kombinieren, siehe @ref{Gleichzeitige Ausdrücke}. @lilypond[verbatim,quote,relative=2] -\grace { g8[( a b] } +\grace { g8( a b } <> ) \p \< -. -\markup \italic "sempre staccato" \repeat unfold 4 { c4 e } c1\f @end lilypond diff --git a/Documentation/de/notation/spacing.itely b/Documentation/de/notation/spacing.itely index 617f04cc6d..6795f38e88 100644 --- a/Documentation/de/notation/spacing.itely +++ b/Documentation/de/notation/spacing.itely @@ -8,7 +8,7 @@ Guide, node Updating translation committishes. @end ignore -@c \version "2.17.11" +@c \version "2.17.28" @c Translators: Till Paala @@ -59,16 +59,16 @@ Systemgruppen usw. Siehe @ref{Partiturlayout}. Dieser Abschnitt behandelt Seitenlayout-Optionen innerhalb der @code{\paper}-Umgebung. @menu -* Die \paper-Umgebung:: +* Die paper-Umgebung:: * Papierformat und automatische Skalierung:: -* Vertikale \paper-Variablen mit festen Abständen:: -* Vertikale \paper-Variablen mit flexiblen Abständen:: -* \paper-Variablen für horizontale Abstände:: -* Andere \paper-Variablen:: +* Vertikale paper-Variablen mit festen Abständen:: +* Vertikale paper-Variablen mit flexiblen Abständen:: +* paper-Variablen für horizontale Abstände:: +* Andere paper-Variablen:: @end menu -@node Die \paper-Umgebung +@node Die paper-Umgebung @subsection Die @code{\paper}-Umgebung @translationof The \paper block @@ -274,11 +274,11 @@ in @ref{Das Papierformat einstellen}. Die vertikalen Dimensionen, die durch die automatische Skalierung verändert werden sind: @code{top-margin} und @code{bottom-margin} (siehe -@ref{Vertikale \paper-Variablen mit festen Abständen}). Die horizontalen +@ref{Vertikale paper-Variablen mit festen Abständen,,Vertikale @code{@bs{}paper}-Variablen mit festen Abständen}). Die horizontalen Dimensionen, die durch die automatische Skalierung verändert werden, sind @code{left-margin}, @code{right-margin}, @code{inner-margin}, @code{outer-margin}, @code{binding-offset}, @code{indent} und @code{short-indent} (siehe -@ref{\paper-Variablen für horizontale Abstände}). +@ref{paper-Variablen für horizontale Abstände,,@code{@bs{}paper}-Variablen für horizontale Abstände}). Die Standardwerte für diese Dimensionen sind in @file{ly/paper-defaults-init.ly} definiert, wobei interne Variablen mit den @@ -289,8 +289,8 @@ benutzt werden. Das sind die Werte für die Standardpapiergröße @seealso Notationsreferenz: -@ref{Vertikale \paper-Variablen mit festen Abständen}, -@ref{\paper-Variablen für horizontale Abstände}. +@ref{Vertikale paper-Variablen mit festen Abständen,,Vertikale @code{@bs{}paper}-Variablen mit festen Abständen}, +@ref{paper-Variablen für horizontale Abstände,,@code{@bs{}paper}-Variablen für horizontale Abstände}. Installierte Dateien: @file{ly/paper-defaults-init.ly}, @@ -298,7 +298,7 @@ Installierte Dateien: -@node Vertikale \paper-Variablen mit festen Abständen +@node Vertikale paper-Variablen mit festen Abständen @unnumberedsubsubsec Vertikale @code{\paper}-Variablen mit festen Abständen @translationof Fixed vertical spacing \paper variables @@ -368,7 +368,7 @@ Explizit definierte Papierformate überschreiben alle vom Benutzer erstellte Randeinstellung für die Ränder oben und unten. -@node Vertikale \paper-Variablen mit flexiblen Abständen +@node Vertikale paper-Variablen mit flexiblen Abständen @unnumberedsubsubsec Vertikale @code{\paper}-Variablen mit flexiblen Abständen @translationof Flexible vertical spacing \paper variables @@ -571,7 +571,7 @@ Schnipsel: -@node \paper-Variablen für horizontale Abstände +@node paper-Variablen für horizontale Abstände @unnumberedsubsubsec \paper-Variablen für horizontale Abstände @translationof Horizontal spacing \paper variables @@ -580,13 +580,13 @@ entsprechend dem Papierformat skaliert und können deshalb ungewollte Resultate haben. Siehe @ref{Automatische Skalierung auf ein Papierformat}.} @menu -* \paper-Variablen für Breite und Ränder:: -* \paper-Variablen für zweiseitigen Satz:: -* \paper-Variablen für Verschiebungen und Einrückungen:: +* paper-Variablen für Breite und Ränder:: +* paper-Variablen für zweiseitigen Satz:: +* paper-Variablen für Verschiebungen und Einrückungen:: @end menu -@node \paper-Variablen für Breite und Ränder +@node paper-Variablen für Breite und Ränder @unnumberedsubsubsec \paper-Variablen für Breite und Ränder @translationof \paper variables for widths and margins @@ -692,7 +692,7 @@ Explizit definierte Papierformate überschreiben alle vom Benutzer erstellte Randeinstellung für die Ränder oben und unten. -@node \paper-Variablen für zweiseitigen Satz +@node paper-Variablen für zweiseitigen Satz @unnumberedsubsubsec @code{\paper}-Variablen für zweiseitigen Satz @translationof \paper variables for two-sided mode @@ -747,7 +747,7 @@ Installierte Dateien: @file{ly/paper-defaults-init.ly}. -@node \paper-Variablen für Verschiebungen und Einrückungen +@node paper-Variablen für Verschiebungen und Einrückungen @unnumberedsubsubsec @code{\paper}-Variablen für Verschiebungen und Einrückungen @translationof \paper variables for shifts and indents @@ -793,19 +793,19 @@ Schnipsel: @rlsr{Spacing}. -@node Andere \paper-Variablen +@node Andere paper-Variablen @subsection Andere @code{\paper}-Variablen @translationof Other \paper variables @menu -* \paper-Variablen für den Zeilenumbruch:: -* \paper-Variablen für den Seitenumbruch:: -* \paper-Variablen für Seitenzahlen:: -* Verschiedene \paper-Variablen:: +* paper-Variablen für den Zeilenumbruch:: +* paper-Variablen für den Seitenumbruch:: +* paper-Variablen für Seitenzahlen:: +* Verschiedene paper-Variablen:: @end menu -@node \paper-Variablen für den Zeilenumbruch +@node paper-Variablen für den Zeilenumbruch @unnumberedsubsubsec @code{\paper}-Variablen für den Zeilenumbruch @translationof \paper variables for line breaking @c TODO: Mention that ly:optimal-breaking is on by default? -mp @@ -848,7 +848,7 @@ Notationsreferenz: @ref{Zeilenumbrüche}. -@node \paper-Variablen für den Seitenumbruch +@node paper-Variablen für den Seitenumbruch @unnumberedsubsubsec @code{\paper}-Variablen für den Seitenumbruch @translationof \paper variables for page breaking @@ -918,7 +918,7 @@ Installierte Dateien: @file{ly/paper-defaults-init.ly}. -@node \paper-Variablen für Seitenzahlen +@node paper-Variablen für Seitenzahlen @unnumberedsubsubsec @code{\paper}-Variablen für Seitenzahlen @translationof \paper variables for page numbering @@ -969,7 +969,7 @@ eine leere Seite nach dem Deckblatt einfügen, damit die Noten auf der rechten Seite mit Seite 1 beginnen. -@node Verschiedene \paper-Variablen +@node Verschiedene paper-Variablen @unnumberedsubsubsec Verschiedene @code{\paper}-Variablen @translationof Miscellaneous \paper variables @table @code @@ -1077,15 +1077,15 @@ die innerhalb der @code{\layout}-Umgebungen erlaubt sind, sind: @item @code{line-width}, @code{ragged-right} und @code{ragged-last} -(siehe @ref{\paper-Variablen für Breite und Ränder}) +(siehe @ref{paper-Variablen für Breite und Ränder,,@code{@bs{}paper}-Variablen für Breite und Ränder}) @item @code{indent} und @code{short-indent} -(siehe @ref{\paper-Variablen für Verschiebungen und Einrückungen}) +(siehe @ref{paper-Variablen für Verschiebungen und Einrückungen,,@code{@bs{}paper}-Variablen für Verschiebungen und Einrückungen}) @item @code{system-count} -(siehe @ref{\paper-Variablen für den Zeilenumbruch}) +(siehe @ref{paper-Variablen für den Zeilenumbruch,,@code{@bs{}paper}-Variablen für den Zeilenumbruch}) @end itemize @@ -1481,7 +1481,7 @@ kompliziert. Mehr Einzelheiten finden sich in @seealso Notationsreferenz: -@ref{\paper-Variablen für den Zeilenumbruch}. +@ref{paper-Variablen für den Zeilenumbruch,,@code{@bs{}paper}-Variablen für den Zeilenumbruch}. Schnipsel: @rlsr{Spacing}. @@ -1516,7 +1516,7 @@ Variablen auf @code{#t} (wahr) gesetzt werden, werden im ersten Fall die Notensysteme auf allen Seiten eng nach oben orientiert gesetzt werden. Im zweiten Fall bezieht sich dies nur auf die letzte Seite. -Zu Einzelheiten siehe @ref{Vertikale \paper-Variablen mit festen Abständen}. +Zu Einzelheiten siehe @ref{Vertikale paper-Variablen mit festen Abständen,,Vertikale @code{@bs{}paper}-Variablen mit festen Abständen}. Seitenumbrüche werden von der @code{page-breaking}-Funktion errechnet. LilyPond kennt drei Algorithmen um Seitenumbrüche zu errechnen: @@ -1576,7 +1576,7 @@ Buchteilen benutzt werden. @seealso Notationsreferenz: -@ref{\paper-Variablen für den Seitenumbruch}. +@ref{paper-Variablen für den Seitenumbruch,,@code{@bs{}paper}-Variablen für den Seitenumbruch}. Schnipsel: @rlsr{Spacing}. @@ -1943,7 +1943,7 @@ Abschnitt behandelt wird, nur die vertikale Platzierung von Systemen und nicht-Systemzeilen in einzelnen Systemgruppen behandelt. Die vertikale Platzierung zwischen einzelnen Systemgruppen, Partituren, Beschriftungen usw. und den Rändern wird durch @code{\paper}-Variablen kontrolliert, die -@ref{Vertikale \paper-Variablen mit flexiblen Abständen}. +@ref{Vertikale paper-Variablen mit flexiblen Abständen,,Vertikale @code{@bs{}paper}-Variablen mit flexiblen Abständen}. @menu * Eigenschaften für Abstände innerhalb von Systemgruppen:: @@ -2095,7 +2095,7 @@ labelContext = Jeder der vertikalen Platzierungs-Grobeigenschaften (außer @code{staff-affinity}) benutzt die gleiche Alistenstruktur wie die @code{\paper}-Variablen, behandelt in -@ref{Vertikale \paper-Variablen mit flexiblen Abständen}. Besondere +@ref{Vertikale paper-Variablen mit flexiblen Abständen,,Vertikale @code{@bs{}paper}-Variablen mit flexiblen Abständen}. Besondere Methoden um Alisten zu verändern finden sich in @ref{Alisten verändern}. Grob-Eigenschaften sollten mit dem @code{\override}-Befehle innerhalb einer @code{\score}- @@ -2260,7 +2260,7 @@ für dieses Notensystem geändert werden. @seealso Notationsreferenz: -@ref{Vertikale \paper-Variablen mit flexiblen Abständen}, +@ref{Vertikale paper-Variablen mit flexiblen Abständen,,Vertikale @code{@bs{}paper}-Variablen mit flexiblen Abständen}, @ref{Alisten verändern}. Installierte Dateien: @@ -3091,7 +3091,7 @@ zusätzlichen Platz erhalten. @lilypond[quote,ragged-right,relative=2,fragment,verbatim] \override Score.SpacingSpanner.strict-note-spacing = ##t -\new Staff { c8[ c \clef alto c \grace { c16[ c] } c8 c c] c32[ c32] } +\new Staff { c8[ c \clef alto c \grace { c16 c } c8 c c] c32[ c32] } @end lilypond diff --git a/Documentation/de/notation/staff.itely b/Documentation/de/notation/staff.itely index b562b53f40..df940dc27c 100644 --- a/Documentation/de/notation/staff.itely +++ b/Documentation/de/notation/staff.itely @@ -986,7 +986,7 @@ Wenn die Instrumentenbezeichnung zu lang ist, kann es vorkommen, dass die Bezeichnungen in einer Gruppe nicht zentriert werden. Um dennoch eine Zentrierung zu erhalten, müssen die Werte des Einzugs (@code{indent} und @code{short-indent}) vergrößert werden. -Zu Einzelheiten siehe @ref{\paper-Variablen für Verschiebungen und Einrückungen}. +Zu Einzelheiten siehe @ref{paper-Variablen für Verschiebungen und Einrückungen,,@code{@bs{}paper}-Variablen für Verschiebungen und Einrückungen}. @lilypond[verbatim,quote,ragged-right] \relative c'' { @@ -1094,7 +1094,7 @@ wird dann benutzt, um den Wechsel vorzunehmen: @seealso Notationsreferenz: -@ref{\paper-Variablen für Verschiebungen und Einrückungen}, +@ref{paper-Variablen für Verschiebungen und Einrückungen,,@code{@bs{}paper}-Variablen für Verschiebungen und Einrückungen}, @ref{Umgebungs-Plugins verändern}. Schnipsel: diff --git a/Documentation/de/notation/vocal.itely b/Documentation/de/notation/vocal.itely index 858db18da0..86c4f6d8b9 100644 --- a/Documentation/de/notation/vocal.itely +++ b/Documentation/de/notation/vocal.itely @@ -7,7 +7,7 @@ Guide, node Updating translation committishes. @end ignore -@c \version "2.17.19" +@c \version "2.17.28" @c Translators: Till Paala @@ -1872,7 +1872,7 @@ geändert werden, wie das folgende Beispiel zeigt. << \new Voice = melody \relative c' { f4 \appoggiatura a32 b4 - \grace { f16[ a16] } b2 + \grace { f16 a16 } b2 \afterGrace b2 { f16[ a16] } \appoggiatura a32 b4 \acciaccatura a8 b4 @@ -1901,7 +1901,7 @@ die erste des Musikstückes ist, kann ein @code{\with}- oder @lilypond[verbatim,ragged-right,quote] << \new Voice = melody \relative c' { - \grace { c16[( d e f] } + \grace { c16( d e f } g1) f } \new Lyrics \with { includeGraceNotes = ##t } diff --git a/Documentation/de/usage/external.itely b/Documentation/de/usage/external.itely index d13b06c525..fc31bf4003 100644 --- a/Documentation/de/usage/external.itely +++ b/Documentation/de/usage/external.itely @@ -373,7 +373,7 @@ Quantisiert Tondauern zu Vielfachen von @var{LÄNGE}. @item -e, --explicit-durations Gibt alle Tondauern explizit an. -@item -h,--help +@item -h, --help Zeigt eine Zusammenfassung der Programmbenutzung und der Optionen. @item -k, --key=@var{acc}[:@var{Moll}] @@ -446,7 +446,7 @@ unterstützt: @item -a, --absolute Konvertiert in absolute Tonhöhen. -@item -h,--help +@item -h, --help Zeigt eine Zusammenfassung der Programmbenutzung und der Optionen. @item -l, --language=SPRACHE @@ -472,13 +472,13 @@ von Artikulations- und Lautstärkebezeichnungen. Konvertiert keine Informationen über die Balkensetzung aus der MusicXML-Datei. Stattdessen wird dies LilyPond überlassen. -@item -o,--output=@var{Dateiname} +@item -o, --output=@var{Dateiname} Die Ausgabe wird in die Datei @var{Dateiname}@file{.ly} geschrieben. Wird als @var{Dateiname} nur @file{-} angegeben, wird das Ergebnis der Konvertierung an der Kommandozeile ausgegeben. Wird diese Option nicht angegeben, so erfolgt die Ausgabe in die Datei @var{XML-Datei}@file{.ly}. -@item -r,--relative +@item -r, --relative Konvertiert in relative Tonhöhen. (Standardeinstellung) @item -v, --verbose @@ -487,7 +487,7 @@ Gibt ausführliche informative Meldungen während der Konvertierung aus. @item --version Gibt die Versionsnummer aus. -@item -z,--compressed +@item -z, --compressed Die Eingabedatei wird als komprimierte MusicXML-Datei eingelesen. Dies ist die Standardeinstellung für Dateien mit der Erweiterung @file{.xml}. @@ -521,15 +521,15 @@ Die folgenden Kommandozeilenoptionen werden von @command{abc2ly} unterstützt: @table @code -@item -b,--beams=None +@item -b, --beams=None Die Balkensetzung aus der ABC-Datei erhalten. -@item -h,--help +@item -h, --help Zeigt eine Zusammenfassung der Programmbenutzung und der Optionen. -@item -o,--output=@var{Dateiname} +@item -o, --output=@var{Dateiname} Die Ausgabe wird in die Datei @var{Dateiname}@file{.ly} geschrieben. -@item -s,--strict +@item -s, --strict Strenge Auslegung einer erfolgreichen Konvertierung. -@item -v,--version +@item -v, --version Gibt die Versionsnummer aus. @end table @@ -608,9 +608,9 @@ Die folgenden Kommandozeilenoptionen werden von @command{etf2ly} unterstützt: @table @code -@item -h,--help +@item -h, --help Zeigt eine Zusammenfassung der Programmbenutzung und der Optionen. -@item -o,--output=@var{Dateiname} +@item -o, --output=@var{Dateiname} Die Ausgabe wird in die Datei @var{Dateiname}@file{.ly} geschrieben. @item --version Gibt die Versionsnummer aus. diff --git a/Documentation/de/usage/running.itely b/Documentation/de/usage/running.itely index 86ed612784..a4a46406a2 100644 --- a/Documentation/de/usage/running.itely +++ b/Documentation/de/usage/running.itely @@ -154,13 +154,13 @@ Die folgenden Kommandozeilenoptionen werden von @command{lilypond} unterstützt: @table @code -@item -d,--define-default=@var{Variable}=@var{Wert} +@item -d, --define-default=@var{Variable}=@var{Wert} Siehe @ref{Fortgeschrittene Optionen auf der Kommandozeile für LilyPond}. @cindex Scheme, Auswertung von Ausdrücken @cindex Auswertung von Ausdrücken, Scheme -@item -e,--evaluate=@var{expr} +@item -e, --evaluate=@var{expr} Wertet den Scheme-Ausdruck @var{expr} aus, bevor die @file{.ly} Dateien gelesen und interpretiert werden. Die @code{-e} Option kann auch mehrfach angegeben werden, die Ausdrücke @@ -186,20 +186,20 @@ Anführungsstriche einsetzen.} @cindex Ausgabeformat -@item -f,--format=@var{Format} +@item -f, --format=@var{Format} Bestimmt das Ausgabeformat. Mögliche Werte von @var{Format} sind @code{svg}, @code{ps}, @code{pdf} und @code{png}. Beispiel: @code{lilypond -fpng @var{Dateiname}.ly} -@item -h,--help +@item -h, --help Zeigt eine Zusammenfassung der Programmbenutzung und der Optionen. -@item -H,--header=@var{FELD} +@item -H, --header=@var{FELD} Gibt den Inhalt eines Feldes aus dem @code{\header}-Block in die Datei @file{Dateiname.@var{FELD}} aus. -@item -i,--init=@var{Initialisierungsdatei} +@item -i, --init=@var{Initialisierungsdatei} Benutzt @var{Initialisierungsdatei} zur gesamten Programminitialisierung. Der Standardwert ist @file{init.ly}. @@ -216,7 +216,7 @@ fort, wenn die gesuchte Datei nicht in dem Verzeichnis gefunden wird. @cindex Kerker, Programm ausführen @cindex Jail, Programm ausführen -@item -j,--jail=@var{Benutzer},@var{Gruppe},@var{Jail-Verzeichnis},@var{Arbeitsverzeichnis} +@item -j, --jail=@var{Benutzer},@var{Gruppe},@var{Jail-Verzeichnis},@var{Arbeitsverzeichnis} Führt @command{lilypond} in einem chroot-Jail aus. Die @option{--jail} Option ist eine flexiblere Alternative zu @option{-dsafe}, wenn @@ -283,7 +283,7 @@ auch @ref{LilyPond in chroot-Kerker} @cindex Logstufe @cindex Ausgabe, Ausführlichkeit -@item -l,--loglevel=@var{Logstufe} +@item -l, --loglevel=@var{Logstufe} Passt die Ausführlichkeit der Ausgabe auf der Kommandozeile entsprechend @var{Logstufe} an. Mögliche Werte sind: @@ -319,7 +319,7 @@ haben können. @cindex Ausgabedateiname @cindex Dateiname der Ausgabe bestimmen -@item -o,--output=@var{DATEI} oder @var{ORDNER} +@item -o, --output=@var{DATEI} oder @var{ORDNER} Schreibt das Ergebnis der Verarbeitung mit LilyPond in die Ausgabedatei @var{DATEI}. Wenn ein Verzeichnis mit dem Namen existiert, werden die Ausgabedateien in dieses Verzeichnis gespeichert, wobei der Dateiname der Eingabedatei @@ -348,14 +348,14 @@ werden durch @item --pdf Erzeugt PDF-Dateien. Dies impliziert @code{--ps}. -@item -v,--version +@item -v, --version Gibt die Versionsnummer aus. -@item -V,--verbose +@item -V, --verbose Gibt ausführliche informative Meldungen aus: Zeigt die vollen Dateipfade aller gelesenen Dateien sowie Informationen über die Laufzeit. -@item -w,--warranty +@item -w, --warranty Zeigt die Garantiebedingungen an, unter denen GNU LilyPond steht. (Es besteht @strong{KEINERLEI GARANTIE}!) diff --git a/Documentation/de/usage/updating.itely b/Documentation/de/usage/updating.itely index 392844c26a..bd84a1427e 100644 --- a/Documentation/de/usage/updating.itely +++ b/Documentation/de/usage/updating.itely @@ -131,16 +131,16 @@ convert-ly [@var{Option}]@dots{} @var{Dateiname}@dots{} Folgende Optionen können benutzt werden: @table @code -@item -e,--edit +@item -e, --edit Die Konvertierung direkt am Original vornehmen, sodass es direkt verändert wird. -@item -f,--from=@var{von-Versionsnummer} +@item -f, --from=@var{von-Versionsnummer} Stellt die Versionsnummer ein, ab welcher die Konvertierung begonnen werden soll. Wenn die Option nicht benutzt wird, rät @command{convert-ly} die Versionsnummer anhand des @code{\version}-Eintrags in der Datei. Beispielsweise @option{--from=2.10.25} -@item -n,--no-version +@item -n, --no-version Normalerweise fügt @command{convert-ly} einen @code{\version}-Eintrag zu der konvertierten Datei hinzu. Mit dieser Option wird das unterdrückt. diff --git a/Documentation/es/learning/common-notation.itely b/Documentation/es/learning/common-notation.itely index 142cae556c..da1a2d9bea 100644 --- a/Documentation/es/learning/common-notation.itely +++ b/Documentation/es/learning/common-notation.itely @@ -7,7 +7,7 @@ version that you are working on. See TRANSLATION for details. @end ignore -@c \version "2.17.25" +@c \version "2.17.28" @ignore Tutorial guidelines: (different from policy.txt!) @@ -599,7 +599,7 @@ expresión musical por la palabra clave @code{\appoggiatura} o @code{\acciaccatura} @lilypond[verbatim,quote,relative=2] -c2 \grace { a32[ b] } c2 | +c2 \grace { a32 b } c2 | c2 \appoggiatura b16 c2 | c2 \acciaccatura b16 c2 | @end lilypond diff --git a/Documentation/es/learning/fundamental.itely b/Documentation/es/learning/fundamental.itely index a22a7441a4..2f3bc52e40 100644 --- a/Documentation/es/learning/fundamental.itely +++ b/Documentation/es/learning/fundamental.itely @@ -8,7 +8,7 @@ Guide, node Updating translation committishes.. @end ignore -@c \version "2.17.18" +@c \version "2.17.29" @node Conceptos fundamentales @chapter Conceptos fundamentales @@ -1682,8 +1682,7 @@ a partir del nombre (en inglés), y viceversa. @tab Graba las claves @item Completion_heads_engraver @tab Divide las notas que atraviesan una línea divisoria -@c The old Dynamic_engraver is deprecated. -jm -@item New_dynamic_engraver +@item Dynamic_engraver @tab Crea reguladores e indicaciones dinámicas textuales @item Forbid_line_break_engraver @tab Evita los saltos de línea si queda algún elemento musical activo diff --git a/Documentation/es/notation/fretted-strings.itely b/Documentation/es/notation/fretted-strings.itely index 747ae2af67..24991c0d30 100644 --- a/Documentation/es/notation/fretted-strings.itely +++ b/Documentation/es/notation/fretted-strings.itely @@ -8,7 +8,7 @@ Guide, node Updating translation committishes.. @end ignore -@c \version "2.17.11" +@c \version "2.17.27" @node Instrumentos de cuerda con trastes @section Instrumentos de cuerda con trastes @@ -675,7 +675,7 @@ personalizada por omisión, podemos usar \layout @{ \context @{ \TabStaff - stringTunings = \stringTuning \notemode @{ @} + stringTunings = \stringTuning @} @} @end example diff --git a/Documentation/es/notation/rhythms.itely b/Documentation/es/notation/rhythms.itely index 0cb45144c6..285d259960 100644 --- a/Documentation/es/notation/rhythms.itely +++ b/Documentation/es/notation/rhythms.itely @@ -7,7 +7,7 @@ Guide, node Updating translation committishes.. @end ignore -@c \version "2.17.25" +@c \version "2.17.28" @node Duraciones @section Duraciones @@ -2571,7 +2571,7 @@ barras de notas normales. @lilypond[quote,verbatim,relative=2] c4 d8[ -\grace { e32[ d c d] } +\grace { e32 d c d } e8] e[ e \grace { f16 } e8 e] @@ -3452,7 +3452,7 @@ tiempo lógico adicional en el compás. @lilypond[quote,relative=2,verbatim] c4 \grace b16 a4( -\grace { b16[ c16] } a2) +\grace { b16 c16 } a2) @end lilypond Hay otros tres tipos posibles de notas de adorno; la @@ -3468,7 +3468,7 @@ colocarla entre notas que están ligadas entre sí, utilizando la función @lilypond[quote,relative=2,verbatim] \acciaccatura d8 c4 \appoggiatura e8 d4 -\acciaccatura { g16[ f] } e2 +\acciaccatura { g16 f } e2 \slashedGrace a,8 g4 \slashedGrace b16 a4( \slashedGrace b8 a2) @@ -3480,8 +3480,8 @@ por cada corchea de adorno: @lilypond[quote,relative=2,verbatim] << - \new Staff { e2 \grace { c16[ d e f] } e2 } - \new Staff { c2 \grace { g8[ b] } c2 } + \new Staff { e2 \grace { c16 d e f } e2 } + \new Staff { c2 \grace { g8 b } c2 } >> @end lilypond @@ -3529,7 +3529,7 @@ nota principal. \new Voice { << { d1^\trill_( } - { s2 s4. \grace { c16[ d] } } + { s2 s4. \grace { c16 d } } >> c1) } diff --git a/Documentation/es/notation/simultaneous.itely b/Documentation/es/notation/simultaneous.itely index f113490eb3..ded8f342fc 100644 --- a/Documentation/es/notation/simultaneous.itely +++ b/Documentation/es/notation/simultaneous.itely @@ -7,7 +7,7 @@ Guide, node Updating translation committishes.. @end ignore -@c \version "2.17.25" +@c \version "2.17.28" @c Translation status: post-GDP @@ -96,7 +96,7 @@ combinaciones de estos elementos, consulte @ref{Expresiones simultáneas}): @lilypond[verbatim,quote,relative=2] -\grace { g8[( a b] } +\grace { g8( a b } <> ) \p \< -. -\markup \italic "sempre staccato" \repeat unfold 4 { c4 e } c1\f @end lilypond diff --git a/Documentation/es/notation/spacing.itely b/Documentation/es/notation/spacing.itely index f48ce5aa06..e7d9315dd3 100644 --- a/Documentation/es/notation/spacing.itely +++ b/Documentation/es/notation/spacing.itely @@ -8,7 +8,7 @@ Guide, node Updating translation committishes.. @end ignore -@c \version "2.17.11" +@c \version "2.17.28" @ignore GDP TODO list @@ -3202,7 +3202,7 @@ sin tener en cuenta las claves, líneas divisorias ni notas de adorno: @lilypond[quote,ragged-right,relative=2,verbatim] \override Score.SpacingSpanner.strict-note-spacing = ##t -\new Staff { c8[ c \clef alto c \grace { c16[ c] } c8 c c] c32[ c] } +\new Staff { c8[ c \clef alto c \grace { c16 c } c8 c c] c32[ c] } @end lilypond @seealso diff --git a/Documentation/es/notation/vocal.itely b/Documentation/es/notation/vocal.itely index 1d0f0d211c..0ecd480697 100644 --- a/Documentation/es/notation/vocal.itely +++ b/Documentation/es/notation/vocal.itely @@ -8,7 +8,7 @@ Guide, node Updating translation committishes.. @end ignore -@c \version "2.17.19" +@c \version "2.17.28" @node Música vocal @section Música vocal @@ -1987,7 +1987,7 @@ se utiliza @code{\lyricsto}, pero este comportamiento puede cambiarse: << \new Voice = melody \relative c' { f4 \appoggiatura a32 b4 - \grace { f16[ a16] } b2 + \grace { f16 a16 } b2 \afterGrace b2 { f16[ a16] } \appoggiatura a32 b4 \acciaccatura a8 b4 @@ -2016,7 +2016,7 @@ bloque @code{\with} o @code{\context}: @lilypond[verbatim,ragged-right,quote] << \new Voice = melody \relative c' { - \grace { c16[( d e f] } + \grace { c16( d e f } g1) f } \new Lyrics \with { includeGraceNotes = ##t } diff --git a/Documentation/es/usage/external.itely b/Documentation/es/usage/external.itely index 8c5a793f69..b7d1f1d834 100644 --- a/Documentation/es/usage/external.itely +++ b/Documentation/es/usage/external.itely @@ -501,7 +501,7 @@ Cuantizar las duraciones a @var{DURACIÓN}. @item -e, --explicit-durations Imprimir valores de figura explícitos. -@item -h,--help +@item -h, --help Mostrar un resumen de las instrucciones de utilización. @item -k, --key=@var{alteración}[:@var{minor}] @@ -574,7 +574,7 @@ Si el nombre de archivo proporcionado es @file{-}, @item -a, --absolute convertir las alturas en modo absoluto. -@item -h,--help +@item -h, --help mostrar un resumen de la utilización y las opciones. @item -l, --language=IDIOMA @@ -602,21 +602,21 @@ articulaciones, dinámica, etc. no convertir la información de las barras, en vez de ello usar el barrado automático de LilyPond. -@item -o,--output=@var{archivo} +@item -o, --output=@var{archivo} fijar el nombre del archivo de salida como @var{archivo}. Si @var{archivo} es @file{-}, la salida se imprime sobre stdout, la salida estándar. Si no se da, se usa @var{archivo_xml}@file{.ly}. -@item -r,--relative +@item -r, --relative convertir las alturas en modo relativo (predeterminado). -@item -v,--verbose +@item -v, --verbose ser prolijo. -@item -v,--version +@item -v, --version imprimir la información de la versión. -@item -z,--compressed +@item -z, --compressed el archivo de entrada es un archivo MusicXML comprimido en zip. @end table @@ -648,13 +648,13 @@ abc2ly [@var{opción}]@dots{} @var{archivo_abc} @command{abc2ly} contempla las siguientes opciones: @table @code -@item -b,--beams=None +@item -b, --beams=None preservar la noción de ABC de las barras -@item -h,--help +@item -h, --help esta ayuda -@item -o,--output=@var{archivo} +@item -o, --output=@var{archivo} fijar el nombre del archivo de salida como @var{archivo}. -@item -s,--strict +@item -s, --strict ser estricto respecto al éxito @item --version imprimir la información de la versión. @@ -721,9 +721,9 @@ formatos}, para obtener más información acerca de esto. @command{etf2ly} contempla las siguientes opciones: @table @code -@item -h,--help +@item -h, --help esta ayuda -@item -o,--output=@var{ARCHIVO} +@item -o, --output=@var{ARCHIVO} fijar el nombre del archivo de salida como @var{ARCHIVO} @item --version información de la versión diff --git a/Documentation/es/usage/running.itely b/Documentation/es/usage/running.itely index 909659aed2..a7beedf7b4 100644 --- a/Documentation/es/usage/running.itely +++ b/Documentation/es/usage/running.itely @@ -142,13 +142,13 @@ Están contempladas las siguientes opciones: @table @code -@item -d,--define-default=@var{variable}=@var{valor} +@item -d, --define-default=@var{variable}=@var{valor} Véase @ref{Opciones avanzadas de línea de órdenes para LilyPond}. @cindex Scheme, evaluación de expresiones @cindex expresiones de Scheme, evaluación -@item -e,--evaluate=@var{expresión} +@item -e, --evaluate=@var{expresión} Evaluar la @var{expresión} de Scheme antes de analizar los archivos @file{.ly}. Se pueden pasar varias opciones @option{-e}, que se evaluarán en secuencia. @@ -175,19 +175,19 @@ al principio del archivo @file{.ly}. @cindex output, format @cindex format, output -@item -f,--format=@var{format} +@item -f, --format=@var{format} which formats should be written. Choices for @code{format} are @code{ps}, @code{pdf}, and @code{png}. Example: @code{lilypond -fpng @var{filename}.ly} -@item -h,--help +@item -h, --help Mostrar un resumen de las formas de utilización. -@item -H,--header=@var{CAMPO} +@item -H, --header=@var{CAMPO} Volcar un campo de cabecera al archivo @file{NOMBREBASE.@var{CAMPO}} -@item -i,--init=@var{archivo} +@item -i, --init=@var{archivo} Establecer el archivo de inicio a @var{archivo} (predeterminado: @file{init.ly}). @@ -204,7 +204,7 @@ encuentra, la búsqueda continúa en los directorios siguientes. @cindex chroot, ejecutar dentro de una jaula -@item -j,--jail=@var{usuario},@var{grupo},@var{jaula},@var{directorio} +@item -j, --jail=@var{usuario},@var{grupo},@var{jaula},@var{directorio} Ejecutar @command{lilypond} en una jaula de chroot. La opción @option{--jail} (jaula) proporciona una alternativa más @@ -277,7 +277,7 @@ tamaño de la memoria que se puede reservar. Véase también @cindex registro, nivel de @cindex salida prolija, fijar el nivel -@item -l,--loglevel=@var{LEVEL} +@item -l, --loglevel=@var{LEVEL} Fijar el grado en que la salida de consola es prolija al nivel @var{LEVEL}. Los valores posibles son: @@ -310,7 +310,7 @@ prolija. @cindex carpeta, dirigir la salida hacia @cindex salida, establecer el nombre del archivo de -@item -o,--output=@var{ARCHIVO} o @var{CARPETA} +@item -o, --output=@var{ARCHIVO} o @var{CARPETA} Establecer el nombre del archivo de salida predeterminado a @var{ARCHIVO} o, si existe una carpeta con ese nombre, dirigir la salida hacia @var{CARPETA}, tomando el nombre de archivo del documento @@ -341,14 +341,14 @@ con @item --pdf Generar PDF. Implica @option{--ps}. -@item -v,--version +@item -v, --version Mostrar la información de la versión. -@item -V,--verbose +@item -V, --verbose Ser prolijo: mostrar las rutas completas de todos los archivos que se leen, y dar información cronométrica. -@item -w,--warranty +@item -w, --warranty Mostrar la garantía con que viene GNU LilyPond (¡no viene con @strong{NINGUNA GARANTÍA}!). diff --git a/Documentation/es/usage/updating.itely b/Documentation/es/usage/updating.itely index 82e1606246..07a98c406d 100644 --- a/Documentation/es/usage/updating.itely +++ b/Documentation/es/usage/updating.itely @@ -167,18 +167,18 @@ convert-ly [@var{opción}]@dots{} @var{archivo}@dots{} Se pueden dar las siguientes opciones: @table @code -@item -d,--diff-version-update +@item -d, --diff-version-update incrementar la cadena @code{\version} solamente si el archivo efectivamente ha cambiado. Sin esta opción (o si cualquier conversión ha modificado el archivo), la cabecera de versión refleja la regla de conversión que se ha tenido en cuenta en último lugar. -@item -e,--edit +@item -e, --edit Aplicar las conversiones directamente al archivo de entrada, modificándolo in situ. -@item -f,--from=@var{versión_de_origen} +@item -f, --from=@var{versión_de_origen} Establece la versión desde la que convertir. Si no aparece esta opción, @command{convert-ly} tratará de adivinarla, basándose en el enunciado @code{\version} del archivo. Ejemplo: @option{--from=2.10.25} @@ -192,7 +192,7 @@ valores posibles son @code{NONE} (ninguno), @code{ERROR} (errores), @code{WARNING} (advertencias), @code{PROGRESS} (avance; predeterminado) y @code{DEBUG} (depuración). -@item -n,--no-version +@item -n, --no-version Normalmente @command{convert-ly} añade un indicador @code{\version} a la salida. La especificación de esta opción lo suprime. diff --git a/Documentation/essay/computer-notation.bib b/Documentation/essay/computer-notation.bib index 23b0658066..b4d7e1984e 100644 --- a/Documentation/essay/computer-notation.bib +++ b/Documentation/essay/computer-notation.bib @@ -229,7 +229,7 @@ for Adequately Representing Score-level Music}, } @Article{blostein91, - note = {This paper provides a overview of the algorithm used in LIME + note = {This paper provides an overview of the algorithm used in LIME for spacing individual lines. HWN}, year = {1991}, title = {Justification of Printed Music}, diff --git a/Documentation/essay/engravingbib.bib b/Documentation/essay/engravingbib.bib index f419af4e65..ecbddcbe35 100644 --- a/Documentation/essay/engravingbib.bib +++ b/Documentation/essay/engravingbib.bib @@ -91,7 +91,7 @@ reference work for music notation issues as one is likely to get.}, @Book{wanske88, annote = {I. A very thorough overview of engraving practices of various craftsmen. It includes detailed specs of characters, dimensions -etc. II. a thorough overview of a anonymous (by now antiquated) +etc. II. a thorough overview of an anonymous (by now antiquated) automated system. EDV Means e(lektronischen) D(aten)v(erarbeitung), electronic data processing HWN.}, year = {1988}, diff --git a/Documentation/extending/programming-interface.itely b/Documentation/extending/programming-interface.itely index aafb4fc5d3..311a138073 100644 --- a/Documentation/extending/programming-interface.itely +++ b/Documentation/extending/programming-interface.itely @@ -804,6 +804,26 @@ you avoid performance pitfalls by just using Scheme arguments for the leading arguments of markup functions that take a markup as their last argument. +@funindex \markup +@cindex markup macro +@funindex interpret-markup +Markup commands have a rather complex life cycle. The body of a +markup command definition is responsible for converting the +arguments of the markup command into a stencil expression which is +returned. Quite often this is accomplished by calling the +@code{interpret-markup} function on a markup expression, passing +the @var{layout} and @var{props} arguments on to it. Those +arguments are usually only known at a very late stage in +typesetting. Markup expressions have their components assembled +into markup expressions already when @code{\markup} in a LilyPond +expression or the @code{markup} macro in Scheme is expanded. The +evaluation and typechecking of markup command arguments happens at +the time @code{\markup}/@code{markup} are interpreted. + +But the actual conversion of markup expressions into stencil +expressions by executing the markup function bodies only happens +when @code{interpret-markup} is called on a markup expression. + @node On properties @unnumberedsubsubsec On properties @@ -1047,12 +1067,18 @@ stencils are combined using @code{ly:stencil-add}: @node New markup list command definition @subsection New markup list command definition +@funindex define-markup-list-command +@funindex interpret-markup-list Markup list commands are defined with the @code{define-markup-list-command} Scheme macro, which is similar to the @code{define-markup-command} macro described in @ref{New markup command definition}, except that where the latter returns a single stencil, the former returns a list of stencils. +In a similar vein, @code{interpret-markup-list} is used instead of +@code{interpret-markup} for converting a markup list into a list +of stencils. + In the following example, a @code{\paragraph} markup list command is defined, which returns a list of justified lines, the first one being indented. The indent width is taken from the @code{props} argument. @@ -1277,16 +1303,15 @@ my-callback = #(lambda (grob) @node Inline Scheme code @section Inline Scheme code -TODO: the example for this section is ill-chosen since -@example -F = -\tweak font-size #-3 -\flageolet -@end example -(note the @samp{-} marking it as a post event) will actually work fine -for the stated purpose. Until this section gets a rewrite, let's -pretend we don't know. +TODO: after this section had been written, LilyPond has improved +to the point that finding a @emph{simple} example where one would +@emph{have} to revert to Scheme has become rather hard. + +Until this section gets a rewrite, let's pretend we don't know. The main disadvantage of @code{\tweak} is its syntactical -inflexibility. For example, the following produces a syntax error. +inflexibility. For example, the following produces a syntax error +(or rather, it did so at some point in the past). @example F = \tweak font-size #-3 -\flageolet diff --git a/Documentation/fr/learning/common-notation.itely b/Documentation/fr/learning/common-notation.itely index 55fb8ff7ff..e99e0b0371 100644 --- a/Documentation/fr/learning/common-notation.itely +++ b/Documentation/fr/learning/common-notation.itely @@ -26,7 +26,7 @@ Tutorial guidelines: (different from policy.txt!) @end ignore -@c \version "2.17.25" +@c \version "2.17.28" @c Translators: Nicolas Grandclaude, Ludovic Sardain, Gauvain Pocentek @c Translation checkers: Jean-Charles Malahieude, Valentin Villenave, John Mandereau @@ -616,7 +616,7 @@ Des @notation{notes d'ornement} s'obtiennent en appliquant la commande expression musicale : @lilypond[verbatim,quote,relative=2] -c2 \grace { a32[ b] } c2 | +c2 \grace { a32 b } c2 | c2 \appoggiatura b16 c2 | c2 \acciaccatura b16 c2 | @end lilypond diff --git a/Documentation/fr/learning/fundamental.itely b/Documentation/fr/learning/fundamental.itely index 4ff0b02a35..523c2a9c50 100644 --- a/Documentation/fr/learning/fundamental.itely +++ b/Documentation/fr/learning/fundamental.itely @@ -8,7 +8,7 @@ Guide, node Updating translation committishes.. @end ignore -@c \version "2.17.18" +@c \version "2.17.29" @c Translators: Valentin Villenave, Jean-Charles Malahieude @c Translation checkers: John Mandereau @@ -1655,7 +1655,7 @@ partir du nom, et vice versa. @tab Grave les clefs @item Completion_heads_engraver @tab Divise les notes qui dépassent de la mesure -@item New_dynamic_engraver +@item Dynamic_engraver @tab Crée les soufflets et textes de nuance @item Forbid_line_break_engraver @tab Empêche un saut de ligne si un élément musical est toujours actif diff --git a/Documentation/fr/notation/ancient.itely b/Documentation/fr/notation/ancient.itely index 4a4b34ebbe..30e46a85f8 100644 --- a/Documentation/fr/notation/ancient.itely +++ b/Documentation/fr/notation/ancient.itely @@ -245,7 +245,7 @@ style de ligature désiré, il faut remplacer, dans le contexte @code{Voice} approprié, le graveur @code{Ligature_bracket_engraver} par le graveur de ligature qui convient -- voir les rubriques @ref{Ligatures mensurales} et @ref{Neumes et ligatures grégoriennes} à -ce sujet. +ce sujet. @seealso Glossaire musicologique : @@ -428,7 +428,7 @@ clés utilisent le même glyphe, attaché à l'une ou l'autre des lignes de la portée. Le chiffre porté en suffixe permet alors de les différencier. Vous pouvez forcer le positionnement du glyphe sur une ligne, comme expliqué à la section @ref{Clefs}. Dans la colonne -exemple, la note suivant la clé est un do médium. +exemple, la note suivant la clé est un do médium. Les clés d'ut de Petrucci avaient une hampe gauche différente selon leur ligne de rattachement. @@ -652,7 +652,7 @@ Voici les différences entre les styles : @end lilypond La rubrique @ref{Métrique} expose les principes généraux sur -l'utilisation des indications de métrique. +l'utilisation des indications de métrique. @seealso Glossaire musicologique : @@ -692,7 +692,7 @@ commande @code{\time}. Utilisez alors un Pour de la musique ancienne, vous disposez de plusieurs styles de tête de note, en plus du style par défaut @code{default}. Vous pouvez affecter à la propriété @code{style} de l'objet @code{NoteHead} -les valeurs @code{baroque}, @code{neomensural}, @code{mensural}, +les valeurs @code{baroque}, @code{neomensural}, @code{mensural}, @code{petrucci}, @code{blackpetrucci} ou @code{semipetrucci}. Le style @code{baroque} diffère du style @code{default} par @@ -2674,7 +2674,7 @@ Manuel de notation : @knownissues L'espacement des ligatures n'est pas des meilleurs. - + @node Réédition de musique ancienne @subsection Réédition de musique ancienne @@ -2950,7 +2950,7 @@ spirLyr = \lyricmode { @c try Till Rettig @c Add example of white note heads: @c In the french baroque some composers used white note heads in slow pieces, -@c mainly in 3/2-time. A quarter looks there like a eighth with a white +@c mainly in 3/2-time. A quarter looks there like an eighth with a white @c note head. (Franz-Rudolf Kuhnen) @c TODO Add example of this: diff --git a/Documentation/fr/notation/fretted-strings.itely b/Documentation/fr/notation/fretted-strings.itely index 0d87192696..f6a57a8efc 100644 --- a/Documentation/fr/notation/fretted-strings.itely +++ b/Documentation/fr/notation/fretted-strings.itely @@ -8,7 +8,7 @@ Guide, node Updating translation committishes.. @end ignore -@c \version "2.17.11" +@c \version "2.17.27" @c Translators: Matthieu Jacquot @c Translation checkers: Jean-Charles Malahieude @@ -665,7 +665,7 @@ accordage personnalisé dès lors que votre fichier comportera une clause \layout @{ \context @{ \TabStaff - stringTunings = \stringTuning \notemode @{ @} + stringTunings = \stringTuning @} @} @end example diff --git a/Documentation/fr/notation/rhythms.itely b/Documentation/fr/notation/rhythms.itely index 9890ba6fd9..6272da24a7 100644 --- a/Documentation/fr/notation/rhythms.itely +++ b/Documentation/fr/notation/rhythms.itely @@ -8,7 +8,7 @@ Guide, node Updating translation committishes.. @end ignore -@c \version "2.17.25" +@c \version "2.17.28" @c Translators: Frédéric Chiasson, Jean-Charles Malahieude @c Translation checkers: Valentin Villenave, François Martin, Xavier Scheuer @@ -2572,7 +2572,7 @@ qui est en place au niveau de la notation normale. @lilypond[quote,verbatim,relative=2] c4 d8[ -\grace { e32[ d c d] } +\grace { e32 d c d } e8] e[ e \grace { f16 } e8 e] @@ -3427,7 +3427,7 @@ pas de temps dans la mesure. @lilypond[quote,relative=2,verbatim] c4 \grace b16 a4( -\grace { b16[ c16] } a2) +\grace { b16 c16 } a2) @end lilypond Les plus courantes sont les acciaccatures, qui doivent se jouer très @@ -3441,7 +3441,7 @@ déjà liées. @lilypond[quote,relative=2,verbatim] \acciaccatura d8 c4 \appoggiatura e8 d4 -\acciaccatura { g16[ f] } e2 +\acciaccatura { g16 f } e2 \slashedGrace a,8 g4 \slashedGrace b16 a4( \slashedGrace b8 a2) @@ -3453,8 +3453,8 @@ pour chaque petite croche. @lilypond[quote,relative=2,verbatim] << - \new Staff { e2 \grace { c16[ d e f] } e2 } - \new Staff { c2 \grace { g8[ b] } c2 } + \new Staff { e2 \grace { c16 d e f } e2 } + \new Staff { c2 \grace { g8 b } c2 } >> @end lilypond @@ -3502,7 +3502,7 @@ sept huitièmes de la durée de la note de base : \new Voice { << { d1^\trill_( } - { s2 s4. \grace { c16[ d] } } + { s2 s4. \grace { c16 d } } >> c1) } diff --git a/Documentation/fr/notation/simultaneous.itely b/Documentation/fr/notation/simultaneous.itely index abf8a4104e..4d6b176905 100644 --- a/Documentation/fr/notation/simultaneous.itely +++ b/Documentation/fr/notation/simultaneous.itely @@ -7,7 +7,7 @@ Guide, node Updating translation committishes.. @end ignore -@c \version "2.17.25" +@c \version "2.17.28" @c Translators: Frédéric Chiasson, Valentin Villenave, Jean-Charles Malahieude @c Translation checkers: Jean-Charles Malahieude, John Mandereau @@ -98,7 +98,7 @@ sera donc combiné -- pour des combinaisons plus complexes, voir @ref{Expressions simultanées}. @lilypond[verbatim,quote,relative=2] -\grace { g8[( a b] } +\grace { g8( a b } <> ) \p \< -. -\markup \italic "sempre staccato" \repeat unfold 4 { c4 e } c1\f @end lilypond diff --git a/Documentation/fr/notation/spacing.itely b/Documentation/fr/notation/spacing.itely index bcd11d5cdb..4d394c2375 100644 --- a/Documentation/fr/notation/spacing.itely +++ b/Documentation/fr/notation/spacing.itely @@ -8,7 +8,7 @@ Guide, node Updating translation committishes.. @end ignore -@c \version "2.17.11" +@c \version "2.17.28" @c Translators: Frédéric Chiasson, Jean-Charles Malahieude @@ -3207,7 +3207,7 @@ d'ornement qui pourraient apparaître : @lilypond[quote,ragged-right,relative=2,verbatim] \override Score.SpacingSpanner.strict-note-spacing = ##t -\new Staff { c8[ c \clef alto c \grace { c16[ c] } c8 c c] c32[ c] } +\new Staff { c8[ c \clef alto c \grace { c16 c } c8 c c] c32[ c] } @end lilypond @seealso diff --git a/Documentation/fr/notation/vocal.itely b/Documentation/fr/notation/vocal.itely index d0ca024bd8..aa380079bf 100644 --- a/Documentation/fr/notation/vocal.itely +++ b/Documentation/fr/notation/vocal.itely @@ -8,7 +8,7 @@ Guide, node Updating translation committishes.. @end ignore -@c \version "2.17.19" +@c \version "2.17.28" @c Translators: Valentin Villenave, Jean-Charles Malahieude @c Translation checkers: Jean-Jacques Gerbaud @@ -1970,7 +1970,7 @@ propriété @code{includeGraceNotes} : << \new Voice = melody \relative c' { f4 \appoggiatura a32 b4 - \grace { f16[ a16] } b2 + \grace { f16 a16 } b2 \afterGrace b2 { f16[ a16] } \appoggiatura a32 b4 \acciaccatura a8 b4 @@ -1999,7 +1999,7 @@ clause @code{\with} ou @code{\context} : @lilypond[verbatim,ragged-right,quote] << \new Voice = melody \relative c' { - \grace { c16[( d e f] } + \grace { c16( d e f } g1) f } \new Lyrics \with { includeGraceNotes = ##t } diff --git a/Documentation/fr/usage/external.itely b/Documentation/fr/usage/external.itely index cfd93bdea3..5c4e3479ea 100644 --- a/Documentation/fr/usage/external.itely +++ b/Documentation/fr/usage/external.itely @@ -520,7 +520,7 @@ Quantiser les durées à partir de @var{DUR}. @item -e, --explicit-durations Rendu explicite des durées. -@item -h,--help +@item -h, --help Afficher un résumé des utilisations. @item -k, --key=@var{acc}[:@var{minor}] @@ -588,7 +588,7 @@ directement à partir de la ligne de commande. @item -a, --absolute Rendu en hauteurs absolues. -@item -h,--help +@item -h, --help Afficher un résumé des utilisations. @item -l, --language=LANG @@ -615,21 +615,21 @@ articulations, nuances, etc. Ne pas convertir les informations de ligature ; laisser LilyPond gérer les ligatures automatiquement. -@item -o,--output=@var{file} +@item -o, --output=@var{file} Générer le résultat dans le fichier @var{fichier}. S'il n'est pas déterminé, ce sera @var{fichier-xml}@file{.ly} ; @file{-} produira le résultat sur la sortie standard (@var{stdout}). -@item -r,--relative +@item -r, --relative Rendu en hauteurs relatives (mode par défaut). -@item -v,--verbose +@item -v, --verbose Mode verbeux. @item --version Afficher le numéro de version. -@item -z,--compressed +@item -z, --compressed Le fichier d'entrée est un fichier MusicXML zippé. @end table @@ -659,16 +659,16 @@ abc2ly [@var{option}]@dots{} @var{fichier-abc} @command{abc2ly} accepte les options suivantes : @table @code -@item -b,--beams=None +@item -b, --beams=None Préserver la notion de lien de croches propre à ABC. -@item -h,--help +@item -h, --help Afficher un résumé des utilisations. -@item -o,--output=@var{file} +@item -o, --output=@var{file} Générer le résultat dans le fichier @var{file}. -@item -s,--strict +@item -s, --strict Être strict sur la réussite. @item --version @@ -738,7 +738,7 @@ commande du système. Pour plus de précisions, reportez-vous à @command{etf2ly} accepte les options suivantes : @table @code -@item -h,--help +@item -h, --help Afficher cette aide. @item -o, --output=@var{file} diff --git a/Documentation/fr/usage/running.itely b/Documentation/fr/usage/running.itely index 19252f6503..77b0574273 100644 --- a/Documentation/fr/usage/running.itely +++ b/Documentation/fr/usage/running.itely @@ -150,12 +150,12 @@ Différentes options sont disponibles en ligne de commande : @table @code -@item -d,--define-default=@var{variable}=@var{valeur} +@item -d, --define-default=@var{variable}=@var{valeur} Voir @ref{Options avancées de lilypond}. @cindex Scheme, évaluation d'expression @cindex expression Scheme, évaluation -@item -e,--evaluate=@var{expr} +@item -e, --evaluate=@var{expr} Évalue l'expression Scheme @var{expr} avant d'analyser tout fichier @file{.ly}. Lorsque vous spécifiez l'option @option{-e} à plusieurs reprises, l'évaluation sera faite en séquence. @@ -184,25 +184,25 @@ doubles @code{"} en lieu et place des guillemets simples @code{'}.} @cindex sortie, format @cindex format de sortie -@item -f,--format=@var{format} +@item -f, --format=@var{format} Détermine le format à produire. Il peut s'agir de @code{ps}, @code{pdf} ou @code{png}. Exemple : @code{lilypond -fpng @var{monfichier}.ly} -@item -h,--help +@item -h, --help Affiche un résumé des commandes. -@item -H,--header=@var{CHAMP} +@item -H, --header=@var{CHAMP} Recopie le champ d'entête dans le fichier @file{RACINE.@var{CHAMP}}. -@item -i,--init=@var{fichier} +@item -i, --init=@var{fichier} Définit @var{fichier} (par défaut @file{init.ly}) en tant que fichier d'initialisation. @cindex recherche de fichier @cindex chemin de recherche -@item -I,--include=@var{répertoire} +@item -I, --include=@var{répertoire} Ajoute @var{répertoire} au chemin de recherche pour les inclusions. Vous pouvez mentionner plusieurs fois l'option @option{-I}, auquel cas @@ -211,7 +211,7 @@ fichier en question ne s'y trouve pas, les répertoires suivants seront examinés l'un après l'autre. @cindex chroot jail, fonctionnement -@item -j,--jail=@var{user},@var{group},@var{jail},@var{dir} +@item -j, --jail=@var{user},@var{group},@var{jail},@var{dir} Lance @command{lilypond} dans un environnement protégé. L'option @option{--jail} est une alternative qui offre plus de @@ -279,7 +279,7 @@ mémoire. Voir aussi @ref{Exécution de LilyPond en mode protégé}. @cindex loglevel @cindex verbosité, définir le degré de -@item -l,--loglevel=@var{DEGRÉ} +@item -l, --loglevel=@var{DEGRÉ} Règle le niveau de verbosité des messages console à @var{DEGRÉ}. Les différentes valeurs sont : @@ -314,7 +314,7 @@ Tout ce qui peut être affiché, y compris le verbiage utile au débogage. @cindex redirection @cindex répertoire de destination @cindex fichier de destination -@item -o,--output=@var{FICHIER} ou @var{RÉPERTOIRE} +@item -o, --output=@var{FICHIER} ou @var{RÉPERTOIRE} Détermine le nom par défaut du fichier résultant à @var{FICHIER} ; lorsque l'argument @var{RÉPERTOIRE} correspond à un répertoire déjà existant, c'est là que les fichiers résultants seront déposés. Le @@ -341,14 +341,14 @@ se régler en ajoutant par exemple @item --pdf Génère du PDF. Ceci sous-entend l'utilisation de @option{--ps}. -@item -v,--version +@item -v, --version Affiche le numéro de version. -@item -V,--verbose +@item -V, --verbose Active le mode verbeux : affichage de l'intégralité du chemin d'accès de chaque fichier, et information des temps de traitement. -@item -w,--warranty +@item -w, --warranty Affiche les informations de garantie applicables à GNU LilyPond -- il est livré @strong{SANS GARANTIE} ! diff --git a/Documentation/fr/usage/updating.itely b/Documentation/fr/usage/updating.itely index b7c5b2dbb0..36881a01f3 100644 --- a/Documentation/fr/usage/updating.itely +++ b/Documentation/fr/usage/updating.itely @@ -167,7 +167,7 @@ effectivement modifié. En l'absence de cette option, ou bien si une conversion quelle qu'elle soit a modifié le fichier, la mention de version est porté à la valeur de la règle appliquée la plus récente. -@item -e,--edit +@item -e, --edit pour éditer directement le fichier d'origine. @item -f, --from=@var{from-patchlevel} diff --git a/Documentation/hu/learning/common-notation.itely b/Documentation/hu/learning/common-notation.itely index 0e7c28c138..29fb660a1a 100644 --- a/Documentation/hu/learning/common-notation.itely +++ b/Documentation/hu/learning/common-notation.itely @@ -9,7 +9,7 @@ @end ignore -@c \version "2.17.11" +@c \version "2.17.28" @node Elemi kottaírás @chapter Elemi kottaírás @@ -479,7 +479,7 @@ az @code{\appoggiatura}, súlytalanok előtt az @code{\acciaccatura} parancs áll: @lilypond[verbatim,quote,relative=2] -c2 \grace { a32[ b] } c2 +c2 \grace { a32 b } c2 c2 \appoggiatura b16 c2 c2 \acciaccatura b16 c2 @end lilypond diff --git a/Documentation/hu/learning/fundamental.itely b/Documentation/hu/learning/fundamental.itely index 39a50e5f6e..06ed20b8e0 100644 --- a/Documentation/hu/learning/fundamental.itely +++ b/Documentation/hu/learning/fundamental.itely @@ -10,7 +10,7 @@ @c -*- coding: utf-8; mode: texinfo; -*- -@c \version "2.17.18" +@c \version "2.17.29" @node Alapfogalmak @chapter Alapfogalmak @translationof Fundamental concepts @@ -1749,8 +1749,7 @@ from the name, or vice versa. @tab Engraves clefs @item Completion_heads_engraver @tab Splits notes which cross bar lines -@c The old Dynamic_engraver is deprecated. -jm -@item New_dynamic_engraver +@item Dynamic_engraver @tab Creates hairpins and dynamic texts @item Forbid_line_break_engraver @tab Prevents line breaks if a musical element is still active diff --git a/Documentation/hu/usage/running.itely b/Documentation/hu/usage/running.itely index 95ff637baa..f72f60ea9e 100644 --- a/Documentation/hu/usage/running.itely +++ b/Documentation/hu/usage/running.itely @@ -105,7 +105,7 @@ A következő parancssori opciók támogatottak: @table @code -@item -e,--evaluate=@var{kifejezés} +@item -e, --evaluate=@var{kifejezés} A Scheme @var{kifejezés} kiértékelése az @file{.ly} fájlok beolvasása előtt. Több @code{-e} opció is megadható, ezek a megadott sorrendben lesznek végrehajtva. @@ -125,12 +125,12 @@ a forrásfájl elejére pedig a következőt kell beszúrni: #(use-modules (guile-user)) @end example -@item -f,--format=@var{formátum} +@item -f, --format=@var{formátum} A kimenet formátuma. Lehetőségek: @code{ps}, @code{pdf} vagy @code{png}. Példa: @code{lilypond -fpng @var{fájlnév}.ly} -@item -d,--define-default=@var{azonosító}=@var{érték} +@item -d, --define-default=@var{azonosító}=@var{érték} Az @var{azonosító} nevű belső változó beállítása az @var{érték} Scheme értékre. Ha az @var{érték} nincs megadva, az alapértelmezett @code{#t} lesz a változó értéke. Egy opció kikapcsolásához a @code{no-} prefixumot @@ -273,21 +273,21 @@ opció a @code{-dpreview} opcióval együtt hasznos. @end table -@item -h,--help +@item -h, --help Összegzés az alkalmazás használatáról. -@item -H,--header=@var{mező} +@item -H, --header=@var{mező} A megadott fejlécmező kiírása a @file{@var{fájlnév}.@var{mező}} nevű fájlba. @item --include, -I=@var{könyvtár} A @var{könyvtár} hozzáadása a bemeneti fájlok keresési útvonalához. @cindex keresési útvonal -@item -i,--init=@var{fájl} +@item -i, --init=@var{fájl} Az inicializáló fájl beállítása a megadott @var{fájl}ra. (Alapértelmezett: @file{init.ly}.) -@item -o,--output=@var{fájl} +@item -o, --output=@var{fájl} Kimeneti fájl megadása. A megfelelő kiterjesztés automatikusan hozzáfűzésre kerül (pl. @code{.pdf} PDF kimenet esetén). @@ -312,7 +312,7 @@ következőképpen állítható be: PDF generálása. A @code{--ps} opció hatását vonja maga után. -@item -j,--jail=@var{felhasználó},@var{csoport},@var{börtön},@var{könyvtár} +@item -j, --jail=@var{felhasználó},@var{csoport},@var{börtön},@var{könyvtár} A @command{lilypond} futtatása ún. börtönben. A @code{--jail} opció egy rugalmasabb alternatíva a @code{-dsafe} módnál abban @@ -367,14 +367,14 @@ illetve a memóriafoglalásáé is. @end table -@item -v,--version +@item -v, --version Verzióinformáció kijelzése. -@item -V,--verbose +@item -V, --verbose Bőbeszédűség bekapcsolása: az összes beolvasott fájl elérési útjának, futásidőknek és egyéb információknak a kijelzése. -@item -w,--warranty +@item -w, --warranty A GNU LilyPond garanciavállalásának kijelzése. (A LilyPond fejlesztői @strong{SEMMIFÉLE GARANCIÁT} nem vállalnak!) @end table diff --git a/Documentation/hu/usage/updating.itely b/Documentation/hu/usage/updating.itely index ccf924e161..5af9712ccd 100644 --- a/Documentation/hu/usage/updating.itely +++ b/Documentation/hu/usage/updating.itely @@ -121,15 +121,15 @@ convert-ly [@var{opció}]@dots{} @var{fájlnév}@dots{} A következő opciók adhatóak meg: @table @code -@item -e,--edit +@item -e, --edit A fájl helyben frissítése. -@item -f,--from=@var{forrásverzió} +@item -f, --from=@var{forrásverzió} A forrásfájl verziójának megadása. Ha nincs megadva, a @command{convert-ly} a fájlban található @code{\version} parancs alapján kitalálja. Példa: @code{--from=2.10.25} -@item -n,--no-version +@item -n, --no-version Alapesetben a @command{convert-ly} ellátja a kimenetét a megfelelő @code{\version} paranccsal. Ez az opció ezt tiltja le. diff --git a/Documentation/included/authors.itexi b/Documentation/included/authors.itexi index 45011f35a6..28d1a54639 100644 --- a/Documentation/included/authors.itexi +++ b/Documentation/included/authors.itexi @@ -178,11 +178,16 @@ Core developer, Schemer extraordinaire @c use commas not colons Aleksandr Andreev, +Frédéric Bron, Marc Hohl, +James Lowe, +David Nalesnik, Keith OHara, Benkő Pál, Anders Pilegaard, -Julien Rioux +Julien Rioux, +Johannes Rohrer, +Adam Spiers @c no comma for last entry @@ -205,7 +210,10 @@ Julien Rioux @c use commas not colons Frédéric Bron, +Federico Bruni, James Lowe, +Jean-Charles Malahieude, +Guy Stalnaker, Arnold Theresius, Rodolfo Zitellini @@ -248,7 +256,8 @@ Federico Bruni, Felipe Castro, Pavel Fric, Jean-Charles Malahieude, -Till Rettig +Till Rettig, +Luca Rossetto Casel @c no comma for last entry diff --git a/Documentation/it/learning/common-notation.itely b/Documentation/it/learning/common-notation.itely index e9930f8151..3a12ad6fa2 100644 --- a/Documentation/it/learning/common-notation.itely +++ b/Documentation/it/learning/common-notation.itely @@ -9,7 +9,7 @@ @end ignore -@c \version "2.17.25" +@c \version "2.17.28" @ignore Tutorial guidelines: (different from policy.txt!) @@ -565,7 +565,7 @@ ma possono essere creati anche ponendo davanti a un'espressione musicale le parole chiave @code{\appoggiatura} o @code{\acciaccatura}: @lilypond[verbatim,quote,relative=2] -c2 \grace { a32[ b] } c2 | +c2 \grace { a32 b } c2 | c2 \appoggiatura b16 c2 | c2 \acciaccatura b16 c2 | @end lilypond diff --git a/Documentation/it/learning/fundamental.itely b/Documentation/it/learning/fundamental.itely index 76c34e4403..8ae52b0212 100644 --- a/Documentation/it/learning/fundamental.itely +++ b/Documentation/it/learning/fundamental.itely @@ -8,7 +8,7 @@ Guide, node Updating translation committishes.. @end ignore -@c \version "2.17.18" +@c \version "2.17.29" @node Concetti fondamentali @chapter Concetti fondamentali @@ -1611,8 +1611,7 @@ partire dal nome, o viceversa. @tab Incide le chiavi @item Completion_heads_engraver @tab Separa le note che attraversano le stanghette -@c The old Dynamic_engraver is deprecated. -jm -@item New_dynamic_engraver +@item Dynamic_engraver @tab Crea le forcelle e i testi relativi alla dinamica @item Forbid_line_break_engraver @tab Impedisce l'a capo se un elemento musicale è ancora attivo diff --git a/Documentation/it/notation/rhythms.itely b/Documentation/it/notation/rhythms.itely index 7a9ae8239b..2c9155bb5d 100644 --- a/Documentation/it/notation/rhythms.itely +++ b/Documentation/it/notation/rhythms.itely @@ -7,7 +7,7 @@ Guide, node Updating translation committishes.. @end ignore -@c \version "2.17.25" +@c \version "2.17.28" @c Translators: Federico Bruni @c Translation checkers: Luca Rossetto Casel @@ -2511,7 +2511,7 @@ nella travatura delle note normali. @lilypond[quote,verbatim,relative=2] c4 d8[ -\grace { e32[ d c d] } +\grace { e32 d c d } e8] e[ e \grace { f16 } e8 e] @@ -3359,7 +3359,7 @@ più piccolo e non alterano la durata della misura. @lilypond[quote,relative=2,verbatim] c4 \grace b16 a4( -\grace { b16[ c16] } a2) +\grace { b16 c16 } a2) @end lilypond Esistono altri tre tipi di abbellimenti possibili; l'@emph{acciaccatura} -- un @@ -3373,7 +3373,7 @@ già poste sotto una legatura: si usa il comando @code{\slashedGrace}. @lilypond[quote,relative=2,verbatim] \acciaccatura d8 c4 \appoggiatura e8 d4 -\acciaccatura { g16[ f] } e2 +\acciaccatura { g16 f } e2 \slashedGrace a,8 g4 \slashedGrace b16 a4( \slashedGrace b8 a2) @@ -3385,8 +3385,8 @@ abbellimento da un ottavo @lilypond[quote,relative=2,verbatim] << - \new Staff { e2 \grace { c16[ d e f] } e2 } - \new Staff { c2 \grace { g8[ b] } c2 } + \new Staff { e2 \grace { c16 d e f } e2 } + \new Staff { c2 \grace { g8 b } c2 } >> @end lilypond @@ -3433,7 +3433,7 @@ note after a space lasting 7/8 of the main note. \new Voice { << { d1^\trill_( } - { s2 s4. \grace { c16[ d] } } + { s2 s4. \grace { c16 d } } >> c1) } diff --git a/Documentation/it/notation/simultaneous.itely b/Documentation/it/notation/simultaneous.itely index 7e6e350e30..3b95551908 100644 --- a/Documentation/it/notation/simultaneous.itely +++ b/Documentation/it/notation/simultaneous.itely @@ -7,7 +7,7 @@ Guide, node Updating translation committishes.. @end ignore -@c \version "2.17.25" +@c \version "2.17.28" @c Translators: Federico Bruni @c Translation checkers: Luca Rossetto Casel @@ -97,7 +97,7 @@ questi (possibilità più complesse di combinazione sono spiegate in @ref{Simultaneous expressions}): @lilypond[verbatim,quote,relative=2] -\grace { g8[( a b] } +\grace { g8( a b } <> ) \p \< -. -\markup \italic "sempre staccato" \repeat unfold 4 { c4 e } c1\f @end lilypond diff --git a/Documentation/it/notation/staff.itely b/Documentation/it/notation/staff.itely index 894cf0c2ea..5b25582d09 100644 --- a/Documentation/it/notation/staff.itely +++ b/Documentation/it/notation/staff.itely @@ -949,7 +949,7 @@ usare @code{\center-column}: Tuttavia, se i nomi degli strumenti sono lunghi, potranno essere centrati solo aumentando i valori di @code{indent} e @code{short-indent}. Ulteriori dettagli su queste impostazioni si trovano in -@ref{\paper variables for shifts and indents}. +@ref{paper variables for shifts and indents,,@code{@bs{}paper} variables for shifts and indents}. @lilypond[verbatim,quote,ragged-right] \relative c'' { @@ -1052,7 +1052,7 @@ dell'espressione musicale, : @seealso Guida alla notazione: -@ref{\paper variables for shifts and indents}, +@ref{paper variables for shifts and indents,,@code{@bs{}paper} variables for shifts and indents}, @ref{Modifying context plug-ins}. Frammenti: diff --git a/Documentation/it/usage/external.itely b/Documentation/it/usage/external.itely index 6234f9f3de..41be51c6d5 100644 --- a/Documentation/it/usage/external.itely +++ b/Documentation/it/usage/external.itely @@ -476,7 +476,7 @@ Quantizza la durata delle note di @var{DUR}. @item -e, --explicit-durations Crea durate esplicite. -@item -h,--help +@item -h, --help Mostra una sintesi dell'utilizzo del programma. @item -k, --key=@var{acc}[:@var{minor}] @@ -546,7 +546,7 @@ dalla linea di comando. @item -a, --absolute converte le altezze relative in assolute. -@item -h,--help +@item -h, --help mostra una sintesi dell'utilizzo e delle opzioni. @item -l, --language=LANG @@ -572,11 +572,11 @@ articolazioni, dinamiche, etc. ignora le informazioni relative alle travature, impiegando la disposizione automatica delle travature fornita da LilyPond. -@item -o,--output=@var{file} +@item -o, --output=@var{file} imposta il nome del file di output su @var{file}. Se @var{file} è @file{-}, l'output sarà salvato su stdout. Se non specificato, verrà usato @var{file-xml}@file{.ly}. -@item -r,--relative +@item -r, --relative converte le altezze in modalità relativa (predefinito). @item -v, --verbose @@ -585,7 +585,7 @@ Mostra un output dettagliato. @item --version Mostra informazioni sulla versione. -@item -z,--compressed +@item -z, --compressed il file di input è un file MusicXML compresso in un archivio ZIP. @end table @@ -615,13 +615,13 @@ abc2ly [@var{opzione}]@dots{} @var{file-abc} @command{abc2ly} accetta le seguenti opzioni: @table @code -@item -b,--beams=None +@item -b, --beams=None preserva le regole di disposizione delle travature di ABC -@item -h,--help +@item -h, --help mostra questo messaggio di aiuto -@item -o,--output=@var{file} +@item -o, --output=@var{file} imposta il nome del file di output su @var{file}. -@item -s,--strict +@item -s, --strict imposta una modalità di interpretazione letterale per effettuare una conversione stretta @item --version mostra informazioni sulla versione. @@ -689,9 +689,9 @@ maggiori informazioni su questo argomento. @command{etf2ly} accetta le seguenti opzioni: @table @code -@item -h,--help +@item -h, --help mostra questo messaggio di aiuto -@item -o,--output=@var{FILE} +@item -o, --output=@var{FILE} imposta il nome del file di output su @var{FILE} @item --version mostra informazioni sulla versione diff --git a/Documentation/it/usage/running.itely b/Documentation/it/usage/running.itely index bbaa2b3847..42e9077633 100644 --- a/Documentation/it/usage/running.itely +++ b/Documentation/it/usage/running.itely @@ -138,13 +138,13 @@ Sono contemplate le seguenti opzioni: @table @code -@item -d,--define-default=@var{variabile}=@var{valore} +@item -d, --define-default=@var{variabile}=@var{valore} Si veda @ref{Advanced command line options for LilyPond}. @cindex Scheme, valutazione dell'espressione @cindex valutazione dell'espressione, Scheme -@item -e,--evaluate=@var{espressione} +@item -e, --evaluate=@var{espressione} Valuta l'@var{espressione} di Scheme prima di analizzare qualsiasi file @file{.ly}. Si possono specificare varie opzioni @option{-e}; saranno analizzate in modo sequenziale. @@ -171,19 +171,19 @@ in cima al file @code{.ly}. @cindex output, formato @cindex formato, output -@item -f,--format=@var{formato} +@item -f, --format=@var{formato} Formati di output. Come @code{formato} si può scegliere tra @code{ps}, @code{pdf} e @code{png}. Esempio: @code{lilypond -fpng @var{file}.ly} -@item -h,--help +@item -h, --help Mostra una sintesi dell'utilizzo. -@item -H,--header=@var{CAMPO} +@item -H, --header=@var{CAMPO} Estrae un campo dell'intestazione nel file @file{NOME.@var{CAMPO}}. -@item -i,--init=@var{file} +@item -i, --init=@var{file} Imposta il file di inizializzazione su @var{file} (predefinito: @file{init.ly}). @cindex ricerca dei file @@ -198,7 +198,7 @@ la ricerca continuerà nelle directory seguenti. @cindex gabbia chroot, esecuzione all'interno di -@item -j,--jail=@var{utente},@var{gruppo},@var{gabbia},@var{directory} +@item -j, --jail=@var{utente},@var{gruppo},@var{gabbia},@var{directory} Esegue @command{lilypond} in una gabbia chroot. L'opzione @option{--jail} fornisce un'alternativa più flessibile a @@ -260,7 +260,7 @@ memoria che può essere allocata. Si veda anche @ref{LilyPond in chroot jail}. @cindex loglevel @cindex output dettagliato -@item -l,--loglevel=@var{LIVELLO} +@item -l, --loglevel=@var{LIVELLO} Imposta la verbosità dell'output della console su @var{LIVELLO}. I valori possibili sono: @table @code @@ -291,7 +291,7 @@ Tutti i messaggi possibili, incluso l'output verboso di debug. @cindex output, impostare il nome del file @cindex output, directory -@item -o,--output=@var{FILE} o @var{CARTELLA} +@item -o, --output=@var{FILE} o @var{CARTELLA} Imposta il file di output predefinito @var{FILE} oppure, se una cartella con quel nome esiste già, dirige l'output in @var{CARTELLA}, prendendo il nome del file dal file di input. In entrambi i casi verrà aggiunto il suffisso @@ -320,14 +320,14 @@ Genera immmagini di ogni pagina in formato PNG. Questo implica @item --pdf Genera PDF. Questo implica @option{--ps}. -@item -v,--version +@item -v, --version Mostra informazioni sulla versione. -@item -V,--verbose +@item -V, --verbose Aumenta la prolissità: mostra i percorsi completi di tutti i file letti e dà informazioni sui tempi. -@item -w,--warranty +@item -w, --warranty Mostra la garanzia con cui viene distribuito GNU LilyPond. (Distribuito con @strong{NESSUNA GARANZIA}!) diff --git a/Documentation/it/usage/updating.itely b/Documentation/it/usage/updating.itely index 2127be0906..dfa77e6779 100644 --- a/Documentation/it/usage/updating.itely +++ b/Documentation/it/usage/updating.itely @@ -152,17 +152,17 @@ convert-ly [@var{opzione}]@dots{} @var{nomefile}@dots{} Esistono le seguenti opzioni: @table @code -@item -d,--diff-version-update +@item -d, --diff-version-update aumenta il numero di versione in @code{\version} solo se il file è stato modificato da @command{convert-ly}. Senza questa opzione (o quando una conversione ha modificato il file), la dichiarazione di versione riflette l'ultime regola di conversione considerata. -@item -e,--edit +@item -e, --edit Applica le conversioni direttamente nel file di input, modificando l'originale. -@item -f,--from=@var{from-patchlevel} +@item -f, --from=@var{from-patchlevel} Imposta la versione da cui convertire. Se non viene impostata, @command{convert-ly} la ricaverà dalla stringa @code{\version} presente nel file. Esempio: @option{--from=2.10.25} @@ -175,7 +175,7 @@ Imposta la verbosità dell'output su @var{loglevel}. I valori possibili, in caratteri maiuscoli, sono @code{PROGRESS} (predefinito), @code{NONE}, @code{WARNING}, @code{ERROR} e @code{DEBUG}. -@item -n,--no-version +@item -n, --no-version Normalmente @command{convert-ly} aggiunge un indicatore @code{\version} nell'output. Questa opzione lo impedisce. @@ -302,5 +302,3 @@ converted. \score{} must now begin with a music expression. Anything else (particularly \header{}) must come after the music. @end verbatim - - diff --git a/Documentation/ja/learning/common-notation.itely b/Documentation/ja/learning/common-notation.itely index e6b9f50d3a..989f0443cd 100644 --- a/Documentation/ja/learning/common-notation.itely +++ b/Documentation/ja/learning/common-notation.itely @@ -8,7 +8,7 @@ Guide, node Updating translation committishes.. @end ignore -@c \version "2.17.25" +@c \version "2.17.28" @ignore Tutorial guidelines: (different from policy.txt!) @@ -570,7 +570,7 @@ c2 d | よっても作成されます: @lilypond[verbatim,quote,relative=2] -c2 \grace { a32[ b] } c2 | +c2 \grace { a32 b } c2 | c2 \appoggiatura b16 c2 | c2 \acciaccatura b16 c2 | @end lilypond diff --git a/Documentation/ja/learning/fundamental.itely b/Documentation/ja/learning/fundamental.itely index 8072307308..5122a524b8 100644 --- a/Documentation/ja/learning/fundamental.itely +++ b/Documentation/ja/learning/fundamental.itely @@ -8,7 +8,7 @@ Guide, node Updating translation committishes.. @end ignore -@c \version "2.17.18" +@c \version "2.17.29" @c Translators: Yoshiki Sawada @c Translation status: post-GDP @@ -1675,8 +1675,7 @@ LilyPond によって作成された楽譜上にあるすべての記号は @tab 音部記号を譜刻します。 @item Completion_heads_engraver @tab 小節線をまたがる音符を分割します。 -@c The old Dynamic_engraver is deprecated. -jm -@item New_dynamic_engraver +@item Dynamic_engraver @tab 強弱記号 (クレッシェンド、デクレッシェンド) と強弱テキスト (p や f など) を作成します。 @item Forbid_line_break_engraver diff --git a/Documentation/ja/notation/fretted-strings.itely b/Documentation/ja/notation/fretted-strings.itely index fcaaff565d..200016c36e 100644 --- a/Documentation/ja/notation/fretted-strings.itely +++ b/Documentation/ja/notation/fretted-strings.itely @@ -7,7 +7,7 @@ Guide, node Updating translation committishes.. @end ignore -@c \version "2.17.11" +@c \version "2.17.27" @c Translators: Yoshiki Sawada @c Translation status: post-GDP @@ -663,7 +663,7 @@ LilyPond は、@code{TabStaff} の行数と自動的に算出される @code{Fre \layout @{ \context @{ \TabStaff - stringTunings = \stringTuning \notemode @{ @} + stringTunings = \stringTuning @} @} @end example diff --git a/Documentation/ja/notation/rhythms.itely b/Documentation/ja/notation/rhythms.itely index 2afa1464fa..b9b4b0121e 100644 --- a/Documentation/ja/notation/rhythms.itely +++ b/Documentation/ja/notation/rhythms.itely @@ -6,7 +6,7 @@ version that you are working on. See TRANSLATION for details. @end ignore -@c \version "2.17.25" +@c \version "2.17.28" @c Translators: Yoshiki Sawada @c Translation status: post-GDP @@ -2417,7 +2417,7 @@ c8 c\noBeam c c @lilypond[quote,verbatim,relative=2] c4 d8[ -\grace { e32[ d c d] } +\grace { e32 d c d } e8] e[ e \grace { f16 } e8 e] @@ -3172,7 +3172,7 @@ c1 @lilypond[quote,relative=2,verbatim] c4 \grace b16 a4( -\grace { b16[ c16] } a2) +\grace { b16 c16 } a2) @end lilypond 装飾音符には他にも 3 つのタイプがあります。@c @@ -3194,7 +3194,7 @@ Lilypond はさらに 2 つ特殊なタイプの装飾小音符をサポート @lilypond[quote,relative=2,verbatim] \acciaccatura d8 c4 \appoggiatura e8 d4 -\acciaccatura { g16[ f] } e2 +\acciaccatura { g16 f } e2 \slashedGrace a,8 g4 \slashedGrace b16 a4( \slashedGrace b8 a2) @@ -3206,8 +3206,8 @@ Lilypond はさらに 2 つ特殊なタイプの装飾小音符をサポート @lilypond[quote,relative=2,verbatim] << - \new Staff { e2 \grace { c16[ d e f] } e2 } - \new Staff { c2 \grace { g8[ b] } c2 } + \new Staff { e2 \grace { c16 d e f } e2 } + \new Staff { c2 \grace { g8 b } c2 } >> @end lilypond @@ -3257,7 +3257,7 @@ c1 \afterGrace d1 { c16[ d] } c1 \new Voice { << { d1^\trill_( } - { s2 s4. \grace { c16[ d] } } + { s2 s4. \grace { c16 d } } >> c1) } diff --git a/Documentation/ja/notation/simultaneous.itely b/Documentation/ja/notation/simultaneous.itely index b447af7167..b88b36a319 100644 --- a/Documentation/ja/notation/simultaneous.itely +++ b/Documentation/ja/notation/simultaneous.itely @@ -6,7 +6,7 @@ version that you are working on. See TRANSLATION for details. @end ignore -@c \version "2.17.25" +@c \version "2.17.28" @c Translators: Yoshiki Sawada @@ -96,7 +96,7 @@ LilyPond の中で多声部は同じ譜にある複数のボイスを参照し については @ref{Simultaneous expressions} を参照してください): @lilypond[verbatim,quote,relative=2] -\grace { g8[( a b] } +\grace { g8( a b } <> ) \p \< -. -\markup \italic "sempre staccato" \repeat unfold 4 { c4 e } c1\f @end lilypond diff --git a/Documentation/ja/notation/spacing.itely b/Documentation/ja/notation/spacing.itely index 478940a1bd..8d8fe71de9 100644 --- a/Documentation/ja/notation/spacing.itely +++ b/Documentation/ja/notation/spacing.itely @@ -8,7 +8,7 @@ Guide, node Updating translation committishes.. @end ignore -@c \version "2.17.11" +@c \version "2.17.28" @c Translators: Yoshiki Sawada @@ -107,16 +107,16 @@ http://code.google.com/p/lilypond/issues/detail?id=68 オプションについて説明します。 @menu -* \paper ブロック:: +* paper ブロック:: * 紙面サイズと自動拡縮:: -* 固定された垂直方向の \paper スペース変数:: -* 可変な垂直方向の \paper スペース変数:: -* 水平方向の \paper スペース変数:: -* 他の \paper 変数:: +* 固定された垂直方向の paper スペース変数:: +* 可変な垂直方向の paper スペース変数:: +* 水平方向の paper スペース変数:: +* 他の paper 変数:: @end menu -@node \paper ブロック +@node paper ブロック @subsection @code{\paper} ブロック @translationof The \paper block @@ -317,11 +317,11 @@ Scheme 関数 自動拡縮によって影響を受ける垂直方向の長さは @code{top-margin} と @code{bottom-margin} です -(@ref{固定された垂直方向の \paper スペース変数} を参照してください)。@c +(@ref{固定された垂直方向の paper スペース変数,,固定された垂直方向の @code{@bs{}paper} スペース変数} を参照してください)。@c 自動拡縮によって影響を受ける水平方向の長さは @code{right-margin}, @code{inner-margin}, @code{outer-margin}, @code{binding-offset}, @code{indent}, それに @code{short-indent} です -(@ref{水平方向の \paper スペース変数} を参照してください)。 +(@ref{水平方向の paper スペース変数,,水平方向の @code{@bs{}paper} スペース変数} を参照してください)。 これらの長さに対するデフォルト値は @code{top-margin-default}, @code{bottom-margin-default} 等の内部変数を@c @@ -333,15 +333,15 @@ Scheme 関数 @seealso 記譜法リファレンス: -@ref{固定された垂直方向の \paper スペース変数}, -@ref{水平方向の \paper スペース変数} +@ref{固定された垂直方向の paper スペース変数,,固定された垂直方向の @code{@bs{}paper} スペース変数}, +@ref{水平方向の paper スペース変数,,水平方向の @code{@bs{}paper} スペース変数} インストールされているファイル: @file{ly/paper-defaults-init.ly}, @file{scm/paper.scm} -@node 固定された垂直方向の \paper スペース変数 +@node 固定された垂直方向の paper スペース変数 @subsection 固定された垂直方向の @code{\paper} スペース変数 @translationof Fixed vertical spacing \paper variables @@ -409,7 +409,7 @@ Scheme 関数 明示的に定義された紙面サイズは、ユーザ定義の上または下のマージン設定を上書きします。 -@node 可変な垂直方向の \paper スペース変数 +@node 可変な垂直方向の paper スペース変数 @subsection 可変な垂直方向の @code{\paper} スペース変数 @translationof Flexible vertical spacing \paper variables @@ -430,7 +430,7 @@ Scheme 関数 @menu * 可変な垂直方向スペース連想リストの構造:: -* 可変な垂直方向の \paper スペース変数のリスト:: +* 可変な垂直方向の paper スペース変数のリスト:: @end menu @@ -517,7 +517,7 @@ largest of: @end example -@node 可変な垂直方向の \paper スペース変数のリスト +@node 可変な垂直方向の paper スペース変数のリスト @unnumberedsubsubsec 可変な垂直方向の @code{\paper} スペース変数のリスト @translationof List of flexible vertical spacing \paper variables @@ -594,7 +594,7 @@ score の最後のシステムと、その後に score の最初のシステム @rlsr{Spacing} -@node 水平方向の \paper スペース変数 +@node 水平方向の paper スペース変数 @subsection 水平方向の @code{\paper} スペース変数 @translationof Horizontal spacing \paper variables @@ -603,13 +603,13 @@ score の最後のシステムと、その後に score の最初のシステム @ref{紙面サイズに応じた自動拡縮} を参照してください。} @menu -* 幅とマージンの \paper 変数:: -* 両面モードのための \paper 変数:: -* シフトとインデントのための \paper 変数:: +* 幅とマージンの paper 変数:: +* 両面モードのための paper 変数:: +* シフトとインデントのための paper 変数:: @end menu -@node 幅とマージンの \paper 変数 +@node 幅とマージンの paper 変数 @unnumberedsubsubsec 幅とマージンの @code{\paper} 変数 @translationof \paper variables for widths and margins @@ -716,7 +716,7 @@ score の最後のシステムと、その後に score の最初のシステム 明示的に定義された紙面サイズは、ユーザ定義の左または右のマージン設定を上書きします。 -@node 両面モードのための \paper 変数 +@node 両面モードのための paper 変数 @unnumberedsubsubsec 両面モードのための @code{\paper} 変数 @translationof \paper variables for two-sided mode @@ -770,7 +770,7 @@ book の一部であるページすべてが見開きページの外側に持つ @file{ly/paper-defaults-init.ly} -@node シフトとインデントのための \paper 変数 +@node シフトとインデントのための paper 変数 @unnumberedsubsubsec シフトとインデントのための @code{\paper} 変数 @translationof \paper variables for shifts and indents @@ -815,19 +815,19 @@ score の最初のシステムに対するインデントのレベルです。@c @rlsr{Spacing} -@node 他の \paper 変数 +@node 他の paper 変数 @subsection 他の @code{\paper} 変数 @translationof Other \paper variables @menu -* 改行のための \paper 変数:: -* 改ページのための \paper 変数:: -* ページ番号のための \paper 変数:: -* その他の \paper 変数:: +* 改行のための paper 変数:: +* 改ページのための paper 変数:: +* ページ番号のための paper 変数:: +* その他の paper 変数:: @end menu -@node 改行のための \paper 変数 +@node 改行のための paper 変数 @unnumberedsubsubsec 改行のための @code{\paper} 変数 @translationof \paper variables for line breaking @@ -871,7 +871,7 @@ score で使用すべきシステム数です。@c @ref{改行} -@node 改ページのための \paper 変数 +@node 改ページのための paper 変数 @unnumberedsubsubsec 改ページのための @code{\paper} 変数 @translationof \paper variables for page breaking @@ -936,7 +936,7 @@ score で使用すべきページ数です。@c @file{ly/paper-defaults-init.ly} -@node ページ番号のための \paper 変数 +@node ページ番号のための paper 変数 @unnumberedsubsubsec ページ番号のための @code{\paper} 変数 @translationof \paper variables for page numbering @@ -986,7 +986,7 @@ increased by one. Default: @code{#f}. ページ 1 が右側にくるようにする必要があります。 -@node その他の \paper 変数 +@node その他の paper 変数 @unnumberedsubsubsec その他の @code{\paper} 変数 @translationof Miscellaneous \paper variables @@ -1093,15 +1093,15 @@ increased by one. Default: @code{#f}. @item @code{line-width}, @code{ragged-right} それに @code{ragged-last} -(@ref{幅とマージンの \paper 変数} を参照してください) +(@ref{幅とマージンの paper 変数,,幅とマージンの @code{@bs{}paper} 変数} を参照してください) @item @code{indent} と @code{short-indent} -(@ref{シフトとインデントのための \paper 変数} を参照してください) +(@ref{シフトとインデントのための paper 変数,,シフトとインデントのための @code{@bs{}paper} 変数} を参照してください) @item @code{system-count} -(@ref{改行のための \paper 変数} を参照してください) +(@ref{改行のための paper 変数,,改行のための @code{@bs{}paper} 変数} を参照してください) @end itemize @@ -1481,7 +1481,7 @@ c8 c] c2. | @seealso 記譜法リファレンス: -@ref{改行のための \paper 変数} +@ref{改行のための paper 変数,,改行のための @code{@bs{}paper} 変数} コード断片集: @rlsr{Spacing} @@ -1513,7 +1513,7 @@ score や最上位レベルのマークアップの間に挿入することが これらの設定が @code{#t} にセットされている場合、@c すべてのページあるいは最後のページのシステムは@c ページの垂直方向全体には広がりません。@c -@ref{固定された垂直方向の \paper スペース変数} を参照してください。 +@ref{固定された垂直方向の paper スペース変数,,固定された垂直方向の @code{@bs{}paper} スペース変数} を参照してください。 改ページは @code{page-breaking} 関数によって算出されます。@c LilyPond は改ページを算出するために 3 つのアルゴリズムを提供します: @@ -1573,7 +1573,7 @@ LilyPond は改ページを算出するために 3 つのアルゴリズムを @seealso 記譜法リファレンス: -@ref{改行のための \paper 変数} +@ref{改行のための paper 変数,,改行のための @code{@bs{}paper} 変数} コード断片集: @rlsr{Spacing} @@ -1939,7 +1939,7 @@ music = \relative c'' { c4 c c c } 仕組みだけを説明しているということに注意してください。@c システム、score、マークアップ、それにマージン間の垂直方向のスペースは、@c @code{\paper} 変数によって制御されます --- @ref{可変な垂直方向の \paper スペース変数} で説明しています。 +-- @ref{可変な垂直方向の paper スペース変数,,可変な垂直方向の @code{@bs{}paper} スペース変数} で説明しています。 @menu * システム内部のスペース プロパティ:: @@ -2090,7 +2090,7 @@ labelContext = 垂直方向のスペースのグラフィカル オブジェクト プロパティは (@code{staff-affinity} を除いて)、@c -@ref{可変な垂直方向の \paper スペース変数} で説明した +@ref{可変な垂直方向の paper スペース変数,,可変な垂直方向の @code{@bs{}paper} スペース変数} で説明した @code{\paper} スペース変数と同じ連想配列構造を使用します。 連想配列を変更する方法は、@ref{Modifying alists} で説明します。@c グラフィカル オブジェクト プロパティの調節は、@c @@ -2241,7 +2241,7 @@ labelContext = @seealso 記譜法リファレンス: -@ref{可変な垂直方向の \paper スペース変数}, +@ref{可変な垂直方向の paper スペース変数,,可変な垂直方向の @code{@bs{}paper} スペース変数}, @ref{Modifying alists} インストールされているファイル: @@ -3050,7 +3050,7 @@ c16[ c c8] @lilypond[quote,ragged-right,relative=2,verbatim] \override Score.SpacingSpanner.strict-note-spacing = ##t -\new Staff { c8[ c \clef alto c \grace { c16[ c] } c8 c c] c32[ c32] } +\new Staff { c8[ c \clef alto c \grace { c16 c } c8 c c] c32[ c32] } @end lilypond @seealso diff --git a/Documentation/ja/notation/staff.itely b/Documentation/ja/notation/staff.itely index 4aca01596a..c4333a3a3d 100644 --- a/Documentation/ja/notation/staff.itely +++ b/Documentation/ja/notation/staff.itely @@ -947,7 +947,7 @@ d4 e f g しかしながら、楽器名が長い場合、@code{indent} 設定と @code{short-indent} 設定の値を増やさない限り、譜グループの中にある楽器名は中央揃えされません。@c -これらの設定についての詳細は @ref{\paper variables for shifts and indents} +これらの設定についての詳細は @ref{シフトとインデントのための paper 変数,,シフトとインデントのための @code{@bs{}paper} 変数} を参照してください。 @lilypond[verbatim,quote,ragged-right] @@ -1050,7 +1050,7 @@ d4 e f g @seealso 記譜法リファレンス: -@ref{\paper variables for shifts and indents}, +@ref{シフトとインデントのための paper 変数,,シフトとインデントのための @code{@bs{}paper} 変数}, @ref{Modifying context plug-ins} コード断片集: diff --git a/Documentation/ja/notation/vocal.itely b/Documentation/ja/notation/vocal.itely index dff6c23f67..1fa04697f6 100644 --- a/Documentation/ja/notation/vocal.itely +++ b/Documentation/ja/notation/vocal.itely @@ -8,7 +8,7 @@ Guide, node Updating translation committishes.. @end ignore -@c \version "2.17.19" +@c \version "2.17.28" @c Translators: Yoshiki Sawada @c Translation status: post-GDP @@ -1828,7 +1828,7 @@ text = { << \new Voice = melody \relative c' { f4 \appoggiatura a32 b4 - \grace { f16[ a16] } b2 + \grace { f16 a16 } b2 \afterGrace b2 { f16[ a16] } \appoggiatura a32 b4 \acciaccatura a8 b4 @@ -1857,7 +1857,7 @@ text = { @lilypond[verbatim,ragged-right,quote] << \new Voice = melody \relative c' { - \grace { c16[( d e f] } + \grace { c16( d e f } g1) f } \new Lyrics \with { includeGraceNotes = ##t } diff --git a/Documentation/ja/usage/external.itely b/Documentation/ja/usage/external.itely index b22411f055..bb64233371 100644 --- a/Documentation/ja/usage/external.itely +++ b/Documentation/ja/usage/external.itely @@ -379,7 +379,7 @@ midi2ly [@var{option}]@dots{} @var{midi-file} @item -e, --explicit-durations すべての音符の演奏時間を出力します。 -@item -h,--help +@item -h, --help 使用方法の要約を表示します。 @item -k, --key=@var{acc}[:@var{minor}] @@ -451,7 +451,7 @@ musicxml2ly [@var{option}]@dots{} @var{xml-file} @item -a, --absolute 絶対ピッチで出力します。 -@item -h,--help +@item -h, --help 使用方法の要約を表示します。 @item -l, --language=LANG @@ -477,21 +477,21 @@ MIDI ブロックを有効にします。 @item --no-beaming 連桁情報を変換せず、LilyPond の自動連桁機能を使用します。 -@item -o,--output=@var{file} +@item -o, --output=@var{file} 出力ファイル名を @var{file} とします。@c @var{file} に @file{-} を指定すると、出力は stdout に表示されます。@c 指定が無い場合、出力は @var{xml-file}@file{.ly} となります。 -@item -r,--relative +@item -r, --relative ピッチを相対モードに変換します。(デフォルト) -@item -v,--verbose +@item -v, --verbose Verbose モード (ログ等が詳細) で実行します。 @item --version バージョン情報を表示します。 -@item -z,--compressed +@item -z, --compressed 入力ファイルが ZIP で圧縮された MusicXML ファイルであることを示します。 @end table @@ -522,16 +522,16 @@ abc2ly [@var{option}]@dots{} @var{abc-file} @command{abc2ly} には以下のオプションがあります。 @table @code -@item -b,--beams=None +@item -b, --beams=None ABC の連桁情報を保持します。 -@item -h,--help +@item -h, --help このオプション一覧を表示します。 -@item -o,--output=@var{file} +@item -o, --output=@var{file} 出力ファイル名を @var{file} とします。 -@item -s,--strict +@item -s, --strict @c 未訳 be strict about success @@ -602,9 +602,9 @@ more information about this. The following options are supported by @command{etf2ly}: @table @code -@item -h,--help +@item -h, --help this help -@item -o,--output=@var{FILE} +@item -o, --output=@var{FILE} set output filename to @var{FILE} @item --version version information diff --git a/Documentation/ja/usage/running.itely b/Documentation/ja/usage/running.itely index cddb89594a..23cf063b6c 100644 --- a/Documentation/ja/usage/running.itely +++ b/Documentation/ja/usage/running.itely @@ -144,13 +144,13 @@ lilypond は出力として @file{filename.ps} と @file{filename.pdf} を作り @table @code -@item -d,--define-default=@var{var}=@var{val} +@item -d, --define-default=@var{var}=@var{val} @ref{Advanced command line options for LilyPond} を参照してください。 @cindex Scheme, expression evaluation (Scheme 表記の評価) @cindex expression evaluation, Scheme (Scheme 表記の評価) -@item -e,--evaluate=@var{expr} +@item -e, --evaluate=@var{expr} @file{.ly} ファイルを解析する前に Scheme @var{expr} を評価します。@c 複数の @code{-e} オプションが与えられた場合、それらは順番に評価されます。 @@ -175,19 +175,19 @@ lilypond -e '(define-public a 42)' @cindex output, format (出力のフォーマット) @cindex format, output (出力のフォーマット) -@item -f,--format=@var{format} +@item -f, --format=@var{format} フォーマットを指定します。@c @code{format} の選択肢は @code{ps}, @code{pdf}, それに @code{png} です。 例: @code{lilypond -fpng @var{filename}.ly} -@item -h,--help +@item -h, --help 使用方法の要約を表示します。 -@item -H,--header=@var{FIELD} +@item -H, --header=@var{FIELD} ヘッダ フィールドをファイル @file{BASENAME.@var{FIELD}} に吐き出します。 -@item -i,--init=@var{file} +@item -i, --init=@var{file} init ファイルとして @var{file} をセットします (デフォルト: @file{init.ly})。 @cindex file searching (ファイル サーチ) @@ -202,7 +202,7 @@ init ファイルとして @var{file} をセットします (デフォルト: @f @cindex chroot jail, running inside (chroot jail 内部で実行する) -@item -j,--jail=@var{user},@var{group},@var{jail},@var{dir} +@item -j, --jail=@var{user},@var{group},@var{jail},@var{dir} @command{lilypond} を chroot jail 環境で実行します。@c (訳者: chroot jail 環境とはセキュリティのために@c カレント プロセスに対してルート ディレクトリの位置を変更すること。) @@ -278,7 +278,7 @@ LilyPond が使用可能な CPU 時間を数秒に制限する @cindex loglevel (ログレベル) @cindex output, verbosity (出力の饒舌さ) -@item -l,--loglevel=@var{LEVEL} +@item -l, --loglevel=@var{LEVEL} コンソール出力の饒舌さを @var{LEVEL} にセットします。@c 取り得る値は以下の通りです: @@ -312,7 +312,7 @@ LilyPond が使用可能な CPU 時間を数秒に制限する @cindex output, setting filename (出力のファイル名を設定する) @cindex output, directory (出力ディレクトリ) -@item -o,--output=@var{FILE} or @var{FOLDER} +@item -o, --output=@var{FILE} or @var{FOLDER} デフォルトの出力ファイルとして @var{FILE} をセットします。@c セットした名前のフォルダが存在する場合、そのフォルダに出力されます。@c 適切な接尾辞が追加されます @@ -343,14 +343,14 @@ PostScript を生成します。 PDF を生成します。@c これは内部で @code{--ps} を使用します。 -@item -v,--version +@item -v, --version バージョン情報を表示します。 -@item -V,--verbose +@item -V, --verbose 冗長表示モードにします: 読み込むすべてのファイルのフル パスを表示して、時間情報を表示します。 -@item -w,--warranty +@item -w, --warranty GNU LilyPond の保証責任を表示します。@c (GNU LilyPond には@strong{保証責任はありません}!) diff --git a/Documentation/ja/usage/updating.itely b/Documentation/ja/usage/updating.itely index a161dee60b..6d9d3e3266 100644 --- a/Documentation/ja/usage/updating.itely +++ b/Documentation/ja/usage/updating.itely @@ -137,14 +137,14 @@ convert-ly [@var{option}]@dots{} @var{filename}@dots{} 以下のオプションを与えることができます: @table @code -@item -d,--diff-version-update +@item -d, --diff-version-update @code{\version} を最新に更新します。最新バージョンよりも大きい場合は@c 何もしません。 -@item -e,--edit +@item -e, --edit 入力ファイルに直接変換を適用して、それをその場で変更します。 -@item -f,--from=@var{from-patchlevel} +@item -f, --from=@var{from-patchlevel} 変換元のバージョンをセットします。@c これがセットされていない場合、@c @command{convert-ly} は入力ファイルの中にある @@ -159,7 +159,7 @@ convert-ly [@var{option}]@dots{} @var{filename}@dots{} 取り得る値は、大文字で、@code{PROGRESS} (デフォルト), @code{NONE}, @code{WARNING}, @code{ERROR}, それに @code{DEBUG} です。 -@item -n,--no-version +@item -n, --no-version 通常、@command{convert-ly} は @code{\version} インジケータを@c 出力に付け加えます。@c このオプションを指定すると、それを抑制します。 diff --git a/Documentation/learning/common-notation.itely b/Documentation/learning/common-notation.itely index 5ac2726697..8c833c76f5 100644 --- a/Documentation/learning/common-notation.itely +++ b/Documentation/learning/common-notation.itely @@ -8,7 +8,7 @@ Guide, node Updating translation committishes.. @end ignore -@c \version "2.17.25" +@c \version "2.17.28" @ignore Tutorial guidelines: (different from policy.txt!) @@ -60,11 +60,17 @@ on one staff. * Advanced rhythmic commands:: @end menu - @node Bar lines and bar checks @subsection Bar lines and bar checks -@subheading Bar lines +@menu +* Bar lines:: +* Bar checks:: +@end menu + +@node Bar lines +@unnumberedsubsubsec Bar lines + Single bar lines are automatically placed in the music so there is no need to add them manually. Other types of bar @@ -77,7 +83,9 @@ the @ruser{Bar lines}. g1 e1 \bar "||" c2. c'4 \bar "|." @end lilypond -@subheading Bar checks +@node Bar checks +@unnumberedsubsubsec Bar checks + Though not strictly necessary, @emph{bar checks} should be used in the input code to show where bar lines are expected @@ -99,11 +107,19 @@ Notation Reference: @node Accidentals and key signatures @subsection Accidentals and key signatures +@menu +* Accidentals:: +* Key signatures:: +* Warning key signatures and pitches:: +@end menu + @warning{New users are often confused by these -- please read the warning at the bottom of this page, especially if you are not familiar with music theory!} -@subheading Accidentals +@node Accidentals +@unnumberedsubsubsec Accidentals + @cindex accidentals @cindex accidentals and key signatures @@ -135,7 +151,10 @@ cis4 ees fisis, aeses @end lilypond @cindex key signature, setting -@subheading Key signatures + +@node Key signatures +@unnumberedsubsubsec Key signatures + @cindex key signature @cindex major @@ -166,7 +185,9 @@ a1 | @smallspace -@subheading Warning: key signatures and pitches +@node Warning key signatures and pitches +@unnumberedsubsubsec Warning: key signatures and pitches + Music Glossary: @rglos{accidental}, @rglos{key signature}, @rglos{pitch}, @rglos{flat}, @rglos{natural}, @rglos{sharp}, @@ -243,7 +264,15 @@ Notation Reference: @funindex ( ... ) @funindex \( ... \) -@subheading Ties +@menu +* Ties:: +* Slurs:: +* Phrasing slurs:: +* Warnings slurs vs. ties:: +@end menu + +@node Ties +@unnumberedsubsubsec Ties Music Glossary: @rglos{tie}. @@ -255,7 +284,8 @@ first note being tied. g4~ g c2~ | c4~ c8 a~ a2 | @end lilypond -@subheading Slurs +@node Slurs +@unnumberedsubsubsec Slurs Music Glossary: @rglos{slur}. @@ -268,7 +298,9 @@ starting note and ending note are marked with @code{(} and d4( c16) cis( d e c cis d) e( d4) @end lilypond -@subheading Phrasing slurs +@node Phrasing slurs +@unnumberedsubsubsec Phrasing slurs + Music Glossary: @rglos{slur}, @rglos{phrasing}. @@ -284,7 +316,10 @@ g4\( g8( a) b( c) b4\) @smallspace @cindex slurs versus ties -@subheading Warnings: slurs vs. ties + +@node Warnings slurs vs. ties +@unnumberedsubsubsec Warnings: slurs vs. ties + Music Glossary: @rglos{articulation}, @rglos{slur}, @rglos{tie}. @@ -309,8 +344,15 @@ Notation Reference: @node Articulation and dynamics @subsection Articulation and dynamics +@menu +* Articulations:: +* Fingerings:: +* Dynamics:: +@end menu + +@node Articulations +@unnumberedsubsubsec Articulations -@subheading Articulations @cindex articulation @cindex accent @@ -326,7 +368,9 @@ c4-^ c-+ c-- c-! c4-> c-. c2-_ @end lilypond -@subheading Fingerings +@node Fingerings +@unnumberedsubsubsec Fingerings + @cindex fingering @@ -352,7 +396,9 @@ to let LilyPond determine the articulation directions. c4_-^1 d^. f^4_2-> e^-_+ @end lilypond -@subheading Dynamics +@node Dynamics +@unnumberedsubsubsec Dynamics + @cindex dynamics @cindex decrescendo @@ -486,7 +532,15 @@ Notation Reference: @node Advanced rhythmic commands @subsection Advanced rhythmic commands -@subheading Partial measure +@menu +* Partial measure:: +* Tuplets:: +* Grace notes:: +@end menu + +@node Partial measure +@unnumberedsubsubsec Partial measure + @cindex pickup @cindex anacrusis @@ -506,7 +560,9 @@ is a quarter note pickup and @code{\partial 8} an eighth note. c2 d | @end lilypond -@subheading Tuplets +@node Tuplets +@unnumberedsubsubsec Tuplets + @cindex tuplets @cindex triplets @@ -530,7 +586,9 @@ For triplets, there are three notes instead of two, so \tuplet 3/2 { d4 a8 } @end lilypond -@subheading Grace notes +@node Grace notes +@unnumberedsubsubsec Grace notes + @cindex grace notes @cindex acciaccatura @@ -551,7 +609,7 @@ although they can also be created by prefixing a music expression with the keyword @code{\appoggiatura} or @code{\acciaccatura}: @lilypond[verbatim,quote,relative=2] -c2 \grace { a32[ b] } c2 | +c2 \grace { a32 b } c2 | c2 \appoggiatura b16 c2 | c2 \acciaccatura b16 c2 | @end lilypond @@ -592,6 +650,12 @@ than one voice on the same staff. @cindex compound music expression @cindex music expression, compound +@menu +* Analogy mathematical expressions:: +* Simultaneous music expressions multiple staves:: +* Simultaneous music expressions single staff:: +@end menu + In LilyPond input files, music is represented by @emph{music expressions}. A single note is a music expression: @@ -615,7 +679,9 @@ one). The result is another music expression: { { a4 g } f4 g } @end lilypond -@subheading Analogy: mathematical expressions +@node Analogy mathematical expressions +@unnumberedsubsubsec Analogy: mathematical expressions + This mechanism is similar to mathematical formulas: a big formula is created by composing small formulas. Such formulas are called @@ -641,7 +707,9 @@ arbitrarily deep, which is necessary for complex music like polyphonic scores. -@subheading Simultaneous music expressions: multiple staves +@node Simultaneous music expressions multiple staves +@unnumberedsubsubsec Simultaneous music expressions: multiple staves + @cindex multiple staves @cindex staves, multiple @@ -689,7 +757,9 @@ only the first is relative to the @code{c''} in the initial @code{@bs{}relative} command.} -@subheading Simultaneous music expressions: single staff +@node Simultaneous music expressions single staff +@unnumberedsubsubsec Simultaneous music expressions: single staff + To determine the number of staves in a piece, LilyPond looks at the beginning of the first expression. If there is a single note, @@ -774,9 +844,6 @@ than polyrhythmic scores. } @end lilypond - - - @node Staff groups @subsection Staff groups diff --git a/Documentation/learning/fundamental.itely b/Documentation/learning/fundamental.itely index 380bc500de..b8f001b3a2 100644 --- a/Documentation/learning/fundamental.itely +++ b/Documentation/learning/fundamental.itely @@ -8,7 +8,7 @@ Guide, node Updating translation committishes.. @end ignore -@c \version "2.17.18" +@c \version "2.17.29" @node Fundamental concepts @chapter Fundamental concepts @@ -1603,8 +1603,7 @@ from the name, or vice versa. @tab Engraves clefs @item Completion_heads_engraver @tab Splits notes which cross bar lines -@c The old Dynamic_engraver is deprecated. -jm -@item New_dynamic_engraver +@item Dynamic_engraver @tab Creates hairpins and dynamic texts @item Forbid_line_break_engraver @tab Prevents line breaks if a musical element is still active @@ -1895,7 +1894,7 @@ The statement which sets the property value is the same as that in a @code{\context} block within a @code{\layout} block. Each @code{\context} block will affect all contexts of the type specified throughout the @code{\score} or @code{\book} block in which the -@code{\layout} block appears. Here is a example to show the format: +@code{\layout} block appears. Here is an example to show the format: @lilypond[verbatim,quote] \score { diff --git a/Documentation/learning/tutorial.itely b/Documentation/learning/tutorial.itely index ea6c4e08e6..dfb60fab0b 100644 --- a/Documentation/learning/tutorial.itely +++ b/Documentation/learning/tutorial.itely @@ -45,6 +45,10 @@ LilyPond input files (written by you) to produce output files. @cindex example, first @cindex case sensitive +@menu +* Producing output:: +@end menu + @qq{Compiling} is the term used for processing an input file in LilyPond format to produce output file(s). Output files are generally PDF (for printing or viewing), MIDI (for playing), and @@ -83,7 +87,8 @@ produce an error message. @smallspace -@subheading Producing output +@node Producing output +@unnumberedsubsubsec Producing output @cindex PDF file @cindex viewing music @@ -165,6 +170,16 @@ started writing input files. @cindex simple notation @cindex notation, simple +@menu +* Pitches:: +* Durations (rhythms):: +* Rests:: +* Time signature:: +* Tempo marks:: +* Clef:: +* All together:: +@end menu + LilyPond will add some notation elements automatically. In the next example, we have only specified four pitches, but LilyPond has added a clef, time signature, and rhythms. @@ -180,7 +195,8 @@ This behavior may be altered, but in most cases these automatic values are useful. -@subheading Pitches +@node Pitches +@unnumberedsubsubsec Pitches @cindex pitches @cindex relative mode @@ -287,7 +303,8 @@ To change a note by two (or more!) octaves, we use multiple quotes @code{''} and not one double quote @code{"}@tie{}! @c " - keeps quotes in order for context-sensitive editor -td -@subheading Durations (rhythms) +@node Durations (rhythms) +@unnumberedsubsubsec Durations (rhythms) @cindex note durations @cindex durations @@ -330,8 +347,8 @@ explicitly (i.e., with a number). } @end lilypond - -@subheading Rests +@node Rests +@unnumberedsubsubsec Rests @cindex rest @cindex notating rests @@ -349,7 +366,8 @@ A @notation{rest} is entered just like a note with the name @end lilypond -@subheading Time signature +@node Time signature +@unnumberedsubsubsec Time signature @cindex time signature @@ -372,7 +390,8 @@ command: } @end lilypond -@subheading Tempo marks +@node Tempo marks +@unnumberedsubsubsec Tempo marks @cindex tempo marks @cindex metronome marks @@ -400,7 +419,8 @@ set with the @code{\tempo} command: @end lilypond -@subheading Clef +@node Clef +@unnumberedsubsubsec Clef @cindex clef @cindex treble @@ -429,7 +449,8 @@ The @notation{clef} can be set using the @code{\clef} command: @end lilypond -@subheading All together +@node All together +@unnumberedsubsubsec All together Here is a small example showing all these elements together: diff --git a/Documentation/learning/tweaks.itely b/Documentation/learning/tweaks.itely index 6d9f157895..5ee640a9b9 100644 --- a/Documentation/learning/tweaks.itely +++ b/Documentation/learning/tweaks.itely @@ -174,15 +174,15 @@ the types of objects and properties from their names. @cindex tweaking methods @menu -* The \override command:: -* The \revert command:: -* The \once prefix:: -* The \overrideProperty command:: -* The \tweak command:: +* The override command:: +* The revert command:: +* The once prefix:: +* The overrideProperty command:: +* The tweak command:: @end menu -@node The \override command -@unnumberedsubsubsec The @code{\override} command +@node The override command +@unnumberedsubsubsec The @code{@bs{}override} command @cindex override command @cindex override syntax @@ -253,8 +253,8 @@ g4 a b c | @end lilypond -@node The \revert command -@unnumberedsubsubsec The @code{\revert} command +@node The revert command +@unnumberedsubsubsec The @code{@bs{}revert} command @cindex revert command @@ -291,8 +291,8 @@ b4 c | @end lilypond -@node The \once prefix -@unnumberedsubsubsec The @code{\once} prefix +@node The once prefix +@unnumberedsubsubsec The @code{@bs{}once} prefix @funindex \once @funindex once @@ -336,8 +336,8 @@ rather than @code{\override} so prefixing these with @code{\once} has no effect. -@node The \overrideProperty command -@unnumberedsubsubsec The @code{\overrideProperty} command +@node The overrideProperty command +@unnumberedsubsubsec The @code{@bs{}overrideProperty} command @cindex overrideProperty command @@ -351,8 +351,8 @@ We mention it here for completeness, but for details see @c Maybe explain in a later iteration -td -@node The \tweak command -@unnumberedsubsubsec The @code{\tweak} command +@node The tweak command +@unnumberedsubsubsec The @code{@bs{}tweak} command @cindex tweak command @@ -1117,7 +1117,7 @@ will cause errors when the dimensions of the object are required for correct processing. For example, errors will be generated if the @code{stencil} property of the @code{NoteHead} object is set to @code{#f}. If this is the case, you can instead use the -@code{point-stencil} function, which sets the stencil to a object +@code{point-stencil} function, which sets the stencil to an object with zero size: @lilypond[quote,verbatim,relative=2] @@ -2041,7 +2041,7 @@ positioning is not optimum. @menu * The outside-staff-priority property:: -* The \textLengthOn command:: +* The textLengthOn command:: * Dynamics placement:: * Grob sizing:: @end menu @@ -2259,8 +2259,8 @@ clearly will need to space the notes out horizontally to make more room for the text. This is done using the @code{textLengthOn} command. -@node The \textLengthOn command -@unnumberedsubsubsec The @code{\textLengthOn} command +@node The textLengthOn command +@unnumberedsubsubsec The @code{@bs{}textLengthOn} command @cindex notes, spreading out with text @@ -2613,7 +2613,7 @@ to remember is that the spacing between objects in a of the @code{StaffGrouper}. Spacing from ungrouped staves (like @code{Lyrics} and @code{Staff}) is controlled by the variables of the @code{VerticalAxisGroup}. See the -@ruser{Flexible vertical spacing \paper variables} and +@ruser{Flexible vertical spacing paper variables} and @ruser{Flexible vertical spacing within systems} for more details. @@ -2703,9 +2703,9 @@ space between any object which supports the @code{side-position-interface} and the nearest other object (generally the note or the staff lines); @code{staff-padding} applies only to those objects which are always set outside the staff -- it controls -the minimum amount of space that should be inserted between that -object and the staff. Note that @code{staff-padding} has no effect on -objects which are positioned relative to the note rather than the +the minimum distance from the staff to the outside-staff object. +Note that @code{staff-padding} has no effect on +objects that are positioned relative to the note rather than the staff, even though it may be overridden without error for such objects -- it is simply ignored. @@ -2970,9 +2970,9 @@ note head by overriding @code{right-padding}. @cindex objects, aligning on a baseline @code{staff-padding} can be used to align objects such as dynamics -along a baseline at a fixed height above the staff, rather than at a -height dependent on the position of the note to which they are -attached. It is not a property of @code{DynamicText} but of +along a baseline at a fixed distance from the staff, when no other +notation forces them further from the staff. +It is not a property of @code{DynamicText} but of @code{DynamicLineSpanner}. This is because the baseline should apply equally to @strong{all} dynamics, including those created as extended spanners. So this is the way to align the dynamic marks in the @@ -2984,12 +2984,8 @@ example taken from the previous section: @cindex staff-padding property, example @lilypond[quote,fragment,ragged-right,verbatim,relative=2] -\dynamicUp -% Extend width by 1 unit -\override DynamicText.extra-spacing-width = #'(-0.5 . 0.5) -% Align dynamics to a base line 2 units above staff -\override DynamicLineSpanner.staff-padding = #2 -a4\f b\mf a\mp b\p +\override DynamicLineSpanner.staff-padding = #3 +a4\f b\mf a\p b\mp @end lilypond @@ -4041,10 +4037,10 @@ the parts with all the @code{#()}. This is explained in @ref{Advanced tweaks with Scheme}. @lilypond[quote,verbatim,ragged-right] -mpdolce = -\tweak #'self-alignment-X #-0.6 # - (make-dynamic-script - (markup #:dynamic "mp" - #:normal-text #:italic "dolce" )) +mpdolce = + \tweak self-alignment-X #-0.6 + #(make-dynamic-script + #{ \markup { \dynamic mp \normal-text \italic \bold dolce } #}) inst = #(define-music-function @@ -4071,10 +4067,10 @@ Let's hide them in another file: @example %%% save this to a file called "definitions.ily" -mpdolce = -\tweak #'self-alignment-X #-0.6 # - (make-dynamic-script - (markup #:dynamic "mp" - #:normal-text #:italic "dolce" )) +mpdolce = + \tweak self-alignment-X #-0.6 + #(make-dynamic-script + #@{ \markup @{ \dynamic mp \normal-text \italic \bold dolce @} #@}) inst = #(define-music-function @@ -4106,10 +4102,10 @@ Now let's modify our music (let's save this file as @file{music.ly}). @end example @lilypond[quote,ragged-right] -mpdolce = -\tweak #'self-alignment-X #-0.6 # - (make-dynamic-script - (markup #:dynamic "mp" - #:normal-text #:italic "dolce" )) +mpdolce = + \tweak self-alignment-X #-0.6 + #(make-dynamic-script + #{ \markup { \dynamic mp \normal-text \italic \bold dolce } #}) inst = #(define-music-function @@ -4138,10 +4134,10 @@ with this: @example %%% definitions.ily -mpdolce = -\tweak #'self-alignment-X #-0.6 # - (make-dynamic-script - (markup #:dynamic "mp" - #:normal-text #:italic "dolce" )) +mpdolce = + \tweak self-alignment-X #-0.6 + #(make-dynamic-script + #@{ \markup @{ \dynamic mp \normal-text \italic \bold dolce @} #@}) inst = #(define-music-function @@ -4168,10 +4164,10 @@ inst = @end example @lilypond[quote,ragged-right] -mpdolce = -\tweak #'self-alignment-X #-0.6 # - (make-dynamic-script - (markup #:dynamic "mp" - #:normal-text #:italic "dolce" )) +mpdolce = + \tweak self-alignment-X #-0.6 + #(make-dynamic-script + #{ \markup { \dynamic mp \normal-text \italic \bold dolce } #}) inst = #(define-music-function @@ -4216,10 +4212,10 @@ overall size of the output. @example %%% web-publish.ily -mpdolce = -\tweak #'self-alignment-X #-0.6 # - (make-dynamic-script - (markup #:dynamic "mp" - #:normal-text #:italic "dolce" )) +mpdolce = + \tweak self-alignment-X #-0.6 + #(make-dynamic-script + #@{ \markup @{ \dynamic mp \normal-text \italic \bold dolce @} #@}) inst = #(define-music-function @@ -4247,10 +4243,10 @@ inst = @end example @lilypond[quote,ragged-right] -mpdolce = -\tweak #'self-alignment-X #-0.6 # - (make-dynamic-script - (markup #:dynamic "mp" - #:normal-text #:italic "dolce" )) +mpdolce = + \tweak self-alignment-X #-0.6 + #(make-dynamic-script + #{ \markup { \dynamic mp \normal-text \italic \bold dolce } #}) inst = #(define-music-function diff --git a/Documentation/lilypond-texi2html.init b/Documentation/lilypond-texi2html.init index 1cc6671c33..0f0a94c177 100644 --- a/Documentation/lilypond-texi2html.init +++ b/Documentation/lilypond-texi2html.init @@ -1512,7 +1512,7 @@ sub generate_ly_toc_entries($$$$$) 'introduction' => [2, 2, 2, 2, 3, 3, 4, 4], 'download' => [2, 2, 2, 3, 3, 4], 'manuals' => [1, 1, 1, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4], - 'community' => [1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 4], + 'community' => [1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 4, 4], ); my $addColor = "colorDefault"; while (($top_section, $color_indices) = each %color_maps) { diff --git a/Documentation/ly-examples/GNUmakefile b/Documentation/ly-examples/GNUmakefile index ad1c84ae49..c5c800b6e4 100644 --- a/Documentation/ly-examples/GNUmakefile +++ b/Documentation/ly-examples/GNUmakefile @@ -10,7 +10,7 @@ OUT_PNG_PAGES = $(PNG_PAGES:%=$(outdir)/%.png) OUT_SMALL_PNG_FILES = $(OUT_PNG_FILES:%.png=%-small.png) ifeq ($(out),www) -all: $(OUT_PNG_FILES) $(OUT_SMALL_PNG_FILES) +local-WWW-1: $(OUT_PNG_FILES) $(OUT_SMALL_PNG_FILES) endif $(outdir)/%.png: %.ly diff --git a/Documentation/misc/CHANGES-1.3 b/Documentation/misc/CHANGES-1.3 index d6ba0bfc9f..d8597a9238 100644 --- a/Documentation/misc/CHANGES-1.3 +++ b/Documentation/misc/CHANGES-1.3 @@ -741,7 +741,7 @@ followVoice. * Documentation updates -* Added -e,--evaluate=CODE, to evaluate scheme from the command +* Added -e, --evaluate=CODE, to evaluate scheme from the command line. Practical application: -e "(set-lily-option 'midi-debug #t)' @@ -3343,7 +3343,7 @@ item for hard constraints. handle_broken_smobs (); should conserve a little memory. * Fixed handling of orphaned score-elements. Any element that does -not have its Line_of_score as a ancestor in both directions, is silently +not have its Line_of_score as an ancestor in both directions, is silently removed from the output. This guarantees that programming errors don't result in coredumps from Dimension_cache::common_refpoint (): element->line_l () is always a common reference point. diff --git a/Documentation/misc/ChangeLog-2.1 b/Documentation/misc/ChangeLog-2.1 index 362c00a21a..c890b90f3c 100644 --- a/Documentation/misc/ChangeLog-2.1 +++ b/Documentation/misc/ChangeLog-2.1 @@ -2697,7 +2697,7 @@ * input/no-notation/safe-tex.ly: New file. * scripts/lilypond.py (global_latex_preamble): Add \nofiles for - safe mode Add -s,--safe-mode option. Use -S,--set for setting + safe mode Add -s, --safe-mode option. Use -S, --set for setting options now. (run_lilypond): When in --safe-mode, pass option to lilypond-bin. When in --safe-mode, set environment openout_any=p[aranoid]. diff --git a/Documentation/misc/GNUmakefile b/Documentation/misc/GNUmakefile index c39d801193..a1db6cd710 100644 --- a/Documentation/misc/GNUmakefile +++ b/Documentation/misc/GNUmakefile @@ -19,9 +19,6 @@ default: local-txt-doc OUT_TXT_FILES = $(addprefix $(outdir)/, $(addsuffix .txt, $(TEXTS))) ##local-WWW-2: $(OUT_TXT_FILES) $(OUT_HTMLFILES) txt-to-html -copy-for-me: - $(foreach a, $(README_TOP_FILES), cp ../$(a) $(outdir)/$(a).txt && ) true - $(outdir)/%.txt: % cp $< $@ diff --git a/Documentation/music-glossary.tely b/Documentation/music-glossary.tely index fba2e58da8..7d198504b7 100644 --- a/Documentation/music-glossary.tely +++ b/Documentation/music-glossary.tely @@ -2908,7 +2908,7 @@ DK: ?, S: ?, FI: nousu. -Indicator for a indeterminately rising pitch bend. Compare with +Indicator for an indeterminately rising pitch bend. Compare with @emph{glissando}, which has determinate starting and ending pitches. @seealso @@ -3527,7 +3527,7 @@ DK: ?, S: ?, FI: lasku. -Indicator for a indeterminately falling pitch bend. Compare with +Indicator for an indeterminately falling pitch bend. Compare with @emph{glissando}, which has determinate starting and ending pitches. @seealso diff --git a/Documentation/nl/learning/common-notation.itely b/Documentation/nl/learning/common-notation.itely index 743b318663..ae89bdba9c 100644 --- a/Documentation/nl/learning/common-notation.itely +++ b/Documentation/nl/learning/common-notation.itely @@ -12,7 +12,7 @@ @c Translation checker: @c Translation checker committish: -@c \version "2.17.25" +@c \version "2.17.28" @ignore Tutorial guidelines: (different from policy.txt!) @@ -586,7 +586,7 @@ sleutelwoord @code{\appoggiatura} of @code{\acciaccatura} voor een muziekuitdrukking te zetten @lilypond[verbatim,quote,relative=2] -c2 \grace { a32[ b] } c2 | +c2 \grace { a32 b } c2 | c2 \appoggiatura b16 c2 | c2 \acciaccatura b16 c2 | @end lilypond diff --git a/Documentation/nl/learning/fundamental.itely b/Documentation/nl/learning/fundamental.itely index 8532ee4dcb..c68c506cf2 100644 --- a/Documentation/nl/learning/fundamental.itely +++ b/Documentation/nl/learning/fundamental.itely @@ -12,7 +12,7 @@ @c Translation checker: @c Translation checker committish: -@c \version "2.17.18" +@c \version "2.17.29" @node Fundamentele concepten @translationof Fundamental concepts @@ -1628,8 +1628,7 @@ from the name, or vice versa. @tab Engraves clefs @item Completion_heads_engraver @tab Splits notes which cross bar lines -@c The old Dynamic_engraver is deprecated. -jm -@item New_dynamic_engraver +@item Dynamic_engraver @tab Creates hairpins and dynamic texts @item Forbid_line_break_engraver @tab Prevents line breaks if a musical element is still active @@ -1920,7 +1919,7 @@ The statement which sets the property value is the same as that in a @code{\context} block within a @code{\layout} block. Each @code{\context} block will affect all contexts of the type specified throughout the @code{\score} or @code{\book} block in which the -@code{\layout} block appears. Here is a example to show the format: +@code{\layout} block appears. Here is an example to show the format: @lilypond[verbatim,quote] \score { diff --git a/Documentation/nl/learning/tweaks.itely b/Documentation/nl/learning/tweaks.itely index 99fa03cce0..80881daf55 100644 --- a/Documentation/nl/learning/tweaks.itely +++ b/Documentation/nl/learning/tweaks.itely @@ -1099,7 +1099,7 @@ will cause errors when the dimensions of the object are required for correct processing. For example, errors will be generated if the @code{stencil} property of the @code{NoteHead} object is set to @code{#f}. If this is the case, you can instead use the -@code{point-stencil} function, which sets the stencil to a object +@code{point-stencil} function, which sets the stencil to an object with zero size: @lilypond[quote,verbatim,relative=2] diff --git a/Documentation/notation/ancient.itely b/Documentation/notation/ancient.itely index 2ffb0042fc..485346a2f3 100644 --- a/Documentation/notation/ancient.itely +++ b/Documentation/notation/ancient.itely @@ -2879,7 +2879,7 @@ TBC @c try Till Rettig @c Add example of white note heads: @c In the french baroque some composers used white note heads in slow pieces, -@c mainly in 3/2-time. A quarter looks there like a eighth with a white +@c mainly in 3/2-time. A quarter looks there like an eighth with a white @c note head. (Franz-Rudolf Kuhnen) @c TODO Add example of this: diff --git a/Documentation/notation/changing-defaults.itely b/Documentation/notation/changing-defaults.itely index d690681465..74782c59c2 100644 --- a/Documentation/notation/changing-defaults.itely +++ b/Documentation/notation/changing-defaults.itely @@ -1119,7 +1119,7 @@ Notation Reference: @ref{Bottom-level contexts - voices}, @ref{The set command}, @ref{The override command}, -@ref{The \layout block}. +@ref{The layout block,,The @code{@bs{}layout} block}. @node Defining new contexts @@ -3901,13 +3901,13 @@ Each type of object has its own default reference point, to which rehearsal marks are aligned: @lilypond[verbatim,quote,relative=1] -% The rehearsal mark will be aligned to right edge of the Clef +% The rehearsal mark will be aligned to the right edge of the Clef \override Score.RehearsalMark.break-align-symbols = #'(clef) \key a \major \clef treble \mark "↓" e1 -% The rehearsal mark will be centered above the Time Signature +% The rehearsal mark will be aligned to the left edge of the Time Signature \override Score.RehearsalMark.break-align-symbols = #'(time-signature) \key a \major \clef treble diff --git a/Documentation/notation/editorial.itely b/Documentation/notation/editorial.itely index 715aa620a7..67ee14753c 100644 --- a/Documentation/notation/editorial.itely +++ b/Documentation/notation/editorial.itely @@ -470,6 +470,9 @@ Stems may be manually placed to point up or down; see @lilypondfile[verbatim,quote,ragged-right,texidoc,doctitle] {default-direction-of-stems-on-the-center-line-of-the-staff.ly} +@lilypondfile[verbatim,quote,ragged-right,texidoc,doctitle] +{automatically-changing-the-stem-direction-of-the-middle-note-based-on-the-melody.ly} + @seealso Notation Reference: @ref{Direction and placement}. diff --git a/Documentation/notation/fretted-strings.itely b/Documentation/notation/fretted-strings.itely index 1bb8035197..731087eb4e 100644 --- a/Documentation/notation/fretted-strings.itely +++ b/Documentation/notation/fretted-strings.itely @@ -7,7 +7,7 @@ Guide, node Updating translation committishes.. @end ignore -@c \version "2.17.11" +@c \version "2.17.27" @node Fretted string instruments @section Fretted string instruments @@ -654,7 +654,7 @@ you can use \layout @{ \context @{ \TabStaff - stringTunings = \stringTuning \notemode @{ @} + stringTunings = \stringTuning @} @} @end example diff --git a/Documentation/notation/input.itely b/Documentation/notation/input.itely index 0929c21801..1617a39395 100644 --- a/Documentation/notation/input.itely +++ b/Documentation/notation/input.itely @@ -357,7 +357,7 @@ book-wide settings. If more than one such definition of the same type is entered at the top level the definitions are combined, but in conflicting situations the later definitions take precedence. For details of how this affects the @code{\layout} block see -@ref{The \layout block}. +@ref{The layout block,,The @code{@bs{}layout} block}. @item A direct scheme expression, such as @@ -515,7 +515,7 @@ Learning Manual: Notation Reference: @ref{Titles explained}, -@ref{The \layout block}. +@ref{The layout block,,The @code{@bs{}layout} block}. @node Titles and headers diff --git a/Documentation/notation/keyboards.itely b/Documentation/notation/keyboards.itely index c0bdb0e4b1..a8405b5274 100644 --- a/Documentation/notation/keyboards.itely +++ b/Documentation/notation/keyboards.itely @@ -206,7 +206,7 @@ Overlapping notation can result when voices cross staves: \new Staff = "up" { \voiceOne % Make space for fingering in the cross-staff voice - \once\override DynamicLineSpanner.staff-padding = #3.4 + \once\override DynamicLineSpanner.staff-padding = #4 e''2\p\< d''\> c''1\! } @@ -580,7 +580,7 @@ come into use to simplify the performance instructions. @snippets @lilypondfile[verbatim,quote,texidoc,doctitle] -{accordion-discant-symbols.ly} +{accordion-registers.ly} @seealso Snippets: diff --git a/Documentation/notation/rhythms.itely b/Documentation/notation/rhythms.itely index d4f8964825..020a21092c 100644 --- a/Documentation/notation/rhythms.itely +++ b/Documentation/notation/rhythms.itely @@ -7,7 +7,7 @@ Guide, node Updating translation committishes.. @end ignore -@c \version "2.17.25" +@c \version "2.17.28" @node Rhythms @section Rhythms @@ -2488,7 +2488,7 @@ Unbeamed grace notes are not put into normal note beams. @lilypond[quote,verbatim,relative=2] c4 d8[ -\grace { e32[ d c d] } +\grace { e32 d c d } e8] e[ e \grace { f16 } e8 e] @@ -3340,7 +3340,7 @@ up no additional logical time in a measure. @lilypond[quote,relative=2,verbatim] c4 \grace b16 a4( -\grace { b16[ c16] } a2) +\grace { b16 c16 } a2) @end lilypond There are three other types of grace notes possible; the @@ -3355,7 +3355,7 @@ between notes that are slurred themselves, using the @lilypond[quote,relative=2,verbatim] \acciaccatura d8 c4 \appoggiatura e8 d4 -\acciaccatura { g16[ f] } e2 +\acciaccatura { g16 f } e2 \slashedGrace a,8 g4 \slashedGrace b16 a4( \slashedGrace b8 a2) @@ -3367,8 +3367,8 @@ eighth grace note @lilypond[quote,relative=2,verbatim] << - \new Staff { e2 \grace { c16[ d e f] } e2 } - \new Staff { c2 \grace { g8[ b] } c2 } + \new Staff { e2 \grace { c16 d e f } e2 } + \new Staff { c2 \grace { g8 b } c2 } >> @end lilypond @@ -3415,7 +3415,7 @@ note after a space lasting 7/8 of the main note. \new Voice { << { d1^\trill_( } - { s2 s4. \grace { c16[ d] } } + { s2 s4. \grace { c16 d } } >> c1) } @@ -3481,6 +3481,7 @@ Snippets: Internals Reference: @rinternals{GraceMusic}, @rinternals{Grace_beam_engraver}, +@rinternals{Grace_auto_beam_engraver}, @rinternals{Grace_engraver}, @rinternals{Grace_spacing_engraver}. diff --git a/Documentation/notation/simultaneous.itely b/Documentation/notation/simultaneous.itely index 70a6b50c6a..4725ecf0de 100644 --- a/Documentation/notation/simultaneous.itely +++ b/Documentation/notation/simultaneous.itely @@ -7,7 +7,7 @@ Guide, node Updating translation committishes.. @end ignore -@c \version "2.17.25" +@c \version "2.17.28" @node Simultaneous notes @@ -91,7 +91,7 @@ be combined with them (for more complex possibilities of combining such elements, see @ref{Simultaneous expressions}): @lilypond[verbatim,quote,relative=2] -\grace { g8[( a b] } +\grace { g8( a b } <> ) \p \< -. -\markup \italic "sempre staccato" \repeat unfold 4 { c4 e } c1\f @end lilypond diff --git a/Documentation/notation/spacing.itely b/Documentation/notation/spacing.itely index c85be83869..dfa72dc650 100644 --- a/Documentation/notation/spacing.itely +++ b/Documentation/notation/spacing.itely @@ -8,7 +8,7 @@ Guide, node Updating translation committishes.. @end ignore -@c \version "2.17.11" +@c \version "2.17.28" @ignore GDP TODO list @@ -94,17 +94,17 @@ This section discusses page layout options for the @code{\paper} block. @menu -* The \paper block:: +* The paper block:: * Paper size and automatic scaling:: -* Fixed vertical spacing \paper variables:: -* Flexible vertical spacing \paper variables:: -* Horizontal spacing \paper variables:: -* Other \paper variables:: +* Fixed vertical spacing paper variables:: +* Flexible vertical spacing paper variables:: +* Horizontal spacing paper variables:: +* Other paper variables:: @end menu -@node The \paper block -@subsection The @code{\paper} block +@node The paper block +@subsection The @code{@bs{}paper} block @code{\paper} blocks may be placed in three different places to form a descending hierarchy of @code{\paper} blocks: @@ -161,7 +161,7 @@ footers, and titles are discussed in Most @code{\paper} variables will only work in a @code{\paper} block. The few that will also work in a @code{\layout} block are -listed in @ref{The \layout block}. +listed in @ref{The layout block,,The @code{@bs{}layout} block}. Except when specified otherwise, all @code{\paper} variables that correspond to distances on the page are measured in millimeters, @@ -203,7 +203,7 @@ The Scheme equivalent of the above example is: Notation Reference: @ref{Paper size and automatic scaling}, @ref{Custom titles headers and footers}, -@ref{The \layout block}. +@ref{The layout block,,The @code{@bs{}layout} block}. Installed Files: @file{ly/paper-defaults-init.ly}. @@ -331,11 +331,12 @@ are described in @ref{Setting the paper size}. The vertical dimensions affected by automatic scaling are @code{top-margin} and @code{bottom-margin} (see -@ref{Fixed vertical spacing \paper variables}). The horizontal +@ref{Fixed vertical spacing paper variables,,Fixed vertical spacing @code{@bs{}paper} variables}). +The horizontal dimensions affected by automatic scaling are @code{left-margin}, @code{right-margin}, @code{inner-margin}, @code{outer-margin}, @code{binding-offset}, @code{indent}, and @code{short-indent} (see -@ref{Horizontal spacing \paper variables}). +@ref{Horizontal spacing paper variables,,Horizontal spacing @code{@bs{}paper} variables}). The default values for these dimensions are set in @file{ly/paper-defaults-init.ly}, using internal variables named @@ -347,16 +348,16 @@ These are the values that result at the default paper size @seealso Notation Reference: -@ref{Fixed vertical spacing \paper variables}, -@ref{Horizontal spacing \paper variables}. +@ref{Fixed vertical spacing paper variables,,Fixed vertical spacing @code{@bs{}paper} variables}, +@ref{Horizontal spacing paper variables,,Horizontal spacing @code{@bs{}paper} variables}. Installed Files: @file{ly/paper-defaults-init.ly}, @file{scm/paper.scm}. -@node Fixed vertical spacing \paper variables -@subsection Fixed vertical spacing @code{\paper} variables +@node Fixed vertical spacing paper variables +@subsection Fixed vertical spacing @code{@bs{}paper} variables @warning{Some @code{@bs{}paper} dimensions are automatically scaled to the paper size, which may lead to unexpected behavior. @@ -423,8 +424,8 @@ Explicitly defined paper-sizes will override any user-defined top or bottom margin settings. -@node Flexible vertical spacing \paper variables -@subsection Flexible vertical spacing @code{\paper} variables +@node Flexible vertical spacing paper variables +@subsection Flexible vertical spacing @code{@bs{}paper} variables In most cases, it is preferable for the vertical distances between certain items (such as margins, titles, systems, and separate @@ -442,7 +443,7 @@ settings typically entered inside a @code{\score} or @menu * Structure of flexible vertical spacing alists:: -* List of flexible vertical spacing \paper variables:: +* List of flexible vertical spacing paper variables:: @end menu @@ -539,8 +540,8 @@ redefines the variable: @end example -@node List of flexible vertical spacing \paper variables -@unnumberedsubsubsec List of flexible vertical spacing @code{\paper} variables +@node List of flexible vertical spacing paper variables +@unnumberedsubsubsec List of flexible vertical spacing @code{@bs{}paper} variables The names of these variables follow the format @code{@var{upper}-@var{lower}-spacing}, where @code{@var{upper}} @@ -620,22 +621,22 @@ Snippets: @rlsr{Spacing}. -@node Horizontal spacing \paper variables -@subsection Horizontal spacing @code{\paper} variables +@node Horizontal spacing paper variables +@subsection Horizontal spacing @code{@bs{}paper} variables @warning{Some @code{@bs{}paper} dimensions are automatically scaled to the paper size, which may lead to unexpected behavior. See @ref{Automatic scaling to paper size}.} @menu -* \paper variables for widths and margins:: -* \paper variables for two-sided mode:: -* \paper variables for shifts and indents:: +* paper variables for widths and margins:: +* paper variables for two-sided mode:: +* paper variables for shifts and indents:: @end menu -@node \paper variables for widths and margins -@unnumberedsubsubsec @code{\paper} variables for widths and margins +@node paper variables for widths and margins +@unnumberedsubsubsec @code{@bs{}paper} variables for widths and margins Default values (before scaling) that are not listed here are defined in @file{ly/paper-defaults-init.ly}. @@ -733,8 +734,8 @@ Explicitly defined paper-sizes will override any user-defined left or right margin settings. -@node \paper variables for two-sided mode -@unnumberedsubsubsec @code{\paper} variables for two-sided mode +@node paper variables for two-sided mode +@unnumberedsubsubsec @code{@bs{}paper} variables for two-sided mode Default values (before scaling) are defined in @file{ly/paper-defaults-init.ly}. @@ -786,8 +787,8 @@ Installed Files: @file{ly/paper-defaults-init.ly}. -@node \paper variables for shifts and indents -@unnumberedsubsubsec @code{\paper} variables for shifts and indents +@node paper variables for shifts and indents +@unnumberedsubsubsec @code{@bs{}paper} variables for shifts and indents Default values (before scaling) that are not listed here are defined in @file{ly/paper-defaults-init.ly}. @@ -831,19 +832,19 @@ Snippets: @rlsr{Spacing}. -@node Other \paper variables -@subsection Other @code{\paper} variables +@node Other paper variables +@subsection Other @code{@bs{}paper} variables @menu -* \paper variables for line breaking:: -* \paper variables for page breaking:: -* \paper variables for page numbering:: -* Miscellaneous \paper variables:: +* paper variables for line breaking:: +* paper variables for page breaking:: +* paper variables for page numbering:: +* Miscellaneous paper variables:: @end menu -@node \paper variables for line breaking -@unnumberedsubsubsec @code{\paper} variables for line breaking +@node paper variables for line breaking +@unnumberedsubsubsec @code{@bs{}paper} variables for line breaking @table @code @@ -882,8 +883,8 @@ Notation Reference: @ref{Line breaking}. -@node \paper variables for page breaking -@unnumberedsubsubsec @code{\paper} variables for page breaking +@node paper variables for page breaking +@unnumberedsubsubsec @code{@bs{}paper} variables for page breaking Default values not listed here are defined in @file{ly/paper-defaults-init.ly} @@ -977,8 +978,8 @@ Installed Files: @file{ly/paper-defaults-init.ly}. -@node \paper variables for page numbering -@unnumberedsubsubsec @code{\paper} variables for page numbering +@node paper variables for page numbering +@unnumberedsubsubsec @code{@bs{}paper} variables for page numbering Default values not listed here are defined in @file{ly/paper-defaults-init.ly} @@ -1024,8 +1025,8 @@ music to start on page 1 there must be a blank page on the back of the cover page so that page 1 is on the right hand side. -@node Miscellaneous \paper variables -@unnumberedsubsubsec Miscellaneous @code{\paper} variables +@node Miscellaneous paper variables +@unnumberedsubsubsec Miscellaneous @code{@bs{}paper} variables @table @code @@ -1088,13 +1089,13 @@ This section discusses score layout options for the @code{\layout} block. @menu -* The \layout block:: +* The layout block:: * Setting the staff size:: @end menu -@node The \layout block -@subsection The @code{\layout} block +@node The layout block +@subsection The @code{@bs{}layout} block @funindex \layout @@ -1124,15 +1125,15 @@ variables that can appear in a @code{\layout} block are: @item @code{line-width}, @code{ragged-right} and @code{ragged-last} -(see @ref{\paper variables for widths and margins}) +(see @ref{paper variables for widths and margins,,@code{@bs{}paper} variables for widths and margins}) @item @code{indent} and @code{short-indent} -(see @ref{\paper variables for shifts and indents}) +(see @ref{paper variables for shifts and indents,,@code{@bs{}paper} variables for shifts and indents}) @item @code{system-count} -(see @ref{\paper variables for line breaking}) +(see @ref{paper variables for line breaking,,@code{@bs{}paper} variables for line breaking}) @end itemize @@ -1493,7 +1494,7 @@ every 4 measures, and only there: @seealso Notation Reference: -@ref{\paper variables for line breaking}. +@ref{paper variables for line breaking,,@code{@bs{}paper} variables for line breaking}. Snippets: @rlsr{Spacing}. @@ -1520,7 +1521,7 @@ There are also analogous settings to @code{ragged-right} and @code{ragged-bottom} and @code{ragged-last-bottom}. If set to @code{#t} the systems on all pages or just the last page respectively will not be justified vertically. See -@ref{Fixed vertical spacing \paper variables}. +@ref{Fixed vertical spacing paper variables,,Fixed vertical spacing @code{@bs{}paper} variables}. Page breaks are computed by the @code{page-breaking} function. LilyPond provides three algorithms for computing page breaks, @@ -1577,7 +1578,7 @@ book parts. @seealso Notation Reference: -@ref{\paper variables for page breaking}. +@ref{paper variables for page breaking,,@code{@bs{}paper} variables for page breaking}. Snippets: @rlsr{Spacing}. @@ -1674,7 +1675,7 @@ top-level markups. @seealso Notation Reference: -@ref{\paper variables for line breaking}. +@ref{paper variables for line breaking,,@code{@bs{}paper} variables for line breaking}. Snippets: @rlsr{Spacing}. @@ -1928,7 +1929,7 @@ control the vertical spacing of staves and non-staff lines within individual systems. The vertical spacing between separate systems, scores, markups, and margins is controlled by @code{\paper} variables, which are discussed in -@ref{Flexible vertical spacing \paper variables}. +@ref{Flexible vertical spacing paper variables,,Flexible vertical spacing @code{@bs{}paper} variables}. @menu * Within-system spacing properties:: @@ -1982,7 +1983,7 @@ given in the following table: @item @code{ChordNames} @tab baseline @item @code{NoteNames} @tab baseline @item @code{Lyrics} @tab baseline -@item @code{Dynamics} @tab vertical center +@item @code{Dynamics} @tab mid-height of @q{m} @item @code{FiguredBass} @tab highest point @item @code{FretBoards} @tab top line @end multitable @@ -2044,10 +2045,10 @@ labelContext = \new Lyrics { \lyrics { \skip 1*2 | ghijk1 | } } >> -%% The reference point for Dynamics is its vertical center +%% The reference point for Dynamics is the midline of 'm' in the font << \new RhythmicStaff { - \set RhythmicStaff.instrumentName = #"vertical center " + \set RhythmicStaff.instrumentName = #"mid-height " \labelContext "Dynamics" s1*3 } \new Dynamics { s1\mp s\fp } @@ -2076,7 +2077,8 @@ labelContext = Each of the vertical spacing grob properties (except @code{staff-affinity}) uses the same alist structure as the @code{\paper} spacing variables discussed in -@ref{Flexible vertical spacing \paper variables}. Specific methods +@ref{Flexible vertical spacing paper variables,,Flexible vertical spacing @code{@bs{}paper} variables}. +Specific methods for modifying alists are discussed in @ref{Modifying alists}. Grob properties should be adjusted with an @code{\override} inside a @code{\score} or @code{\layout} block, and not inside a @@ -2218,7 +2220,7 @@ spacing settings for that staff. @seealso Notation Reference: -@ref{Flexible vertical spacing \paper variables}, +@ref{Flexible vertical spacing paper variables,,Flexible vertical spacing @code{@bs{}paper} variables}, @ref{Modifying alists}. Installed Files: @@ -3012,7 +3014,7 @@ regard for clefs, bar lines, and grace notes, @lilypond[quote,ragged-right,relative=2,verbatim] \override Score.SpacingSpanner.strict-note-spacing = ##t -\new Staff { c8[ c \clef alto c \grace { c16[ c] } c8 c c] c32[ c] } +\new Staff { c8[ c \clef alto c \grace { c16 c } c8 c c] c32[ c] } @end lilypond @seealso diff --git a/Documentation/notation/staff.itely b/Documentation/notation/staff.itely index 55272a6121..00809e093b 100644 --- a/Documentation/notation/staff.itely +++ b/Documentation/notation/staff.itely @@ -930,7 +930,7 @@ multi-line instrument names, @code{\center-column} must be used: However, if the instrument names are longer, the instrument names in a staff group may not be centered unless the @code{indent} and @code{short-indent} settings are increased. For details about these -settings, see @ref{\paper variables for shifts and indents}. +settings, see @ref{paper variables for shifts and indents,,@code{@bs{}paper} variables for shifts and indents}. @lilypond[verbatim,quote,ragged-right] \relative c'' { @@ -1032,7 +1032,7 @@ expression to declare the instrument switch: @seealso Notation Reference: -@ref{\paper variables for shifts and indents}, +@ref{paper variables for shifts and indents,,@code{@bs{}paper} variables for shifts and indents}, @ref{Modifying context plug-ins}. Snippets: diff --git a/Documentation/notation/vocal.itely b/Documentation/notation/vocal.itely index 046c96e820..87d176a5e5 100644 --- a/Documentation/notation/vocal.itely +++ b/Documentation/notation/vocal.itely @@ -7,7 +7,7 @@ Guide, node Updating translation committishes.. @end ignore -@c \version "2.17.19" +@c \version "2.17.28" @node Vocal music @section Vocal music @@ -1922,7 +1922,7 @@ changed: << \new Voice = melody \relative c' { f4 \appoggiatura a32 b4 - \grace { f16[ a16] } b2 + \grace { f16 a16 } b2 \afterGrace b2 { f16[ a16] } \appoggiatura a32 b4 \acciaccatura a8 b4 @@ -1951,7 +1951,7 @@ block: @lilypond[verbatim,ragged-right,quote] << \new Voice = melody \relative c' { - \grace { c16[( d e f] } + \grace { c16( d e f } g1) f } \new Lyrics \with { includeGraceNotes = ##t } diff --git a/Documentation/snippets/accordion-discant-symbols.ly b/Documentation/snippets/accordion-discant-symbols.ly index ee4a326b2f..505bda3c57 100644 --- a/Documentation/snippets/accordion-discant-symbols.ly +++ b/Documentation/snippets/accordion-discant-symbols.ly @@ -11,8 +11,10 @@ lsrtags = "keyboards, specific-notation, symbols-and-glyphs, workaround" texidoc = " -Accordion discant-specific symbols are added using @code{\\markup}. The -placement of the symbols can be tweaked by changing the +This snippet has been obsoleted by predefined markup commands, see +@ruser{Accordion Registers}. It's still useful as a simple +demonstration of how to combine symbols: the placement of the symbols +added with @code{\\markup} can be tweaked by changing the @code{\\translate-scaled} arguments. @code{\\translate-scaled} is used here rather than @code{\\translate} in order to let the positioning of the symbol parts adapt to changes of @code{font-size}. diff --git a/Documentation/snippets/adding-ambitus-per-voice.ly b/Documentation/snippets/adding-ambitus-per-voice.ly index 07d61cfc55..6f05ed94ed 100644 --- a/Documentation/snippets/adding-ambitus-per-voice.ly +++ b/Documentation/snippets/adding-ambitus-per-voice.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "pitches, staff-notation, vocal-music" diff --git a/Documentation/snippets/adding-an-extra-staff-at-a-line-break.ly b/Documentation/snippets/adding-an-extra-staff-at-a-line-break.ly index 62bed47c7a..2c74e33ce6 100644 --- a/Documentation/snippets/adding-an-extra-staff-at-a-line-break.ly +++ b/Documentation/snippets/adding-an-extra-staff-at-a-line-break.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "breaks, contexts-and-engravers, staff-notation, workaround" diff --git a/Documentation/snippets/adding-an-extra-staff.ly b/Documentation/snippets/adding-an-extra-staff.ly index 3ebf0f3189..f187bd84e8 100644 --- a/Documentation/snippets/adding-an-extra-staff.ly +++ b/Documentation/snippets/adding-an-extra-staff.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "contexts-and-engravers, really-simple, staff-notation" diff --git a/Documentation/snippets/adding-an-ottava-marking-to-a-single-voice.ly b/Documentation/snippets/adding-an-ottava-marking-to-a-single-voice.ly index cb2e31800d..fce68d84b7 100644 --- a/Documentation/snippets/adding-an-ottava-marking-to-a-single-voice.ly +++ b/Documentation/snippets/adding-an-ottava-marking-to-a-single-voice.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "pitches, tweaks-and-overrides" diff --git a/Documentation/snippets/adding-bar-lines-to-chordnames-context.ly b/Documentation/snippets/adding-bar-lines-to-chordnames-context.ly index f6c7e5df1e..ee14a8aff5 100644 --- a/Documentation/snippets/adding-bar-lines-to-chordnames-context.ly +++ b/Documentation/snippets/adding-bar-lines-to-chordnames-context.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "chords, specific-notation" diff --git a/Documentation/snippets/adding-beams,-slurs,-ties-etc.-when-using-tuplet-and-non-tuplet-rhythms.ly b/Documentation/snippets/adding-beams,-slurs,-ties-etc.-when-using-tuplet-and-non-tuplet-rhythms.ly index d17bf3729d..5912d2d8aa 100644 --- a/Documentation/snippets/adding-beams,-slurs,-ties-etc.-when-using-tuplet-and-non-tuplet-rhythms.ly +++ b/Documentation/snippets/adding-beams,-slurs,-ties-etc.-when-using-tuplet-and-non-tuplet-rhythms.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.11" \header { lsrtags = "expressive-marks, rhythms" diff --git a/Documentation/snippets/adding-drum-parts.ly b/Documentation/snippets/adding-drum-parts.ly index d1723ea620..7f354029fe 100644 --- a/Documentation/snippets/adding-drum-parts.ly +++ b/Documentation/snippets/adding-drum-parts.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "percussion, preparing-parts, really-simple, rhythms, specific-notation" diff --git a/Documentation/snippets/adding-extra-fingering-with-scheme.ly b/Documentation/snippets/adding-extra-fingering-with-scheme.ly index 2fe4bcd6c4..9e3f6072cb 100644 --- a/Documentation/snippets/adding-extra-fingering-with-scheme.ly +++ b/Documentation/snippets/adding-extra-fingering-with-scheme.ly @@ -1,53 +1,47 @@ -%% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it -%% Make any changes in LSR itself, or in Documentation/snippets/new/ , -%% and then run scripts/auxiliar/makelsr.py -%% -%% This file is in the public domain. +% DO NOT EDIT this file manually; it is automatically +% generated from Documentation/snippets/new +% Make any changes in Documentation/snippets/new/ +% and then run scripts/auxiliar/makelsr.py +% +% This file is in the public domain. +%% Note: this file works from version 2.16.0 \version "2.16.0" \header { lsrtags = "scheme-language" texidoc = " -You can add various stuff to notes using @code{make-music}. In this -example, an extra fingering is attached to a note. - - -In general, first do a @code{display} of the music you want to create, -then write a function that will structure the music for you. - - +You can add additional elements to notes using @code{map-some-music}. In this +example, an extra script is attached to a note. +In general, first do a @code{\\displayMusic} of the music you want to +create, then write a function that will work on the appropriate parts +of the music for you. " doctitle = "Adding extra fingering with scheme" } % begin verbatim -#(define (make-text-script x) - (make-music 'TextScriptEvent - 'direction DOWN - 'text (make-simple-markup x))) - -#(define (add-text-script m x) - (if (equal? (ly:music-property m 'name) 'EventChord) - (set! (ly:music-property m 'elements) - (cons (make-text-script x) - (ly:music-property m 'elements))) - (let ((es (ly:music-property m 'elements)) - (e (ly:music-property m 'element))) - (map (lambda (y) (add-text-script y x)) es) - (if (ly:music? e) - (add-text-script e x)))) - m) - addScript = -#(define-music-function (parser location script music ) - ( string? ly:music? ) - (add-text-script music script)) +#(define-music-function (parser location script music) + (ly:event? ly:music?) + (map-some-music + (lambda (mus) + (define (append-script-at! prop) + (set! (ly:music-property mus prop) + (append (ly:music-property mus prop) + (list (ly:music-deep-copy script)))) + mus) + (case (ly:music-property mus 'name) + ((EventChord) + (append-script-at! 'elements)) + ((NoteEvent) + (append-script-at! 'articulations)) + (else #f))) + music)) \score { { - \addScript "6" { c'4-3 } + \addScript _6 { c'4-3 } } } diff --git a/Documentation/snippets/adding-indicators-to-staves-which-get-split-after-a-break.ly b/Documentation/snippets/adding-indicators-to-staves-which-get-split-after-a-break.ly index c698988a4d..80df7dc6d0 100644 --- a/Documentation/snippets/adding-indicators-to-staves-which-get-split-after-a-break.ly +++ b/Documentation/snippets/adding-indicators-to-staves-which-get-split-after-a-break.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "staff-notation, symbols-and-glyphs, vocal-music" diff --git a/Documentation/snippets/adding-links-to-objects.ly b/Documentation/snippets/adding-links-to-objects.ly index 1e6e5ee8b9..a2d214337d 100644 --- a/Documentation/snippets/adding-links-to-objects.ly +++ b/Documentation/snippets/adding-links-to-objects.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "editorial-annotations, scheme-language, tweaks-and-overrides" diff --git a/Documentation/snippets/adding-parentheses-around-an-expressive-mark-or-chordal-note.ly b/Documentation/snippets/adding-parentheses-around-an-expressive-mark-or-chordal-note.ly index 3139de212c..05b4e9ba07 100644 --- a/Documentation/snippets/adding-parentheses-around-an-expressive-mark-or-chordal-note.ly +++ b/Documentation/snippets/adding-parentheses-around-an-expressive-mark-or-chordal-note.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "expressive-marks, workaround" diff --git a/Documentation/snippets/adjusting-grace-note-spacing.ly b/Documentation/snippets/adjusting-grace-note-spacing.ly index 153f5a5792..d442d817ec 100644 --- a/Documentation/snippets/adjusting-grace-note-spacing.ly +++ b/Documentation/snippets/adjusting-grace-note-spacing.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "rhythms, tweaks-and-overrides" diff --git a/Documentation/snippets/adjusting-lyrics-vertical-spacing.ly b/Documentation/snippets/adjusting-lyrics-vertical-spacing.ly index f708b125be..e7bcf160f1 100644 --- a/Documentation/snippets/adjusting-lyrics-vertical-spacing.ly +++ b/Documentation/snippets/adjusting-lyrics-vertical-spacing.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "correction-wanted, spacing, text, vocal-music, workaround" diff --git a/Documentation/snippets/adjusting-the-shape-of-falls-and-doits.ly b/Documentation/snippets/adjusting-the-shape-of-falls-and-doits.ly index fedf0f65b2..6b0b03478d 100644 --- a/Documentation/snippets/adjusting-the-shape-of-falls-and-doits.ly +++ b/Documentation/snippets/adjusting-the-shape-of-falls-and-doits.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "expressive-marks" diff --git a/Documentation/snippets/aligning-and-centering-instrument-names.ly b/Documentation/snippets/aligning-and-centering-instrument-names.ly index 4a2c129cb6..b67aeac03a 100644 --- a/Documentation/snippets/aligning-and-centering-instrument-names.ly +++ b/Documentation/snippets/aligning-and-centering-instrument-names.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "paper-and-layout, text, titles" diff --git a/Documentation/snippets/aligning-bar-numbers.ly b/Documentation/snippets/aligning-bar-numbers.ly index 035c984dcd..321f4cb3d7 100644 --- a/Documentation/snippets/aligning-bar-numbers.ly +++ b/Documentation/snippets/aligning-bar-numbers.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "rhythms" diff --git a/Documentation/snippets/aligning-objects-created-with-the--mark-command.ly b/Documentation/snippets/aligning-objects-created-with-the--mark-command.ly index d19ee20a8a..c25eccd8a1 100644 --- a/Documentation/snippets/aligning-objects-created-with-the--mark-command.ly +++ b/Documentation/snippets/aligning-objects-created-with-the--mark-command.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "text" diff --git a/Documentation/snippets/allowing-fingerings-to-be-printed-inside-the-staff.ly b/Documentation/snippets/allowing-fingerings-to-be-printed-inside-the-staff.ly index f780b8daf6..d4a211ffe5 100644 --- a/Documentation/snippets/allowing-fingerings-to-be-printed-inside-the-staff.ly +++ b/Documentation/snippets/allowing-fingerings-to-be-printed-inside-the-staff.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "editorial-annotations, fretted-strings, spacing, specific-notation" diff --git a/Documentation/snippets/altering-the-length-of-beamed-stems.ly b/Documentation/snippets/altering-the-length-of-beamed-stems.ly index 1b6dc303bc..719aa97ea1 100644 --- a/Documentation/snippets/altering-the-length-of-beamed-stems.ly +++ b/Documentation/snippets/altering-the-length-of-beamed-stems.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "pitches, tweaks-and-overrides" diff --git a/Documentation/snippets/alternative-breve-notes.ly b/Documentation/snippets/alternative-breve-notes.ly index f770343e77..d735931c31 100644 --- a/Documentation/snippets/alternative-breve-notes.ly +++ b/Documentation/snippets/alternative-breve-notes.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "expressive-marks, rhythms" diff --git a/Documentation/snippets/analysis-brackets-above-the-staff.ly b/Documentation/snippets/analysis-brackets-above-the-staff.ly index cb0a4d0a92..02a153baf7 100644 --- a/Documentation/snippets/analysis-brackets-above-the-staff.ly +++ b/Documentation/snippets/analysis-brackets-above-the-staff.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "editorial-annotations, really-simple, tweaks-and-overrides" diff --git a/Documentation/snippets/ancient-notation-template----modern-transcription-of-mensural-music.ly b/Documentation/snippets/ancient-notation-template----modern-transcription-of-mensural-music.ly index d6b9759fbd..c16659a403 100644 --- a/Documentation/snippets/ancient-notation-template----modern-transcription-of-mensural-music.ly +++ b/Documentation/snippets/ancient-notation-template----modern-transcription-of-mensural-music.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "ancient-notation, real-music, really-cool, template" diff --git a/Documentation/snippets/ancient-time-signatures.ly b/Documentation/snippets/ancient-time-signatures.ly index d9febf992b..84e12ce3dc 100644 --- a/Documentation/snippets/ancient-time-signatures.ly +++ b/Documentation/snippets/ancient-time-signatures.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "ancient-notation" diff --git a/Documentation/snippets/anglican-psalm-template.ly b/Documentation/snippets/anglican-psalm-template.ly index d6c1a7b1fe..81f5816c0a 100644 --- a/Documentation/snippets/anglican-psalm-template.ly +++ b/Documentation/snippets/anglican-psalm-template.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.11" \header { lsrtags = "template, vocal-music" diff --git a/Documentation/snippets/arabic-improvisation.ly b/Documentation/snippets/arabic-improvisation.ly index d1da8f5370..3d1708e455 100644 --- a/Documentation/snippets/arabic-improvisation.ly +++ b/Documentation/snippets/arabic-improvisation.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "world-music" diff --git a/Documentation/snippets/asymmetric-slurs.ly b/Documentation/snippets/asymmetric-slurs.ly index 0257f0eec1..2ff6e85ab8 100644 --- a/Documentation/snippets/asymmetric-slurs.ly +++ b/Documentation/snippets/asymmetric-slurs.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "expressive-marks, tweaks-and-overrides" diff --git a/Documentation/snippets/automatic-beam-subdivisions.ly b/Documentation/snippets/automatic-beam-subdivisions.ly index fb25da83a6..40e9e04d68 100644 --- a/Documentation/snippets/automatic-beam-subdivisions.ly +++ b/Documentation/snippets/automatic-beam-subdivisions.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.11" \header { lsrtags = "automatic-notation, connecting-notes, rhythms" diff --git a/Documentation/snippets/automatically-changing-the-stem-direction-of-the-middle-note-based-on-the-melody.ly b/Documentation/snippets/automatically-changing-the-stem-direction-of-the-middle-note-based-on-the-melody.ly new file mode 100644 index 0000000000..6ff6b99856 --- /dev/null +++ b/Documentation/snippets/automatically-changing-the-stem-direction-of-the-middle-note-based-on-the-melody.ly @@ -0,0 +1,34 @@ +%% DO NOT EDIT this file manually; it is automatically +%% generated from LSR http://lsr.dsi.unimi.it +%% Make any changes in LSR itself, or in Documentation/snippets/new/ , +%% and then run scripts/auxiliar/makelsr.py +%% +%% This file is in the public domain. +\version "2.17.6" + +\header { + lsrtags = "contexts-and-engravers, pitches" + + texidoc = " +LilyPond can alter the stem direction of the middle note on a staff so +that it follows the melody, by adding the @code{Melody_engraver} to the +Voice context and overriding the @code{neutral-direction} of Stem. + +" + doctitle = "Automatically changing the stem direction of the middle note based on the melody" +} % begin verbatim + +\relative c'' { + \time 3/4 + \autoBeamOff + a8 b g f b g | + c b d c b c +} + +\layout { + \context { + \Voice + \consists "Melody_engraver" + \override Stem.neutral-direction = #'() + } +} diff --git a/Documentation/snippets/avoiding-collisions-with-chord-fingerings.ly b/Documentation/snippets/avoiding-collisions-with-chord-fingerings.ly index ce9b4f02a7..9af5fffa99 100644 --- a/Documentation/snippets/avoiding-collisions-with-chord-fingerings.ly +++ b/Documentation/snippets/avoiding-collisions-with-chord-fingerings.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "chords, editorial-annotations, rhythms, tweaks-and-overrides" diff --git a/Documentation/snippets/beam-endings-in-score-context.ly b/Documentation/snippets/beam-endings-in-score-context.ly index eacdc2fc0e..a09e8853d0 100644 --- a/Documentation/snippets/beam-endings-in-score-context.ly +++ b/Documentation/snippets/beam-endings-in-score-context.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.11" \header { lsrtags = "rhythms" diff --git a/Documentation/snippets/beams-across-line-breaks.ly b/Documentation/snippets/beams-across-line-breaks.ly index 4e0e877cdf..1b60a49d41 100644 --- a/Documentation/snippets/beams-across-line-breaks.ly +++ b/Documentation/snippets/beams-across-line-breaks.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "rhythms" diff --git a/Documentation/snippets/blanking-staff-lines-using-the--whiteout-command.ly b/Documentation/snippets/blanking-staff-lines-using-the--whiteout-command.ly index 107b885743..c9139bafb1 100644 --- a/Documentation/snippets/blanking-staff-lines-using-the--whiteout-command.ly +++ b/Documentation/snippets/blanking-staff-lines-using-the--whiteout-command.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "editorial-annotations, really-cool, text" diff --git a/Documentation/snippets/breathing-signs.ly b/Documentation/snippets/breathing-signs.ly index 0470f11241..c1af6d24da 100644 --- a/Documentation/snippets/breathing-signs.ly +++ b/Documentation/snippets/breathing-signs.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "expressive-marks, symbols-and-glyphs" diff --git a/Documentation/snippets/broken-crescendo-hairpin.ly b/Documentation/snippets/broken-crescendo-hairpin.ly index 66e8382992..68960a5840 100644 --- a/Documentation/snippets/broken-crescendo-hairpin.ly +++ b/Documentation/snippets/broken-crescendo-hairpin.ly @@ -1,10 +1,11 @@ -%% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it -%% Make any changes in LSR itself, or in Documentation/snippets/new/ , -%% and then run scripts/auxiliar/makelsr.py -%% -%% This file is in the public domain. -\version "2.17.25" +% DO NOT EDIT this file manually; it is automatically +% generated from Documentation/snippets/new +% Make any changes in Documentation/snippets/new/ +% and then run scripts/auxiliar/makelsr.py +% +% This file is in the public domain. +%% Note: this file works from version 2.17.27 +\version "2.17.27" \header { lsrtags = "contemporary-notation, expressive-marks, symbols-and-glyphs" @@ -12,16 +13,12 @@ texidoc = " In order to make parts of a crescendo hairpin invisible, the following method is used: A white rectangle is drawn on top of the respective -part of the crescendo hairpin, making it invisible. The rectangle is -defined as postscript code within a text markup. - -To fine-tune the position and size of the markup, the number preceding -@code{setgray} in the postscript definition can be set to a value less -than one, making it grey. The two numbers before @code{scale} in the -postscript code are responsible for the width and height of the -rectangle, the two numbers before @code{translate} change the x- and -y-origin of the rectangle. +part of the crescendo hairpin, making it invisible. +The markup command @code{with-dimensions} tells LilyPond to consider only +the bottom edge of the rectangle when spacing it against the hairpin. +The property @code{staff-padding} prevents the rectangle from fitting +between the hairpin and staff. Make sure to put the hairpin in a lower layer than the text markup to draw the rectangle over the hairpin. @@ -35,7 +32,6 @@ draw the rectangle over the hairpin. << { \dynamicUp - \override DynamicLineSpanner.staff-padding = #4 r2 r16 c'8.\pp r4 } \\ @@ -43,18 +39,11 @@ draw the rectangle over the hairpin. \override DynamicLineSpanner.layer = #0 des,2\mf\< ~ \override TextScript.layer = #2 - des16_\markup { - \postscript #" - 1.9 -8 translate - 5 4 scale - 1 setgray - 0 0 moveto - 0 1 lineto - 1 1 lineto - 1 0 lineto - 0 0 lineto - fill" - } + \once\override TextScript.staff-padding = #6 + \once\override TextScript.vertical-skylines = #'() + des16_\markup \with-dimensions #'(2 . 7) #'(0 . 0) + \with-color #white + \filled-box #'(2 . 7) #'(0 . 2) #0 r8. des4 ~ des16->\sff } >> diff --git a/Documentation/snippets/caesura-railtracks-with-fermata.ly b/Documentation/snippets/caesura-railtracks-with-fermata.ly index 4f987b419d..c42000b8af 100644 --- a/Documentation/snippets/caesura-railtracks-with-fermata.ly +++ b/Documentation/snippets/caesura-railtracks-with-fermata.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "expressive-marks, symbols-and-glyphs, tweaks-and-overrides" diff --git a/Documentation/snippets/center-text-below-hairpin-dynamics.ly b/Documentation/snippets/center-text-below-hairpin-dynamics.ly index 3f7d94a417..67e1972270 100644 --- a/Documentation/snippets/center-text-below-hairpin-dynamics.ly +++ b/Documentation/snippets/center-text-below-hairpin-dynamics.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "expressive-marks, really-cool, scheme-language, text" diff --git a/Documentation/snippets/changing-a-single-notes-size-in-a-chord.ly b/Documentation/snippets/changing-a-single-notes-size-in-a-chord.ly index 13333d977b..741edb8388 100644 --- a/Documentation/snippets/changing-a-single-notes-size-in-a-chord.ly +++ b/Documentation/snippets/changing-a-single-notes-size-in-a-chord.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "editorial-annotations, really-simple, simultaneous-notes, specific-notation, tweaks-and-overrides" diff --git a/Documentation/snippets/changing-beam-knee-gap.ly b/Documentation/snippets/changing-beam-knee-gap.ly index 20ea174f56..6409e4b15d 100644 --- a/Documentation/snippets/changing-beam-knee-gap.ly +++ b/Documentation/snippets/changing-beam-knee-gap.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "rhythms" diff --git a/Documentation/snippets/changing-form-of-multi-measure-rests.ly b/Documentation/snippets/changing-form-of-multi-measure-rests.ly index ed34c30b79..118341b7a8 100644 --- a/Documentation/snippets/changing-form-of-multi-measure-rests.ly +++ b/Documentation/snippets/changing-form-of-multi-measure-rests.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "rhythms, tweaks-and-overrides" diff --git a/Documentation/snippets/changing-fret-orientations.ly b/Documentation/snippets/changing-fret-orientations.ly index 7be4558580..b174cb5bd8 100644 --- a/Documentation/snippets/changing-fret-orientations.ly +++ b/Documentation/snippets/changing-fret-orientations.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "fretted-strings" diff --git a/Documentation/snippets/changing-midi-output-to-one-channel-per-voice.ly b/Documentation/snippets/changing-midi-output-to-one-channel-per-voice.ly index 3e2a2efebf..aded2070cb 100644 --- a/Documentation/snippets/changing-midi-output-to-one-channel-per-voice.ly +++ b/Documentation/snippets/changing-midi-output-to-one-channel-per-voice.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.16.0" \header { lsrtags = "contexts-and-engravers, midi, real-music" diff --git a/Documentation/snippets/changing-stanza-fonts.ly b/Documentation/snippets/changing-stanza-fonts.ly index cd560dde74..4ef7475f41 100644 --- a/Documentation/snippets/changing-stanza-fonts.ly +++ b/Documentation/snippets/changing-stanza-fonts.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "really-simple, vocal-music" diff --git a/Documentation/snippets/changing-text-and-spanner-styles-for-text-dynamics.ly b/Documentation/snippets/changing-text-and-spanner-styles-for-text-dynamics.ly index ed97151104..002aaf7216 100644 --- a/Documentation/snippets/changing-text-and-spanner-styles-for-text-dynamics.ly +++ b/Documentation/snippets/changing-text-and-spanner-styles-for-text-dynamics.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "expressive-marks, tweaks-and-overrides" diff --git a/Documentation/snippets/changing-the-ambitus-gap.ly b/Documentation/snippets/changing-the-ambitus-gap.ly index bdf959aa76..7d13dc3b06 100644 --- a/Documentation/snippets/changing-the-ambitus-gap.ly +++ b/Documentation/snippets/changing-the-ambitus-gap.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "pitches" diff --git a/Documentation/snippets/changing-the-breath-mark-symbol.ly b/Documentation/snippets/changing-the-breath-mark-symbol.ly index 2bfb904170..33978945b0 100644 --- a/Documentation/snippets/changing-the-breath-mark-symbol.ly +++ b/Documentation/snippets/changing-the-breath-mark-symbol.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "expressive-marks" diff --git a/Documentation/snippets/changing-the-number-of-augmentation-dots-per-note.ly b/Documentation/snippets/changing-the-number-of-augmentation-dots-per-note.ly index f668c30448..38764d36f3 100644 --- a/Documentation/snippets/changing-the-number-of-augmentation-dots-per-note.ly +++ b/Documentation/snippets/changing-the-number-of-augmentation-dots-per-note.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "expressive-marks, rhythms" diff --git a/Documentation/snippets/changing-the-number-of-lines-in-a-staff.ly b/Documentation/snippets/changing-the-number-of-lines-in-a-staff.ly index 9748a162b7..c4c53e5c32 100644 --- a/Documentation/snippets/changing-the-number-of-lines-in-a-staff.ly +++ b/Documentation/snippets/changing-the-number-of-lines-in-a-staff.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "specific-notation, staff-notation" diff --git a/Documentation/snippets/changing-the-staff-size.ly b/Documentation/snippets/changing-the-staff-size.ly index 6461784f3a..ed30920b49 100644 --- a/Documentation/snippets/changing-the-staff-size.ly +++ b/Documentation/snippets/changing-the-staff-size.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "paper-and-layout, staff-notation, tweaks-and-overrides" diff --git a/Documentation/snippets/coloring-notes-depending-on-their-pitch.ly b/Documentation/snippets/coloring-notes-depending-on-their-pitch.ly index 2687fb5440..16ed079f6e 100644 --- a/Documentation/snippets/coloring-notes-depending-on-their-pitch.ly +++ b/Documentation/snippets/coloring-notes-depending-on-their-pitch.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "editorial-annotations, pitches, really-cool" diff --git a/Documentation/snippets/combining-two-parts-on-the-same-staff.ly b/Documentation/snippets/combining-two-parts-on-the-same-staff.ly index 996a4ca4fb..0a8477adc5 100644 --- a/Documentation/snippets/combining-two-parts-on-the-same-staff.ly +++ b/Documentation/snippets/combining-two-parts-on-the-same-staff.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "simultaneous-notes, syntax-and-expressions, text" diff --git a/Documentation/snippets/consistently-left-aligned-bar-numbers.ly b/Documentation/snippets/consistently-left-aligned-bar-numbers.ly index 86b44fe665..f2b61e8e8d 100644 --- a/Documentation/snippets/consistently-left-aligned-bar-numbers.ly +++ b/Documentation/snippets/consistently-left-aligned-bar-numbers.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "rhythms" diff --git a/Documentation/snippets/contemporary-glissando.ly b/Documentation/snippets/contemporary-glissando.ly index 98fc0ca0b9..7d9d563318 100644 --- a/Documentation/snippets/contemporary-glissando.ly +++ b/Documentation/snippets/contemporary-glissando.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "contemporary-notation, expressive-marks, specific-notation" diff --git a/Documentation/snippets/contexts-and-engravers.snippet-list b/Documentation/snippets/contexts-and-engravers.snippet-list index 87e008eeef..c752cf87ed 100644 --- a/Documentation/snippets/contexts-and-engravers.snippet-list +++ b/Documentation/snippets/contexts-and-engravers.snippet-list @@ -1,6 +1,7 @@ adding-a-figured-bass-above-or-below-the-notes.ly adding-an-extra-staff-at-a-line-break.ly adding-an-extra-staff.ly +automatically-changing-the-stem-direction-of-the-middle-note-based-on-the-melody.ly centered-measure-numbers.ly centering-markup-on-note-heads-automatically.ly changing-midi-output-to-one-channel-per-voice.ly diff --git a/Documentation/snippets/controlling-spanner-visibility-after-a-line-break.ly b/Documentation/snippets/controlling-spanner-visibility-after-a-line-break.ly index 2fc2bdd006..4df07c679e 100644 --- a/Documentation/snippets/controlling-spanner-visibility-after-a-line-break.ly +++ b/Documentation/snippets/controlling-spanner-visibility-after-a-line-break.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "expressive-marks, tweaks-and-overrides" diff --git a/Documentation/snippets/controlling-the-vertical-ordering-of-scripts.ly b/Documentation/snippets/controlling-the-vertical-ordering-of-scripts.ly index d1a116c007..d4091b033d 100644 --- a/Documentation/snippets/controlling-the-vertical-ordering-of-scripts.ly +++ b/Documentation/snippets/controlling-the-vertical-ordering-of-scripts.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "expressive-marks, tweaks-and-overrides" diff --git a/Documentation/snippets/controlling-tuplet-bracket-visibility.ly b/Documentation/snippets/controlling-tuplet-bracket-visibility.ly index fa7690bcb4..9c74de6b45 100644 --- a/Documentation/snippets/controlling-tuplet-bracket-visibility.ly +++ b/Documentation/snippets/controlling-tuplet-bracket-visibility.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.11" \header { lsrtags = "rhythms, tweaks-and-overrides" diff --git a/Documentation/snippets/creating-a-delayed-turn.ly b/Documentation/snippets/creating-a-delayed-turn.ly index dbb2fffacb..dba460587b 100644 --- a/Documentation/snippets/creating-a-delayed-turn.ly +++ b/Documentation/snippets/creating-a-delayed-turn.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "editorial-annotations, expressive-marks, tweaks-and-overrides" diff --git a/Documentation/snippets/creating-simultaneous-rehearsal-marks.ly b/Documentation/snippets/creating-simultaneous-rehearsal-marks.ly index 831026eabf..3dbde1f742 100644 --- a/Documentation/snippets/creating-simultaneous-rehearsal-marks.ly +++ b/Documentation/snippets/creating-simultaneous-rehearsal-marks.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "expressive-marks, text, tweaks-and-overrides" diff --git a/Documentation/snippets/creating-text-spanners.ly b/Documentation/snippets/creating-text-spanners.ly index 537e1cb69b..5e18e550e2 100644 --- a/Documentation/snippets/creating-text-spanners.ly +++ b/Documentation/snippets/creating-text-spanners.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "expressive-marks, text, tweaks-and-overrides" diff --git a/Documentation/snippets/cross-staff-chords---beaming-problems-workaround.ly b/Documentation/snippets/cross-staff-chords---beaming-problems-workaround.ly index 770b8b6885..cb4ec966af 100644 --- a/Documentation/snippets/cross-staff-chords---beaming-problems-workaround.ly +++ b/Documentation/snippets/cross-staff-chords---beaming-problems-workaround.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "chords, keyboards, tweaks-and-overrides, workaround" diff --git a/Documentation/snippets/custodes.ly b/Documentation/snippets/custodes.ly index 3690ef8194..b653e146ac 100644 --- a/Documentation/snippets/custodes.ly +++ b/Documentation/snippets/custodes.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "ancient-notation, specific-notation, symbols-and-glyphs, tweaks-and-overrides" diff --git a/Documentation/snippets/customizing-fretboard-fret-diagrams.ly b/Documentation/snippets/customizing-fretboard-fret-diagrams.ly index 776737e713..f9d5816c37 100644 --- a/Documentation/snippets/customizing-fretboard-fret-diagrams.ly +++ b/Documentation/snippets/customizing-fretboard-fret-diagrams.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "fretted-strings, tweaks-and-overrides" diff --git a/Documentation/snippets/customizing-markup-fret-diagrams.ly b/Documentation/snippets/customizing-markup-fret-diagrams.ly index 8ff4476813..57032ef0fd 100644 --- a/Documentation/snippets/customizing-markup-fret-diagrams.ly +++ b/Documentation/snippets/customizing-markup-fret-diagrams.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "fretted-strings, tweaks-and-overrides" diff --git a/Documentation/snippets/default-direction-of-stems-on-the-center-line-of-the-staff.ly b/Documentation/snippets/default-direction-of-stems-on-the-center-line-of-the-staff.ly index fb5af1b3a3..50ff9bc0cd 100644 --- a/Documentation/snippets/default-direction-of-stems-on-the-center-line-of-the-staff.ly +++ b/Documentation/snippets/default-direction-of-stems-on-the-center-line-of-the-staff.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "editorial-annotations" diff --git a/Documentation/snippets/defining-predefined-fretboards-for-other-instruments.ly b/Documentation/snippets/defining-predefined-fretboards-for-other-instruments.ly index b607ac66a1..6ba7858cca 100644 --- a/Documentation/snippets/defining-predefined-fretboards-for-other-instruments.ly +++ b/Documentation/snippets/defining-predefined-fretboards-for-other-instruments.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.11" \header { lsrtags = "fretted-strings" diff --git a/Documentation/snippets/display-bracket-with-only-one-staff-in-a-system.ly b/Documentation/snippets/display-bracket-with-only-one-staff-in-a-system.ly index d8f2404957..94d61a4be5 100644 --- a/Documentation/snippets/display-bracket-with-only-one-staff-in-a-system.ly +++ b/Documentation/snippets/display-bracket-with-only-one-staff-in-a-system.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "staff-notation, tweaks-and-overrides" diff --git a/Documentation/snippets/displaying-a-whole-grandstaff-system-if-only-one-of-its-staves-is-alive.ly b/Documentation/snippets/displaying-a-whole-grandstaff-system-if-only-one-of-its-staves-is-alive.ly index c2f672a41e..bb20ae2d0e 100644 --- a/Documentation/snippets/displaying-a-whole-grandstaff-system-if-only-one-of-its-staves-is-alive.ly +++ b/Documentation/snippets/displaying-a-whole-grandstaff-system-if-only-one-of-its-staves-is-alive.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.15" \header { lsrtags = "contexts-and-engravers" diff --git a/Documentation/snippets/displaying-complex-chords.ly b/Documentation/snippets/displaying-complex-chords.ly index 941fe4c8a2..902541ce0c 100644 --- a/Documentation/snippets/displaying-complex-chords.ly +++ b/Documentation/snippets/displaying-complex-chords.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "chords, simultaneous-notes, workaround" diff --git a/Documentation/snippets/displaying-grob-ancestry.ly b/Documentation/snippets/displaying-grob-ancestry.ly index a394c9641f..d6c8d46a2a 100644 --- a/Documentation/snippets/displaying-grob-ancestry.ly +++ b/Documentation/snippets/displaying-grob-ancestry.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "devel, scheme-language, tweaks-and-overrides" diff --git a/Documentation/snippets/drawing-boxes-around-grobs.ly b/Documentation/snippets/drawing-boxes-around-grobs.ly index 2dcad4ed9c..a95c7739b5 100644 --- a/Documentation/snippets/drawing-boxes-around-grobs.ly +++ b/Documentation/snippets/drawing-boxes-around-grobs.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "editorial-annotations, scheme-language, tweaks-and-overrides" diff --git a/Documentation/snippets/drawing-circles-around-note-heads.ly b/Documentation/snippets/drawing-circles-around-note-heads.ly index efa56298ff..44cfe8c7a1 100644 --- a/Documentation/snippets/drawing-circles-around-note-heads.ly +++ b/Documentation/snippets/drawing-circles-around-note-heads.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "editorial-annotations" diff --git a/Documentation/snippets/drawing-circles-around-various-objects.ly b/Documentation/snippets/drawing-circles-around-various-objects.ly index c97f64f123..196a3d8c81 100644 --- a/Documentation/snippets/drawing-circles-around-various-objects.ly +++ b/Documentation/snippets/drawing-circles-around-various-objects.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "editorial-annotations, scheme-language, tweaks-and-overrides" diff --git a/Documentation/snippets/editorial-headword.ly b/Documentation/snippets/editorial-headword.ly index ede4809366..e6b962a557 100644 --- a/Documentation/snippets/editorial-headword.ly +++ b/Documentation/snippets/editorial-headword.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "headword" diff --git a/Documentation/snippets/engravers-one-by-one.ly b/Documentation/snippets/engravers-one-by-one.ly index 3514c0fa70..bae30fb440 100644 --- a/Documentation/snippets/engravers-one-by-one.ly +++ b/Documentation/snippets/engravers-one-by-one.ly @@ -1,11 +1,10 @@ -% DO NOT EDIT this file manually; it is automatically -% generated from Documentation/snippets/new -% Make any changes in Documentation/snippets/new/ -% and then run scripts/auxiliar/makelsr.py -% -% This file is in the public domain. -%% Note: this file works from version 2.16.0 -\version "2.16.0" +%% DO NOT EDIT this file manually; it is automatically +%% generated from LSR http://lsr.dsi.unimi.it +%% Make any changes in LSR itself, or in Documentation/snippets/new/ , +%% and then run scripts/auxiliar/makelsr.py +%% +%% This file is in the public domain. +\version "2.17.29" \header { lsrtags = "contexts-and-engravers, specific-notation" @@ -161,6 +160,7 @@ MyVoice = \context { %} \consists "Text_engraver" \consists "Dynamic_engraver" + \consists "Dynamic_align_engraver" \consists "Fingering_engraver" \consists "Script_column_engraver" diff --git a/Documentation/snippets/engraving-ties-manually.ly b/Documentation/snippets/engraving-ties-manually.ly index 7ff12afc36..76bf91d1ce 100644 --- a/Documentation/snippets/engraving-ties-manually.ly +++ b/Documentation/snippets/engraving-ties-manually.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "rhythms" diff --git a/Documentation/snippets/engraving-tremolos-with-floating-beams.ly b/Documentation/snippets/engraving-tremolos-with-floating-beams.ly index 51298a8a5f..1338e8c175 100644 --- a/Documentation/snippets/engraving-tremolos-with-floating-beams.ly +++ b/Documentation/snippets/engraving-tremolos-with-floating-beams.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "repeats, rhythms" diff --git a/Documentation/snippets/expressive-headword.ly b/Documentation/snippets/expressive-headword.ly index 8183a4e050..b7caf83f1e 100644 --- a/Documentation/snippets/expressive-headword.ly +++ b/Documentation/snippets/expressive-headword.ly @@ -1,10 +1,11 @@ -%% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it -%% Make any changes in LSR itself, or in Documentation/snippets/new/ , -%% and then run scripts/auxiliar/makelsr.py -%% -%% This file is in the public domain. -\version "2.17.25" +% DO NOT EDIT this file manually; it is automatically +% generated from Documentation/snippets/new +% Make any changes in Documentation/snippets/new/ +% and then run scripts/auxiliar/makelsr.py +% +% This file is in the public domain. +%% Note: this file works from version 2.17.27 +\version "2.17.27" \header { lsrtags = "headword" @@ -40,7 +41,7 @@ Expressive headword \key g \major \time 6/8 \partial 2 - \once \override TextScript.staff-padding = #2 + \once \override TextScript.padding = #2 d'8 \staccato ^ \markup { \column { RONDO diff --git a/Documentation/snippets/figured-bass-headword.ly b/Documentation/snippets/figured-bass-headword.ly index 1bcfd1d3cf..8b76e0204d 100644 --- a/Documentation/snippets/figured-bass-headword.ly +++ b/Documentation/snippets/figured-bass-headword.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "headword" diff --git a/Documentation/snippets/fine-tuning-pedal-brackets.ly b/Documentation/snippets/fine-tuning-pedal-brackets.ly index fd61464476..b9cdf44f71 100644 --- a/Documentation/snippets/fine-tuning-pedal-brackets.ly +++ b/Documentation/snippets/fine-tuning-pedal-brackets.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "keyboards, tweaks-and-overrides" diff --git a/Documentation/snippets/fingering-symbols-for-wind-instruments.ly b/Documentation/snippets/fingering-symbols-for-wind-instruments.ly index 445f343260..e4ea09092f 100644 --- a/Documentation/snippets/fingering-symbols-for-wind-instruments.ly +++ b/Documentation/snippets/fingering-symbols-for-wind-instruments.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "symbols-and-glyphs, winds" diff --git a/Documentation/snippets/flamenco-notation.ly b/Documentation/snippets/flamenco-notation.ly index 419701e43f..0583274b6c 100644 --- a/Documentation/snippets/flamenco-notation.ly +++ b/Documentation/snippets/flamenco-notation.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.11" \header { lsrtags = "fretted-strings, specific-notation, stylesheet, version-specific" diff --git a/Documentation/snippets/flute-slap-notation.ly b/Documentation/snippets/flute-slap-notation.ly index e30eda7288..fb387f9b69 100644 --- a/Documentation/snippets/flute-slap-notation.ly +++ b/Documentation/snippets/flute-slap-notation.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "contemporary-notation, winds" diff --git a/Documentation/snippets/forcing-horizontal-shift-of-notes.ly b/Documentation/snippets/forcing-horizontal-shift-of-notes.ly index 2330491040..e2413c73b2 100644 --- a/Documentation/snippets/forcing-horizontal-shift-of-notes.ly +++ b/Documentation/snippets/forcing-horizontal-shift-of-notes.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "simultaneous-notes, tweaks-and-overrides" diff --git a/Documentation/snippets/forcing-hyphens-to-be-shown.ly b/Documentation/snippets/forcing-hyphens-to-be-shown.ly index c23ff305a3..6ab4f3706f 100644 --- a/Documentation/snippets/forcing-hyphens-to-be-shown.ly +++ b/Documentation/snippets/forcing-hyphens-to-be-shown.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "vocal-music" diff --git a/Documentation/snippets/forcing-measure-width-to-adapt-to-metronomemarks-width.ly b/Documentation/snippets/forcing-measure-width-to-adapt-to-metronomemarks-width.ly index 7a9f769fc4..244eefef50 100644 --- a/Documentation/snippets/forcing-measure-width-to-adapt-to-metronomemarks-width.ly +++ b/Documentation/snippets/forcing-measure-width-to-adapt-to-metronomemarks-width.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "staff-notation, workaround" diff --git a/Documentation/snippets/fret-diagrams-explained-and-developed.ly b/Documentation/snippets/fret-diagrams-explained-and-developed.ly index 08576e7d9b..7ae4dead64 100644 --- a/Documentation/snippets/fret-diagrams-explained-and-developed.ly +++ b/Documentation/snippets/fret-diagrams-explained-and-developed.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "fretted-strings, tweaks-and-overrides" diff --git a/Documentation/snippets/fretted-string-harmonics-in-tablature.ly b/Documentation/snippets/fretted-string-harmonics-in-tablature.ly index 221c9673ca..a62c85dddd 100644 --- a/Documentation/snippets/fretted-string-harmonics-in-tablature.ly +++ b/Documentation/snippets/fretted-string-harmonics-in-tablature.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "fretted-strings" diff --git a/Documentation/snippets/generating-random-notes.ly b/Documentation/snippets/generating-random-notes.ly index 9645d18561..cf2bfb23e9 100644 --- a/Documentation/snippets/generating-random-notes.ly +++ b/Documentation/snippets/generating-random-notes.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.11" \header { lsrtags = "pitches, really-cool, scheme-language" diff --git a/Documentation/snippets/generating-whole-scores-also-book-parts-in-scheme-without-using-the-parser.ly b/Documentation/snippets/generating-whole-scores-also-book-parts-in-scheme-without-using-the-parser.ly index 8e9b44ad71..cc30a8b2bf 100644 --- a/Documentation/snippets/generating-whole-scores-also-book-parts-in-scheme-without-using-the-parser.ly +++ b/Documentation/snippets/generating-whole-scores-also-book-parts-in-scheme-without-using-the-parser.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.11" \header { lsrtags = "automatic-notation, really-cool, scheme-language" diff --git a/Documentation/snippets/grid-lines--changing-their-appearance.ly b/Documentation/snippets/grid-lines--changing-their-appearance.ly index 2fdcd964ff..254a266304 100644 --- a/Documentation/snippets/grid-lines--changing-their-appearance.ly +++ b/Documentation/snippets/grid-lines--changing-their-appearance.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.11" \header { lsrtags = "editorial-annotations" diff --git a/Documentation/snippets/grid-lines--emphasizing-rhythms-and-notes-synchronization.ly b/Documentation/snippets/grid-lines--emphasizing-rhythms-and-notes-synchronization.ly index 1e8d5326c2..f8203c6646 100644 --- a/Documentation/snippets/grid-lines--emphasizing-rhythms-and-notes-synchronization.ly +++ b/Documentation/snippets/grid-lines--emphasizing-rhythms-and-notes-synchronization.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.11" \header { lsrtags = "editorial-annotations" diff --git a/Documentation/snippets/hairpins-with-different-line-styles.ly b/Documentation/snippets/hairpins-with-different-line-styles.ly index 61bfa49b4b..ebfcda0513 100644 --- a/Documentation/snippets/hairpins-with-different-line-styles.ly +++ b/Documentation/snippets/hairpins-with-different-line-styles.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "expressive-marks, tweaks-and-overrides" diff --git a/Documentation/snippets/hiding-accidentals-on-tied-notes-at-the-start-of-a-new-system.ly b/Documentation/snippets/hiding-accidentals-on-tied-notes-at-the-start-of-a-new-system.ly index 33aa9c480a..1c3c4ea4ea 100644 --- a/Documentation/snippets/hiding-accidentals-on-tied-notes-at-the-start-of-a-new-system.ly +++ b/Documentation/snippets/hiding-accidentals-on-tied-notes-at-the-start-of-a-new-system.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "pitches" diff --git a/Documentation/snippets/hiding-the-extender-line-for-text-dynamics.ly b/Documentation/snippets/hiding-the-extender-line-for-text-dynamics.ly index 2238186542..682e2d5421 100644 --- a/Documentation/snippets/hiding-the-extender-line-for-text-dynamics.ly +++ b/Documentation/snippets/hiding-the-extender-line-for-text-dynamics.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "expressive-marks" diff --git a/Documentation/snippets/how-to-change-fret-diagram-position.ly b/Documentation/snippets/how-to-change-fret-diagram-position.ly index 7da8e87917..cbcd2bc9c7 100644 --- a/Documentation/snippets/how-to-change-fret-diagram-position.ly +++ b/Documentation/snippets/how-to-change-fret-diagram-position.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "fretted-strings, specific-notation, tweaks-and-overrides" diff --git a/Documentation/snippets/how-to-print-two-rehearsal-marks-above-and-below-the-same-barline-method-2.ly b/Documentation/snippets/how-to-print-two-rehearsal-marks-above-and-below-the-same-barline-method-2.ly index 040a7cdc30..12d760f3ff 100644 --- a/Documentation/snippets/how-to-print-two-rehearsal-marks-above-and-below-the-same-barline-method-2.ly +++ b/Documentation/snippets/how-to-print-two-rehearsal-marks-above-and-below-the-same-barline-method-2.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "editorial-annotations, expressive-marks, staff-notation, tweaks-and-overrides" diff --git a/Documentation/snippets/indicating-cross-staff-chords-with-arpeggio-bracket.ly b/Documentation/snippets/indicating-cross-staff-chords-with-arpeggio-bracket.ly index baabf39df5..bbb2f9fbd6 100644 --- a/Documentation/snippets/indicating-cross-staff-chords-with-arpeggio-bracket.ly +++ b/Documentation/snippets/indicating-cross-staff-chords-with-arpeggio-bracket.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "keyboards, real-music" diff --git a/Documentation/snippets/inserting-a-caesura.ly b/Documentation/snippets/inserting-a-caesura.ly index e38ea42886..c8378a2f1d 100644 --- a/Documentation/snippets/inserting-a-caesura.ly +++ b/Documentation/snippets/inserting-a-caesura.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "expressive-marks, tweaks-and-overrides" diff --git a/Documentation/snippets/keep-change-clefs-full-sized.ly b/Documentation/snippets/keep-change-clefs-full-sized.ly index 35fad36b30..1504747297 100644 --- a/Documentation/snippets/keep-change-clefs-full-sized.ly +++ b/Documentation/snippets/keep-change-clefs-full-sized.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "pitches, tweaks-and-overrides" diff --git a/Documentation/snippets/laissez-vibrer-ties.ly b/Documentation/snippets/laissez-vibrer-ties.ly index 330c510a17..d125dc8038 100644 --- a/Documentation/snippets/laissez-vibrer-ties.ly +++ b/Documentation/snippets/laissez-vibrer-ties.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "connecting-notes, contemporary-notation, expressive-marks, fretted-strings, keyboards, specific-notation" diff --git a/Documentation/snippets/line-arrows.ly b/Documentation/snippets/line-arrows.ly index 36eca55432..93086da94c 100644 --- a/Documentation/snippets/line-arrows.ly +++ b/Documentation/snippets/line-arrows.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "expressive-marks, tweaks-and-overrides" diff --git a/Documentation/snippets/lyrics-alignment.ly b/Documentation/snippets/lyrics-alignment.ly index 18bbb0aa58..9167330fe6 100644 --- a/Documentation/snippets/lyrics-alignment.ly +++ b/Documentation/snippets/lyrics-alignment.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "really-simple, text, vocal-music" diff --git a/Documentation/snippets/making-slurs-with-complex-dash-structure.ly b/Documentation/snippets/making-slurs-with-complex-dash-structure.ly index 1eaa4e50aa..b4d11b13d7 100644 --- a/Documentation/snippets/making-slurs-with-complex-dash-structure.ly +++ b/Documentation/snippets/making-slurs-with-complex-dash-structure.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "expressive-marks, rhythms" diff --git a/Documentation/snippets/making-some-staff-lines-thicker-than-the-others.ly b/Documentation/snippets/making-some-staff-lines-thicker-than-the-others.ly index ed31fce527..1cf8befaa0 100644 --- a/Documentation/snippets/making-some-staff-lines-thicker-than-the-others.ly +++ b/Documentation/snippets/making-some-staff-lines-thicker-than-the-others.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "editorial-annotations, really-cool, staff-notation, workaround" diff --git a/Documentation/snippets/manually-controlling-beam-positions.ly b/Documentation/snippets/manually-controlling-beam-positions.ly index 1a31971021..fe44415234 100644 --- a/Documentation/snippets/manually-controlling-beam-positions.ly +++ b/Documentation/snippets/manually-controlling-beam-positions.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "connecting-notes, rhythms, tweaks-and-overrides" diff --git a/Documentation/snippets/marking-notes-of-spoken-parts-with-a-cross-on-the-stem.ly b/Documentation/snippets/marking-notes-of-spoken-parts-with-a-cross-on-the-stem.ly index 2ef2146db0..a836fd38d1 100644 --- a/Documentation/snippets/marking-notes-of-spoken-parts-with-a-cross-on-the-stem.ly +++ b/Documentation/snippets/marking-notes-of-spoken-parts-with-a-cross-on-the-stem.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "contemporary-notation, editorial-annotations, vocal-music, workaround" diff --git a/Documentation/snippets/markup-lines.ly b/Documentation/snippets/markup-lines.ly index 71e2ced210..474f13f19d 100644 --- a/Documentation/snippets/markup-lines.ly +++ b/Documentation/snippets/markup-lines.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.16.0" \header { lsrtags = "text" diff --git a/Documentation/snippets/measure-counter.ly b/Documentation/snippets/measure-counter.ly index ab7d5d355d..42d9ceb529 100644 --- a/Documentation/snippets/measure-counter.ly +++ b/Documentation/snippets/measure-counter.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "editorial-annotations, repeats, staff-notation, workaround" diff --git a/Documentation/snippets/mensurstriche-layout-bar-lines-between-the-staves.ly b/Documentation/snippets/mensurstriche-layout-bar-lines-between-the-staves.ly index bf9ff42c03..537d0a1897 100644 --- a/Documentation/snippets/mensurstriche-layout-bar-lines-between-the-staves.ly +++ b/Documentation/snippets/mensurstriche-layout-bar-lines-between-the-staves.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "ancient-notation, contexts-and-engravers, staff-notation, tweaks-and-overrides" diff --git a/Documentation/snippets/modifying-tuplet-bracket-length.ly b/Documentation/snippets/modifying-tuplet-bracket-length.ly index ea932f91fe..bde66e6168 100644 --- a/Documentation/snippets/modifying-tuplet-bracket-length.ly +++ b/Documentation/snippets/modifying-tuplet-bracket-length.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.11" \header { lsrtags = "really-simple, rhythms" diff --git a/Documentation/snippets/moving-dotted-notes-in-polyphony.ly b/Documentation/snippets/moving-dotted-notes-in-polyphony.ly index 3544af66cc..8a225d29ff 100644 --- a/Documentation/snippets/moving-dotted-notes-in-polyphony.ly +++ b/Documentation/snippets/moving-dotted-notes-in-polyphony.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "rhythms, simultaneous-notes, tweaks-and-overrides" diff --git a/Documentation/snippets/moving-slur-positions-vertically.ly b/Documentation/snippets/moving-slur-positions-vertically.ly index b3523b2fa1..d2b93bb89c 100644 --- a/Documentation/snippets/moving-slur-positions-vertically.ly +++ b/Documentation/snippets/moving-slur-positions-vertically.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "expressive-marks, tweaks-and-overrides" diff --git a/Documentation/snippets/new/accordion-discant-symbols.ly b/Documentation/snippets/new/accordion-discant-symbols.ly index cc0efc192d..7ec2129a63 100644 --- a/Documentation/snippets/new/accordion-discant-symbols.ly +++ b/Documentation/snippets/new/accordion-discant-symbols.ly @@ -4,8 +4,10 @@ lsrtags = "keyboards, specific-notation, symbols-and-glyphs, workaround" texidoc = " -Accordion discant-specific symbols are added using @code{\\markup}. The -placement of the symbols can be tweaked by changing the +This snippet has been obsoleted by predefined markup commands, see +@ruser{Accordion Registers}. It's still useful as a simple +demonstration of how to combine symbols: the placement of the symbols +added with @code{\\markup} can be tweaked by changing the @code{\\translate-scaled} arguments. @code{\\translate-scaled} is used here rather than @code{\\translate} in order to let the positioning of the symbol parts adapt to changes of @code{font-size}. diff --git a/Documentation/snippets/new/adding-extra-fingering-with-scheme.ly b/Documentation/snippets/new/adding-extra-fingering-with-scheme.ly new file mode 100644 index 0000000000..b4d32ff1ea --- /dev/null +++ b/Documentation/snippets/new/adding-extra-fingering-with-scheme.ly @@ -0,0 +1,39 @@ +\version "2.16.0" + +\header { + lsrtags = "scheme-language" + + texidoc = " +You can add additional elements to notes using @code{map-some-music}. In this +example, an extra script is attached to a note. + +In general, first do a @code{\\displayMusic} of the music you want to +create, then write a function that will work on the appropriate parts +of the music for you. +" + doctitle = "Adding extra fingering with scheme" +} + +addScript = +#(define-music-function (parser location script music) + (ly:event? ly:music?) + (map-some-music + (lambda (mus) + (define (append-script-at! prop) + (set! (ly:music-property mus prop) + (append (ly:music-property mus prop) + (list (ly:music-deep-copy script)))) + mus) + (case (ly:music-property mus 'name) + ((EventChord) + (append-script-at! 'elements)) + ((NoteEvent) + (append-script-at! 'articulations)) + (else #f))) + music)) + +\score { + { + \addScript _6 { c'4-3 } + } +} diff --git a/Documentation/snippets/new/broken-crescendo-hairpin.ly b/Documentation/snippets/new/broken-crescendo-hairpin.ly new file mode 100644 index 0000000000..27df9446ad --- /dev/null +++ b/Documentation/snippets/new/broken-crescendo-hairpin.ly @@ -0,0 +1,42 @@ +\version "2.17.27" + +\header { + lsrtags = "contemporary-notation, expressive-marks, symbols-and-glyphs" + + texidoc = " +In order to make parts of a crescendo hairpin invisible, the following +method is used: A white rectangle is drawn on top of the respective +part of the crescendo hairpin, making it invisible. + +The markup command @code{with-dimensions} tells LilyPond to consider only +the bottom edge of the rectangle when spacing it against the hairpin. +The property @code{staff-padding} prevents the rectangle from fitting +between the hairpin and staff. + +Make sure to put the hairpin in a lower layer than the text markup to +draw the rectangle over the hairpin. + +" + doctitle = "Broken Crescendo Hairpin" +} + +\relative c' { + << + { + \dynamicUp + r2 r16 c'8.\pp r4 + } + \\ + { + \override DynamicLineSpanner.layer = #0 + des,2\mf\< ~ + \override TextScript.layer = #2 + \once\override TextScript.staff-padding = #6 + \once\override TextScript.vertical-skylines = #'() + des16_\markup \with-dimensions #'(2 . 7) #'(0 . 0) + \with-color #white + \filled-box #'(2 . 7) #'(0 . 2) #0 + r8. des4 ~ des16->\sff + } + >> +} diff --git a/Documentation/snippets/new/engravers-one-by-one.ly b/Documentation/snippets/new/engravers-one-by-one.ly deleted file mode 100644 index d03145c440..0000000000 --- a/Documentation/snippets/new/engravers-one-by-one.ly +++ /dev/null @@ -1,272 +0,0 @@ -\version "2.16.0" - -\header { - lsrtags = "contexts-and-engravers, specific-notation" - - texidoc = " -The notation problem, creating a certain symbol, is handled by plugins. - Each plugin is called an Engraver. In this example, engravers are -switched on one by one, in the following order: - -- note heads, - - -- staff symbol, - - -- clef, - - -- stem, - - -- beams, slurs, accents, - - -- accidentals, bar lines, time signature and key signature. - - - -Engravers are grouped. For example, note heads, slurs, beams etc. form -a @code{Voice} context. Engravers for key signature, accidentals, bar -line, etc. form a @code{Staff} context. - -" - doctitle = "Engravers one-by-one" -} - -%% sample music -topVoice = \relative c' { - \key d \major - es8([ g] a[ fis]) - b4 - b16[-. b-. b-. cis-.] - d4-> -} - -botVoice = \relative c' { - \key d \major - c8[( f] b[ a)] - es4 - es16[-. es-. es-. fis-.] - b4-> -} - -hoom = \relative c { - \key d \major - \clef bass - g8-. r - r4 - fis8-. - r8 - r4 - b'4-> -} - -pah = \relative c' { - r8 b-. - r4 - r8 g8-. - r16 g-. r8 - \clef treble - fis'4-> -} - -% -% setup for Request->Element conversion. Guru-only -% - -MyStaff = \context { - \type "Engraver_group" - \name Staff - - \description "Handles clefs, bar lines, keys, accidentals. It can contain -@code{Voice} contexts." - - \consists "Output_property_engraver" - - \consists "Font_size_engraver" - - \consists "Volta_engraver" - \consists "Separating_line_group_engraver" - \consists "Dot_column_engraver" - - \consists "Ottava_spanner_engraver" - \consists "Rest_collision_engraver" - \consists "Piano_pedal_engraver" - \consists "Piano_pedal_align_engraver" - \consists "Instrument_name_engraver" - \consists "Grob_pq_engraver" - \consists "Forbid_line_break_engraver" - \consists "Axis_group_engraver" - - \consists "Pitch_squash_engraver" - - localKeySignature = #'() - - % explicitly set instrumentName, so we don't get - % weird effects when doing instrument names for - % piano staves - - instrumentName = #'() - shortInstrumentName = #'() - - \accepts "Voice" - \defaultchild "Voice" -} - - -MyVoice = \context { - \type "Engraver_group" - \name Voice - - \description " - Corresponds to a voice on a staff. This context handles the - conversion of dynamic signs, stems, beams, super- and subscripts, - slurs, ties, and rests. - - You have to instantiate this explicitly if you want to have - multiple voices on the same staff." - - localKeySignature = #'() - \consists "Font_size_engraver" - - % must come before all - \consists "Output_property_engraver" - \consists "Arpeggio_engraver" - \consists "Multi_measure_rest_engraver" - \consists "Text_spanner_engraver" - \consists "Grob_pq_engraver" - \consists "Note_head_line_engraver" - \consists "Glissando_engraver" - \consists "Ligature_bracket_engraver" - \consists "Breathing_sign_engraver" - % \consists "Rest_engraver" - \consists "Grace_beam_engraver" - \consists "New_fingering_engraver" - \consists "Chord_tremolo_engraver" - \consists "Percent_repeat_engraver" - \consists "Slash_repeat_engraver" - - %{ - Must come before text_engraver, but after note_column engraver. - %} - \consists "Text_engraver" - \consists "Dynamic_engraver" - \consists "Fingering_engraver" - - \consists "Script_column_engraver" - \consists "Rhythmic_column_engraver" - \consists "Cluster_spanner_engraver" - \consists "Tie_engraver" - \consists "Tie_engraver" - \consists "Tuplet_engraver" - \consists "Note_heads_engraver" - \consists "Rest_engraver" -} - - -\score { - \topVoice - \layout { - \context { \MyStaff } - \context { \MyVoice } - } -} - - -MyStaff = \context { - \MyStaff - \consists "Staff_symbol_engraver" -} - -\score { - \topVoice - \layout { - \context { \MyStaff } - \context { \MyVoice } - } -} - -MyStaff = \context { - \MyStaff - \consists "Clef_engraver" - \remove "Pitch_squash_engraver" -} - -\score { - \topVoice - \layout { - \context { \MyStaff } - \context { \MyVoice } - } -} - -MyVoice = \context { - \MyVoice - \consists "Stem_engraver" -} - -\score { - \topVoice - \layout { - \context { \MyStaff } - \context { \MyVoice } - } -} - -MyVoice = \context { - \MyVoice - \consists "Beam_engraver" -} - -\score { - \topVoice - \layout { - \context { \MyStaff } - \context { \MyVoice } - } -} - -MyVoice = \context { - \MyVoice - \consists "Phrasing_slur_engraver" - \consists "Slur_engraver" - \consists "Script_engraver" -} - - -\score { - \topVoice - \layout { - \context { \MyStaff } - \context { \MyVoice } - } -} - -MyStaff = \context { - \MyStaff - \consists "Bar_engraver" - \consists "Time_signature_engraver" -} - -\score { - \topVoice - \layout { - \context { \MyStaff } - \context { \MyVoice } - } -} - -MyStaff = \context { - \MyStaff - \consists "Accidental_engraver" - \consists "Key_engraver" -} -\score { - \topVoice - \layout { - \context { \MyStaff } - \context { \MyVoice } - } -} diff --git a/Documentation/snippets/new/expressive-headword.ly b/Documentation/snippets/new/expressive-headword.ly new file mode 100644 index 0000000000..1f9cf0f33c --- /dev/null +++ b/Documentation/snippets/new/expressive-headword.ly @@ -0,0 +1,268 @@ +\version "2.17.27" + +\header { + lsrtags = "headword" + + texidoc = " +Expressive headword + +" + doctitle = "Expressive headword" +} +\include "english.ly" + +% NR 1.3 Expressive marks + +% L. v. Beethoven, Op. 49 no. 1 +% Piano sonata 19 - "Leichte Sonate" +% measures 1 - 12 + +%\layout { +% \context { +% \Score +% \override SpacingSpanner.base-shortest-duration = +% #(ly:make-moment 1/20) +% } +%} + +\new PianoStaff << + + % RH Staff + \new Staff { + \clef treble + \key g \major + \time 6/8 + \partial 2 + \once \override TextScript.padding = #2 + d'8 \staccato + ^ \markup { \column { + RONDO + \italic Allegro } } + d'8 \staccato + g'8 \staccato + a'8 \staccato + + | + + b'8 [ ( + g'8 ] ) + e'8 \staccato + e' \staccato + a'8 \staccato + b'8 \staccato + + | + + c''8 [ ( + a'8 ] ) + e''8 \staccato + d''8 \staccato + c''8 \staccato + b'8 \staccato + + | + + a'8 \staccato + g'8 \staccato + a'8 \staccato + \acciaccatura { g'16 [ a'16 ] } + bf'8 + a'8 \staccato + g'8 \staccato + + | + + fs'8 [ ( + d'8 ] ) + d'8 \staccato + d'8 \staccato + g'8 \staccato + a'8 \staccato + + | + + b'8 [ ( + g'8 ] ) + e'8 \staccato + e'8 \staccato + a'8 \staccato + b'8 \staccato + + | + + c''8 [ ( + a'8 ] ) + e''8 \staccato + d''8 \staccato + c''8 \staccato + b'8 \staccato + + | + + a'8 \staccato + g'8 \staccato + a'8 \staccato + << + { + \voiceOne + d'8 + g'8 + fs'8 + \oneVoice + } + \new Voice { + \voiceTwo + d'4 + c'8 + \oneVoice + } + >> + + | + + 4 \tenuto + d'8 \staccato + g'8 \staccato + b'8 \staccato + d''8 \staccato + + | + + d''8 ( + 8 \staccato ) + 8 \staccato + d''8 ( + 8 \staccato ) + 8 \staccato + + | + + d''8 ( + 8 \staccato ) + 8 \staccato + d''8 ( + 8 \staccato ) + 8 \staccato + + | + + d''8 \staccato + 8 \staccato + 8 \staccato + d'' \staccato + 8 \staccato + 8 \staccato + + | + + 4 \fermata + r8 r4 r8 + } + + % LH Staff + \new Staff { + \clef bass + \key g \major + \time 6/8 + \partial 2 + r8 + r8 + 8 \staccato + 8 \staccato + + | + + 4 + r8 + r8 + 8 \staccato + 8 \staccato + + | + + 4 + r8 + r8 + 8 \staccato + 8 \staccato + + | + + 8 \staccato + 8 \staccato + 8 \staccato + 4. ( + + | + + d'4 ) + r8 + r8 + 8 \staccato + 8 \staccato + + | + + 4 + r8 + r8 + 8 \staccato + 8 \staccato + + | + + 4 + r8 + r8 + 8 \staccato + 8 \staccato + + | + + 8 \staccato + 8 \staccato + 8 \staccato + 4 + 8 \staccato + + | + + 4 \tenuto + r8 + r4 + r8 + + | + + r8 + 8 \staccato + 8 \staccato + r8 + 8 \staccato + 8 \staccato + + | + + r8 + 8 \staccato + 8 \staccato + r8 + 8 \staccato + 8 \staccato + + | + + r8 + 8 \staccato + 8 \staccato + r8 + 8 \staccato + 8 \staccato + + | + + 4 \fermata + r8 r4 r8 + } + +>> diff --git a/Documentation/snippets/new/pitches-headword.ly b/Documentation/snippets/new/pitches-headword.ly new file mode 100644 index 0000000000..70246ce579 --- /dev/null +++ b/Documentation/snippets/new/pitches-headword.ly @@ -0,0 +1,137 @@ +\version "2.17.27" + +\header { + lsrtags = "headword" + + texidoc = " +Piches headword + +" + doctitle = "Pitches headword" +} +% L. v. Beethoven +% Piano sonata 21 - Dem Grafen von Waldstein Gewidmet +% chorale at measures 34 - 40+ + +\include "english.ly" + +\new PianoStaff << + + % RH Staff + \new Staff << + + % RH Voice 1 + \new Voice { + \set Score.currentBarNumber = #34 + \voiceOne + gs''2 ( ^ \markup \italic { dolce e molto ligato } + fs''4 + e''4 + | + ds''2 + cs''2 ) + | + ds''2 ( + e''4 + fs''4 + | + 2 + 2 ) + | + \oneVoice + \clef bass + 2 ( + 4 + 4 + | + 2 + 2 ) + | + \voiceOne + b2 %( + cs'4 + ds'4 + | + \clef treble + 4 %) + r4 r2 + } + + % RH Voice 2 + \new Voice { + \voiceTwo + \override Staff.DynamicLineSpanner.staff-padding = #3 + 2 \p + 4 + 4 + | + 2 + e'2 + | + 2 -\tweak #'style #'none \cresc + b'4 + 4 + | + b'2. ( \sf \> + a'4 ) + \clef bass + | \break + s1 \p + | + s1 + | + 4 ( + 2. ) + | + s4 + r4 r2 + } + + >> + + % LH Staff + \new Staff { + \override Staff.SustainPedalLineSpanner.staff-padding = #6 + 2 ( \sustainOn + 4 \sustainOff + 4 + | + 2 + 2 ) \sustainOn + | + \clef bass + \slurDown + 2 ( \sustainOff + 4 + 4 \sustainOn + | + \clef treble + \voiceOne + << + { + 2 + 2 ) + } + \new Voice { + \voiceTwo + b1 \sustainOff + } + >> + \oneVoice + | + %\break + \clef bass + 2 ( + 4 + 4 + | + 2 + 2 ) \sustainOn + | + 1 ( \sustainOff + | + 4 ) + r4 r2 + } + +>> diff --git a/Documentation/snippets/new/positioning-multi-measure-rests.ly b/Documentation/snippets/new/positioning-multi-measure-rests.ly index 5999b2d1eb..e908ef14cd 100644 --- a/Documentation/snippets/new/positioning-multi-measure-rests.ly +++ b/Documentation/snippets/new/positioning-multi-measure-rests.ly @@ -1,4 +1,4 @@ -\version "2.17.6" +\version "2.17.18" \header { lsrtags = "rhythms, tweaks-and-overrides" @@ -50,10 +50,10 @@ follows: % in all voices to avoid multiple instances being printed \compressFullBarRests << - \revert MultiMeasureRest.staff-position + \revert MultiMeasureRest.direction { R1*3 } \\ - \revert MultiMeasureRest.staff-position + \revert MultiMeasureRest.direction { R1*3 } >> } diff --git a/Documentation/snippets/new/vertically-aligned-dynamics-and-textscripts.ly b/Documentation/snippets/new/vertically-aligned-dynamics-and-textscripts.ly new file mode 100644 index 0000000000..909f09e62d --- /dev/null +++ b/Documentation/snippets/new/vertically-aligned-dynamics-and-textscripts.ly @@ -0,0 +1,34 @@ +\version "2.17.27" + +\header { + lsrtags = "spacing, tweaks-and-overrides, workaround" + + texidoc = " +All @code{DynamicLineSpanner} objects (hairpins and dynamic texts) are +placed with their reference line at least @code{'staff-padding} from +the staff, unless other notation forces them to be farther. +Setting @code{'staff-padding} to a sufficiently large value aligns the +dynamics. + +The same idea, together with @code{\\textLengthOn}, is used to align +the text scripts along their baseline. + +" + doctitle = "Vertically aligned dynamics and textscripts" +} +\markup \vspace #1 %avoid LSR-bug + +music = \relative c' { + a'2\p b\f + e4\p f\f\> g, b\p + c2^\markup { \huge gorgeous } c^\markup { \huge fantastic } +} + +{ + \music + \break + \override DynamicLineSpanner.staff-padding = #3 + \textLengthOn + \override TextScript.staff-padding = #1 + \music +} diff --git a/Documentation/snippets/non-default-tuplet-numbers.ly b/Documentation/snippets/non-default-tuplet-numbers.ly index 94c0733090..65030025a3 100644 --- a/Documentation/snippets/non-default-tuplet-numbers.ly +++ b/Documentation/snippets/non-default-tuplet-numbers.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.11" \header { lsrtags = "rhythms" diff --git a/Documentation/snippets/obtaining-2.12-lyrics-spacing-in-newer-versions.ly b/Documentation/snippets/obtaining-2.12-lyrics-spacing-in-newer-versions.ly index 4e77e9a7be..2ec7ebf8d9 100644 --- a/Documentation/snippets/obtaining-2.12-lyrics-spacing-in-newer-versions.ly +++ b/Documentation/snippets/obtaining-2.12-lyrics-spacing-in-newer-versions.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "vocal-music" diff --git a/Documentation/snippets/outputting-the-version-number.ly b/Documentation/snippets/outputting-the-version-number.ly index d20ea49981..742e687c93 100644 --- a/Documentation/snippets/outputting-the-version-number.ly +++ b/Documentation/snippets/outputting-the-version-number.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "really-simple, scheme-language, text, titles" diff --git a/Documentation/snippets/page-label.ly b/Documentation/snippets/page-label.ly index 9d30af6905..727f9d4191 100644 --- a/Documentation/snippets/page-label.ly +++ b/Documentation/snippets/page-label.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "spacing" diff --git a/Documentation/snippets/permitting-line-breaks-within-beamed-tuplets.ly b/Documentation/snippets/permitting-line-breaks-within-beamed-tuplets.ly index f6316598df..c67206c3aa 100644 --- a/Documentation/snippets/permitting-line-breaks-within-beamed-tuplets.ly +++ b/Documentation/snippets/permitting-line-breaks-within-beamed-tuplets.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.11" \header { lsrtags = "rhythms, version-specific" diff --git a/Documentation/snippets/pitches-headword.ly b/Documentation/snippets/pitches-headword.ly index 270c696b3f..ad09b5755b 100644 --- a/Documentation/snippets/pitches-headword.ly +++ b/Documentation/snippets/pitches-headword.ly @@ -1,10 +1,11 @@ -%% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it -%% Make any changes in LSR itself, or in Documentation/snippets/new/ , -%% and then run scripts/auxiliar/makelsr.py -%% -%% This file is in the public domain. -\version "2.17.25" +% DO NOT EDIT this file manually; it is automatically +% generated from Documentation/snippets/new +% Make any changes in Documentation/snippets/new/ +% and then run scripts/auxiliar/makelsr.py +% +% This file is in the public domain. +%% Note: this file works from version 2.17.27 +\version "2.17.27" \header { lsrtags = "headword" @@ -67,7 +68,7 @@ Piches headword % RH Voice 2 \new Voice { \voiceTwo - \override Staff.DynamicLineSpanner.staff-padding = #2.5 + \override Staff.DynamicLineSpanner.staff-padding = #3 2 \p 4 4 @@ -75,8 +76,7 @@ Piches headword 2 e'2 | - \once \override TextScript.staff-padding = #2.5 - 2 _ \markup \italic { cresc. } + 2 -\tweak #'style #'none \cresc b'4 4 | @@ -99,7 +99,7 @@ Piches headword % LH Staff \new Staff { - \override Staff.SustainPedalLineSpanner.staff-padding = #5 + \override Staff.SustainPedalLineSpanner.staff-padding = #6 2 ( \sustainOn 4 \sustainOff 4 diff --git a/Documentation/snippets/pitches.snippet-list b/Documentation/snippets/pitches.snippet-list index cb74d900e1..87368cd7cf 100644 --- a/Documentation/snippets/pitches.snippet-list +++ b/Documentation/snippets/pitches.snippet-list @@ -4,6 +4,7 @@ altering-the-length-of-beamed-stems.ly ambitus-with-multiple-voices.ly ambitus.ly applying-note-head-styles-depending-on-the-step-of-the-scale.ly +automatically-changing-the-stem-direction-of-the-middle-note-based-on-the-melody.ly changing-the-ambitus-gap.ly changing-the-interval-of-lines-on-the-stave.ly clefs-can-be-transposed-by-arbitrary-amounts.ly diff --git a/Documentation/snippets/positioning-arpeggios.ly b/Documentation/snippets/positioning-arpeggios.ly index 8cf47753dc..68861a1dc3 100644 --- a/Documentation/snippets/positioning-arpeggios.ly +++ b/Documentation/snippets/positioning-arpeggios.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "expressive-marks, tweaks-and-overrides" diff --git a/Documentation/snippets/positioning-fingering-indications-precisely.ly b/Documentation/snippets/positioning-fingering-indications-precisely.ly index e67296d1d4..253b05ec03 100644 --- a/Documentation/snippets/positioning-fingering-indications-precisely.ly +++ b/Documentation/snippets/positioning-fingering-indications-precisely.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "editorial-annotations" diff --git a/Documentation/snippets/positioning-grace-note-beams-at-the-height-of-normal-note-beams.ly b/Documentation/snippets/positioning-grace-note-beams-at-the-height-of-normal-note-beams.ly index 692c5658c1..d3c6e90dc9 100644 --- a/Documentation/snippets/positioning-grace-note-beams-at-the-height-of-normal-note-beams.ly +++ b/Documentation/snippets/positioning-grace-note-beams-at-the-height-of-normal-note-beams.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "rhythms" diff --git a/Documentation/snippets/positioning-grace-notes-with-floating-space.ly b/Documentation/snippets/positioning-grace-notes-with-floating-space.ly index 3dc11affca..0bbbdf1624 100644 --- a/Documentation/snippets/positioning-grace-notes-with-floating-space.ly +++ b/Documentation/snippets/positioning-grace-notes-with-floating-space.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.28" \header { lsrtags = "rhythms" @@ -25,7 +25,7 @@ the) graces are put left of the musical columns for the main notes. \override Score.SpacingSpanner.strict-grace-spacing = ##t \new Staff \new Voice { \afterGrace c4 { c16[ c8 c16] } - c8[ \grace { b16[ d] } c8] + c8[ \grace { b16 d } c8] c4 r } \new Staff { diff --git a/Documentation/snippets/positioning-multi-measure-rests.ly b/Documentation/snippets/positioning-multi-measure-rests.ly index 34c688c71b..b32e5b9a51 100644 --- a/Documentation/snippets/positioning-multi-measure-rests.ly +++ b/Documentation/snippets/positioning-multi-measure-rests.ly @@ -4,8 +4,8 @@ % and then run scripts/auxiliar/makelsr.py % % This file is in the public domain. -%% Note: this file works from version 2.17.6 -\version "2.17.6" +%% Note: this file works from version 2.17.18 +\version "2.17.18" \header { lsrtags = "rhythms, tweaks-and-overrides" @@ -58,10 +58,10 @@ follows: % in all voices to avoid multiple instances being printed \compressFullBarRests << - \revert MultiMeasureRest.staff-position + \revert MultiMeasureRest.direction { R1*3 } \\ - \revert MultiMeasureRest.staff-position + \revert MultiMeasureRest.direction { R1*3 } >> } diff --git a/Documentation/snippets/positioning-segno-and-coda-with-line-break.ly b/Documentation/snippets/positioning-segno-and-coda-with-line-break.ly index 01007415b5..b03aa21b89 100644 --- a/Documentation/snippets/positioning-segno-and-coda-with-line-break.ly +++ b/Documentation/snippets/positioning-segno-and-coda-with-line-break.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "breaks, repeats, symbols-and-glyphs, workaround" diff --git a/Documentation/snippets/positioning-text-markups-inside-slurs.ly b/Documentation/snippets/positioning-text-markups-inside-slurs.ly index 57cfdeffc2..8348981a4e 100644 --- a/Documentation/snippets/positioning-text-markups-inside-slurs.ly +++ b/Documentation/snippets/positioning-text-markups-inside-slurs.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "editorial-annotations, expressive-marks, tweaks-and-overrides" diff --git a/Documentation/snippets/preventing-final-mark-from-removing-final-tuplet.ly b/Documentation/snippets/preventing-final-mark-from-removing-final-tuplet.ly index 353ef07352..db86ab6d76 100644 --- a/Documentation/snippets/preventing-final-mark-from-removing-final-tuplet.ly +++ b/Documentation/snippets/preventing-final-mark-from-removing-final-tuplet.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.11" \header { lsrtags = "rhythms" diff --git a/Documentation/snippets/printing-bar-numbers-at-regular-intervals.ly b/Documentation/snippets/printing-bar-numbers-at-regular-intervals.ly index 07b8f55dd7..75c335bdea 100644 --- a/Documentation/snippets/printing-bar-numbers-at-regular-intervals.ly +++ b/Documentation/snippets/printing-bar-numbers-at-regular-intervals.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "rhythms" diff --git a/Documentation/snippets/printing-bar-numbers-inside-boxes-or-circles.ly b/Documentation/snippets/printing-bar-numbers-inside-boxes-or-circles.ly index c4ef60db5c..63b65a8372 100644 --- a/Documentation/snippets/printing-bar-numbers-inside-boxes-or-circles.ly +++ b/Documentation/snippets/printing-bar-numbers-inside-boxes-or-circles.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "rhythms, tweaks-and-overrides" diff --git a/Documentation/snippets/printing-hairpins-using-al-niente-notation.ly b/Documentation/snippets/printing-hairpins-using-al-niente-notation.ly index cc0d2ba549..634017285c 100644 --- a/Documentation/snippets/printing-hairpins-using-al-niente-notation.ly +++ b/Documentation/snippets/printing-hairpins-using-al-niente-notation.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "expressive-marks" diff --git a/Documentation/snippets/printing-marks-at-the-end-of-a-line.ly b/Documentation/snippets/printing-marks-at-the-end-of-a-line.ly index bd6cfefb73..89e2fbf87a 100644 --- a/Documentation/snippets/printing-marks-at-the-end-of-a-line.ly +++ b/Documentation/snippets/printing-marks-at-the-end-of-a-line.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "text" diff --git a/Documentation/snippets/printing-metronome-and-rehearsal-marks-below-the-staff.ly b/Documentation/snippets/printing-metronome-and-rehearsal-marks-below-the-staff.ly index ce7c0ae688..4c563872b4 100644 --- a/Documentation/snippets/printing-metronome-and-rehearsal-marks-below-the-staff.ly +++ b/Documentation/snippets/printing-metronome-and-rehearsal-marks-below-the-staff.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "expressive-marks, rhythms, tweaks-and-overrides" diff --git a/Documentation/snippets/printing-music-with-different-time-signatures.ly b/Documentation/snippets/printing-music-with-different-time-signatures.ly index 905d2d438c..8d52ffd405 100644 --- a/Documentation/snippets/printing-music-with-different-time-signatures.ly +++ b/Documentation/snippets/printing-music-with-different-time-signatures.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.11" \header { lsrtags = "contemporary-notation, percussion, real-music, really-cool, rhythms" diff --git a/Documentation/snippets/proportional-strict-notespacing.ly b/Documentation/snippets/proportional-strict-notespacing.ly index 4909122f0d..b5d489208d 100644 --- a/Documentation/snippets/proportional-strict-notespacing.ly +++ b/Documentation/snippets/proportional-strict-notespacing.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.28" \header { lsrtags = "spacing, tweaks-and-overrides" @@ -24,7 +24,7 @@ the note that occurs at the same time. This may cause collisions. \set Score.proportionalNotationDuration = #(ly:make-moment 1/16) \new Staff { c8[ c \clef alto c c \grace { d16 } c8 c] c4 - c2 \grace { c16[ c16] } c2 + c2 \grace { c16 c16 } c2 } \new Staff { c2 \tuplet 3/2 { c8 \clef bass cis,, c } c4 diff --git a/Documentation/snippets/putting-lyrics-inside-the-staff.ly b/Documentation/snippets/putting-lyrics-inside-the-staff.ly index 6be31f68d6..4edd6a59e5 100644 --- a/Documentation/snippets/putting-lyrics-inside-the-staff.ly +++ b/Documentation/snippets/putting-lyrics-inside-the-staff.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "staff-notation, text, vocal-music" diff --git a/Documentation/snippets/quoting-another-voice.ly b/Documentation/snippets/quoting-another-voice.ly index 2c6877de56..b834961374 100644 --- a/Documentation/snippets/quoting-another-voice.ly +++ b/Documentation/snippets/quoting-another-voice.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "staff-notation" diff --git a/Documentation/snippets/recorder-fingering-chart.ly b/Documentation/snippets/recorder-fingering-chart.ly index a735a2adef..a3323302ab 100644 --- a/Documentation/snippets/recorder-fingering-chart.ly +++ b/Documentation/snippets/recorder-fingering-chart.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "winds" diff --git a/Documentation/snippets/removing-connecting-bar-lines-on-staffgroup,-pianostaff,-or-grandstaff.ly b/Documentation/snippets/removing-connecting-bar-lines-on-staffgroup,-pianostaff,-or-grandstaff.ly index bddac96df1..fd0fdce662 100644 --- a/Documentation/snippets/removing-connecting-bar-lines-on-staffgroup,-pianostaff,-or-grandstaff.ly +++ b/Documentation/snippets/removing-connecting-bar-lines-on-staffgroup,-pianostaff,-or-grandstaff.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "rhythms, tweaks-and-overrides" diff --git a/Documentation/snippets/removing-the-first-empty-line.ly b/Documentation/snippets/removing-the-first-empty-line.ly index 61c8d537b9..6cad882e87 100644 --- a/Documentation/snippets/removing-the-first-empty-line.ly +++ b/Documentation/snippets/removing-the-first-empty-line.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "breaks, staff-notation, tweaks-and-overrides" diff --git a/Documentation/snippets/repeats-headword.ly b/Documentation/snippets/repeats-headword.ly index 0055a81b41..fa562f980a 100644 --- a/Documentation/snippets/repeats-headword.ly +++ b/Documentation/snippets/repeats-headword.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.5" \header { lsrtags = "headword" diff --git a/Documentation/snippets/rest-styles.ly b/Documentation/snippets/rest-styles.ly index 8f3f179ef7..789f0b6d34 100644 --- a/Documentation/snippets/rest-styles.ly +++ b/Documentation/snippets/rest-styles.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "ancient-notation, rhythms, symbols-and-glyphs, tweaks-and-overrides" diff --git a/Documentation/snippets/rhythmic-slashes.ly b/Documentation/snippets/rhythmic-slashes.ly index 94e1899252..6d47071c79 100644 --- a/Documentation/snippets/rhythmic-slashes.ly +++ b/Documentation/snippets/rhythmic-slashes.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "rhythms, tweaks-and-overrides" diff --git a/Documentation/snippets/rhythms-headword.ly b/Documentation/snippets/rhythms-headword.ly index 3ba5d3fef8..b0c99b7dc4 100644 --- a/Documentation/snippets/rhythms-headword.ly +++ b/Documentation/snippets/rhythms-headword.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.11" \header { lsrtags = "headword" diff --git a/Documentation/snippets/screech-and-boink.ly b/Documentation/snippets/screech-and-boink.ly index da9d8ef43b..86b9fba5e5 100644 --- a/Documentation/snippets/screech-and-boink.ly +++ b/Documentation/snippets/screech-and-boink.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.11" \header { lsrtags = "headword" diff --git a/Documentation/snippets/separating-key-cancellations-from-key-signature-changes.ly b/Documentation/snippets/separating-key-cancellations-from-key-signature-changes.ly index 7d1e5f0380..be7a8967d8 100644 --- a/Documentation/snippets/separating-key-cancellations-from-key-signature-changes.ly +++ b/Documentation/snippets/separating-key-cancellations-from-key-signature-changes.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "pitches, tweaks-and-overrides" diff --git a/Documentation/snippets/setting-hairpin-behavior-at-bar-lines.ly b/Documentation/snippets/setting-hairpin-behavior-at-bar-lines.ly index feb11f4f29..067fbbfd2c 100644 --- a/Documentation/snippets/setting-hairpin-behavior-at-bar-lines.ly +++ b/Documentation/snippets/setting-hairpin-behavior-at-bar-lines.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "expressive-marks, tweaks-and-overrides" diff --git a/Documentation/snippets/setting-the-double-repeat-default-for-volte.ly b/Documentation/snippets/setting-the-double-repeat-default-for-volte.ly index 1528e7c3ba..c469c52e64 100644 --- a/Documentation/snippets/setting-the-double-repeat-default-for-volte.ly +++ b/Documentation/snippets/setting-the-double-repeat-default-for-volte.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.5" \header { lsrtags = "repeats" diff --git a/Documentation/snippets/setting-the-minimum-length-of-hairpins.ly b/Documentation/snippets/setting-the-minimum-length-of-hairpins.ly index 4728462804..dea361c49c 100644 --- a/Documentation/snippets/setting-the-minimum-length-of-hairpins.ly +++ b/Documentation/snippets/setting-the-minimum-length-of-hairpins.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "expressive-marks" diff --git a/Documentation/snippets/shortening-volta-brackets.ly b/Documentation/snippets/shortening-volta-brackets.ly index 154b5ad3c0..611057d4cb 100644 --- a/Documentation/snippets/shortening-volta-brackets.ly +++ b/Documentation/snippets/shortening-volta-brackets.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.11" \header { lsrtags = "repeats" diff --git a/Documentation/snippets/showing-the-same-articulation-above-and-below-a-note-or-chord.ly b/Documentation/snippets/showing-the-same-articulation-above-and-below-a-note-or-chord.ly index bbc8140550..ec67a11657 100644 --- a/Documentation/snippets/showing-the-same-articulation-above-and-below-a-note-or-chord.ly +++ b/Documentation/snippets/showing-the-same-articulation-above-and-below-a-note-or-chord.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "expressive-marks, tweaks-and-overrides, version-specific" diff --git a/Documentation/snippets/simultaneous-headword.ly b/Documentation/snippets/simultaneous-headword.ly index fa3c0f0efa..a08838f8f8 100644 --- a/Documentation/snippets/simultaneous-headword.ly +++ b/Documentation/snippets/simultaneous-headword.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.11" \header { lsrtags = "headword" diff --git a/Documentation/snippets/slides-in-tablature.ly b/Documentation/snippets/slides-in-tablature.ly index 877d2e56a3..760135cda9 100644 --- a/Documentation/snippets/slides-in-tablature.ly +++ b/Documentation/snippets/slides-in-tablature.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "fretted-strings" diff --git a/Documentation/snippets/stem-and-beam-behavior-in-tablature.ly b/Documentation/snippets/stem-and-beam-behavior-in-tablature.ly index a2ee5cde32..b5960df497 100644 --- a/Documentation/snippets/stem-and-beam-behavior-in-tablature.ly +++ b/Documentation/snippets/stem-and-beam-behavior-in-tablature.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "fretted-strings" diff --git a/Documentation/snippets/stemlets.ly b/Documentation/snippets/stemlets.ly index 4bbd598a68..ca7ba83625 100644 --- a/Documentation/snippets/stemlets.ly +++ b/Documentation/snippets/stemlets.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "contemporary-notation, rhythms" diff --git a/Documentation/snippets/subdividing-beams.ly b/Documentation/snippets/subdividing-beams.ly index b60a82de51..e7080e65a5 100644 --- a/Documentation/snippets/subdividing-beams.ly +++ b/Documentation/snippets/subdividing-beams.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.11" \header { lsrtags = "rhythms" diff --git a/Documentation/snippets/suppressing-warnings-for-clashing-note-columns.ly b/Documentation/snippets/suppressing-warnings-for-clashing-note-columns.ly index f77144a033..0ecae8edd5 100644 --- a/Documentation/snippets/suppressing-warnings-for-clashing-note-columns.ly +++ b/Documentation/snippets/suppressing-warnings-for-clashing-note-columns.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "simultaneous-notes, tweaks-and-overrides" diff --git a/Documentation/snippets/table-of-contents.ly b/Documentation/snippets/table-of-contents.ly index ed7c8f0b99..51542ae679 100644 --- a/Documentation/snippets/table-of-contents.ly +++ b/Documentation/snippets/table-of-contents.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.16.0" \header { lsrtags = "paper-and-layout" diff --git a/Documentation/snippets/text-headword.ly b/Documentation/snippets/text-headword.ly index 3884c48fda..0bcd3763ef 100644 --- a/Documentation/snippets/text-headword.ly +++ b/Documentation/snippets/text-headword.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.28" \header { lsrtags = "headword" @@ -96,7 +96,7 @@ Text headword c''32 df''32 ef''32 - \acciaccatura { df''[ ef'' ] } + \acciaccatura { df'' ef'' } f''8 ef''16 df''16 diff --git a/Documentation/snippets/time-signature-in-parentheses---method-3.ly b/Documentation/snippets/time-signature-in-parentheses---method-3.ly index c48fddac86..5eebaacc09 100644 --- a/Documentation/snippets/time-signature-in-parentheses---method-3.ly +++ b/Documentation/snippets/time-signature-in-parentheses---method-3.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "specific-notation, staff-notation, tweaks-and-overrides" diff --git a/Documentation/snippets/time-signature-in-parentheses.ly b/Documentation/snippets/time-signature-in-parentheses.ly index d1f775f38a..257034d959 100644 --- a/Documentation/snippets/time-signature-in-parentheses.ly +++ b/Documentation/snippets/time-signature-in-parentheses.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "specific-notation, staff-notation, tweaks-and-overrides" diff --git a/Documentation/snippets/time-signature-printing-only-the-numerator-as-a-number-instead-of-the-fraction.ly b/Documentation/snippets/time-signature-printing-only-the-numerator-as-a-number-instead-of-the-fraction.ly index ab1392209e..bee629dc69 100644 --- a/Documentation/snippets/time-signature-printing-only-the-numerator-as-a-number-instead-of-the-fraction.ly +++ b/Documentation/snippets/time-signature-printing-only-the-numerator-as-a-number-instead-of-the-fraction.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "rhythms, tweaks-and-overrides" diff --git a/Documentation/snippets/transcription-of-ancient-music-with-incipit.ly b/Documentation/snippets/transcription-of-ancient-music-with-incipit.ly index 3f44a42a09..0de6d91f4a 100644 --- a/Documentation/snippets/transcription-of-ancient-music-with-incipit.ly +++ b/Documentation/snippets/transcription-of-ancient-music-with-incipit.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "ancient-notation, specific-notation, tweaks-and-overrides, workaround" diff --git a/Documentation/snippets/tweaking-clef-properties.ly b/Documentation/snippets/tweaking-clef-properties.ly index 35243fa1d5..a43faaca38 100644 --- a/Documentation/snippets/tweaking-clef-properties.ly +++ b/Documentation/snippets/tweaking-clef-properties.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.18" \header { lsrtags = "pitches, staff-notation, tweaks-and-overrides" diff --git a/Documentation/snippets/tweaking-grace-layout-within-music.ly b/Documentation/snippets/tweaking-grace-layout-within-music.ly index 58ef5f98c0..b038e101b1 100644 --- a/Documentation/snippets/tweaking-grace-layout-within-music.ly +++ b/Documentation/snippets/tweaking-grace-layout-within-music.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.28" \header { lsrtags = "rhythms, tweaks-and-overrides" @@ -27,8 +27,8 @@ up, and changes the default note heads to crosses. $(add-grace-property 'Voice 'NoteHead 'style 'cross) \new Voice { \acciaccatura { f16 } g4 - \grace { d16[ e] } f4 - \appoggiatura { f,32[ g a] } e2 + \grace { d16 e } f4 + \appoggiatura { f,32 g a } e2 } } } diff --git a/Documentation/snippets/using-ly-grob-object-to-access-grobs-with--tweak.ly b/Documentation/snippets/using-ly-grob-object-to-access-grobs-with--tweak.ly index c38ab0113e..c2e4685015 100644 --- a/Documentation/snippets/using-ly-grob-object-to-access-grobs-with--tweak.ly +++ b/Documentation/snippets/using-ly-grob-object-to-access-grobs-with--tweak.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "devel, scheme-language, tweaks-and-overrides" diff --git a/Documentation/snippets/using-postscript-to-generate-special-note-head-shapes.ly b/Documentation/snippets/using-postscript-to-generate-special-note-head-shapes.ly index 8be7366032..976387a0d1 100644 --- a/Documentation/snippets/using-postscript-to-generate-special-note-head-shapes.ly +++ b/Documentation/snippets/using-postscript-to-generate-special-note-head-shapes.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "editorial-annotations, really-cool, scheme-language, tweaks-and-overrides" diff --git a/Documentation/snippets/using-the--tweak-command-to-tweak-individual-grobs.ly b/Documentation/snippets/using-the--tweak-command-to-tweak-individual-grobs.ly index 7867561dd4..f6bb8ed356 100644 --- a/Documentation/snippets/using-the--tweak-command-to-tweak-individual-grobs.ly +++ b/Documentation/snippets/using-the--tweak-command-to-tweak-individual-grobs.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "really-simple, tweaks-and-overrides" diff --git a/Documentation/snippets/using-the-whiteout-property.ly b/Documentation/snippets/using-the-whiteout-property.ly index bc92196ae9..2e9f1a3243 100644 --- a/Documentation/snippets/using-the-whiteout-property.ly +++ b/Documentation/snippets/using-the-whiteout-property.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "editorial-annotations, expressive-marks" diff --git a/Documentation/snippets/vertical-aligned-staffgroups-without-connecting-systemstartbar.ly b/Documentation/snippets/vertical-aligned-staffgroups-without-connecting-systemstartbar.ly index 6b4a50016b..f90376adef 100644 --- a/Documentation/snippets/vertical-aligned-staffgroups-without-connecting-systemstartbar.ly +++ b/Documentation/snippets/vertical-aligned-staffgroups-without-connecting-systemstartbar.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.19" \header { lsrtags = "paper-and-layout, staff-notation, syntax-and-expressions" diff --git a/Documentation/snippets/vertically-aligned-dynamics-and-textscripts.ly b/Documentation/snippets/vertically-aligned-dynamics-and-textscripts.ly index 494a2c9b0c..82a609c12f 100644 --- a/Documentation/snippets/vertically-aligned-dynamics-and-textscripts.ly +++ b/Documentation/snippets/vertically-aligned-dynamics-and-textscripts.ly @@ -1,20 +1,21 @@ -%% DO NOT EDIT this file manually; it is automatically -%% generated from LSR http://lsr.dsi.unimi.it -%% Make any changes in LSR itself, or in Documentation/snippets/new/ , -%% and then run scripts/auxiliar/makelsr.py -%% -%% This file is in the public domain. -\version "2.17.25" +% DO NOT EDIT this file manually; it is automatically +% generated from Documentation/snippets/new +% Make any changes in Documentation/snippets/new/ +% and then run scripts/auxiliar/makelsr.py +% +% This file is in the public domain. +%% Note: this file works from version 2.17.27 +\version "2.17.27" \header { lsrtags = "spacing, tweaks-and-overrides, workaround" texidoc = " -By setting the @code{'Y-extent} property to a suitable value, all -@code{DynamicLineSpanner} objects (hairpins and dynamic texts) can be -aligned to a common reference point, regardless of their actual extent. -This way, every element will be vertically aligned, thus producing a -more pleasing output. +All @code{DynamicLineSpanner} objects (hairpins and dynamic texts) are +placed with their reference line at least @code{'staff-padding} from +the staff, unless other notation forces them to be farther. +Setting @code{'staff-padding} to a sufficiently large value aligns the +dynamics. The same idea, together with @code{\\textLengthOn}, is used to align the text scripts along their baseline. @@ -34,9 +35,8 @@ music = \relative c' { { \music \break - \override DynamicLineSpanner.staff-padding = #2.0 - \override DynamicLineSpanner.Y-extent = #'(-1.5 . 1.5) + \override DynamicLineSpanner.staff-padding = #3 \textLengthOn - \override TextScript.Y-extent = #'(-1.5 . 1.5) + \override TextScript.staff-padding = #1 \music } diff --git a/Documentation/snippets/vertically-aligning-dynamics-across-multiple-notes.ly b/Documentation/snippets/vertically-aligning-dynamics-across-multiple-notes.ly index ce758facf5..0adb0dec41 100644 --- a/Documentation/snippets/vertically-aligning-dynamics-across-multiple-notes.ly +++ b/Documentation/snippets/vertically-aligning-dynamics-across-multiple-notes.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "expressive-marks" diff --git a/Documentation/snippets/vertically-aligning-ossias-and-lyrics.ly b/Documentation/snippets/vertically-aligning-ossias-and-lyrics.ly index 24c16dbb43..4a85d9d6a4 100644 --- a/Documentation/snippets/vertically-aligning-ossias-and-lyrics.ly +++ b/Documentation/snippets/vertically-aligning-ossias-and-lyrics.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.11" \header { lsrtags = "spacing, tweaks-and-overrides, vocal-music" diff --git a/Documentation/snippets/vertically-centered-common-lyrics.ly b/Documentation/snippets/vertically-centered-common-lyrics.ly index 4552ab287f..7c59cd3b16 100644 --- a/Documentation/snippets/vertically-centered-common-lyrics.ly +++ b/Documentation/snippets/vertically-centered-common-lyrics.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "vocal-music" diff --git a/Documentation/snippets/vocal-ensemble-template-with-automatic-piano-reduction.ly b/Documentation/snippets/vocal-ensemble-template-with-automatic-piano-reduction.ly index ab77e4acdc..8e1796fd47 100644 --- a/Documentation/snippets/vocal-ensemble-template-with-automatic-piano-reduction.ly +++ b/Documentation/snippets/vocal-ensemble-template-with-automatic-piano-reduction.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "automatic-notation, keyboards, template, vocal-music" diff --git a/Documentation/snippets/vocal-ensemble-template-with-verse-and-refrain.ly b/Documentation/snippets/vocal-ensemble-template-with-verse-and-refrain.ly index bf02ff8b46..51ffe694b2 100644 --- a/Documentation/snippets/vocal-ensemble-template-with-verse-and-refrain.ly +++ b/Documentation/snippets/vocal-ensemble-template-with-verse-and-refrain.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "contexts-and-engravers, template, vocal-music" diff --git a/Documentation/snippets/vocal-ensemble-template.ly b/Documentation/snippets/vocal-ensemble-template.ly index 6ad50aa25b..100d57e098 100644 --- a/Documentation/snippets/vocal-ensemble-template.ly +++ b/Documentation/snippets/vocal-ensemble-template.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "really-simple, template, vocal-music" diff --git a/Documentation/snippets/vocal-headword.ly b/Documentation/snippets/vocal-headword.ly index c33cd4a47d..d09d784396 100644 --- a/Documentation/snippets/vocal-headword.ly +++ b/Documentation/snippets/vocal-headword.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "headword" diff --git a/Documentation/snippets/wind-headword.ly b/Documentation/snippets/wind-headword.ly index db40cced9e..821403d192 100644 --- a/Documentation/snippets/wind-headword.ly +++ b/Documentation/snippets/wind-headword.ly @@ -4,7 +4,7 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.17.25" +\version "2.17.6" \header { lsrtags = "headword" diff --git a/Documentation/topdocs/GNUmakefile b/Documentation/topdocs/GNUmakefile index ce3dc1f42b..43a99497c1 100644 --- a/Documentation/topdocs/GNUmakefile +++ b/Documentation/topdocs/GNUmakefile @@ -2,13 +2,16 @@ depth = ../.. STEPMAKE_TEMPLATES=documentation tex texinfo topdocs LOCALSTEPMAKE_TEMPLATES=lilypond ly -OUT_TEXI_FILES = $(TELY_FILES:%.tely=$(outdir)/%.texi) +OUT_TEXI_FILES = $(TEXI_FILES:%.texi=$(outdir)/%.texi) $(TELY_FILES:%.tely=$(outdir)/%.texi) HTML_FILES=$(TEXI_FILES:%.texi=$(outdir)/%.html) $(TELY_FILES:%.tely=$(outdir)/%.html) README_TOP_FILES=NEWS AUTHORS INSTALL README OUTTXT_FILES= $(outdir)/NEWS.txt include $(depth)/make/stepmake.make +DOCUMENTATION_INCLUDES += -I $(outdir) \ + -I $(top-src-dir)/Documentation + # FIXME ad-hoc file copy? $(outdir)/NEWS.tely: $(top-src-dir)/Documentation/changes.tely cp -f $< $@ diff --git a/Documentation/usage/external.itely b/Documentation/usage/external.itely index 136b7a2f31..912d0b84a3 100644 --- a/Documentation/usage/external.itely +++ b/Documentation/usage/external.itely @@ -461,7 +461,7 @@ Quantize note durations on @var{DUR}. @item -e, --explicit-durations Print explicit durations. -@item -h,--help +@item -h, --help Show summary of usage. @item -k, --key=@var{acc}[:@var{minor}] @@ -530,7 +530,7 @@ The following options are supported by @command{musicxml2ly}: @item -a, --absolute convert pitches in absolute mode. -@item -h,--help +@item -h, --help print usage and option summary. @item -l, --language=LANG @@ -554,21 +554,21 @@ articulations, dynamics, etc. do not convert beaming information, use LilyPond's automatic beaming instead. -@item -o,--output=@var{file} +@item -o, --output=@var{file} set output filename to @var{file}. If @var{file} is @file{-}, the output will be printed on stdout. If not given, @var{xml-file}@file{.ly} will be used. -@item -r,--relative +@item -r, --relative convert pitches in relative mode (default). -@item -v,--verbose +@item -v, --verbose be verbose. @item --version print version information. -@item -z,--compressed +@item -z, --compressed input file is a zip-compressed MusicXML file. @end table @@ -596,13 +596,13 @@ abc2ly [@var{option}]@dots{} @var{abc-file} The following options are supported by @command{abc2ly}: @table @code -@item -b,--beams=None +@item -b, --beams=None preserve ABC's notion of beams -@item -h,--help +@item -h, --help this help -@item -o,--output=@var{file} +@item -o, --output=@var{file} set output filename to @var{file}. -@item -s,--strict +@item -s, --strict be strict about success @item --version print version information. @@ -669,9 +669,9 @@ more information about this. The following options are supported by @command{etf2ly}: @table @code -@item -h,--help +@item -h, --help this help -@item -o,--output=@var{FILE} +@item -o, --output=@var{FILE} set output filename to @var{FILE} @item --version version information diff --git a/Documentation/usage/running.itely b/Documentation/usage/running.itely index 46d1f86b63..9e736bda01 100644 --- a/Documentation/usage/running.itely +++ b/Documentation/usage/running.itely @@ -134,13 +134,13 @@ The following options are supported: @table @code -@item -d,--define-default=@var{var}=@var{val} +@item -d, --define-default=@var{var}=@var{val} See @ref{Advanced command line options for LilyPond}. @cindex Scheme, expression evaluation @cindex expression evaluation, Scheme -@item -e,--evaluate=@var{expr} +@item -e, --evaluate=@var{expr} Evaluate the Scheme @var{expr} before parsing any @file{.ly} files. Multiple @option{-e} options may be given, they will be evaluated sequentially. @@ -167,19 +167,19 @@ at the top of the @code{.ly} file. @cindex output, format @cindex format, output -@item -f,--format=@var{format} +@item -f, --format=@var{format} which formats should be written. Choices for @code{format} are @code{ps}, @code{pdf}, and @code{png}. Example: @code{lilypond -fpng @var{filename}.ly} -@item -h,--help +@item -h, --help Show a summary of usage. -@item -H,--header=@var{FIELD} +@item -H, --header=@var{FIELD} Dump a header field to file @file{BASENAME.@var{FIELD}}. -@item -i,--init=@var{file} +@item -i, --init=@var{file} Set init file to @var{file} (default: @file{init.ly}). @cindex file searching @@ -194,7 +194,7 @@ search will continue in subsequent directories. @cindex chroot jail, running inside -@item -j,--jail=@var{user},@var{group},@var{jail},@var{dir} +@item -j, --jail=@var{user},@var{group},@var{jail},@var{dir} Run @command{lilypond} in a chroot jail. The @option{--jail} option provides a more flexible alternative to @@ -257,7 +257,7 @@ the amount of memory that can be allocated. Also see @cindex loglevel @cindex output, verbosity -@item -l,--loglevel=@var{LEVEL} +@item -l, --loglevel=@var{LEVEL} Set the verbosity of the console output to @var{LEVEL}. Possible values are: @@ -290,7 +290,7 @@ All possible messages, including verbose debug output. @cindex output, setting filename @cindex output, directory -@item -o,--output=@var{FILE} or @var{FOLDER} +@item -o, --output=@var{FILE} or @var{FOLDER} Set the default output file to @var{FILE} or, if a folder with that name exists, direct the output to @var{FOLDER}, taking the file name from the input file. The appropriate suffix will be added (e.g. @code{.pdf} for @@ -319,14 +319,14 @@ Generate pictures of each page, in PNG format. This implies @item --pdf Generate PDF. This implies @option{--ps}. -@item -v,--version +@item -v, --version Show version information. -@item -V,--verbose +@item -V, --verbose Be verbose: show full paths of all files read, and give timing information. -@item -w,--warranty +@item -w, --warranty Show the warranty with which GNU LilyPond comes. (It comes with @strong{NO WARRANTY}!) @@ -923,7 +923,7 @@ are easily handled. * Error message Unbound variable %:: * Error message FT_Get_Glyph_Name:: * Warning staff affinities should only decrease:: -* Error message unexpected \new:: +* Error message unexpected new:: @end menu @node Music runs off the page @@ -1046,8 +1046,8 @@ at its start. For details, see @qq{Spacing of non-staff lines} in @ruser{Flexible vertical spacing within systems}. -@node Error message unexpected \new -@unnumberedsubsec Error message unexpected @code{\new} +@node Error message unexpected new +@unnumberedsubsec Error message unexpected @code{@bs{}new} A @code{\score} block must contain a @emph{single} music expression. If instead it contains several @code{\new Staff}, diff --git a/Documentation/usage/updating.itely b/Documentation/usage/updating.itely index 6d8e73216b..06a960ac8a 100644 --- a/Documentation/usage/updating.itely +++ b/Documentation/usage/updating.itely @@ -148,17 +148,23 @@ convert-ly [@var{option}]@dots{} @var{filename}@dots{} The following options can be given: @table @code -@item -d,--diff-version-update +@item -d, --diff-version-update increase the @code{\version} string only if the file has actually -been changed. Without this option (or when any conversion has -changed the file), the version header reflects the last considered -conversion rule. +been changed. In that case, the version header will correspond to +the version after the last actual change. Without that option, +the version will reflect the last @emph{attempted} conversion. -@item -e,--edit +@item -e, --edit Apply the conversions direct to the input file, modifying it -in-place. +in-place. The original file is renamed as @file{myfile.ly~}. This +backup file may be a hidden file on some operating systems. -@item -f,--from=@var{from-patchlevel} +@item -b, --backup-numbered +When used with the @samp{-e} option, number the backup files so that +no previous version is overwritten. The backup files may be hidden +on some operating systems. + +@item -f, --from=@var{from-patchlevel} Set the version to convert from. If this is not set, @command{convert-ly} will guess this, on the basis of @code{\version} strings in the file. E.g. @option{--from=2.10.25} @@ -171,7 +177,7 @@ Set the output verbosity to @var{loglevel}. Possible values, in upper case, are @code{PROGRESS} (the default), @code{NONE}, @code{WARNING}, @code{ERROR} and @code{DEBUG}. -@item -n,--no-version +@item -n, --no-version Normally, @command{convert-ly} adds a @code{\version} indicator to the output. Specifying this option suppresses this. diff --git a/Documentation/web/download.itexi b/Documentation/web/download.itexi index e2b9bae677..91bd1a334c 100644 --- a/Documentation/web/download.itexi +++ b/Documentation/web/download.itexi @@ -220,14 +220,6 @@ sh lilypond-@versionStable{}-OS-TYPE.sh --help @divClass{column-right-top} -@subheading Compiling a file - -@lilypadCommandLine - -@divEnd - - -@divClass{column-left-top} @subheading Distribution-specific Packages Please use your distribution's package manager to install or @@ -265,6 +257,14 @@ openSUSE: LilyPond 2.12.3} @divEnd +@divClass{column-center-top} +@subheading Compiling a file + +@lilypadCommandLine + +@divEnd + + @divClass{column-center-bottom} @subheading Legalese @@ -321,19 +321,12 @@ Delete the LilyPond.app folder. @divEnd -@divClass{column-right-top} -@subheading Compiling a file - -@lilypadOSX - -@divEnd - -@divClass{column-left-top} +@divClass{column-right-top} @subheading Running on the command-line -@warning{If you are happy with the GUI, then please ignore these -instructions.} +@warning{If you are happy with the GUI instructions below, then +please ignore these instructions.} @subsubheading MacOS X on the command line @@ -414,6 +407,14 @@ The same is true for all other scripts in that directory, such as @divEnd +@divClass{column-center-top} +@subheading Compiling a file + +@lilypadOSX + +@divEnd + + @divClass{column-center-bottom} @subheading Legalese @@ -484,18 +485,10 @@ button when the uninstaller has completed. @divClass{column-right-top} -@subheading Compiling a file - -@lilypadWindows - -@divEnd - - -@divClass{column-left-top} @subheading Running on the command-line -@warning{If you are happy with the GUI, then please ignore these -instructions.} +@warning{If you are happy with the GUI instructions below, then +please ignore these instructions.} @subsubheading Windows on the command line @@ -545,6 +538,14 @@ lilypond test.ly @divEnd +@divClass{column-center-top} +@subheading Compiling a file + +@lilypadWindows + +@divEnd + + @divClass{column-center-bottom} @subheading Legalese diff --git a/Documentation/web/news-front.itexi b/Documentation/web/news-front.itexi index 298cbb6cb5..0e3e20be89 100644 --- a/Documentation/web/news-front.itexi +++ b/Documentation/web/news-front.itexi @@ -9,9 +9,9 @@ @c used for news about the upcoming release; see CG 10.2 @newsItem -@subsubheading LilyPond 2.17.26 released! @emph{September 8, 2013} +@subsubheading LilyPond 2.17.28 released! @emph{October 6, 2013} -We are happy to announce the release of LilyPond 2.17.26. This +We are happy to announce the release of LilyPond 2.17.28. This release contains the usual number of bugfixes and enhancements, and contains some work in progress. You will have access to the very latest features, but some may be incomplete, and you may encounter bugs and crashes. If you require @@ -19,22 +19,11 @@ a stable version of Lilypond, we recommend using the 2.16 version. @newsEnd -@newsItem -@subsubheading LilyPond blog moved! @emph{June 29, 2013} - -The LilyPond blog, which was previously hosted on -@uref{http://lilypondblog.wordpress.com/, wordpress.com}, has moved -to a new domain: you can now find it at -@uref{http://lilypondblog.org/, lilypondblog.org}! - -@newsEnd - @newsItem @subsubheading LilyPond blog. @emph{June 2, 2013} -Janek Warchoł has created a LilyPond blog. It's currently hosted on -Wordpress - follow @uref{http://lilypondblog.wordpress.com/, this link} to read -it and to contribute. +Janek Warchoł has created a LilyPond blog. You can find it at +@uref{http://lilypondblog.org/, lilypondblog.org}! @newsEnd diff --git a/Documentation/web/news.itexi b/Documentation/web/news.itexi index d29081cf01..c54ebee468 100644 --- a/Documentation/web/news.itexi +++ b/Documentation/web/news.itexi @@ -26,6 +26,28 @@ NOTE: * don't duplicate entries from news-front.itexi @end ignore +@newsItem +@subsubheading LilyPond 2.17.27 released! @emph{September 26, 2013} + +We are happy to announce the release of LilyPond 2.17.27. This +release contains the usual number of bugfixes and enhancements, and contains +some work in progress. You will have access to the very latest features, but +some may be incomplete, and you may encounter bugs and crashes. If you require +a stable version of Lilypond, we recommend using the 2.16 version. + +@newsEnd + +@newsItem +@subsubheading LilyPond 2.17.26 released! @emph{September 8, 2013} + +We are happy to announce the release of LilyPond 2.17.26. This +release contains the usual number of bugfixes and enhancements, and contains +some work in progress. You will have access to the very latest features, but +some may be incomplete, and you may encounter bugs and crashes. If you require +a stable version of Lilypond, we recommend using the 2.16 version. + +@newsEnd + @newsItem @subsubheading LilyPond 2.17.25 released! @emph{August 25, 2013} diff --git a/VERSION b/VERSION index 3aa1a38adf..9677f57b03 100644 --- a/VERSION +++ b/VERSION @@ -1,7 +1,7 @@ PACKAGE_NAME=LilyPond MAJOR_VERSION=2 MINOR_VERSION=17 -PATCH_LEVEL=27 +PATCH_LEVEL=29 MY_PATCH_LEVEL= VERSION_STABLE=2.16.2 -VERSION_DEVEL=2.17.26 +VERSION_DEVEL=2.17.28 diff --git a/aclocal.m4 b/aclocal.m4 index 87d8474316..c9f0093381 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -1167,6 +1167,14 @@ AC_DEFUN(STEPMAKE_TEXMF_DIRS, [ AC_DEFUN(STEPMAKE_TEXMF, [ STEPMAKE_PROGS(METAFONT, mf-nowin mf mfw mfont, $1) STEPMAKE_PROGS(METAPOST, mpost, $1) + if test "$METAPOST" != ""; then + ver=`STEPMAKE_GET_VERSION($METAPOST)` + num=`STEPMAKE_NUMERIC_VERSION($ver)` + # Avoid buggy metapost versions: 1.600 <= x < 1.803 + if test "$num" -ge "1600000" -a "$num" -lt "1803000"; then + STEPMAKE_ADD_ENTRY($1, ["mpost (due to a bug in metapost, versions 1.600 <= x < 1.803 are not supported; installed: $ver)"]) + fi + fi AC_MSG_CHECKING(for working metafont mode) modelist='ljfour lj4 lj3 lj2 ljet laserjet' diff --git a/configure.ac b/configure.ac index 984ecbce1d..008befe4ec 100644 --- a/configure.ac +++ b/configure.ac @@ -120,7 +120,7 @@ STEPMAKE_LIB(REQUIRED) STEPMAKE_DLOPEN # Do not use bison 1.50 and 1.75. # 1.29 is required fr %locations, but I'm not sure it's enough --ns -STEPMAKE_BISON(OPTIONAL, 1.29) +STEPMAKE_BISON(REQUIRED, 1.29) STEPMAKE_FLEX(REQUIRED) STEPMAKE_FLEXLEXER(REQUIRED) STEPMAKE_FLEXLEXER_LOCATION @@ -214,8 +214,8 @@ STEPMAKE_WINDOWS # guile executable for some scripts STEPMAKE_GUILE(OPTIONAL, 1.8.2, 1.9.0) -# perl for help2man. -STEPMAKE_PERL(OPTIONAL) +# perl for help2man and for mf2pt1.pl +STEPMAKE_PERL(REQUIRED) ## Optional tools for building documentation, website, extra fonts. if test "$DOCUMENTATION" = "yes"; then diff --git a/input/regression/beam-beamlet-grace.ly b/input/regression/beam-beamlet-grace.ly index 73de47896c..75de18e031 100644 --- a/input/regression/beam-beamlet-grace.ly +++ b/input/regression/beam-beamlet-grace.ly @@ -3,12 +3,12 @@ texidoc = "Beamlets in grace notes remain readable." } -\version "2.16.0" +\version "2.17.28" \layout { ragged-right = ##t } \relative c' \context Staff { - f1 \grace { a'8[ f16] } g1 + f1 \grace { a'8 f16 } g1 } diff --git a/input/regression/beam-collision-grace.ly b/input/regression/beam-collision-grace.ly index 441ed49865..cdc747be20 100644 --- a/input/regression/beam-collision-grace.ly +++ b/input/regression/beam-collision-grace.ly @@ -1,6 +1,6 @@ -\version "2.16.0" +\version "2.17.28" \header { texidoc = " The beaming algorithm handles collisions between beams and @@ -8,7 +8,7 @@ grace notes too. " } \relative c' { - e'8[ f e \grace { f,16[ a] } e'8] + e'8[ f e \grace { f,16 a } e'8] } \relative c'{ diff --git a/input/regression/flags-straight.ly b/input/regression/flags-straight.ly index 80eb28c7f6..7e96536e6a 100644 --- a/input/regression/flags-straight.ly +++ b/input/regression/flags-straight.ly @@ -6,7 +6,7 @@ % test notes, which will be shown in different styles: -testnotes = { \autoBeamOff c'8 d'16 c'32 d'64 \acciaccatura {c'8} d'64 +testnotes = { \autoBeamOff c'8 d'16 c'32 d'64 \acciaccatura {c'8} d'64 c''8 d''16 c''32 d''64 \acciaccatura {\stemDown c''8 \stemNeutral} d''64 } { @@ -19,9 +19,13 @@ testnotes = { \autoBeamOff c'8 d'16 c'32 d'64 \acciaccatura {c'8} d'64 \mark "old straight (large angles)" \override Flag.stencil = #old-straight-flag \testnotes + + \mark "flat" + \override Flag.stencil = #flat-flag + \testnotes % % \mark "custom slant" -% % Custom straight flag. The parameters are: +% % Custom straight flag. The parameters are: % % flag thickness and spacing % % up-flag angle and length % % down-flag angle and length diff --git a/input/regression/grace-auto-beam-engraver.ly b/input/regression/grace-auto-beam-engraver.ly new file mode 100644 index 0000000000..4e7ff31b57 --- /dev/null +++ b/input/regression/grace-auto-beam-engraver.ly @@ -0,0 +1,40 @@ +\version "2.17.28" + +\header +{ + texidoc = "A separate @samp{Grace_auto_beam_engraver} initiates +autobeaming at the start of each @code{\\grace} command." +} + +\layout { short-indent = 1\cm indent = 2\cm } + +music = { + \mark "manual" + \relative c'' { + \grace {a8[ b] } a1 + \grace {a8[ b c b gis] } a1 + \grace {a8[ b c32 b c16 gis] } a1 + \grace {a8[ b c16 d] c4 b8[ gis] } a1 + \grace {a8[ b c16 d] c4 b8 a b\fermata a16[ gis] } a1 + } \break + \mark "automatic" + \relative c'' { + \grace {a8 b } a1 + \grace {a8 b c b gis } a1 + \grace {a8 b c32 b c16 gis } a1 + \grace {a8 b c16 d c4 b8 gis } a1 + \grace {a8 b c16 d c4 b8 a b\fermata a16 gis } a1 + } +} + +\score { + << + \new Staff \with { instrumentName = \markup \center-column + { without engraver } } + \new Voice \with { \remove "Grace_auto_beam_engraver" } + \music + \new Staff \with { instrumentName = \markup \center-column + { with engraver } } + \new Voice \music + >> +} diff --git a/input/regression/grace-bar-line.ly b/input/regression/grace-bar-line.ly index dbd2c32082..badaa1ae74 100644 --- a/input/regression/grace-bar-line.ly +++ b/input/regression/grace-bar-line.ly @@ -1,5 +1,5 @@ -\version "2.16.0" +\version "2.17.28" \header { texidoc = "Bar line should come before the grace note." } @@ -11,7 +11,7 @@ \relative c' \context Staff { - f1 \grace { a'16[ f] } g1 } + f1 \grace { a'16 f } g1 } diff --git a/input/regression/grace-beam.ly b/input/regression/grace-beam.ly index 0aa75547f8..8566a522ea 100644 --- a/input/regression/grace-beam.ly +++ b/input/regression/grace-beam.ly @@ -9,10 +9,10 @@ Unbeamed grace notes are not put into normal beams. \layout { ragged-right= ##t } -\version "2.16.0" +\version "2.17.28" \relative c'' { c4 d8[ - \grace { e32[ d c d] } e8] + \grace { e32 d c d } e8] e[ e \grace { f16 } e8 e] } diff --git a/input/regression/grace-end.ly b/input/regression/grace-end.ly index 9f9551e656..bacb821e1f 100644 --- a/input/regression/grace-end.ly +++ b/input/regression/grace-end.ly @@ -1,4 +1,4 @@ -\version "2.16.0" +\version "2.17.28" #(ly:set-option 'warning-as-error #f) @@ -8,5 +8,5 @@ } \context Voice \relative c' { - c4 \grace { d16[ d16] } + c4 \grace { d16 d16 } } diff --git a/input/regression/grace-start.ly b/input/regression/grace-start.ly index 5e295964cb..419ee40de8 100644 --- a/input/regression/grace-start.ly +++ b/input/regression/grace-start.ly @@ -1,5 +1,5 @@ -\version "2.16.0" +\version "2.17.28" \header { texidoc = "Pieces may begin with grace notes." } @@ -7,9 +7,9 @@ \layout { ragged-right = ##t} \relative c' \context Staff { - \grace { a'16[ f] } g1 + \grace { a'16 f } g1 \bar "||" % test if | and || are synced. - \grace { a16[ bes] } c1 + \grace { a16 bes } c1 \bar "||" % test if | and || are synced. } diff --git a/input/regression/grace-stem-length.ly b/input/regression/grace-stem-length.ly index 49b488b6d9..6bae7e187c 100644 --- a/input/regression/grace-stem-length.ly +++ b/input/regression/grace-stem-length.ly @@ -3,7 +3,7 @@ normal notes, if possible. They should never be longer, even if that would lead to beam quanting problems." } -\version "2.17.6" +\version "2.17.28" \layout { ragged-right = ##t @@ -14,9 +14,9 @@ would lead to beam quanting problems." << { d8.\noBeam d16 } \\ >> \grace { d16 } c8.[ b16] << { c16[ b] } \\ >> - \grace { c16[ b] } d4 + \grace { c16 b } d4 % \override Beam.inspect-quants =#'(2.8 . 2.5) -% \grace { c16[ b] } d4 +% \grace { c16 b } d4 } diff --git a/input/regression/grace-volta-repeat.ly b/input/regression/grace-volta-repeat.ly index b347600cb3..b19a9a7c5f 100644 --- a/input/regression/grace-volta-repeat.ly +++ b/input/regression/grace-volta-repeat.ly @@ -1,4 +1,4 @@ -\version "2.16.0" +\version "2.17.28" \header { @@ -13,8 +13,8 @@ \relative c''{\key a \minor \time 2/4 \repeat "volta" 2 { - \grace { a16[ b] } c4 c4 | - \grace { d16[ b] } c4 c4 | + \grace { a16 b } c4 c4 | + \grace { d16 b } c4 c4 | } } diff --git a/input/regression/grace.ly b/input/regression/grace.ly index 7cea105e64..f86551e089 100644 --- a/input/regression/grace.ly +++ b/input/regression/grace.ly @@ -1,5 +1,5 @@ -\version "2.17.11" +\version "2.17.28" \header{ @@ -16,10 +16,10 @@ Main note scripts do not end up on the grace note. \new Voice \relative c'' { \grace b8 c4\fermata - \grace { c32[ cis32] } gis4 - \grace { cis32[ dis32] } e4 - \grace { c32[ d] }\tuplet 3/2 { c8[ c c] } - \grace { b32[ ( c32] } c4) + \grace { c32 cis32 } gis4 + \grace { cis32 dis32 } e4 + \grace { c32 d }\tuplet 3/2 { c8[ c c] } + \grace { b32 ( c32 } c4) \grace 16 c8[ c8] % \grace c16 c8[ c8] %% broken? diff --git a/input/regression/identifier-quoted.ly b/input/regression/identifier-quoted.ly new file mode 100644 index 0000000000..fa60533851 --- /dev/null +++ b/input/regression/identifier-quoted.ly @@ -0,0 +1,26 @@ +\header +{ + +texidoc = "Music identifiers containing arbitrary characters may be +initialized using +@example +\"violin1\" = @{ c''4 c'' c'' c'' @} +@end example +and used as: +@example +\\new Voice @{ \\\"violin1\" @} +@end example +" + +} + +\version "2.17.28" + +"violin1" = { c''4 c'' c'' c'' } +"violin2" = { a'4 a' a' a' } + +\layout { ragged-right = ##t } + +{ + << \"violin1" \\ \"violin2" >> +} diff --git a/input/regression/lyric-extender-includegraces.ly b/input/regression/lyric-extender-includegraces.ly index cb34df9dcb..1100f625e9 100644 --- a/input/regression/lyric-extender-includegraces.ly +++ b/input/regression/lyric-extender-includegraces.ly @@ -1,4 +1,4 @@ -\version "2.16.0" +\version "2.17.28" \header { texidoc=" @@ -8,7 +8,7 @@ expected also for syllables starting under grace notes. } \relative c' { - c2 \grace { c16([ d e f] } g2) + c2 \grace { c16( d e f } g2) f1 } \addlyrics { diff --git a/input/regression/lyrics-includegraces.ly b/input/regression/lyrics-includegraces.ly index ab2491d4ca..ec3dfe2fc3 100644 --- a/input/regression/lyrics-includegraces.ly +++ b/input/regression/lyrics-includegraces.ly @@ -1,4 +1,4 @@ -\version "2.16.0" +\version "2.17.28" \header { texidoc=" @@ -9,7 +9,7 @@ assigned to grace notes. \relative c' { f4 \appoggiatura a32 b4 - \grace { f16[ a16] } b2 + \grace { f16 a16 } b2 \afterGrace b2 { f16[ a16] } \appoggiatura a32 b4 \acciaccatura a8 b4 diff --git a/input/regression/markup-note-styles.ly b/input/regression/markup-note-styles.ly index 224eaf69d0..f5fbc9b60d 100644 --- a/input/regression/markup-note-styles.ly +++ b/input/regression/markup-note-styles.ly @@ -61,3 +61,12 @@ all note head styles and straight flags." \show-note-styles #'(default) } } + +\markup { + \column { + \combine \null \vspace #1 + \underline "Flat-flag:" + \override #'(flag-style . flat-flag) + \show-note-styles #'(default) + } +} diff --git a/input/regression/markup-note.ly b/input/regression/markup-note.ly index 307336799b..c600fab42f 100644 --- a/input/regression/markup-note.ly +++ b/input/regression/markup-note.ly @@ -58,6 +58,7 @@ mrkp = \override #'(style . mensural) \mrkp \override #'(flag-style . modern-straight-flag) \mrkp \override #'(flag-style . old-straight-flag) \mrkp + \override #'(flag-style . flat-flag) \mrkp } } \override NoteHead.style = #'triangle diff --git a/input/regression/music-map.ly b/input/regression/music-map.ly index 43f346deac..ee6e1eeb1c 100644 --- a/input/regression/music-map.ly +++ b/input/regression/music-map.ly @@ -10,21 +10,14 @@ and dynamics are left over. These are put onto the 2nd measure." } -\version "2.16.0" +\version "2.17.27" #(define (notes-to-skip m) "Convert all stuff with duration (notes, lyrics, bass figures, etc.) to skips. -Scripts and dynamics are maintained. -" - (if (memq 'rhythmic-event (ly:music-property m 'types)) - (let* ((newmus (make-music 'SkipEvent))) - (map - (lambda (x) (ly:music-set-property! newmus (car x) (cdr x))) - (ly:music-mutable-properties m)) - newmus - ) - m) -) +Scripts and dynamics are maintained." + (if (music-is-of-type? m 'rhythmic-event) + (make-music 'SkipEvent m) + m)) \layout { ragged-right= ##t } diff --git a/input/regression/slur-broken-trend.ly b/input/regression/slur-broken-trend.ly index aa1813e05c..81f31fc078 100644 --- a/input/regression/slur-broken-trend.ly +++ b/input/regression/slur-broken-trend.ly @@ -1,5 +1,5 @@ -\version "2.16.0" +\version "2.17.28" \header{ texidoc=" @@ -24,7 +24,7 @@ in unbroken state. \time 4/4 << d1_(\trill { s2 \grace { - c16[ d] + c16 d } } >> \break diff --git a/input/regression/slur-scoring.ly b/input/regression/slur-scoring.ly index ad20304984..4c2f6ae7f1 100644 --- a/input/regression/slur-scoring.ly +++ b/input/regression/slur-scoring.ly @@ -12,7 +12,7 @@ } -\version "2.17.6" +\version "2.17.28" \layout { ragged-right = ##t % #(define debug-slur-scoring #t) @@ -47,7 +47,7 @@ | b='2( a4) s4 | b='4.( c8) s2 | << c=''1_( - { s2 \grace { b16[ c] } } >> + { s2 \grace { b16 c } } >> \break b4) e=''4.( c8) s4 diff --git a/input/regression/spacing-grace.ly b/input/regression/spacing-grace.ly index 58548a92a4..3d64bb03e8 100644 --- a/input/regression/spacing-grace.ly +++ b/input/regression/spacing-grace.ly @@ -5,7 +5,7 @@ run are spaced accordingly. " } -\version "2.17.6" +\version "2.17.28" \paper { ragged-right = ##t } @@ -16,9 +16,9 @@ c \grace { c16 } d - \grace { c16[ d e f] } + \grace { c16 d e f } c - \grace { c8[ c16 d c8] } + \grace { c8 c16 d c8 } c \override Score.GraceSpacing.spacing-increment = #2.0 diff --git a/input/regression/spacing-non-adjacent-columns3.ly b/input/regression/spacing-non-adjacent-columns3.ly index ae928cf683..67389f996f 100644 --- a/input/regression/spacing-non-adjacent-columns3.ly +++ b/input/regression/spacing-non-adjacent-columns3.ly @@ -1,4 +1,4 @@ -\version "2.17.3" +\version "2.17.28" \header { texidoc = "The spacing engine avoids collisions between non-adjacent columns." } @@ -15,7 +15,7 @@ \grace { 8[ f a] } 4 r4 \set fingeringOrientations = #'(right) - 4 \grace { d''8[ e'' d'']} + 4 \grace { d''8 e'' d''} g'4 } >> diff --git a/input/regression/spacing-strict-notespacing.ly b/input/regression/spacing-strict-notespacing.ly index cfe63c8bc8..6e17724c1f 100644 --- a/input/regression/spacing-strict-notespacing.ly +++ b/input/regression/spacing-strict-notespacing.ly @@ -9,7 +9,7 @@ time. This may cause collisions. " } -\version "2.17.11" +\version "2.17.28" \paper { ragged-right = ##t @@ -27,7 +27,7 @@ time. This may cause collisions. " \set Score.proportionalNotationDuration = #(ly:make-moment 1/16) \new Staff { c8[ c \clef alto c c \grace { d16 } c8 c] c4 c2 - \grace { c16[ c16] } + \grace { c16 c16 } c2 } \new Staff { c2 \tuplet 3/2 { c8 \clef bass cis,, c } diff --git a/input/regression/tablature-letter.ly b/input/regression/tablature-letter.ly index 2431769f91..b1e85522a0 100644 --- a/input/regression/tablature-letter.ly +++ b/input/regression/tablature-letter.ly @@ -1,4 +1,4 @@ -\version "2.16.0" +\version "2.17.27" \header { texidoc = " @@ -29,7 +29,7 @@ notes = \relative c' { \score { \new TabStaff \with { - stringTunings = \stringTuning \notemode { } + stringTunings = \stringTuning tablatureFormat = #fret-letter-tablature-format } \new TabVoice { diff --git a/input/regression/tablature-slurs-with-beams.ly b/input/regression/tablature-slurs-with-beams.ly new file mode 100644 index 0000000000..1425ed6807 --- /dev/null +++ b/input/regression/tablature-slurs-with-beams.ly @@ -0,0 +1,36 @@ +\version "2.17.20" + +\header +{ + texidoc = " +Slur placement in complementary tablatures should not be affected by +either automatic or manual beaming. +" +} + +guitarSolo = { + \time 3/4 + \set Timing.beamExceptions = #'((end . (((1 . 8) . (4 2))))) + << + {bes'2( aes'8-. r)} \\ + {r8 cis(-\tag #'beam [ b f'-\tag #'beam ]) -. r} + >> + \bar "|." +} + +guitarSolos = { + \tempo "Manual beams" + \guitarSolo + \tempo "Automatic beams" + \removeWithTag #'beam \guitarSolo +} + +\score { + << + \new StaffGroup << + \new Staff { \clef "treble_8" \guitarSolos } + \new TabStaff \guitarSolos + >> + \new TabStaff \with { \tabFullNotation } \guitarSolos + >> +} diff --git a/input/regression/tie-chord.ly b/input/regression/tie-chord.ly index d830bd01a9..af3ec740a9 100644 --- a/input/regression/tie-chord.ly +++ b/input/regression/tie-chord.ly @@ -55,8 +55,8 @@ translate x y z to x~x y~y z~z (list ch1 ch2))) - (make-music 'SequentialMusic 'elements (apply append - (map chord->tied-chord (ly:music-property chords 'elements))))) + (make-music 'SequentialMusic 'elements (append-map + chord->tied-chord (ly:music-property chords 'elements)))) baseChords = \applyMusic #(lambda (mus) diff --git a/input/regression/trill-spanner-grace.ly b/input/regression/trill-spanner-grace.ly index 7e57cdc431..6cb82618f8 100644 --- a/input/regression/trill-spanner-grace.ly +++ b/input/regression/trill-spanner-grace.ly @@ -2,11 +2,11 @@ texidoc = "Trill spanner can end on a grace note" } -\version "2.17.15" +\version "2.17.28" \layout { ragged-right = ##T } \relative c' \new Voice { << { c1 \startTrillSpan } - { s2. \grace { d16[\stopTrillSpan e] } } >> + { s2. \grace { d16\stopTrillSpan e } } >> c4 } diff --git a/lily/GNUmakefile b/lily/GNUmakefile index ba19ac9559..6d9afd770c 100644 --- a/lily/GNUmakefile +++ b/lily/GNUmakefile @@ -10,8 +10,6 @@ MODULE_INCLUDES= $(depth)/flower/include HELP2MAN_EXECS = lilypond STEPMAKE_TEMPLATES=c c++ executable po help2man -OUT_DIST_FILES=$(addprefix $(outdir)/,parser.hh parser.cc) - include $(depth)/make/stepmake.make ifeq ($(LINK_GXX_STATICALLY),yes) diff --git a/lily/align-interface.cc b/lily/align-interface.cc index aee6dad705..8a2a8d9b81 100644 --- a/lily/align-interface.cc +++ b/lily/align-interface.cc @@ -61,73 +61,85 @@ Align_interface::align_to_ideal_distances (SCM smob) return SCM_BOOL_T; } -/* Return upper and lower skylines for VerticalAxisGroup g. If the extent - is non-empty but there is no skyline available (or pure is true), just +/* for each grob, find its upper and lower skylines. If the grob has + an empty extent, delete it from the list instead. If the extent is + non-empty but there is no skyline available (or pure is true), just create a flat skyline from the bounding box */ // TODO(jneem): the pure and non-pure parts seem to share very little // code. Split them into 2 functions, perhaps? -static Skyline_pair -get_skylines (Grob *g, +static void +get_skylines (Grob *me, + vector *const elements, Axis a, - Grob *other_common, - bool pure, int start, int end) + bool pure, int start, int end, + vector *const ret) { - Skyline_pair skylines; + Grob *other_common = common_refpoint_of_array (*elements, me, other_axis (a)); - if (!pure) + for (vsize i = elements->size (); i--;) { - Skyline_pair *skys = Skyline_pair::unsmob (g->get_property (a == Y_AXIS - ? "vertical-skylines" - : "horizontal-skylines")); - if (skys) - skylines = *skys; - - /* This skyline was calculated relative to the grob g. In order to compare it to - skylines belonging to other grobs, we need to shift it so that it is relative - to the common reference. */ - Real offset = g->relative_coordinate (other_common, other_axis (a)); - skylines.shift (offset); - } - else if (Hara_kiri_group_spanner::request_suicide (g, start, end)) - return skylines; - else - { - assert (a == Y_AXIS); - Interval extent = g->pure_height (g, start, end); - - // This is a hack to get better accuracy on the pure-height of VerticalAlignment. - // It's quite common for a treble clef to be the highest element of one system - // and for a low note (or lyrics) to be the lowest note on another. The two will - // never collide, but the pure-height stuff only works with bounding boxes, so it - // doesn't know that. The result is a significant over-estimation of the pure-height, - // especially on systems with many staves. To correct for this, we build a skyline - // in two parts: the part we did above contains most of the grobs (note-heads, etc.) - // while the bit we're about to do only contains the breakable grobs at the beginning - // of the system. This way, the tall treble clefs are only compared with the treble - // clefs of the other staff and they will be ignored if the staff above is, for example, - // lyrics. - if (Axis_group_interface::has_interface (g)) + Grob *g = (*elements)[i]; + Skyline_pair skylines; + + if (!pure) { - extent = Axis_group_interface::rest_of_line_pure_height (g, start, end); - Interval begin_of_line_extent = Axis_group_interface::begin_of_line_pure_height (g, start); - if (!begin_of_line_extent.is_empty ()) + Skyline_pair *skys = Skyline_pair::unsmob (g->get_property (a == Y_AXIS + ? "vertical-skylines" + : "horizontal-skylines")); + if (skys) + skylines = *skys; + + /* This skyline was calculated relative to the grob g. In order to compare it to + skylines belonging to other grobs, we need to shift it so that it is relative + to the common reference. */ + Real offset = g->relative_coordinate (other_common, other_axis (a)); + skylines.shift (offset); + } + else + { + assert (a == Y_AXIS); + Interval extent = g->pure_height (g, start, end); + + // This is a hack to get better accuracy on the pure-height of VerticalAlignment. + // It's quite common for a treble clef to be the highest element of one system + // and for a low note (or lyrics) to be the lowest note on another. The two will + // never collide, but the pure-height stuff only works with bounding boxes, so it + // doesn't know that. The result is a significant over-estimation of the pure-height, + // especially on systems with many staves. To correct for this, we build a skyline + // in two parts: the part we did above contains most of the grobs (note-heads, etc.) + // while the bit we're about to do only contains the breakable grobs at the beginning + // of the system. This way, the tall treble clefs are only compared with the treble + // clefs of the other staff and they will be ignored if the staff above is, for example, + // lyrics. + if (Axis_group_interface::has_interface (g) + && !Hara_kiri_group_spanner::request_suicide (g, start, end)) + { + extent = Axis_group_interface::rest_of_line_pure_height (g, start, end); + Interval begin_of_line_extent = Axis_group_interface::begin_of_line_pure_height (g, start); + if (!begin_of_line_extent.is_empty ()) + { + Box b; + b[a] = begin_of_line_extent; + b[other_axis (a)] = Interval (-infinity_f, -1); + skylines.insert (b, other_axis (a)); + } + } + + if (!extent.is_empty ()) { Box b; - b[a] = begin_of_line_extent; - b[other_axis (a)] = Interval (-infinity_f, -1); + b[a] = extent; + b[other_axis (a)] = Interval (0, infinity_f); skylines.insert (b, other_axis (a)); } } - if (!extent.is_empty ()) - { - Box b; - b[a] = extent; - b[other_axis (a)] = Interval (0, infinity_f); - skylines.insert (b, other_axis (a)); - } + if (skylines.is_empty ()) + elements->erase (elements->begin () + i); + else + ret->push_back (skylines); } - return skylines; + reverse (*ret); } vector @@ -165,7 +177,7 @@ Align_interface::get_minimum_translations_without_min_dist (Grob *me, // else centered dynamics will break when there is a fixed alignment). vector Align_interface::internal_get_minimum_translations (Grob *me, - vector const &elems, + vector const &all_grobs, Axis a, bool include_fixed_spacing, bool pure, int start, int end) @@ -192,14 +204,15 @@ Align_interface::internal_get_minimum_translations (Grob *me, Direction stacking_dir = robust_scm2dir (me->get_property ("stacking-dir"), DOWN); + vector elems (all_grobs); // writable copy + vector skylines; - Grob *other_common = common_refpoint_of_array (elems, me, other_axis (a)); + get_skylines (me, &elems, a, pure, start, end, &skylines); Real where = 0; Real default_padding = robust_scm2double (me->get_property ("padding"), 0.0); vector translates; Skyline down_skyline (stacking_dir); - Grob *last_nonempty_element = 0; Real last_spaceable_element_pos = 0; Grob *last_spaceable_element = 0; Skyline last_spaceable_skyline (stacking_dir); @@ -209,18 +222,14 @@ Align_interface::internal_get_minimum_translations (Grob *me, Real dy = 0; Real padding = default_padding; - Skyline_pair skyline = get_skylines (elems[j], a, other_common, pure, start, end); - - if (skyline.is_empty ()) - dy = 0.0; - else if (!last_nonempty_element) - dy = skyline[-stacking_dir].max_height () + padding; + if (j == 0) + dy = skylines[j][-stacking_dir].max_height () + padding; else { - SCM spec = Page_layout_problem::get_spacing_spec (last_nonempty_element, elems[j], pure, start, end); + SCM spec = Page_layout_problem::get_spacing_spec (elems[j - 1], elems[j], pure, start, end); Page_layout_problem::read_spacing_spec (spec, &padding, ly_symbol2scm ("padding")); - dy = down_skyline.distance (skyline[-stacking_dir]) + padding; + dy = down_skyline.distance (skylines[j][-stacking_dir]) + padding; Real spec_distance = 0; if (Page_layout_problem::read_spacing_spec (spec, &spec_distance, ly_symbol2scm ("minimum-distance"))) @@ -240,7 +249,7 @@ Align_interface::internal_get_minimum_translations (Grob *me, Page_layout_problem::read_spacing_spec (spec, &spaceable_padding, ly_symbol2scm ("padding")); - dy = max (dy, (last_spaceable_skyline.distance (skyline[-stacking_dir]) + dy = max (dy, (last_spaceable_skyline.distance (skylines[j][-stacking_dir]) + stacking_dir * (last_spaceable_element_pos - where) + spaceable_padding)); Real spaceable_min_distance = 0; @@ -254,9 +263,12 @@ Align_interface::internal_get_minimum_translations (Grob *me, } } + if (isinf (dy)) /* if the skyline is empty, maybe max_height is infinity_f */ + dy = 0.0; + dy = max (0.0, dy); down_skyline.raise (-stacking_dir * dy); - down_skyline.merge (skyline[stacking_dir]); + down_skyline.merge (skylines[j][stacking_dir]); where += stacking_dir * dy; translates.push_back (where); @@ -267,19 +279,32 @@ Align_interface::internal_get_minimum_translations (Grob *me, last_spaceable_element_pos = where; last_spaceable_skyline = down_skyline; } - if (!skyline.is_empty ()) - last_nonempty_element = elems[j]; + } + + // So far, we've computed the translates for all the non-empty elements. + // Here, we set the translates for the empty elements: an empty element + // gets the same translation as the last non-empty element before it. + vector all_translates; + if (!translates.empty ()) + { + Real w = translates[0]; + for (vsize i = 0, j = 0; j < all_grobs.size (); j++) + { + if (i < elems.size () && all_grobs[j] == elems[i]) + w = translates[i++]; + all_translates.push_back (w); + } } if (pure) { SCM mta = me->get_property ("minimum-translations-alist"); mta = scm_cons (scm_cons (scm_cons (scm_from_int (start), scm_from_int (end)), - ly_floatvector2scm (translates)), + ly_floatvector2scm (all_translates)), mta); me->set_property ("minimum-translations-alist", mta); } - return translates; + return all_translates; } void diff --git a/lily/auto-beam-engraver.cc b/lily/auto-beam-engraver.cc index fe9c94ae54..b5c7f88ce6 100644 --- a/lily/auto-beam-engraver.cc +++ b/lily/auto-beam-engraver.cc @@ -38,7 +38,9 @@ class Auto_beam_engraver : public Engraver protected: void stop_translation_timestep (); - void process_music (); + void process_acknowledged (); + + virtual void process_music (); virtual void finalize (); virtual void derived_mark () const; @@ -49,17 +51,15 @@ protected: DECLARE_ACKNOWLEDGER (stem); DECLARE_TRANSLATOR_LISTENER (beam_forbid); - void process_acknowledged (); - private: - bool test_moment (Direction, Moment, Moment); + virtual bool test_moment (Direction, Moment, Moment); void consider_begin (Moment, Moment); void consider_end (Moment, Moment); Spanner *create_beam (); void begin_beam (); void end_beam (); void junk_beam (); - bool is_same_grace_state (Grob *e); + virtual bool is_same_grace_state (Moment, Moment); void recheck_beam (); void typeset_beam (); vector *remove_end_stems (vsize); @@ -263,6 +263,13 @@ Auto_beam_engraver::junk_beam () shortest_mom_ = Moment (Rational (1, 4)); } +bool +Auto_beam_engraver::is_same_grace_state (Moment start, Moment now) +{ + return bool (start.grace_part_) == bool (now.grace_part_); +} + + void Auto_beam_engraver::end_beam () { @@ -397,10 +404,10 @@ Auto_beam_engraver::acknowledge_stem (Grob_info info) } /* - ignore grace notes. + ignore interspersed grace notes. */ Moment now = now_mom (); - if (bool (beam_start_location_.grace_part_) != bool (now.grace_part_)) + if (!is_same_grace_state (beam_start_location_, now)) return; Duration *stem_duration = unsmob_duration (ev->get_property ("duration")); @@ -564,3 +571,91 @@ ADD_TRANSLATOR (Auto_beam_engraver, /* write */ "" ); + +class Grace_auto_beam_engraver : public Auto_beam_engraver +{ + TRANSLATOR_DECLARATIONS (Grace_auto_beam_engraver); + DECLARE_TRANSLATOR_LISTENER (beam_forbid); + +private: + Moment last_grace_start_; // Full starting time of last grace group + Moment last_grace_position_; // Measure position of same + virtual void process_music (); + virtual bool is_same_grace_state (Moment, Moment); + virtual bool test_moment (Direction, Moment, Moment); +}; + +Grace_auto_beam_engraver::Grace_auto_beam_engraver () +{ + last_grace_start_.main_part_.set_infinite (-1); + // grace_part_ is zero -> test_moment is false, last_grace_position_ + // not considered. +} + +IMPLEMENT_TRANSLATOR_LISTENER (Grace_auto_beam_engraver, beam_forbid); +void +Grace_auto_beam_engraver::listen_beam_forbid (Stream_event *ev) +{ + Auto_beam_engraver::listen_beam_forbid (ev); +} + +bool +Grace_auto_beam_engraver::is_same_grace_state (Moment, Moment) +{ + // This is for ignoring interspersed grace notes in main note + // beaming. We never want to ignore something inside of grace note + // beaming, so return true. + return true; +} + +void +Grace_auto_beam_engraver::process_music () +{ + Moment now = now_mom (); + // Update last_grace_start_ and last_grace_position_ only when the + // main time advances. + if (now.main_part_ > last_grace_start_.main_part_) + { + last_grace_start_ = now; + last_grace_position_ = measure_position (context ()); + } + + Auto_beam_engraver::process_music (); +} + +bool +Grace_auto_beam_engraver::test_moment (Direction dir, Moment test_mom, Moment) +{ + // If no grace group started this main moment, we have no business + // beaming. Same if we have left the original main time step. + if (!last_grace_start_.grace_part_ + || last_grace_position_.main_part_ != test_mom.main_part_) + return false; + // Autobeam start only when at the start of the grace group. + if (dir == START) + return last_grace_position_ == test_mom; + // Autobeam end only when the grace part is finished. + return !test_mom.grace_part_; +} + +ADD_ACKNOWLEDGER (Grace_auto_beam_engraver, stem); +ADD_ACKNOWLEDGER (Grace_auto_beam_engraver, bar_line); +ADD_ACKNOWLEDGER (Grace_auto_beam_engraver, beam); +ADD_ACKNOWLEDGER (Grace_auto_beam_engraver, breathing_sign); +ADD_ACKNOWLEDGER (Grace_auto_beam_engraver, rest); +ADD_TRANSLATOR (Grace_auto_beam_engraver, + /* doc */ + "Generates one autobeam group across an entire grace phrase. " + " As usual, any manual beaming or @code{\\noBeam} will block" + " autobeaming, just like setting the context property" + " @samp{autoBeaming} to @code{##f}.", + + /* create */ + "Beam ", + + /* read */ + "autoBeaming ", + + /* write */ + "" + ); diff --git a/lily/beam-engraver.cc b/lily/beam-engraver.cc index 00b9081b3e..846e4a245c 100644 --- a/lily/beam-engraver.cc +++ b/lily/beam-engraver.cc @@ -177,14 +177,18 @@ Beam_engraver::typeset_beam () { if (finished_beam_) { - if (!finished_beam_->get_bound (RIGHT)) - finished_beam_->set_bound (RIGHT, finished_beam_->get_bound (LEFT)); - if (forced_direction_) + Grob *stem = finished_beam_->get_bound (RIGHT); + if (!stem) { - Grob *stem = finished_beam_->get_bound (RIGHT); - set_grob_direction (stem, forced_direction_); - forced_direction_ = CENTER; + stem = finished_beam_->get_bound (LEFT); + if (stem) + finished_beam_->set_bound (RIGHT, stem); } + + if (stem && forced_direction_) + set_grob_direction (stem, forced_direction_); + + forced_direction_ = CENTER; finished_beam_info_->beamify (finished_beaming_options_); Beam::set_beaming (finished_beam_, finished_beam_info_); @@ -260,6 +264,14 @@ Beam_engraver::acknowledge_stem (Grob_info info) if (!valid_start_point ()) return; + // It's suboptimal that we don't support callbacks returning ##f, + // but this makes beams have no effect on "stems" reliably in + // TabStaff when \tabFullNotation is switched off: the real stencil + // callback for beams is called quite late in the process, and we + // don't want to trigger it early. + if (scm_is_false (beam_->get_property_data ("stencil"))) + return; + Item *stem = dynamic_cast (info.grob ()); if (Stem::get_beam (stem)) return; diff --git a/lily/beam-quanting.cc b/lily/beam-quanting.cc index ac845103ea..c590802675 100644 --- a/lily/beam-quanting.cc +++ b/lily/beam-quanting.cc @@ -651,7 +651,7 @@ Beam_scoring_problem::calc_concaveness () if (scm_is_number (conc)) return scm_to_double (conc); - if (is_knee_) + if (is_knee_ || is_xstaff_) return 0.0; Direction beam_dir = CENTER; diff --git a/lily/beam.cc b/lily/beam.cc index 0932bd37d0..fbd158aeca 100644 --- a/lily/beam.cc +++ b/lily/beam.cc @@ -49,7 +49,6 @@ #include "lookup.hh" #include "main.hh" #include "misc.hh" -#include "note-column.hh" #include "note-head.hh" #include "output-def.hh" #include "pointer-group-interface.hh" @@ -142,92 +141,6 @@ Beam::get_beam_count (Grob *me) return m; } -//------ for whole note chord tremolos - -bool -Beam::whole_note_close_chord_tremolo (Grob *me) -{ - if (!scm_is_integer (me->get_property ("gap-count"))) - return false; - - extract_grob_set (me, "stems", stems); - for (vsize i = 0; i < stems.size (); i++) - if (Stem::duration_log (stems[i])) - return false; - - Grob *staff = Staff_symbol_referencer::get_staff_symbol (me); - if (staff) - { - Grob *outside_stems[2] = {Stem::extremal_heads (stems[0])[DOWN], - Stem::extremal_heads (stems.back ())[DOWN]}; - - Interval lines = Staff_symbol::line_span (staff); - for (int i = 0; i < 2; i++) - { - Real my_pos = Staff_symbol_referencer::get_position (outside_stems[i]); - if (my_pos > lines[UP] + 1) - return false; - else if (my_pos < lines[DOWN] - 1) - return false; - } - } - - return (Staff_symbol_referencer::get_position (Stem::extremal_heads (stems.back ())[DOWN]) - - Staff_symbol_referencer::get_position (Stem::extremal_heads (stems[0])[DOWN])) - < 2; -} - -MAKE_SCHEME_CALLBACK (Beam, calc_beam_gap, 1); -SCM -Beam::calc_beam_gap (SCM smob) -{ - Spanner *me = unsmob_spanner (smob); - SCM default_value = scm_cons (scm_from_double (0.8), scm_from_double (0.8)); - if (!whole_note_close_chord_tremolo (me)) - return default_value; - - Interval left = Note_column::accidental_width - (me->get_bound (RIGHT)->get_parent (X_AXIS)); - - if (left.length () > 0.4) - return scm_cons (scm_from_double (0.8), scm_from_double (1.3 + left.length ())); - else - return default_value; -} - -MAKE_SCHEME_CALLBACK (Beam, calc_springs_and_rods, 1); -SCM -Beam::calc_springs_and_rods (SCM smob) -{ - Grob *me = unsmob_grob (smob); - - if (!whole_note_close_chord_tremolo (me)) - return SCM_BOOL_F; - - return scm_call_1 (Spanner::set_spacing_rods_proc, smob); -} - -MAKE_SCHEME_CALLBACK (Beam, calc_minimum_length, 1); -SCM -Beam::calc_minimum_length (SCM smob) -{ - Spanner *me = unsmob_spanner (smob); - SCM default_value = scm_from_double (0.0); - - if (!whole_note_close_chord_tremolo (me)) - return SCM_BOOL_F; - - Interval left = Note_column::accidental_width - (me->get_bound (RIGHT)->get_parent (X_AXIS)); - - if (left.length () > 0.4) - return scm_from_double (left.length () + 4.0); - else - return default_value; -} - -//------ and everything else - MAKE_SCHEME_CALLBACK (Beam, calc_normal_stems, 1); SCM Beam::calc_normal_stems (SCM smob) @@ -452,7 +365,7 @@ Beam::calc_beam_segments (SCM smob) commonx = me->get_bound (d)->common_refpoint (commonx, X_AXIS); int gap_count = robust_scm2int (me->get_property ("gap-count"), 0); - Interval gap_lengths = robust_scm2interval (me->get_property ("beam-gap"), Interval (0.0, 0.0)); + Real gap_length = robust_scm2double (me->get_property ("gap"), 0.0); Position_stem_segments_map stem_segments; Real lt = me->layout ()->get_dimension (ly_symbol2scm ("line-thickness")); @@ -608,7 +521,7 @@ Beam::calc_beam_segments (SCM smob) current.horizontal_[event_dir] += event_dir * seg.width_ / 2; if (seg.gapped_) { - current.horizontal_[event_dir] -= event_dir * gap_lengths[event_dir]; + current.horizontal_[event_dir] -= event_dir * gap_length; if (Stem::is_invisible (seg.stem_)) { @@ -621,7 +534,7 @@ Beam::calc_beam_segments (SCM smob) for (vsize k = 0; k < heads.size (); k++) current.horizontal_[event_dir] = event_dir * min (event_dir * current.horizontal_[event_dir], - - gap_lengths[event_dir] / 2 + - gap_length / 2 + event_dir * heads[k]->extent (commonx, X_AXIS)[-event_dir]); @@ -1578,7 +1491,6 @@ ADD_INTERFACE (Beam, "auto-knee-gap " "beamed-stem-shorten " "beaming " - "beam-gap " "beam-segments " "beam-thickness " "break-overshoot " @@ -1590,6 +1502,7 @@ ADD_INTERFACE (Beam, "damping " "details " "direction " + "gap " "gap-count " "grow-direction " "inspect-quants " diff --git a/lily/completion-note-heads-engraver.cc b/lily/completion-note-heads-engraver.cc index b606ab4e2b..52a7d6c0bd 100644 --- a/lily/completion-note-heads-engraver.cc +++ b/lily/completion-note-heads-engraver.cc @@ -59,8 +59,6 @@ class Completion_heads_engraver : public Engraver vector notes_; vector prev_notes_; // Must remember notes for explicit ties. - vector tie_note_candidates_; - vector tie_note_candidate_events_; vector ties_; vector note_events_; Spanner *tie_column_; @@ -271,6 +269,7 @@ Completion_heads_engraver::make_tie (Grob *left, Grob *right) Grob *p = make_spanner ("Tie", SCM_EOL); Tie::set_head (p, LEFT, left); Tie::set_head (p, RIGHT, right); + announce_end_grob (p, SCM_EOL); ties_.push_back (p); } @@ -291,9 +290,6 @@ Completion_heads_engraver::start_translation_timestep () Moment now = now_mom (); if (note_end_mom_.main_part_ <= now.main_part_) { - tie_note_candidate_events_ = note_events_; - tie_note_candidates_ = prev_notes_; - note_events_.clear (); prev_notes_.clear (); } diff --git a/lily/completion-rest-engraver.cc b/lily/completion-rest-engraver.cc index 6bd52d6e9a..61255226ea 100644 --- a/lily/completion-rest-engraver.cc +++ b/lily/completion-rest-engraver.cc @@ -58,7 +58,6 @@ using namespace std; class Completion_rest_engraver : public Engraver { vector rests_; - vector prev_rests_; vector rest_events_; Moment rest_end_mom_; bool is_first_; @@ -241,8 +240,6 @@ Completion_rest_engraver::process_music () void Completion_rest_engraver::stop_translation_timestep () { - if (rests_.size ()) - prev_rests_ = rests_; rests_.clear (); } @@ -253,7 +250,6 @@ Completion_rest_engraver::start_translation_timestep () if (rest_end_mom_.main_part_ <= now.main_part_) { rest_events_.clear (); - prev_rests_.clear (); } context ()->set_property ("restCompletionBusy", ly_bool2scm (rest_events_.size ())); diff --git a/lily/context.cc b/lily/context.cc index 8d44ca8f85..491ea8f0d8 100644 --- a/lily/context.cc +++ b/lily/context.cc @@ -425,9 +425,19 @@ Context::get_default_interpreter (const string &context_id) warning (_f ("cannot find or create: `%s'", name.c_str ())); t = unsmob_context_def (this->definition_); } - - Context *tg = create_context (t, context_id, SCM_EOL); - return tg->get_default_interpreter (context_id); + if (scm_is_symbol (t->get_default_child (SCM_EOL))) + { + Context *tg = create_context (t, "\\new", SCM_EOL); + return tg->get_default_interpreter (context_id); + } + return create_context (t, context_id, SCM_EOL); + } + else if (!context_id.empty () && context_id != id_string ()) + { + if (daddy_context_ && !dynamic_cast (daddy_context_)) + return daddy_context_->get_default_interpreter (context_id); + warning (_f ("cannot find or create new Bottom = \"%s\"", + context_id.c_str ())); } return this; } diff --git a/lily/dynamic-engraver.cc b/lily/dynamic-engraver.cc index c492e59c55..a4d4e06f5a 100644 --- a/lily/dynamic-engraver.cc +++ b/lily/dynamic-engraver.cc @@ -1,7 +1,7 @@ /* This file is part of LilyPond, the GNU music typesetter. - Copyright (C) 1997--2012 Han-Wen Nienhuys + Copyright (C) 2008--2012 Han-Wen Nienhuys LilyPond is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -17,97 +17,63 @@ along with LilyPond. If not, see . */ -#include "axis-group-interface.hh" -#include "context.hh" -#include "engraver.hh" -#include "dimensions.hh" -#include "directional-element-interface.hh" #include "engraver.hh" #include "hairpin.hh" #include "international.hh" -#include "interval.hh" +#include "item.hh" #include "note-column.hh" -#include "paper-column.hh" #include "pointer-group-interface.hh" -#include "script-interface.hh" #include "self-alignment-interface.hh" -#include "side-position-interface.hh" -#include "staff-symbol-referencer.hh" -#include "stream-event.hh" -#include "warn.hh" #include "spanner.hh" +#include "stream-event.hh" #include "text-interface.hh" #include "translator.icc" -/* - TODO: - - * direction of text-dynamic-event if not equal to direction of - line-spanner - - - TODO: this engraver is too complicated. We should split it into - the handling of the basic grobs and the linespanner - - - TODO: the line-spanner is not killed after the (de)crescs are - finished. -*/ - -/** - print text & hairpin dynamics. -*/ class Dynamic_engraver : public Engraver { - Item *script_; - Spanner *line_spanner_; - Spanner *cresc_; - - Spanner *finished_line_spanner_; - Spanner *finished_cresc_; - - Stream_event *script_ev_; - Stream_event *current_cresc_ev_; - - Drul_array accepted_spanevents_drul_; - - vector pending_columns_; - vector pending_elements_; - - void typeset_all (); - TRANSLATOR_DECLARATIONS (Dynamic_engraver); DECLARE_ACKNOWLEDGER (note_column); DECLARE_TRANSLATOR_LISTENER (absolute_dynamic); DECLARE_TRANSLATOR_LISTENER (span_dynamic); + DECLARE_TRANSLATOR_LISTENER (break_span); protected: + virtual void process_music (); + virtual void stop_translation_timestep (); virtual void finalize (); - void stop_translation_timestep (); - void process_music (); + +private: + SCM get_property_setting (Stream_event *evt, char const *evprop, + char const *ctxprop); + string get_spanner_type (Stream_event *ev); + + Drul_array accepted_spanevents_drul_; + Spanner *current_spanner_; + Spanner *finished_spanner_; + + Item *script_; + Stream_event *script_event_; + Stream_event *current_span_event_; + bool end_new_spanner_; }; Dynamic_engraver::Dynamic_engraver () { + script_event_ = 0; + current_span_event_ = 0; script_ = 0; - finished_cresc_ = 0; - line_spanner_ = 0; - finished_line_spanner_ = 0; - current_cresc_ev_ = 0; - cresc_ = 0; - - script_ev_ = 0; - accepted_spanevents_drul_[START] = 0; - accepted_spanevents_drul_[STOP] = 0; + finished_spanner_ = 0; + current_spanner_ = 0; + accepted_spanevents_drul_.set (0, 0); + end_new_spanner_ = false; } IMPLEMENT_TRANSLATOR_LISTENER (Dynamic_engraver, absolute_dynamic); void Dynamic_engraver::listen_absolute_dynamic (Stream_event *ev) { - /* - TODO: probably broken. - */ - ASSIGN_EVENT_ONCE (script_ev_, ev); + ASSIGN_EVENT_ONCE (script_event_, ev); } IMPLEMENT_TRANSLATOR_LISTENER (Dynamic_engraver, span_dynamic); @@ -116,337 +82,223 @@ Dynamic_engraver::listen_span_dynamic (Stream_event *ev) { Direction d = to_dir (ev->get_property ("span-direction")); - if (d == START) - ASSIGN_EVENT_ONCE (accepted_spanevents_drul_[START], ev); - - /* Cancel any ongoing crescendo, either explicitly by \! or - implicitly by a new crescendo. Also avoid warning if cresc is - canceled both implicitly and explicitly. */ - if ((d == STOP || current_cresc_ev_) && !accepted_spanevents_drul_[STOP]) - ASSIGN_EVENT_ONCE (accepted_spanevents_drul_[STOP], ev); + ASSIGN_EVENT_ONCE (accepted_spanevents_drul_[d], ev); } +IMPLEMENT_TRANSLATOR_LISTENER (Dynamic_engraver, break_span); void -Dynamic_engraver::process_music () +Dynamic_engraver::listen_break_span (Stream_event *event) { - if (accepted_spanevents_drul_[START] || accepted_spanevents_drul_[STOP] || script_ev_) + if (event->in_event_class ("break-dynamic-span-event")) { - if (!line_spanner_) - { - Stream_event *rq = accepted_spanevents_drul_[START]; - line_spanner_ = make_spanner ("DynamicLineSpanner", rq ? rq->self_scm () : SCM_EOL); - if (script_ev_) - rq = script_ev_; - } + // Case 1: Already have a start dynamic event -> break applies to new + // spanner (created later) -> set a flag + // Case 2: no new spanner, but spanner already active -> break it now + if (accepted_spanevents_drul_[START]) + end_new_spanner_ = true; + else if (current_spanner_) + current_spanner_->set_property ("spanner-broken", SCM_BOOL_T); } +} - /* - During a (de)crescendo, pending event will not be cleared, - and a line-spanner will always be created, as \< \! are already - two events. - - Note: line-spanner must always have at least same duration - as (de)crecsendo, b.o. line-breaking. - */ +SCM +Dynamic_engraver::get_property_setting (Stream_event *evt, + char const *evprop, + char const *ctxprop) +{ + SCM spanner_type = evt->get_property (evprop); + if (spanner_type == SCM_EOL) + spanner_type = get_property (ctxprop); + return spanner_type; +} - /* - maybe we should leave dynamic texts to the text-engraver and - simply acknowledge them? - */ - if (script_ev_) +void +Dynamic_engraver::process_music () +{ + if (current_spanner_ + && (accepted_spanevents_drul_[STOP] + || script_event_ + || accepted_spanevents_drul_[START])) { - script_ = make_item ("DynamicText", script_ev_->self_scm ()); - script_->set_property ("text", - script_ev_->get_property ("text")); + Stream_event *ender = accepted_spanevents_drul_[STOP]; + if (!ender) + ender = script_event_; - if (Direction d = to_dir (script_ev_->get_property ("direction"))) - set_grob_direction (line_spanner_, d); - else if (Direction d = to_dir (line_spanner_->get_property ("direction"))) - set_grob_direction (script_, d); + if (!ender) + ender = accepted_spanevents_drul_[START]; - Axis_group_interface::add_element (line_spanner_, script_); + finished_spanner_ = current_spanner_; + announce_end_grob (finished_spanner_, ender->self_scm ()); + current_spanner_ = 0; + current_span_event_ = 0; } - if (accepted_spanevents_drul_[STOP] || script_ev_) + if (accepted_spanevents_drul_[START]) { - /* - finish side position alignment if the (de)cresc ends here, and - there are no new dynamics. - */ + current_span_event_ = accepted_spanevents_drul_[START]; - if (cresc_) - { - assert (!finished_cresc_ && cresc_); - - if (script_) - { - cresc_->set_bound (RIGHT, script_); - add_bound_item (line_spanner_, script_); - } - - finished_cresc_ = cresc_; - announce_end_grob (finished_cresc_, SCM_EOL); - cresc_ = 0; - current_cresc_ev_ = 0; - } - else if (accepted_spanevents_drul_[STOP]) - accepted_spanevents_drul_[STOP]->origin ()->warning (_ ("cannot find start of (de)crescendo")); - } + string start_type = get_spanner_type (current_span_event_); + SCM cresc_type = get_property_setting (current_span_event_, "span-type", + (start_type + "Spanner").c_str ()); - if (accepted_spanevents_drul_[START]) - { - if (current_cresc_ev_) + if (cresc_type == ly_symbol2scm ("text")) { - string msg = _ ("already have a decrescendo"); - if (current_cresc_ev_->in_event_class ("crescendo-event")) - msg = _ ("already have a crescendo"); - - accepted_spanevents_drul_[START]->origin ()->warning (msg); - current_cresc_ev_->origin ()->warning (_ ("cresc starts here")); + current_spanner_ + = make_spanner ("DynamicTextSpanner", + accepted_spanevents_drul_[START]->self_scm ()); + + SCM text = get_property_setting (current_span_event_, "span-text", + (start_type + "Text").c_str ()); + if (Text_interface::is_markup (text)) + current_spanner_->set_property ("text", text); + /* + If the line of a text spanner is hidden, end the alignment spanner + early: this allows dynamics to be spaced individually instead of + being linked together. + */ + if (current_spanner_->get_property ("style") == ly_symbol2scm ("none")) + current_spanner_->set_property ("spanner-broken", SCM_BOOL_T); } else { - current_cresc_ev_ = accepted_spanevents_drul_[START]; - - if (Direction d = to_dir (current_cresc_ev_->get_property ("direction"))) - set_grob_direction (line_spanner_, d); - - /* - TODO: Use symbols. - */ - - SCM start_sym = scm_car (current_cresc_ev_->get_property ("class")); - string start_type; - - if (start_sym == ly_symbol2scm ("decrescendo-event")) - start_type = "decrescendo"; - else if (start_sym == ly_symbol2scm ("crescendo-event")) - start_type = "crescendo"; - else - { - programming_error ("unknown dynamic spanner type"); - return; - } - - /* - UGH. TODO: should read from original event, so appearance - may be altered with \tweak. - */ - SCM s = get_property ((start_type + "Spanner").c_str ()); - if (!scm_is_symbol (s) || s == ly_symbol2scm ("hairpin")) + if (cresc_type != ly_symbol2scm ("hairpin")) { - cresc_ = make_spanner ("Hairpin", accepted_spanevents_drul_[START]->self_scm ()); - if (finished_cresc_) - { - Pointer_group_interface::add_grob (finished_cresc_, - ly_symbol2scm ("adjacent-hairpins"), - cresc_); - - Pointer_group_interface::add_grob (cresc_, - ly_symbol2scm ("adjacent-hairpins"), - finished_cresc_); - } + string as_string = ly_scm_write_string (cresc_type); + current_span_event_ + ->origin ()->warning (_f ("unknown crescendo style: %s\ndefaulting to hairpin.", as_string.c_str ())); } + current_spanner_ = make_spanner ("Hairpin", + current_span_event_->self_scm ()); + } + // if we have a break-dynamic-span event right after the start dynamic, break the new spanner immediately + if (end_new_spanner_) + { + current_spanner_->set_property ("spanner-broken", SCM_BOOL_T); + end_new_spanner_ = false; + } + if (finished_spanner_) + { + if (Hairpin::has_interface (finished_spanner_)) + Pointer_group_interface::add_grob (finished_spanner_, + ly_symbol2scm ("adjacent-spanners"), + current_spanner_); + if (Hairpin::has_interface (current_spanner_)) + Pointer_group_interface::add_grob (current_spanner_, + ly_symbol2scm ("adjacent-spanners"), + finished_spanner_); + } + } - /* - This is a convenient (and legacy) interface to TextSpanners - for use in (de)crescendi. - Hmm. - */ - else - { - cresc_ = make_spanner ("DynamicTextSpanner", accepted_spanevents_drul_[START]->self_scm ()); - cresc_->set_property ("style", s); - context ()->set_property ((start_type - + "Spanner").c_str (), SCM_EOL); - s = get_property ((start_type + "Text").c_str ()); - if (Text_interface::is_markup (s)) - { - cresc_->set_property ("text", s); - context ()->set_property ((start_type + "Text").c_str (), - SCM_EOL); - } - - if (script_) - { - set_nested_property (cresc_, - scm_list_3 (ly_symbol2scm ("bound-details"), - ly_symbol2scm ("left"), - ly_symbol2scm ("attach-dir") - ), - scm_from_int (RIGHT)); - } - } + if (script_event_) + { + script_ = make_item ("DynamicText", script_event_->self_scm ()); + script_->set_property ("text", + script_event_->get_property ("text")); - if (script_) - { - cresc_->set_bound (LEFT, script_); - add_bound_item (line_spanner_, cresc_->get_bound (LEFT)); - } - Axis_group_interface::add_element (line_spanner_, cresc_); - } + if (finished_spanner_) + finished_spanner_->set_bound (RIGHT, script_); + if (current_spanner_) + current_spanner_->set_bound (LEFT, script_); } } void Dynamic_engraver::stop_translation_timestep () { - if (!current_cresc_ev_ && line_spanner_) - { - assert (!finished_line_spanner_); - finished_line_spanner_ = line_spanner_; - line_spanner_ = 0; - } - - typeset_all (); - - if (cresc_ && !cresc_->get_bound (LEFT)) - { - cresc_->set_bound (LEFT, unsmob_grob (get_property ("currentMusicalColumn"))); - add_bound_item (line_spanner_, cresc_->get_bound (LEFT)); - } - - script_ev_ = 0; - accepted_spanevents_drul_[START] = 0; - accepted_spanevents_drul_[STOP] = 0; + if (finished_spanner_ && !finished_spanner_->get_bound (RIGHT)) + finished_spanner_ + ->set_bound (RIGHT, + unsmob_grob (get_property ("currentMusicalColumn"))); + + if (current_spanner_ && !current_spanner_->get_bound (LEFT)) + current_spanner_ + ->set_bound (LEFT, + unsmob_grob (get_property ("currentMusicalColumn"))); + script_ = 0; + script_event_ = 0; + accepted_spanevents_drul_.set (0, 0); + finished_spanner_ = 0; + end_new_spanner_ = false; } void Dynamic_engraver::finalize () { - typeset_all (); - - if (line_spanner_ - && !line_spanner_->is_live ()) - line_spanner_ = 0; - if (line_spanner_) - { - finished_line_spanner_ = line_spanner_; - typeset_all (); - } - - if (cresc_ - && !cresc_->is_live ()) - cresc_ = 0; - if (cresc_) + if (current_spanner_ + && !current_spanner_->is_live ()) + current_spanner_ = 0; + if (current_spanner_) { - current_cresc_ev_->origin ()->warning (_ ("unterminated (de)crescendo")); - cresc_->suicide (); - cresc_ = 0; + current_span_event_ + ->origin ()->warning (_f ("unterminated %s", + get_spanner_type (current_span_event_) + .c_str ())); + current_spanner_->suicide (); + current_spanner_ = 0; } } -void -Dynamic_engraver::typeset_all () +string +Dynamic_engraver::get_spanner_type (Stream_event *ev) { - if (finished_cresc_) - { - if (!finished_cresc_->get_bound (RIGHT)) - { + string type; + SCM start_sym = scm_car (ev->get_property ("class")); - Grob *column_bound = unsmob_grob (get_property ("currentMusicalColumn")); + if (start_sym == ly_symbol2scm ("decrescendo-event")) + type = "decrescendo"; + else if (start_sym == ly_symbol2scm ("crescendo-event")) + type = "crescendo"; + else + programming_error ("unknown dynamic spanner type"); - finished_cresc_->set_bound (RIGHT, script_ - ? script_ - : column_bound); - - if (finished_line_spanner_) - add_bound_item (finished_line_spanner_, - finished_cresc_->get_bound (RIGHT)); - } - finished_cresc_ = 0; - } - - script_ = 0; - if (finished_line_spanner_) - { - /* - We used to have - - extend-spanner-over-elements (finished_line_spanner_); - - but this is rather kludgy, since finished_line_spanner_ - typically has a staff-symbol field set , extending it over the - entire staff. - - */ - - Grob *l = finished_line_spanner_->get_bound (LEFT); - Grob *r = finished_line_spanner_->get_bound (RIGHT); - if (!r && l) - finished_line_spanner_->set_bound (RIGHT, l); - else if (!l && r) - finished_line_spanner_->set_bound (LEFT, r); - else if (!r && !l) - { - /* - This is a isolated dynamic apparently, and does not even have - any interesting support item. - */ - Grob *cc = unsmob_grob (get_property ("currentMusicalColumn")); - Item *ci = dynamic_cast (cc); - finished_line_spanner_->set_bound (RIGHT, ci); - finished_line_spanner_->set_bound (LEFT, ci); - } - finished_line_spanner_ = 0; - } + return type; } void Dynamic_engraver::acknowledge_note_column (Grob_info info) { - if (!line_spanner_) - return; - - if (line_spanner_ - /* Don't refill killed spanner */ - && line_spanner_->is_live ()) - { - Side_position_interface::add_support (line_spanner_, info.grob ()); - add_bound_item (line_spanner_, dynamic_cast (info.grob ())); - } - if (script_ && !script_->get_parent (X_AXIS)) { extract_grob_set (info.grob (), "note-heads", heads); - if (heads.size ()) + Grob *stem = unsmob_grob (info.grob ()->get_object ("stem")); + /* + Spacing constraints may require dynamics to be aligned on rests, + so check for a rest if this note column has no note heads. + */ + Grob *x_parent = (heads.size () + ? heads[0] + : unsmob_grob (info.grob ()->get_object ("rest"))); + if (x_parent) { - Grob *head = heads[0]; - script_->set_parent (head, X_AXIS); + script_->set_parent (x_parent, X_AXIS); Self_alignment_interface::set_center_parent (script_, X_AXIS); } + if (stem) + Pointer_group_interface::add_grob (script_, ly_symbol2scm ("potential-X-colliding-grobs"), stem); } - if (cresc_) - { - if (!cresc_->get_bound (LEFT)) - { - cresc_->set_bound (LEFT, info.grob ()); - add_bound_item (line_spanner_, cresc_->get_bound (LEFT)); - } - } - - if (finished_cresc_ && !finished_cresc_->get_bound (RIGHT)) - finished_cresc_->set_bound (RIGHT, info.grob ()); + if (current_spanner_ && !current_spanner_->get_bound (LEFT)) + current_spanner_->set_bound (LEFT, info.grob ()); + if (finished_spanner_ && !finished_spanner_->get_bound (RIGHT)) + finished_spanner_->set_bound (RIGHT, info.grob ()); } ADD_ACKNOWLEDGER (Dynamic_engraver, note_column); - ADD_TRANSLATOR (Dynamic_engraver, /* doc */ - "Create hairpins, dynamic texts, and their vertical" - " alignments. The symbols are collected onto a" - " @code{DynamicLineSpanner} grob which takes care of vertical" - " positioning.", + "Create hairpins, dynamic texts and dynamic text spanners.", /* create */ - "DynamicLineSpanner " "DynamicTextSpanner " "DynamicText " "Hairpin ", /* read */ - "", + "crescendoSpanner " + "crescendoText " + "currentMusicalColumn " + "decrescendoSpanner " + "decrescendoText ", /* write */ "" diff --git a/lily/include/beam.hh b/lily/include/beam.hh index c26d8d2137..116ae6aa57 100644 --- a/lily/include/beam.hh +++ b/lily/include/beam.hh @@ -72,9 +72,6 @@ public: DECLARE_SCHEME_CALLBACK (rest_collision_callback, (SCM element, SCM prev_off)); DECLARE_SCHEME_CALLBACK (pure_rest_collision_callback, (SCM element, SCM, SCM, SCM prev_off)); DECLARE_SCHEME_CALLBACK (print, (SCM)); - DECLARE_SCHEME_CALLBACK (calc_beam_gap, (SCM)); - DECLARE_SCHEME_CALLBACK (calc_springs_and_rods, (SCM)); - DECLARE_SCHEME_CALLBACK (calc_minimum_length, (SCM)); DECLARE_SCHEME_CALLBACK (calc_beaming, (SCM)); DECLARE_SCHEME_CALLBACK (calc_stem_shorten, (SCM)); DECLARE_SCHEME_CALLBACK (calc_direction, (SCM)); @@ -92,7 +89,6 @@ public: private: friend class Beam_scoring_problem; - static bool whole_note_close_chord_tremolo (Grob *me); static Direction get_default_dir (Grob *); static vector get_beam_segments (Grob *); static void set_stem_directions (Grob *, Direction); diff --git a/lily/include/context-def.hh b/lily/include/context-def.hh index 2fddd980b7..2776c81105 100644 --- a/lily/include/context-def.hh +++ b/lily/include/context-def.hh @@ -28,7 +28,7 @@ #include /* - The definition of a interpretation context as given in the + The definition of an interpretation context as given in the input. The lists are stored in order of definition. */ struct Context_def diff --git a/lily/include/event-chord-iterator.hh b/lily/include/event-chord-iterator.hh index aaecc3d923..04168f4209 100644 --- a/lily/include/event-chord-iterator.hh +++ b/lily/include/event-chord-iterator.hh @@ -23,7 +23,7 @@ #include "simple-music-iterator.hh" /** - Walk through a Event_chord + Walk through an Event_chord */ class Event_chord_iterator : public Simple_music_iterator { diff --git a/lily/include/note-column.hh b/lily/include/note-column.hh index e39edf840f..c2723f0ba8 100644 --- a/lily/include/note-column.hh +++ b/lily/include/note-column.hh @@ -42,7 +42,6 @@ public: static bool has_rests (Grob *me); static Grob *dot_column (Grob *me); static Interval cross_staff_extent (Grob *me, Grob *refp); - static Interval accidental_width (Grob *me); DECLARE_GROB_INTERFACE (); static Item *get_stem (Grob *); diff --git a/lily/include/performer.hh b/lily/include/performer.hh index 0e6729a81f..1601625690 100644 --- a/lily/include/performer.hh +++ b/lily/include/performer.hh @@ -25,7 +25,7 @@ #include "grob-info.hh" #include "translator.hh" -/* Convert a music definition into a audio representation. +/* Convert a music definition into an audio representation. A baseclass. */ class Performer : public Translator { diff --git a/lily/item.cc b/lily/item.cc index 9941bc13c2..9cc808dde4 100644 --- a/lily/item.cc +++ b/lily/item.cc @@ -43,7 +43,7 @@ Item::Item (SCM s) } /** - Item copy ctor. Copy nothing: everything should be a elt property + Item copy ctor. Copy nothing: everything should be an elt property or a special purpose pointer (such as broken_to_drul_[]) */ Item::Item (Item const &s) : Grob (s) diff --git a/lily/lexer.ll b/lily/lexer.ll index 18b999da82..9a859e5a6a 100644 --- a/lily/lexer.ll +++ b/lily/lexer.ll @@ -91,6 +91,15 @@ bool is_valid_version (string s); yylval = SCM_EOL; \ } while (0) +/* + The inside of \"violin1" is marked by commandquote mode +*/ + +#define start_command_quote() do { \ + yy_push_state (commandquote); \ + yylval = SCM_EOL; \ + } while (0) + #define yylval (*lexval_) #define yylloc (*lexloc_) @@ -124,6 +133,7 @@ SCM (* scm_parse_error_handler) (void *); %x markup %x notes %x quote +%x commandquote %x sourcefileline %x sourcefilename %x version @@ -503,7 +513,9 @@ BOM_UTF8 \357\273\277 {WORD} { return scan_bare_word (YYText_utf8 ()); } - + \\\" { + start_command_quote (); + } {COMMAND}/[-_] | // backup rule {COMMAND} { return scan_escaped_word (YYText_utf8 () + 1); @@ -527,7 +539,7 @@ BOM_UTF8 \357\273\277 } } -{ +{ \\{ESCAPED} { char c = escaped_char (YYText ()[1]); yylval = scm_cons (scm_from_locale_stringn (&c, 1), @@ -539,14 +551,19 @@ BOM_UTF8 \357\273\277 } \" { - yy_pop_state (); - /* yylval is union. Must remember STRING before setting SCM*/ yylval = scm_string_concatenate_reverse (yylval, SCM_UNDEFINED, SCM_UNDEFINED); + if (get_state () == commandquote) { + yy_pop_state (); + return scan_escaped_word (ly_scm2string (yylval)); + } + + yy_pop_state (); + return STRING; } \\ { @@ -572,6 +589,9 @@ BOM_UTF8 \357\273\277 yylval = scm_c_read_string (YYText ()); return UNSIGNED; } + \\\" { + start_command_quote (); + } {COMMAND}/[-_] | // backup rule {COMMAND} { return scan_escaped_word (YYText_utf8 () + 1); @@ -585,7 +605,7 @@ BOM_UTF8 \357\273\277 yylval = SCM_UNSPECIFIED; return YYText ()[0]; } - [^$#{}\"\\ \t\n\r\f0-9]+ { + [^|*.=$#{}\"\\ \t\n\r\f0-9][^$#{}\"\\ \t\n\r\f0-9]* { /* ugr. This sux. */ string s (YYText_utf8 ()); yylval = SCM_UNSPECIFIED; @@ -609,6 +629,9 @@ BOM_UTF8 \357\273\277 {WORD} { return scan_bare_word (YYText_utf8 ()); } + \\\" { + start_command_quote (); + } {COMMAND}/[-_] | // backup rule {COMMAND} { return scan_escaped_word (YYText_utf8 () + 1); @@ -650,6 +673,9 @@ BOM_UTF8 \357\273\277 yylval = SCM_UNSPECIFIED; return SCORE; } + \\\" { + start_command_quote (); + } {COMMAND}/[-_] | // backup rule {COMMAND} { string str (YYText_utf8 () + 1); @@ -718,7 +744,7 @@ BOM_UTF8 \357\273\277 yy_pop_state (); } -<> { +<> { LexerError (_ ("EOF found inside string").c_str ()); yy_pop_state (); } @@ -736,10 +762,11 @@ BOM_UTF8 \357\273\277 { LexerError (_ ("Unfinished main input").c_str ()); do { - pop_state (); + yy_pop_state (); } while (YYSTATE != maininput); } - pop_state (); + extra_tokens_ = SCM_EOL; + yy_pop_state (); } if (!close_input () || !is_main_input_) /* Returns YY_NULL */ @@ -762,6 +789,9 @@ BOM_UTF8 \357\273\277 {WORD} { return scan_bare_word (YYText_utf8 ()); } + \\\" { + start_command_quote (); + } {COMMAND}/[-_] | // backup rule {COMMAND} { return scan_escaped_word (YYText_utf8 () + 1); @@ -890,7 +920,9 @@ Lily_lexer::pop_state () if (YYSTATE == notes || YYSTATE == chords) pitchname_tab_stack_ = scm_cdr (pitchname_tab_stack_); - yy_pop_state (); + // don't cross the maininput threshold + if (YYSTATE != maininput) + yy_pop_state (); if (extra) { hidden_state_ = YYSTATE; diff --git a/lily/new-dynamic-engraver.cc b/lily/new-dynamic-engraver.cc deleted file mode 100644 index cd7db644a6..0000000000 --- a/lily/new-dynamic-engraver.cc +++ /dev/null @@ -1,305 +0,0 @@ -/* - This file is part of LilyPond, the GNU music typesetter. - - Copyright (C) 2008--2012 Han-Wen Nienhuys - - LilyPond 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 3 of the License, or - (at your option) any later version. - - LilyPond 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 LilyPond. If not, see . -*/ - -#include "engraver.hh" -#include "hairpin.hh" -#include "international.hh" -#include "item.hh" -#include "note-column.hh" -#include "pointer-group-interface.hh" -#include "self-alignment-interface.hh" -#include "spanner.hh" -#include "stream-event.hh" -#include "text-interface.hh" - -#include "translator.icc" - -class New_dynamic_engraver : public Engraver -{ - TRANSLATOR_DECLARATIONS (New_dynamic_engraver); - DECLARE_ACKNOWLEDGER (note_column); - DECLARE_TRANSLATOR_LISTENER (absolute_dynamic); - DECLARE_TRANSLATOR_LISTENER (span_dynamic); - DECLARE_TRANSLATOR_LISTENER (break_span); - -protected: - virtual void process_music (); - virtual void stop_translation_timestep (); - virtual void finalize (); - -private: - SCM get_property_setting (Stream_event *evt, char const *evprop, - char const *ctxprop); - string get_spanner_type (Stream_event *ev); - - Drul_array accepted_spanevents_drul_; - Spanner *current_spanner_; - Spanner *finished_spanner_; - - Item *script_; - Stream_event *script_event_; - Stream_event *current_span_event_; - bool end_new_spanner_; -}; - -New_dynamic_engraver::New_dynamic_engraver () -{ - script_event_ = 0; - current_span_event_ = 0; - script_ = 0; - finished_spanner_ = 0; - current_spanner_ = 0; - accepted_spanevents_drul_.set (0, 0); - end_new_spanner_ = false; -} - -IMPLEMENT_TRANSLATOR_LISTENER (New_dynamic_engraver, absolute_dynamic); -void -New_dynamic_engraver::listen_absolute_dynamic (Stream_event *ev) -{ - ASSIGN_EVENT_ONCE (script_event_, ev); -} - -IMPLEMENT_TRANSLATOR_LISTENER (New_dynamic_engraver, span_dynamic); -void -New_dynamic_engraver::listen_span_dynamic (Stream_event *ev) -{ - Direction d = to_dir (ev->get_property ("span-direction")); - - ASSIGN_EVENT_ONCE (accepted_spanevents_drul_[d], ev); -} - -IMPLEMENT_TRANSLATOR_LISTENER (New_dynamic_engraver, break_span); -void -New_dynamic_engraver::listen_break_span (Stream_event *event) -{ - if (event->in_event_class ("break-dynamic-span-event")) - { - // Case 1: Already have a start dynamic event -> break applies to new - // spanner (created later) -> set a flag - // Case 2: no new spanner, but spanner already active -> break it now - if (accepted_spanevents_drul_[START]) - end_new_spanner_ = true; - else if (current_spanner_) - current_spanner_->set_property ("spanner-broken", SCM_BOOL_T); - } -} - -SCM -New_dynamic_engraver::get_property_setting (Stream_event *evt, - char const *evprop, - char const *ctxprop) -{ - SCM spanner_type = evt->get_property (evprop); - if (spanner_type == SCM_EOL) - spanner_type = get_property (ctxprop); - return spanner_type; -} - -void -New_dynamic_engraver::process_music () -{ - if (current_spanner_ - && (accepted_spanevents_drul_[STOP] - || script_event_ - || accepted_spanevents_drul_[START])) - { - Stream_event *ender = accepted_spanevents_drul_[STOP]; - if (!ender) - ender = script_event_; - - if (!ender) - ender = accepted_spanevents_drul_[START]; - - finished_spanner_ = current_spanner_; - announce_end_grob (finished_spanner_, ender->self_scm ()); - current_spanner_ = 0; - current_span_event_ = 0; - } - - if (accepted_spanevents_drul_[START]) - { - current_span_event_ = accepted_spanevents_drul_[START]; - - string start_type = get_spanner_type (current_span_event_); - SCM cresc_type = get_property_setting (current_span_event_, "span-type", - (start_type + "Spanner").c_str ()); - - if (cresc_type == ly_symbol2scm ("text")) - { - current_spanner_ - = make_spanner ("DynamicTextSpanner", - accepted_spanevents_drul_[START]->self_scm ()); - - SCM text = get_property_setting (current_span_event_, "span-text", - (start_type + "Text").c_str ()); - if (Text_interface::is_markup (text)) - current_spanner_->set_property ("text", text); - /* - If the line of a text spanner is hidden, end the alignment spanner - early: this allows dynamics to be spaced individually instead of - being linked together. - */ - if (current_spanner_->get_property ("style") == ly_symbol2scm ("none")) - current_spanner_->set_property ("spanner-broken", SCM_BOOL_T); - } - else - { - if (cresc_type != ly_symbol2scm ("hairpin")) - { - string as_string = ly_scm_write_string (cresc_type); - current_span_event_ - ->origin ()->warning (_f ("unknown crescendo style: %s\ndefaulting to hairpin.", as_string.c_str ())); - } - current_spanner_ = make_spanner ("Hairpin", - current_span_event_->self_scm ()); - } - // if we have a break-dynamic-span event right after the start dynamic, break the new spanner immediately - if (end_new_spanner_) - { - current_spanner_->set_property ("spanner-broken", SCM_BOOL_T); - end_new_spanner_ = false; - } - if (finished_spanner_) - { - if (Hairpin::has_interface (finished_spanner_)) - Pointer_group_interface::add_grob (finished_spanner_, - ly_symbol2scm ("adjacent-spanners"), - current_spanner_); - if (Hairpin::has_interface (current_spanner_)) - Pointer_group_interface::add_grob (current_spanner_, - ly_symbol2scm ("adjacent-spanners"), - finished_spanner_); - } - } - - if (script_event_) - { - script_ = make_item ("DynamicText", script_event_->self_scm ()); - script_->set_property ("text", - script_event_->get_property ("text")); - - if (finished_spanner_) - finished_spanner_->set_bound (RIGHT, script_); - if (current_spanner_) - current_spanner_->set_bound (LEFT, script_); - } -} - -void -New_dynamic_engraver::stop_translation_timestep () -{ - if (finished_spanner_ && !finished_spanner_->get_bound (RIGHT)) - finished_spanner_ - ->set_bound (RIGHT, - unsmob_grob (get_property ("currentMusicalColumn"))); - - if (current_spanner_ && !current_spanner_->get_bound (LEFT)) - current_spanner_ - ->set_bound (LEFT, - unsmob_grob (get_property ("currentMusicalColumn"))); - script_ = 0; - script_event_ = 0; - accepted_spanevents_drul_.set (0, 0); - finished_spanner_ = 0; - end_new_spanner_ = false; -} - -void -New_dynamic_engraver::finalize () -{ - if (current_spanner_ - && !current_spanner_->is_live ()) - current_spanner_ = 0; - if (current_spanner_) - { - current_span_event_ - ->origin ()->warning (_f ("unterminated %s", - get_spanner_type (current_span_event_) - .c_str ())); - current_spanner_->suicide (); - current_spanner_ = 0; - } -} - -string -New_dynamic_engraver::get_spanner_type (Stream_event *ev) -{ - string type; - SCM start_sym = scm_car (ev->get_property ("class")); - - if (start_sym == ly_symbol2scm ("decrescendo-event")) - type = "decrescendo"; - else if (start_sym == ly_symbol2scm ("crescendo-event")) - type = "crescendo"; - else - programming_error ("unknown dynamic spanner type"); - - return type; -} - -void -New_dynamic_engraver::acknowledge_note_column (Grob_info info) -{ - if (script_ && !script_->get_parent (X_AXIS)) - { - extract_grob_set (info.grob (), "note-heads", heads); - Grob *stem = unsmob_grob (info.grob ()->get_object ("stem")); - /* - Spacing constraints may require dynamics to be aligned on rests, - so check for a rest if this note column has no note heads. - */ - Grob *x_parent = (heads.size () - ? heads[0] - : unsmob_grob (info.grob ()->get_object ("rest"))); - if (x_parent) - { - script_->set_parent (x_parent, X_AXIS); - Self_alignment_interface::set_center_parent (script_, X_AXIS); - } - if (stem) - Pointer_group_interface::add_grob (script_, ly_symbol2scm ("potential-X-colliding-grobs"), stem); - } - - if (current_spanner_ && !current_spanner_->get_bound (LEFT)) - current_spanner_->set_bound (LEFT, info.grob ()); - if (finished_spanner_ && !finished_spanner_->get_bound (RIGHT)) - finished_spanner_->set_bound (RIGHT, info.grob ()); -} - -ADD_ACKNOWLEDGER (New_dynamic_engraver, note_column); -ADD_TRANSLATOR (New_dynamic_engraver, - /* doc */ - "Create hairpins, dynamic texts and dynamic text spanners.", - - /* create */ - "DynamicTextSpanner " - "DynamicText " - "Hairpin ", - - /* read */ - "crescendoSpanner " - "crescendoText " - "currentMusicalColumn " - "decrescendoSpanner " - "decrescendoText ", - - /* write */ - "" - ); diff --git a/lily/note-column.cc b/lily/note-column.cc index b98b4c68f8..42bd9b484c 100644 --- a/lily/note-column.cc +++ b/lily/note-column.cc @@ -40,31 +40,6 @@ using namespace std; annoying layer between (rest)collision & (note-head + stem) */ -Interval -Note_column::accidental_width (Grob *me) -{ - extract_grob_set (me, "note-heads", nhs); - vector accs; - for (vsize i = 0; i < nhs.size (); i++) - if (Grob *acc = unsmob_grob (nhs[i]->get_object ("accidental-grob"))) - accs.push_back (acc); - - Grob *common = common_refpoint_of_array (accs, me, X_AXIS); - common = common_refpoint_of_array (nhs, common, X_AXIS); - - Interval nhs_ex = Axis_group_interface::relative_group_extent (nhs, common, X_AXIS); - Interval accs_ex = Axis_group_interface::relative_group_extent (accs, common, X_AXIS); - - if (nhs_ex.is_empty ()) - return accs_ex; - - // want an empty interval here - if (accs_ex.is_empty ()) - return Interval (); - - return Interval (accs_ex[LEFT], nhs_ex[LEFT]); -} - bool Note_column::has_rests (Grob *me) { diff --git a/lily/paper-column.cc b/lily/paper-column.cc index 78f2786ef8..cdf3d595ca 100644 --- a/lily/paper-column.cc +++ b/lily/paper-column.cc @@ -27,7 +27,6 @@ #include "lookup.hh" #include "lookup.hh" #include "moment.hh" -#include "note-head.hh" #include "output-def.hh" #include "paper-score.hh" #include "pointer-group-interface.hh" @@ -219,7 +218,6 @@ Paper_column::break_align_width (Grob *me, SCM align_sym) return align->extent (p, X_AXIS); } - /* Print a vertical line and the rank number, to aid debugging. */ diff --git a/lily/parser.yy b/lily/parser.yy index 11d8d17125..a99dffcf38 100644 --- a/lily/parser.yy +++ b/lily/parser.yy @@ -523,6 +523,10 @@ scm_function_call: embedded_lilypond: /* empty */ { + // FIXME: @$ does not contain a useful source location + // for empty rules, and the only token in the whole + // production, EMBEDDED_LILY, is synthetic and also + // contains no source location. $$ = MAKE_SYNTAX ("void-music", @$); } | identifier_init @@ -622,6 +626,7 @@ context_def_spec_block: CONTEXT '{' context_def_spec_body '}' { $$ = $3; + unsmob_context_def ($$)->origin ()->set_spot (@$); } ; @@ -659,11 +664,9 @@ context_mod_embedded: context_def_spec_body: /**/ { $$ = Context_def::make_scm (); - unsmob_context_def ($$)->origin ()->set_spot (@$); } | CONTEXT_DEF_IDENTIFIER { $$ = $1; - unsmob_context_def ($$)->origin ()->set_spot (@$); } | context_def_spec_body context_mod { if (!SCM_UNBNDP ($2)) @@ -690,6 +693,7 @@ context_def_spec_body: book_block: BOOK '{' book_body '}' { $$ = $3; + unsmob_book ($$)->origin ()->set_spot (@$); pop_paper (parser); parser->lexer_->set_identifier (ly_symbol2scm ("$current-book"), SCM_BOOL_F); } @@ -702,7 +706,6 @@ book_body: { Book *book = new Book; init_papers (parser); - book->origin ()->set_spot (@$); book->paper_ = dynamic_cast (unsmob_output_def (parser->lexer_->lookup_identifier ("$defaultpaper"))->clone ()); book->paper_->unprotect (); push_paper (parser, book->paper_); @@ -711,7 +714,6 @@ book_body: parser->lexer_->set_identifier (ly_symbol2scm ("$current-book"), $$); } | BOOK_IDENTIFIER { - unsmob_book ($1)->origin ()->set_spot (@$); parser->lexer_->set_identifier (ly_symbol2scm ("$current-book"), $1); } | book_body paper_block { @@ -771,6 +773,7 @@ book_body: bookpart_block: BOOKPART '{' bookpart_body '}' { $$ = $3; + unsmob_book ($$)->origin ()->set_spot (@$); parser->lexer_->set_identifier (ly_symbol2scm ("$current-bookpart"), SCM_BOOL_F); } ; @@ -778,12 +781,10 @@ bookpart_block: bookpart_body: { Book *book = new Book; - book->origin ()->set_spot (@$); $$ = book->unprotect (); parser->lexer_->set_identifier (ly_symbol2scm ("$current-bookpart"), $$); } | BOOK_IDENTIFIER { - unsmob_book ($1)->origin ()->set_spot (@$); parser->lexer_->set_identifier (ly_symbol2scm ("$current-bookpart"), $1); } | bookpart_body paper_block { @@ -946,16 +947,7 @@ output_def_head_with_mode_switch: music_or_context_def: music_arg - { - parser->lexer_->pop_state (); - } - | CONTEXT - { - parser->lexer_->pop_state (); - } '{' context_def_spec_body '}' - { - $$ = $4; - } + | context_def_spec_block ; output_def_body: @@ -982,6 +974,7 @@ output_def_body: parser->lexer_->push_note_state (nn); } music_or_context_def { + parser->lexer_->pop_state (); if (unsmob_context_def ($3)) assign_context_def (unsmob_output_def ($1), $3); else { @@ -1131,7 +1124,11 @@ simple_music: ; context_modification: - WITH { parser->lexer_->push_initial_state (); } '{' context_mod_list '}' + WITH + { + SCM nn = parser->lexer_->lookup_identifier ("pitchnames"); + parser->lexer_->push_note_state (nn); + } '{' context_mod_list '}' { parser->lexer_->pop_state (); $$ = $4; @@ -1144,8 +1141,12 @@ context_modification: { $$ = $1; } - | WITH embedded_scm_closed + | WITH context_modification_arg { + if (unsmob_music ($2)) { + SCM proc = parser->lexer_->lookup_identifier ("context-mod-music-handler"); + $2 = scm_call_2 (proc, parser->self_scm (), $2); + } if (unsmob_context_mod ($2)) $$ = $2; else { @@ -1155,6 +1156,11 @@ context_modification: } ; +context_modification_arg: + embedded_scm_closed + | MUSIC_IDENTIFIER + ; + optional_context_mod: /**/ { $$ = SCM_EOL; diff --git a/lily/side-position-interface.cc b/lily/side-position-interface.cc index e3830d3d2f..54b5cb162b 100644 --- a/lily/side-position-interface.cc +++ b/lily/side-position-interface.cc @@ -360,8 +360,8 @@ Side_position_interface::aligned_side (Grob *me, Axis a, bool pure, int start, i } /* - Maintain a minimum distance to the staff. This is similar to side - position with padding, but it will put adjoining objects on a row if + Ensure 'staff-padding' from my refpoint to the staff. This is similar to + side-position with padding, but it will put adjoining objects on a row if stuff sticks out of the staff a little. */ Grob *staff = Staff_symbol_referencer::get_staff_symbol (me); @@ -404,7 +404,7 @@ Side_position_interface::aligned_side (Grob *me, Axis a, bool pure, int start, i Real staff_position = staff->maybe_pure_coordinate (common, Y_AXIS, pure, start, end); Interval staff_extent = staff->maybe_pure_extent (staff, a, pure, start, end); Real diff = (dir * staff_extent[dir] + staff_padding - - dir * (total_off + iv[-dir]) + - dir * total_off + dir * (staff_position - parent_position)); total_off += dir * max (diff, 0.0); } diff --git a/lily/staff-spacing.cc b/lily/staff-spacing.cc index 49f42ea4a6..e8bedd2e70 100644 --- a/lily/staff-spacing.cc +++ b/lily/staff-spacing.cc @@ -129,7 +129,7 @@ Staff_spacing::get_spacing (Grob *me, Grob *right_col, Real situational_space) /* TODO: - Should insert a adjustable space here? For excercises, you might want to + Should insert an adjustable space here? For exercises, you might want to use a staff without a clef in the beginning. */ diff --git a/lily/tie-engraver.cc b/lily/tie-engraver.cc index 07eb9196c7..637a73ef32 100644 --- a/lily/tie-engraver.cc +++ b/lily/tie-engraver.cc @@ -103,7 +103,10 @@ IMPLEMENT_TRANSLATOR_LISTENER (Tie_engraver, tie); void Tie_engraver::listen_tie (Stream_event *ev) { - ASSIGN_EVENT_ONCE (event_, ev); + if (!to_boolean (get_property ("skipTypesetting"))) + { + ASSIGN_EVENT_ONCE (event_, ev); + } } void Tie_engraver::report_unterminated_tie (Head_event_tuple const &tie_start) @@ -373,6 +376,7 @@ ADD_TRANSLATOR (Tie_engraver, "TieColumn ", /* read */ + "skipTypesetting " "tieWaitForNote ", /* write */ diff --git a/lily/tuplet-bracket.cc b/lily/tuplet-bracket.cc index d211dcae38..1eccaabc06 100644 --- a/lily/tuplet-bracket.cc +++ b/lily/tuplet-bracket.cc @@ -92,8 +92,10 @@ Tuplet_bracket::parallel_beam (Grob *me_grob, vector const &cols, { Spanner *me = dynamic_cast (me_grob); - if (me->get_bound (LEFT)->break_status_dir () - || me->get_bound (RIGHT)->break_status_dir ()) + Item *left = me->get_bound (LEFT); + Item *right = me->get_bound (RIGHT); + if (!left || left->break_status_dir () + || !right || right->break_status_dir ()) return 0; Drul_array stems (Note_column::get_stem (cols[0]), diff --git a/lily/tuplet-engraver.cc b/lily/tuplet-engraver.cc index 4348044fbe..1fc30d898a 100644 --- a/lily/tuplet-engraver.cc +++ b/lily/tuplet-engraver.cc @@ -107,7 +107,7 @@ Tuplet_engraver::listen_tuplet_span (Stream_event *ev) tuplets_.pop_back (); } else if (!to_boolean (get_property ("skipTypesetting"))) - ev->origin ()->warning (_ ("No tuplet to end")); + ev->origin ()->debug_output (_ ("No tuplet to end")); } else ev->origin ()->programming_error ("direction tuplet-span-event_ invalid."); @@ -155,7 +155,10 @@ Tuplet_engraver::process_music () stopped_tuplets_[i].bracket_->get_bound (LEFT)); } else - programming_error ("stopped tuplet bracket has neither left nor right bound"); + { + warning ("omitting tuplet bracket with neither left nor right bound"); + continue; + } } // todo: scrap last_tuplets_, use stopped_tuplets_ only. // clear stopped_tuplets_ at start_translation_timestep diff --git a/lily/vaticana-ligature-engraver.cc b/lily/vaticana-ligature-engraver.cc index 2372b511f2..9b1485777c 100644 --- a/lily/vaticana-ligature-engraver.cc +++ b/lily/vaticana-ligature-engraver.cc @@ -166,7 +166,7 @@ Vaticana_ligature_engraver::need_extra_horizontal_space (int prev_prefix_set, in { if (prev_prefix_set & VIRGA) /* - * After a virga, make a an additional small space such that the + * After a virga, make an additional small space such that the * appendix on the right side of the head does not touch the * following head. */ @@ -181,7 +181,7 @@ Vaticana_ligature_engraver::need_extra_horizontal_space (int prev_prefix_set, in if ((context_info & FLEXA_LEFT) && ! (context_info & PES_UPPER)) /* - * Before a flexa (but not within a torculus), make a an + * Before a flexa (but not within a torculus), make an * additional small space such that the appendix on the left side * of the flexa does not touch the this head. */ diff --git a/ly/engraver-init.ly b/ly/engraver-init.ly index d5c8ffc3af..9c8547dd7d 100644 --- a/ly/engraver-init.ly +++ b/ly/engraver-init.ly @@ -16,7 +16,7 @@ %%%% You should have received a copy of the GNU General Public License %%%% along with LilyPond. If not, see . -\version "2.17.11" +\version "2.17.29" \context { \name "Global" @@ -240,6 +240,7 @@ multiple voices on the same staff." \consists "Beam_engraver" \consists "Grace_beam_engraver" \consists "Auto_beam_engraver" + \consists "Grace_auto_beam_engraver" %% must come before Script_column_engraver. \consists "New_fingering_engraver" @@ -251,9 +252,8 @@ multiple voices on the same staff." \consists "Part_combine_engraver" \consists "Text_engraver" - \consists "New_dynamic_engraver" + \consists "Dynamic_engraver" \consists "Dynamic_align_engraver" -% \consists "Dynamic_engraver" \consists "Fingering_engraver" \consists "Bend_engraver" @@ -397,7 +397,7 @@ a collection of staves, with a bracket in front and spanning bar lines." \consists "Bar_engraver" \consists "Piano_pedal_engraver" \consists "Script_engraver" - \consists "New_dynamic_engraver" + \consists "Dynamic_engraver" \consists "Dynamic_align_engraver" \consists "Text_engraver" \consists "Text_spanner_engraver" diff --git a/ly/init.ly b/ly/init.ly index 7dbb1042aa..acaa2c9899 100644 --- a/ly/init.ly +++ b/ly/init.ly @@ -55,15 +55,15 @@ $(if (ly:get-option 'include-settings) toplevel-book-handler))) (cond ((pair? toplevel-bookparts) (let ((book (ly:make-book $defaultpaper $defaultheader))) - (map (lambda (part) - (ly:book-add-bookpart! book part)) - (reverse! toplevel-bookparts)) + (for-each (lambda (part) + (ly:book-add-bookpart! book part)) + (reverse! toplevel-bookparts)) (set! toplevel-bookparts (list)) ;; if scores have been defined after the last explicit \bookpart: (if (pair? toplevel-scores) - (map (lambda (score) - (ly:book-add-score! book score)) - (reverse! toplevel-scores))) + (for-each (lambda (score) + (ly:book-add-score! book score)) + (reverse! toplevel-scores))) (set! toplevel-scores (list)) (book-handler parser book))) ((or (pair? toplevel-scores) output-empty-score-list) diff --git a/ly/music-functions-init.ly b/ly/music-functions-init.ly index 3f88b07252..f47cd1d214 100644 --- a/ly/music-functions-init.ly +++ b/ly/music-functions-init.ly @@ -728,7 +728,7 @@ ottava = overrideTimeSignatureSettings = #(define-music-function (parser location time-signature base-moment beat-structure beam-exceptions) - (pair? pair? cheap-list? cheap-list?) + (fraction? fraction? list? list?) (_i "Override @code{timeSignatureSettings} for time signatures of @var{time-signature} to have settings diff --git a/ly/performer-init.ly b/ly/performer-init.ly index 8e3ef0e7ef..816bb2f0bf 100644 --- a/ly/performer-init.ly +++ b/ly/performer-init.ly @@ -16,7 +16,7 @@ %%%% You should have received a copy of the GNU General Public License %%%% along with LilyPond. If not, see . -\version "2.17.11" +\version "2.17.14" %% %% setup for Request->Element conversion. diff --git a/make/doc-i18n-root-rules.make b/make/doc-i18n-root-rules.make index d374e5ca73..e36acd7356 100644 --- a/make/doc-i18n-root-rules.make +++ b/make/doc-i18n-root-rules.make @@ -2,7 +2,7 @@ .SUFFIXES: .html .info .texi .texinfo # Explicitly list the dependencies on generated content -$(outdir)/web.texi: $(outdir)/weblinks.itexi +$(outdir)/web.texi: $(outdir)/we-wrote.itexi $(outdir)/others-did.itexi $(outdir)/weblinks.itexi $(outdir)/version.itexi $(top-build-dir)/Documentation/$(outdir)/%/index.$(ISOLANG).html: $(outdir)/%/index.html $(TRANSLATION_LILY_IMAGES) mkdir -p $(dir $@) @@ -20,19 +20,13 @@ $(top-build-dir)/Documentation/$(outdir)/%.$(ISOLANG).pdf: $(outdir)/%.pdf mkdir -p $(dir $@) cp -f $< $@ -$(outdir)/version.%: $(top-src-dir)/VERSION - $(PYTHON) $(top-src-dir)/scripts/build/create-version-itexi.py > $@ - -$(outdir)/weblinks.%: $(top-src-dir)/VERSION - $(PYTHON) $(top-src-dir)/scripts/build/create-weblinks-itexi.py > $@ - $(outdir)/%.png: $(top-build-dir)/Documentation/$(outdir)/%.png ln -f $< $@ $(MASTER_TEXI_FILES): $(ITELY_FILES) $(ITEXI_FILES) $(outdir)/pictures $(outdir)/pictures: - $(MAKE) -C $(top-build-dir)/Documentation/pictures WWW-1 + $(MAKE) -C $(top-build-dir)/Documentation/pictures out=www WWW-1 ln -sf $(top-build-dir)/Documentation/pictures/$(outdir) $@ $(TRANSLATION_LILY_IMAGES): $(MASTER_TEXI_FILES) diff --git a/make/doc-i18n-root-targets.make b/make/doc-i18n-root-targets.make index cd5001174a..875617a503 100644 --- a/make/doc-i18n-root-targets.make +++ b/make/doc-i18n-root-targets.make @@ -2,10 +2,10 @@ default: ifeq ($(out),www) ifneq ($(NO_PDF_FILES),) -local-WWW-1: $(OUT_TEXINFO_MANUALS) $(MASTER_TEXI_FILES) $(XREF_MAPS_FILES) +local-WWW-1: $(OUT_TEXINFO_MANUALS) $(MASTER_TEXI_FILES) $(XREF_MAPS_FILES) $(TRANSLATION_LILY_IMAGES) endif ifeq ($(NO_PDF_FILES),) -local-WWW-1: $(OUT_TEXINFO_MANUALS) $(MASTER_TEXI_FILES) $(PDF_FILES) $(XREF_MAPS_FILES) +local-WWW-1: $(OUT_TEXINFO_MANUALS) $(MASTER_TEXI_FILES) $(PDF_FILES) $(XREF_MAPS_FILES) $(TRANSLATION_LILY_IMAGES) endif local-WWW-2: $(DEEP_HTML_FILES) $(BIG_PAGE_HTML_FILES) $(DOCUMENTATION_LOCALE_TARGET) diff --git a/make/doc-i18n-root-vars.make b/make/doc-i18n-root-vars.make index e279c6d88d..48cfcdbb12 100644 --- a/make/doc-i18n-root-vars.make +++ b/make/doc-i18n-root-vars.make @@ -26,12 +26,14 @@ PDF_FILES := $(TELY_FILES:%.tely=$(top-build-dir)/Documentation/$(outdir)/%.$(IS ITELY_FILES := $(call src-wildcard,*.itely) ITEXI_FILES := $(call src-wildcard,*.itexi) -DOCUMENTATION_INCLUDES = \ +DOCUMENTATION_INCLUDES += \ + -I $(top-build-dir)/Documentation/$(outdir) \ + -I $(top-build-dir)/Documentation/snippets/out \ -I $(top-src-dir)/Documentation/$(ISOLANG)/included \ + -I $(top-src-dir)/Documentation/included \ -I $(top-src-dir)/Documentation \ - -I $(top-build-dir)/Documentation/$(outdir) + -I $(top-src-dir)/input/regression -LILYPOND_BOOK_INCLUDES += $(DOCUMENTATION_INCLUDES) MAKEINFO_FLAGS += --enable-encoding $(DOCUMENTATION_INCLUDES) MAKEINFO = LANG= $(MAKEINFO_PROGRAM) $(MAKEINFO_FLAGS) diff --git a/make/lilypond-vars.make b/make/lilypond-vars.make index 985197a4db..e67a570c92 100644 --- a/make/lilypond-vars.make +++ b/make/lilypond-vars.make @@ -27,13 +27,7 @@ MUSICXML2LY = $(script-dir)/musicxml2ly.py CONVERT_LY = $(script-dir)/convert-ly.py LILYPOND_BOOK = $(script-dir)/lilypond-book.py -LILYPOND_BOOK_INCLUDES = -I $(outdir) -I $(src-dir) -I $(input-dir) \ - -I $(top-src-dir)/Documentation -I $(top-build-dir)/Documentation/snippets/out \ - -I $(input-dir)/regression/ -I $(top-src-dir)/Documentation/included/ \ - -I $(top-build-dir)/mf/$(outconfbase)/ \ - -I $(top-build-dir)/mf/out/ \ - -I $(top-src-dir)/Documentation/pictures \ - -I $(top-build-dir)/Documentation/pictures/$(outdir) +LILYPOND_BOOK_INCLUDES = -I $(src-dir) $(DOCUMENTATION_INCLUDES) ## override from cmd line to speed up. ANTI_ALIAS_FACTOR=2 diff --git a/mf/GNUmakefile b/mf/GNUmakefile index f81b56dabe..9da619c823 100644 --- a/mf/GNUmakefile +++ b/mf/GNUmakefile @@ -7,7 +7,8 @@ STEPMAKE_TEMPLATES = metafont \ install-out LOCALSTEPMAKE_TEMPLATES = lilypond -# We don't use $(MF_FILES), because there's more .mf cruft here +# These are the main .mf files. We don't use $(MF_FILES) here, +# because there are more .mf files, input'ed into the main files. FETA_MF_FILES = $(call src-wildcard,feta[0-9]*.mf) \ $(call src-wildcard,feta-braces-[a-z].mf) \ $(call src-wildcard,feta-alphabet*[0-9].mf) \ @@ -35,15 +36,10 @@ OTF_TABLES = $(STAFF_SIZES:%=$(outdir)/feta%.otf-table) \ SVG_FILES = $(OTF_FILES:%.otf=%.svg) WOFF_FILES = $(OTF_FILES:%.otf=%.woff) -FC_FIND = $(shell $(FCLIST) --verbose 'Century Schoolbook L:style=$(1)' \ - | grep 'file:' \ - | sed 's/.*"\([^"]*\)".*/\1/g') - NCSB_OTFS = $(addprefix $(outdir)/,CenturySchL-Ital.otf \ CenturySchL-BoldItal.otf \ CenturySchL-Roma.otf \ CenturySchL-Bold.otf) -NCSB_INSTALL_DIR = $(local_lilypond_datadir)/fonts/otf LOG_FILES = $(FETA_MF_FILES:%.mf=$(outdir)/%.log) LISP_FILES = $(FETA_MF_FILES:%.mf=$(outdir)/%.lisp) @@ -99,9 +95,10 @@ $(PE_SCRIPTS): $(buildscript-dir)/gen-emmentaler-scripts $< --dir=$(outdir) -# Make tfm files first, log files last, -# so that normally log files aren't made twice -ALL_GEN_FILES = $(LOG_FILES) \ +# Generate emmentaler-*.pe scripts first, and *.otf, *.svg, *.woff files last, +# so that normally these files aren't regenerated on a subsequent call to make. +ALL_GEN_FILES = $(PE_SCRIPTS) \ + $(LOG_FILES) \ $(ENC_FILES) \ $(LISP_FILES) \ $(OTF_TABLES) \ diff --git a/mf/parmesan-noteheads.mf b/mf/parmesan-noteheads.mf index dbeb87530d..cf1bfae111 100644 --- a/mf/parmesan-noteheads.mf +++ b/mf/parmesan-noteheads.mf @@ -166,7 +166,7 @@ def draw_neomensural_longa (expr wid, holeheight, direction) = enddef; -def draw_neomensural_black_head (expr width, height) = +def draw_neomensural_black_head (expr width, height, concaveness) = save head_width, head_height, stem_width; save ne, nw, ne_dist, nw_dist; pair ne, nw, ne_dist, nw_dist; @@ -197,25 +197,25 @@ def draw_neomensural_black_head (expr width, height) = ne_dist := (nw rotated -90) * blot_diameter / 2; fill lft z1 - .. (z1 + nw_dist) - -- (z2 + nw_dist) + .. (z1 + nw_dist){ ne rotated -concaveness } + .. { ne rotated concaveness }(z2 + nw_dist) .. top z2 - .. (z2 + ne_dist) - -- (z3 + ne_dist) + .. (z2 + ne_dist){ nw rotated (180 - concaveness) } + .. { nw rotated (180 + concaveness) }(z3 + ne_dist) .. rt z3 - .. (z3 - nw_dist) - -- (z4 - nw_dist) + .. (z3 - nw_dist){ ne rotated (180 - concaveness) } + .. { ne rotated (180 + concaveness) }(z4 - nw_dist) .. bot z4 - .. (z4 - ne_dist) - -- (z1 - ne_dist) + .. (z4 - ne_dist){ nw rotated -concaveness } + .. { nw rotated concaveness }(z1 - ne_dist) .. cycle; labels (1, 2, 3, 4); enddef; -def draw_neomensural_open_head (expr width, height)= - draw_neomensural_black_head (width, height); +def draw_neomensural_open_head (expr width, height, concaveness)= + draw_neomensural_black_head (width, height, concaveness); save headNW, headSW, stem_width; @@ -317,15 +317,15 @@ save nm_height, nm_width; nm_height := noteheight#; nm_width := staff_space#; fet_beginchar ("Neo-mensural semibrevis head", "s0neomensural"); - draw_neomensural_open_head (nm_width, nm_height); + draw_neomensural_open_head (nm_width, nm_height, 0); fet_endchar; fet_beginchar ("Neo-mensural minima head", "s1neomensural"); - draw_neomensural_open_head (nm_width, nm_height); + draw_neomensural_open_head (nm_width, nm_height, 0); fet_endchar; fet_beginchar ("Neo-mensural semiminima head", "s2neomensural"); - draw_neomensural_black_head (nm_width, nm_height); + draw_neomensural_black_head (nm_width, nm_height, 0); fet_endchar; %%%%%%%% @@ -342,13 +342,13 @@ fet_endchar; % fet_beginchar ("Harmonic notehead (Neo-mensural open)", "s0harmonic"); - draw_neomensural_open_head (1.3 staff_space#, 1.3 noteheight#); + draw_neomensural_open_head (1.3 staff_space#, 1.3 noteheight#, 5); charwx := head_width#; charwy := 0; fet_endchar; fet_beginchar ("Harmonic notehead (Neo-mensural black)", "s2harmonic"); - draw_neomensural_black_head (1.3 staff_space#, 1.3 noteheight#); + draw_neomensural_black_head (1.3 staff_space#, 1.3 noteheight#, 5); charwx := head_width#; charwy := 0; fet_endchar; @@ -737,15 +737,15 @@ petrucci_height := 1.4 noteheight#; petrucci_width := .72 petrucci_height; fet_beginchar ("Petrucci semibrevis head", "s0petrucci"); - draw_neomensural_open_head (petrucci_width, petrucci_height); + draw_neomensural_open_head (petrucci_width, petrucci_height, 0); fet_endchar; fet_beginchar ("Petrucci minima head", "s1petrucci"); - draw_neomensural_open_head (petrucci_width, petrucci_height); + draw_neomensural_open_head (petrucci_width, petrucci_height, 0); fet_endchar; fet_beginchar ("Petrucci semiminima head", "s2petrucci"); - draw_neomensural_black_head (petrucci_width, petrucci_height); + draw_neomensural_black_head (petrucci_width, petrucci_height, 0); fet_endchar; @@ -754,15 +754,15 @@ fet_endchar; % fet_beginchar ("Petrucci colored semibrevis head", "s0blackpetrucci"); - draw_neomensural_black_head (petrucci_width, petrucci_height); + draw_neomensural_black_head (petrucci_width, petrucci_height, 0); fet_endchar; fet_beginchar ("Petrucci colored minima head", "s1blackpetrucci"); - draw_neomensural_black_head (petrucci_width, petrucci_height); + draw_neomensural_black_head (petrucci_width, petrucci_height, 0); fet_endchar; fet_beginchar ("Petrucci colored semiminima head", "s2blackpetrucci"); - draw_neomensural_black_head (petrucci_width, petrucci_height); + draw_neomensural_black_head (petrucci_width, petrucci_height, 0); fet_endchar; diff --git a/po/lilypond.pot b/po/lilypond.pot index 5ac534a793..403721d55f 100644 --- a/po/lilypond.pot +++ b/po/lilypond.pot @@ -6,10 +6,10 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: lilypond 2.17.26\n" +"Project-Id-Version: lilypond 2.17.28\n" "Report-Msgid-Bugs-To: http://post.gmane.org/post.php?group=gmane.comp.gnu." "lilypond.bugs\n" -"POT-Creation-Date: 2013-09-08 15:34+0100\n" +"POT-Creation-Date: 2013-10-06 16:14+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -775,10 +775,16 @@ msgstr "" msgid "beamExceptions controls whole-measure beaming." msgstr "" -#: convertrules.py:3584 +#: convertrules.py:3606 msgid "Flag.transparent and Flag.color inherit from Stem" msgstr "" +#: convertrules.py:3672 +msgid "" +"Staff-padding now controls the distance to the baseline, not the nearest " +"point." +msgstr "" + #: fontextract.py:25 #, python-format msgid "Scanning %s" @@ -1009,34 +1015,34 @@ msgstr "" msgid "show warranty and copyright" msgstr "" -#: convert-ly.py:189 +#: convert-ly.py:190 msgid "Applying conversion: " msgstr "" -#: convert-ly.py:204 +#: convert-ly.py:209 msgid "Error while converting" msgstr "" -#: convert-ly.py:206 +#: convert-ly.py:211 msgid "Stopping at last successful rule" msgstr "" -#: convert-ly.py:234 +#: convert-ly.py:239 #, python-format msgid "Processing `%s'... " msgstr "" -#: convert-ly.py:344 +#: convert-ly.py:354 #, python-format msgid "%s: Unable to open file" msgstr "" -#: convert-ly.py:350 +#: convert-ly.py:360 #, python-format msgid "%s: Unable to determine version. Skipping" msgstr "" -#: convert-ly.py:356 +#: convert-ly.py:366 #, python-format msgid "" "%s: Invalid version string `%s' \n" @@ -1044,7 +1050,7 @@ msgid "" "`2.8.12'" msgstr "" -#: convert-ly.py:362 +#: convert-ly.py:372 #, python-format msgid "There was %d error." msgid_plural "There were %d errors." @@ -1720,19 +1726,19 @@ msgstr "" msgid "already have a beam" msgstr "" -#: beam-engraver.cc:231 +#: beam-engraver.cc:235 msgid "unterminated beam" msgstr "" -#: beam-engraver.cc:270 chord-tremolo-engraver.cc:149 +#: beam-engraver.cc:282 chord-tremolo-engraver.cc:149 msgid "stem must have Rhythmic structure" msgstr "" -#: beam-engraver.cc:281 +#: beam-engraver.cc:293 msgid "stem does not fit in beam" msgstr "" -#: beam-engraver.cc:282 +#: beam-engraver.cc:294 msgid "beam was started here" msgstr "" @@ -1820,6 +1826,11 @@ msgstr "" msgid "cannot find or create: `%s'" msgstr "" +#: context.cc:439 +#, c-format +msgid "cannot find or create new Bottom = \"%s\"" +msgstr "" + #: custos.cc:87 #, c-format msgid "custos `%s' not found" @@ -3002,11 +3013,11 @@ msgstr "" msgid "unterminated text spanner" msgstr "" -#: tie-engraver.cc:116 +#: tie-engraver.cc:119 msgid "unterminated tie" msgstr "" -#: tie-engraver.cc:350 +#: tie-engraver.cc:353 msgid "lonely tie" msgstr "" @@ -3118,194 +3129,194 @@ msgstr "" msgid "Too much lookahead" msgstr "" -#: parser.yy:458 parser.yy:756 parser.yy:823 +#: parser.yy:458 parser.yy:759 parser.yy:825 msgid "bad expression type" msgstr "" -#: parser.yy:652 parser.yy:1151 +#: parser.yy:657 parser.yy:1153 msgid "not a context mod" msgstr "" -#: parser.yy:858 +#: parser.yy:860 msgid "score expected" msgstr "" -#: parser.yy:874 +#: parser.yy:876 msgid "\\paper cannot be used in \\score, use \\layout instead" msgstr "" -#: parser.yy:898 +#: parser.yy:900 msgid "need \\paper for paper block" msgstr "" -#: parser.yy:1046 parser.yy:1068 +#: parser.yy:1040 parser.yy:1062 msgid "unexpected post-event" msgstr "" -#: parser.yy:1076 +#: parser.yy:1070 msgid "Ignoring non-music expression" msgstr "" -#: parser.yy:1087 parser.yy:2373 +#: parser.yy:1081 parser.yy:2380 msgid "music expected" msgstr "" -#: parser.yy:1355 +#: parser.yy:1362 msgid "not a symbol" msgstr "" -#: parser.yy:2044 parser.yy:2158 parser.yy:2171 parser.yy:2180 +#: parser.yy:2051 parser.yy:2165 parser.yy:2178 parser.yy:2187 msgid "bad grob property path" msgstr "" -#: parser.yy:2138 +#: parser.yy:2145 msgid "only \\consists and \\remove take non-string argument." msgstr "" -#: parser.yy:2199 +#: parser.yy:2206 msgid "bad context property path" msgstr "" -#: parser.yy:2300 +#: parser.yy:2307 msgid "simple string expected" msgstr "" -#: parser.yy:2318 +#: parser.yy:2325 msgid "symbol expected" msgstr "" -#: parser.yy:2482 +#: parser.yy:2489 msgid "not a rhythmic event" msgstr "" -#: parser.yy:2556 +#: parser.yy:2563 msgid "post-event expected" msgstr "" -#: parser.yy:2565 parser.yy:2570 +#: parser.yy:2572 parser.yy:2577 msgid "have to be in Lyric mode for lyrics" msgstr "" -#: parser.yy:2638 +#: parser.yy:2645 msgid "expecting string as script definition" msgstr "" -#: parser.yy:2733 +#: parser.yy:2740 msgid "not an articulation" msgstr "" -#: parser.yy:2805 parser.yy:2851 +#: parser.yy:2812 parser.yy:2858 #, c-format msgid "not a duration: %d" msgstr "" -#: parser.yy:2868 +#: parser.yy:2875 msgid "bass number expected" msgstr "" -#: parser.yy:2967 +#: parser.yy:2974 msgid "have to be in Note mode for notes" msgstr "" -#: parser.yy:3026 +#: parser.yy:3033 msgid "have to be in Chord mode for chords" msgstr "" -#: parser.yy:3041 +#: parser.yy:3048 msgid "markup outside of text script or \\lyricmode" msgstr "" -#: parser.yy:3046 +#: parser.yy:3053 msgid "unrecognized string, not in text script or \\lyricmode" msgstr "" -#: parser.yy:3254 +#: parser.yy:3261 msgid "not a markup" msgstr "" -#: lexer.ll:214 +#: lexer.ll:224 msgid "stray UTF-8 BOM encountered" msgstr "" -#: lexer.ll:217 +#: lexer.ll:227 msgid "Skipping UTF-8 BOM" msgstr "" -#: lexer.ll:269 +#: lexer.ll:279 #, c-format msgid "Renaming input to: `%s'" msgstr "" -#: lexer.ll:286 +#: lexer.ll:296 msgid "quoted string expected after \\version" msgstr "" -#: lexer.ll:290 +#: lexer.ll:300 msgid "quoted string expected after \\sourcefilename" msgstr "" -#: lexer.ll:294 +#: lexer.ll:304 msgid "integer expected after \\sourcefileline" msgstr "" -#: lexer.ll:321 +#: lexer.ll:331 msgid "\\maininput not allowed outside init files" msgstr "" -#: lexer.ll:345 +#: lexer.ll:355 #, c-format msgid "wrong or undefined identifier: `%s'" msgstr "" -#: lexer.ll:371 +#: lexer.ll:381 msgid "string expected after \\include" msgstr "" -#: lexer.ll:381 +#: lexer.ll:391 msgid "end quote missing" msgstr "" -#: lexer.ll:717 +#: lexer.ll:743 msgid "EOF found inside a comment" msgstr "" -#: lexer.ll:722 +#: lexer.ll:748 msgid "EOF found inside string" msgstr "" -#: lexer.ll:737 +#: lexer.ll:763 msgid "Unfinished main input" msgstr "" -#: lexer.ll:804 +#: lexer.ll:834 #, c-format msgid "invalid character: `%s'" msgstr "" -#: lexer.ll:931 +#: lexer.ll:963 #, c-format msgid "unknown escaped string: `\\%s'" msgstr "" -#: lexer.ll:951 +#: lexer.ll:983 #, c-format msgid "undefined character or shorthand: %s" msgstr "" -#: lexer.ll:1247 +#: lexer.ll:1279 msgid "non-UTF-8 input" msgstr "" -#: lexer.ll:1291 +#: lexer.ll:1323 #, c-format msgid "file too old: %s (oldest supported: %s)" msgstr "" -#: lexer.ll:1292 +#: lexer.ll:1324 msgid "consider updating the input with the convert-ly script" msgstr "" -#: lexer.ll:1298 +#: lexer.ll:1330 #, c-format msgid "program too old: %s (file requires: %s)" msgstr "" @@ -3337,7 +3348,7 @@ msgstr "" msgid "Writing header field `~a' to `~a'..." msgstr "" -#: backend-library.scm:190 +#: backend-library.scm:189 #, scheme-format msgid "missing stencil expression `~S'" msgstr "" @@ -3402,60 +3413,65 @@ msgstr "" msgid "no systems found in \\score markup, does it have a \\layout block?" msgstr "" -#: define-markup-commands.scm:2832 +#: define-markup-commands.scm:2856 #, scheme-format msgid "Cannot find glyph ~a" msgstr "" -#: define-markup-commands.scm:3258 +#: define-markup-commands.scm:3282 #, scheme-format msgid "no brace found for point size ~S " msgstr "" -#: define-markup-commands.scm:3259 +#: define-markup-commands.scm:3283 #, scheme-format msgid "defaulting to ~S pt" msgstr "" -#: define-markup-commands.scm:3503 +#: define-markup-commands.scm:3527 #, scheme-format msgid "not a valid duration string: ~a" msgstr "" -#: define-markup-commands.scm:3714 +#: define-markup-commands.scm:3738 #, scheme-format msgid "not a valid duration string: ~a - ignoring" msgstr "" -#: define-music-types.scm:783 +#: define-music-types.scm:792 #, scheme-format msgid "symbol expected: ~S" msgstr "" -#: define-music-types.scm:786 +#: define-music-types.scm:795 #, scheme-format msgid "cannot find music object: ~S" msgstr "" -#: define-music-types.scm:805 +#: define-music-types.scm:815 +#, scheme-format +msgid "bad make-music argument: ~S" +msgstr "" + +#: define-music-types.scm:827 #, scheme-format msgid "unknown repeat type `~S'" msgstr "" -#: define-music-types.scm:806 +#: define-music-types.scm:828 msgid "See define-music-types.scm for supported repeats" msgstr "" -#: define-note-names.scm:971 +#: define-note-names.scm:972 msgid "Select note names language." msgstr "" -#: define-note-names.scm:977 +#: define-note-names.scm:978 #, scheme-format msgid "Using `~a' note names..." msgstr "" -#: define-note-names.scm:980 +#: define-note-names.scm:981 #, scheme-format msgid "Could not find language `~a'. Ignoring." msgstr "" @@ -3574,19 +3590,19 @@ msgstr "" msgid "Music unsuitable for output-def" msgstr "" -#: lily-library.scm:887 +#: lily-library.scm:884 msgid "" "Find the index between @var{start} and @var{end} (an integer)\n" "which produces the closest match to @var{target-val} if\n" "applied to function @var{getter}." msgstr "" -#: lily-library.scm:958 +#: lily-library.scm:955 #, scheme-format msgid "unknown unit: ~S" msgstr "" -#: lily-library.scm:983 +#: lily-library.scm:980 #, scheme-format msgid "no \\version statement found, please add~afor future compatibility" msgstr "" @@ -3612,37 +3628,37 @@ msgstr "" msgid "cannot find: ~A" msgstr "" -#: lily.scm:878 +#: lily.scm:877 msgid "Success: compilation successfully completed" msgstr "" -#: lily.scm:879 +#: lily.scm:878 msgid "Compilation completed with warnings or errors" msgstr "" -#: lily.scm:941 +#: lily.scm:939 #, scheme-format msgid "job ~a terminated with signal: ~a" msgstr "" -#: lily.scm:944 +#: lily.scm:942 #, scheme-format msgid "" "logfile ~a (exit ~a):\n" "~a" msgstr "" -#: lily.scm:966 lily.scm:1055 +#: lily.scm:964 lily.scm:1053 #, scheme-format msgid "failed files: ~S" msgstr "" -#: lily.scm:1046 +#: lily.scm:1044 #, scheme-format msgid "Redirecting output to ~a..." msgstr "" -#: lily.scm:1065 ps-to-png.scm:66 +#: lily.scm:1063 ps-to-png.scm:66 #, scheme-format msgid "Invoking `~a'...\n" msgstr "" @@ -3657,7 +3673,7 @@ msgstr "" msgid "wrong type for argument ~a. Expecting ~a, found ~s" msgstr "" -#: ly-syntax-constructors.scm:200 +#: ly-syntax-constructors.scm:199 #, scheme-format msgid "Invalid property operation ~a" msgstr "" @@ -3715,34 +3731,34 @@ msgstr "" msgid "bad grob property path ~a" msgstr "" -#: music-functions.scm:755 +#: music-functions.scm:753 msgid "Bad chord repetition" msgstr "" -#: music-functions.scm:790 +#: music-functions.scm:788 #, scheme-format msgid "music expected: ~S" msgstr "" -#: music-functions.scm:1133 +#: music-functions.scm:1144 #, scheme-format msgid "cannot find quoted music: `~S'" msgstr "" -#: music-functions.scm:1271 +#: music-functions.scm:1282 msgid "Add @var{octave-shift} to the octave of @var{pitch}." msgstr "" -#: music-functions.scm:1331 +#: music-functions.scm:1342 #, scheme-format msgid "Unknown octaveness type: ~S " msgstr "" -#: music-functions.scm:1332 +#: music-functions.scm:1343 msgid "Defaulting to 'any-octave." msgstr "" -#: music-functions.scm:1677 +#: music-functions.scm:1688 #, scheme-format msgid "unknown accidental style: ~S" msgstr "" @@ -3815,7 +3831,7 @@ msgstr "" msgid "~a exited with status: ~S" msgstr "" -#: to-xml.scm:191 +#: to-xml.scm:190 #, scheme-format msgid "assertion failed: ~S" msgstr "" diff --git a/python/convertrules.py b/python/convertrules.py index ba65d9683d..9161973767 100644 --- a/python/convertrules.py +++ b/python/convertrules.py @@ -3521,6 +3521,28 @@ def conv(str): r"\1/\2", str) return str +@rule((2, 17, 14), r"\accepts ... -> \accepts ... \defaultchild ...") +def conv(str): + def matchaccepts(m): + # First weed out definitions starting from an existing + # definition: we assume that the inherited \defaultchild is + # good enough for our purposes. Heuristic: starts with a + # backslash and an uppercase letter. + if re.match (r"\s*\\[A-Z]", m.group (1)): + return m.group (0) + # existing defaultchild obviously trumps all + if re.search (r"\\defaultchild[^-_a-zA-Z]", m.group (1)): + return m.group (0) + # take the first \\accepts if any and replicate it + return re.sub ("(\r?\n[ \t]*|[ \t]+)" + + r"""\\accepts(\s+(?:#?".*?"|[-_a-zA-Z]+))""", + r"\g<0>\1\\defaultchild\2", + m.group (0), 1) + + str = re.sub (r"\\context\s*@?\{(" + brace_matcher (20) + ")\}", + matchaccepts, str) + return str + @rule((2, 17, 15), r"""#(ly:set-option 'old-relative) \relative -> \relative c'""") def conv(str): @@ -3641,6 +3663,26 @@ def conv(str): str = re.sub (words + "|" + matchstring, wordreplace, str) return str +@rule((2, 17, 27), r'''\stringTuning \notemode -> \stringTuning''') +def conv(str): + str = re.sub (r"\\stringTuning\s*\\notemode(\s*)@?\{\s*(.*?)\s*@?}", + r"\\stringTuning\1\2", str) + if re.search (r'\bstaff-padding\b', str): + stderr_write (NOT_SMART % "staff-padding") + stderr_write (_ ("Staff-padding now controls the distance to the baseline, not the nearest point.")) + return str + +@rule((2, 17, 29), r'''Dynamic_engraver -> New_dynamic_engraver+Dynamic_align_engraver +New_dynamic_engraver -> Dynamic_engraver''') +def conv(str): + str = re.sub ("(\r?\n?[ \t]*\\\\(?:consists|remove)\\s*)(\"?)Dynamic_engraver\\2", + r"\1\2New_dynamic_engraver\2\1\2Dynamic_align_engraver\2", + str) +# Should we warn about any remaining Dynamic_engraver? Possibly it +# will do the job just fine. + str = re.sub ("New_dynamic_engraver", "Dynamic_engraver", str) + return str + # Guidelines to write rules (please keep this at the end of this file) # # - keep at most one rule per version; if several conversions should be done, diff --git a/scm/backend-library.scm b/scm/backend-library.scm index 7f357376a3..a167718187 100644 --- a/scm/backend-library.scm +++ b/scm/backend-library.scm @@ -151,8 +151,7 @@ (define-public (output-scopes scopes fields basename) (define (output-scope scope) - (apply - string-append + (string-concatenate (module-map (lambda (sym var) (let ((val (if (variable-bound? var) (variable-ref var) ""))) @@ -160,7 +159,7 @@ (header-to-file basename sym val)) "")) scope))) - (apply string-append (map output-scope scopes))) + (string-concatenate (map output-scope scopes))) (define-public (relevant-book-systems book) (let ((systems (ly:paper-book-systems book))) @@ -190,15 +189,14 @@ (ly:warning (_ "missing stencil expression `~S'") name) "")) - (map (lambda (x) - (if (not (module-defined? output-module x)) - (begin - (module-define! output-module x - (lambda* (#:optional y . z) - (missing-stencil-expression x))) - (set! missing-stencil-list (append (list x) - missing-stencil-list))))) - (ly:all-stencil-commands))) + (for-each (lambda (x) + (if (not (module-defined? output-module x)) + (begin + (module-define! output-module x + (lambda* (#:optional y . z) + (missing-stencil-expression x))) + (set! missing-stencil-list (cons x missing-stencil-list))))) + (ly:all-stencil-commands))) (define-public (remove-stencil-warnings output-module) (for-each @@ -269,5 +267,5 @@ definition." (define-pango-pf pango-pf font-name scaling))) (string-append - (apply string-append (map font-load-command other-fonts)) - (apply string-append (map pango-font-load-command pango-only-fonts))))) + (string-concatenate (map font-load-command other-fonts)) + (string-concatenate (map pango-font-load-command pango-only-fonts))))) diff --git a/scm/bar-line.scm b/scm/bar-line.scm index b432386372..03c6f80815 100644 --- a/scm/bar-line.scm +++ b/scm/bar-line.scm @@ -88,10 +88,10 @@ Pad the string with @code{annotation-char}s to the length of the (if (pair? line-pos) (begin (set! iv (cons (car line-pos) (car line-pos))) - (map (lambda (x) - (set! iv (cons (min (car iv) x) - (max (cdr iv) x)))) - (cdr line-pos))) + (for-each (lambda (x) + (set! iv (cons (min (car iv) x) + (max (cdr iv) x)))) + (cdr line-pos))) (let ((line-count (ly:grob-property grob 'line-count 0))) @@ -179,18 +179,18 @@ annotation char from string @var{str}." (last-pos (1- (length sorted-elts))) (idx 0)) - (map (lambda (g) - (ly:grob-set-property! - g - 'has-span-bar - (cons (if (eq? idx last-pos) - #f - grob) - (if (zero? idx) - #f - grob))) - (set! idx (1+ idx))) - sorted-elts))) + (for-each (lambda (g) + (ly:grob-set-property! + g + 'has-span-bar + (cons (if (eq? idx last-pos) + #f + grob) + (if (zero? idx) + #f + grob))) + (set! idx (1+ idx))) + sorted-elts))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Line break decisions. @@ -400,21 +400,21 @@ is not used within the routine." (half-thick (/ line-thickness 2.0)) (stencil empty-stencil)) - (map (lambda (i) - (let ((top-y (min (* (+ i dash-size) half-space) - (+ (* (1- line-count) half-space) - half-thick))) - (bot-y (max (* (- i dash-size) half-space) - (- 0 (* (1- line-count) half-space) - half-thick)))) - - (set! stencil - (ly:stencil-add - stencil - (ly:round-filled-box (cons 0 thickness) - (cons bot-y top-y) - blot))))) - (iota line-count (1- line-count) (- 2))) + (for-each (lambda (i) + (let ((top-y (min (* (+ i dash-size) half-space) + (+ (* (1- line-count) half-space) + half-thick))) + (bot-y (max (* (- i dash-size) half-space) + (- 0 (* (1- line-count) half-space) + half-thick)))) + + (set! stencil + (ly:stencil-add + stencil + (ly:round-filled-box (cons 0 thickness) + (cons bot-y top-y) + blot))))) + (iota line-count (1- line-count) (- 2))) stencil) (let* ((dashes (/ height staff-space)) (total-dash-size (/ height dashes)) @@ -801,7 +801,7 @@ no elements." ;; the size of the staff lines is evaluated as 0, which results in a ;; solid span bar line with faulty y coordinate. ;; -;; This routine was originally by Juergen Reuter, but it was a on the +;; This routine was originally by Juergen Reuter, but it was on the ;; bulky side. Rewritten by Han-Wen. Ported from c++ to Scheme by Marc Hohl. (define-public (ly:span-bar::print grob) "The print routine for span bars." @@ -823,26 +823,26 @@ no elements." ;; we compute the extents of each system and store them ;; in a list; dito for the 'allow-span-bar property. ;; model-bar takes the bar grob, if given. - (map (lambda (bar) - (let ((ext (bar-line::bar-y-extent bar refp)) - (staff-symbol (ly:grob-object bar 'staff-symbol))) - - (if (ly:grob? staff-symbol) - (let ((refp-extent (ly:grob-extent staff-symbol refp Y))) - - (set! ext (interval-union ext refp-extent)) - - (if (> (interval-length ext) 0) - (begin - (set! extents (append extents (list ext))) - (set! model-bar bar) - (set! make-span-bars - (append make-span-bars - (list (ly:grob-property - bar - 'allow-span-bar - #t)))))))))) - elts) + (for-each (lambda (bar) + (let ((ext (bar-line::bar-y-extent bar refp)) + (staff-symbol (ly:grob-object bar 'staff-symbol))) + + (if (ly:grob? staff-symbol) + (let ((refp-extent (ly:grob-extent staff-symbol refp Y))) + + (set! ext (interval-union ext refp-extent)) + + (if (> (interval-length ext) 0) + (begin + (set! extents (append extents (list ext))) + (set! model-bar bar) + (set! make-span-bars + (append make-span-bars + (list (ly:grob-property + bar + 'allow-span-bar + #t)))))))))) + elts) ;; if there is no bar grob, we use the callback argument (if (not model-bar) (set! model-bar grob)) diff --git a/scm/chord-generic-names.scm b/scm/chord-generic-names.scm index c366a70b54..f7ba6b4edf 100644 --- a/scm/chord-generic-names.scm +++ b/scm/chord-generic-names.scm @@ -226,15 +226,15 @@ See @file{double-plus-new-chord-name.scm} for the signature of @var{style}. partial-markup-prefix (make-normal-size-super-markup (markup-join - (apply append - (map step->markup - (append altered - (if (and (> (step-nr highest) 5) - (not - (step-even-or-altered? highest))) - (list highest) '()))) - (list partial-markup-suffix) - (list (map sub->markup missing))) + (append + (map step->markup + (append altered + (if (and (> (step-nr highest) 5) + (not + (step-even-or-altered? highest))) + (list highest) '()))) + (list partial-markup-suffix) + (map sub->markup missing)) sep))))))) diff --git a/scm/chord-ignatzek-names.scm b/scm/chord-ignatzek-names.scm index b90d7c4ed5..fc32e6ba75 100644 --- a/scm/chord-ignatzek-names.scm +++ b/scm/chord-ignatzek-names.scm @@ -242,7 +242,7 @@ work than classifying the pitches." ;; no exception. ;; handle sus4 and sus2 suffix: if there is a 3 together with ;; sus2 or sus4, then we explicitly say add3. - (map + (for-each (lambda (j) (if (get-step j pitches) (begin diff --git a/scm/define-grob-properties.scm b/scm/define-grob-properties.scm index e4e0f9dd99..00cbaeb55c 100644 --- a/scm/define-grob-properties.scm +++ b/scm/define-grob-properties.scm @@ -108,7 +108,6 @@ default length of the beamlet to the right. The actual length of a beamlet is determined by taking either the default length or the length specified by @code{beamlet-max-length-proportion}, whichever is smaller.") - (beam-gap ,number-pair? "Size of a gap in a @code{Beam}.") (beamlet-max-length-proportion ,pair? "The maximum length of a beamlet, as a proportion of the distance between two adjacent stems.") (before-line-breaking ,boolean? "Dummy property, used to trigger diff --git a/scm/define-grobs.scm b/scm/define-grobs.scm index 040f3fc2dd..08aa3b9bfe 100644 --- a/scm/define-grobs.scm +++ b/scm/define-grobs.scm @@ -408,11 +408,9 @@ ;; only for debugging. (font-family . roman) - (beam-gap . ,ly:beam::calc-beam-gap) - (minimum-length . ,ly:beam::calc-minimum-length) + (gap . 0.8) (neutral-direction . ,DOWN) (positions . ,beam::place-broken-parts-individually) - (springs-and-rods . ,ly:beam::calc-springs-and-rods) (X-positions . ,ly:beam::calc-x-positions) (transparent . ,(grob::inherit-parent-property X 'transparent)) @@ -585,7 +583,7 @@ (color . ,(grob::inherit-parent-property X 'color)) (self-alignment-X . ,CENTER) - (staff-padding . 0.2) + (staff-padding . 0.7) (stencil . ,ly:text-interface::print) (X-offset . ,(ly:make-simple-closure `(,+ @@ -846,12 +844,11 @@ (positioning-done . ,ly:script-interface::calc-positioning-done) (right-padding . 0.5) (self-alignment-X . ,CENTER) - (self-alignment-Y . ,CENTER) (stencil . ,ly:text-interface::print) (vertical-skylines . ,grob::always-vertical-skylines-from-stencil) (Y-extent . ,grob::always-Y-extent-from-stencil) (X-offset . ,ly:self-alignment-interface::x-aligned-on-self) - (Y-offset . ,self-alignment-interface::y-aligned-on-self) + (Y-offset . ,(scale-by-font-size -0.6)) ; center on an 'm' (meta . ((class . Item) (interfaces . (dynamic-interface dynamic-text-interface @@ -1671,7 +1668,7 @@ (outside-staff-priority . 400) (padding . 0.5) (shorten-pair . (0.0 . -0.6)) - (staff-padding . 1.0) + (staff-padding . 2.0) (stencil . ,ly:ottava-bracket::print) (style . dashed-line) (vertical-skylines . ,grob::unpure-vertical-skylines-from-stencil) @@ -2201,7 +2198,6 @@ (SustainPedal . ( - (direction . ,RIGHT) (extra-spacing-width . (+inf.0 . -inf.0)) (padding . 0.0) ;; padding relative to SustainPedalLineSpanner (self-alignment-X . ,CENTER) @@ -2793,11 +2789,11 @@ ;; make sure that \property Foo.Bar =\turnOff doesn't complain -(map (lambda (x) - ;; (display (car x)) (newline) +(for-each (lambda (x) + ;; (display (car x)) (newline) - (set-object-property! (car x) 'translation-type? list?) - (set-object-property! (car x) 'is-grob? #t)) - all-grob-descriptions) + (set-object-property! (car x) 'translation-type? list?) + (set-object-property! (car x) 'is-grob? #t)) + all-grob-descriptions) (set! all-grob-descriptions (sort all-grob-descriptions alist big-len line-width) + (stack-stencils X RIGHT + (/ + (+ + (* (- big-len line-width) + space) + (* (- line-width len) + base-space)) + (- big-len len)) + word-list) + (maybe-shift big-line)))))) + (else ;; not justify + (reverse! lines (list (maybe-shift line))))))))) + (define-markup-list-command (wordwrap-internal layout props justify args) (boolean? markup-list?) @@ -1516,7 +1540,7 @@ the line width, where @var{X} is the number of staff spaces. justify word-space line-width text-direction))) list-para-words))) - (apply append para-lines))) + (concatenate para-lines))) (define-markup-command (wordwrap-string layout props arg) (string?) @@ -3295,8 +3319,8 @@ A feta brace in point size @var{size}, rotated 180 degrees. Construct a note symbol, with stem and flag. By using fractional values for @var{dir}, longer or shorter stems can be obtained. Supports all note-head-styles. -Supported flag-styles are @code{default}, @code{old-straight-flag} and -@code{modern-straight-flag}. +Supported flag-styles are @code{default}, @code{old-straight-flag}, +@code{modern-straight-flag} and @code{flat-flag}. @lilypond[verbatim,quote] \\markup { @@ -3357,7 +3381,9 @@ Supported flag-styles are @code{default}, @code{old-straight-flag} and (raw-length (if stem-up upflag-length downflag-length)) (angle (if stem-up upflag-angle downflag-angle)) (flag-length (+ (* raw-length factor) half-stem-thickness)) - (flag-end (polar->rectangular flag-length angle)) + (flag-end (if (= angle 0) + (cons flag-length (* half-stem-thickness dir)) + (polar->rectangular flag-length angle))) (thickness (* flag-thickness factor)) (thickness-offset (cons 0 (* -1 thickness dir))) (spacing (* -1 flag-spacing factor dir)) @@ -3365,9 +3391,11 @@ Supported flag-styles are @code{default}, @code{old-straight-flag} and ;; The points of a round-filled-polygon need to be given in ;; clockwise order, otherwise the polygon will be enlarged by ;; blot-size*2! - (points (if stem-up (list start flag-end - (offset-add flag-end thickness-offset) - (offset-add start thickness-offset)) + (points (if stem-up + (list start + flag-end + (offset-add flag-end thickness-offset) + (offset-add start thickness-offset)) (list start (offset-add start thickness-offset) (offset-add flag-end thickness-offset) @@ -3432,10 +3460,12 @@ Supported flag-styles are @code{default}, @code{old-straight-flag} and ;; Straight-flags. Values taken from /scm/flag-style.scm (modern-straight-flag (straight-flag-mrkp 0.55 1 -18 1.1 22 1.2 dir)) (old-straight-flag (straight-flag-mrkp 0.55 1 -45 1.2 45 1.4 dir)) + (flat-flag (straight-flag-mrkp 0.55 1.0 0 1.0 0 1.0 dir)) ;; Calculate a corrective to avoid a gap between ;; straight-flags and the stem. (flag-style-Y-corr (if (or (eq? flag-style 'modern-straight-flag) - (eq? flag-style 'old-straight-flag)) + (eq? flag-style 'old-straight-flag) + (eq? flag-style 'flat-flag)) (/ blot 10 (* -1 dir)) 0)) (flaggl (and (> log 2) @@ -3444,6 +3474,8 @@ Supported flag-styles are @code{default}, @code{old-straight-flag} and modern-straight-flag) ((eq? flag-style 'old-straight-flag) old-straight-flag) + ((eq? flag-style 'flat-flag) + flat-flag) (else (ly:font-get-glyph font (format #f (if ancient-flags? diff --git a/scm/define-music-properties.scm b/scm/define-music-properties.scm index 4082cc4902..5c9c12538e 100644 --- a/scm/define-music-properties.scm +++ b/scm/define-music-properties.scm @@ -28,7 +28,7 @@ (lambda (x) (apply music-property-description x)) `( (absolute-octave ,integer? - "The absolute octave for a octave check note.") + "The absolute octave for an octave check note.") (alteration ,number? "Alteration for figured bass.") (alternative-dir ,ly:dir? "Indicates if an AlternativeMusic is the First (-1), Middle (0), or Last (1) of group of alternate endings.") @@ -148,7 +148,7 @@ Options are @code{solo1}, @code{solo2} and @code{unisono}.") (pitch ,ly:pitch? "The pitch of this note.") (pitch-alist ,list? "A list of pitches jointly forming the scale of a key signature.") - (pop-first ,boolean? "Do a revert before we try to do a override + (pop-first ,boolean? "Do a revert before we try to do an override on some grob property.") (prob-property ,symbol? "The symbol of the prob property to set.") (procedure ,procedure? "The function to run with @code{\\applycontext}. diff --git a/scm/define-music-types.scm b/scm/define-music-types.scm index 0a796a1981..184b4e5485 100644 --- a/scm/define-music-types.scm +++ b/scm/define-music-types.scm @@ -33,7 +33,7 @@ Syntax: @var{note}@code{\\x}, where @code{\\x} is a dynamic mark like )) (AlternativeEvent - . ((description . "Create a alternative event.") + . ((description . "Create an alternative event.") (types . (general-music event alternative-event)) )) @@ -712,8 +712,8 @@ brackets start and stop.") )) (UnfoldedRepeatedMusic - . ((description . "Repeated music which is fully written -(and played) out.") + . ((description . "Repeated music which is fully written (and +played) out.") (iterator-ctor . ,ly:unfolded-repeat-iterator::constructor) (start-callback . ,ly:repeated-music::first-start) (types . (general-music repeated-music unfolded-repeated-music)) @@ -775,22 +775,44 @@ Syntax: @code{\\\\}") "Create a music object of given name, and set its properties according to @code{music-properties}, a list of alternating property symbols and values. E.g: +@example (make-music 'OverrideProperty 'symbol 'Stem 'grob-property 'thickness - 'grob-value (* 2 1.5))" + 'grob-value (* 2 1.5)) +@end example +Instead of a successive symbol and value, an entry in the list may +also be an alist or a music object in which case its elements, +respectively its @emph{mutable} property list (properties not inherent +to the type of the music object) will get taken. + +The argument list will be interpreted left-to-right, so later entries +override earlier ones." (if (not (symbol? name)) (ly:error (_ "symbol expected: ~S") name)) (let ((props (hashq-ref music-name-to-property-table name '()))) (if (not (pair? props)) (ly:error (_ "cannot find music object: ~S") name)) (let ((m (ly:make-music props))) + (define (alist-set-props lst) + (for-each (lambda (e) + (set! (ly:music-property m (car e)) (cdr e))) + (reverse lst))) (define (set-props mus-props) - (if (and (not (null? mus-props)) - (not (null? (cdr mus-props)))) - (begin - (set! (ly:music-property m (car mus-props)) (cadr mus-props)) - (set-props (cddr mus-props))))) + (if (pair? mus-props) + (let ((e (car mus-props)) + (mus-props (cdr mus-props))) + (cond ((symbol? e) + (set! (ly:music-property m e) (car mus-props)) + (set-props (cdr mus-props))) + ((ly:music? e) + (alist-set-props (ly:music-mutable-properties e)) + (set-props mus-props)) + ((cheap-list? e) + (alist-set-props e) + (set-props mus-props)) + (else + (ly:error (_ "bad make-music argument: ~S") e)))))) (set-props music-properties) m))) diff --git a/scm/define-note-names.scm b/scm/define-note-names.scm index 6136af0c51..62ef21a72c 100644 --- a/scm/define-note-names.scm +++ b/scm/define-note-names.scm @@ -959,13 +959,14 @@ )) ;; add two native utf-8 aliases. Pairs obey cp-like order: '(old new) -(map (lambda (pair) - (set! language-pitch-names - (append language-pitch-names - (list (cons (cadr pair) - (cdr (assoc (car pair) language-pitch-names))))))) - '((espanol español) - (italiano français))) +(for-each + (lambda (pair) + (set! language-pitch-names + (append language-pitch-names + (list (cons (cadr pair) + (cdr (assoc (car pair) language-pitch-names))))))) + '((espanol español) + (italiano français))) (define-public (note-names-language parser str) (_ "Select note names language.") diff --git a/scm/define-stencil-commands.scm b/scm/define-stencil-commands.scm index a0a18603c2..4c834591a3 100644 --- a/scm/define-stencil-commands.scm +++ b/scm/define-stencil-commands.scm @@ -70,6 +70,6 @@ are used internally in @file{lily/@/stencil-interpret.cc}." transparent-stencil )) -(map ly:register-stencil-expression - (append (ly:all-stencil-commands) - (ly:all-output-backend-commands))) +(for-each ly:register-stencil-expression + (append (ly:all-stencil-commands) + (ly:all-output-backend-commands))) diff --git a/scm/define-woodwind-diagrams.scm b/scm/define-woodwind-diagrams.scm index 16a4474b7e..0847d4c93f 100644 --- a/scm/define-woodwind-diagrams.scm +++ b/scm/define-woodwind-diagrams.scm @@ -1021,7 +1021,7 @@ returns @samp{1/3}." (* (car slope-offset1) (+ keylen (list-ref first-bezier 6))) (cdr slope-offset1)))) - ((if bezier? (lambda (x) `(,(apply append x))) identity) + ((if bezier? (lambda (x) `(,(concatenate x))) identity) `((,(+ (+ keylen 1.75) (list-ref first-bezier 6)) ,(+ (* diff --git a/scm/display-woodwind-diagrams.scm b/scm/display-woodwind-diagrams.scm index f1190f13c6..5b34ac94fc 100644 --- a/scm/display-woodwind-diagrams.scm +++ b/scm/display-woodwind-diagrams.scm @@ -1685,8 +1685,7 @@ possibility-list)))) (define (translate-draw-instructions input-alist key-name-alist) - (apply append - (map (lambda (short long) + (append-map (lambda (short long) (let* ((key-instructions (map (lambda (instr) @@ -1695,15 +1694,14 @@ (assoc-get long key-name-alist)))) (key-crawler (assoc-get short input-alist) key-instructions))) '(hd cc lh rh) - '(hidden central-column left-hand right-hand)))) + '(hidden central-column left-hand right-hand))) (define (uniform-draw-instructions key-name-alist) - (apply append - (map (lambda (long) + (append-map (lambda (long) (map (lambda (key-instructions) `((,long . ,(car key-instructions)) . 1)) (assoc-get long key-name-alist))) - '(hidden central-column left-hand right-hand)))) + '(hidden central-column left-hand right-hand))) (define (list-all-possible-keys key-name-alist) (map (lambda (short long) diff --git a/scm/document-backend.scm b/scm/document-backend.scm index a4c25cfe3c..c1288deff5 100644 --- a/scm/document-backend.scm +++ b/scm/document-backend.scm @@ -24,7 +24,7 @@ ;; properly sort all grobs, properties, and interfaces ;; within the all-grob-descriptions alist -(map +(for-each (lambda (x) (let* ((props (assoc-ref all-grob-descriptions (car x))) (meta (assoc-ref props 'meta)) @@ -70,17 +70,17 @@ (define iface->grob-table (make-hash-table 61)) ;; extract ifaces, and put grob into the hash table. -(map +(for-each (lambda (x) (let* ((meta (assoc-get 'meta (cdr x))) (ifaces (assoc-get 'interfaces meta))) - (map (lambda (iface) - (hashq-set! - iface->grob-table iface - (cons (car x) - (hashq-ref iface->grob-table iface '())))) - ifaces))) + (for-each (lambda (iface) + (hashq-set! + iface->grob-table iface + (cons (car x) + (hashq-ref iface->grob-table iface '())))) + ifaces))) all-grob-descriptions) ;; First level Interface description @@ -178,17 +178,17 @@ node." ;;;;;;;;;; check for dangling backend properties. (define (mark-interface-properties entry) - (map (lambda (x) (set-object-property! x 'iface-marked #t)) - (caddr (cdr entry)))) + (for-each (lambda (x) (set-object-property! x 'iface-marked #t)) + (caddr (cdr entry)))) -(map mark-interface-properties interface-description-alist) +(for-each mark-interface-properties interface-description-alist) (define (check-dangling-properties prop) (if (not (object-property prop 'iface-marked)) (ly:error (string-append "define-grob-properties.scm: " (_ "cannot find interface for property: ~S")) prop))) -(map check-dangling-properties all-backend-properties) +(for-each check-dangling-properties all-backend-properties) ;;;;;;;;;;;;;;;; diff --git a/scm/document-context-mods.scm b/scm/document-context-mods.scm index fc3c4ad28a..f5034d2ecc 100644 --- a/scm/document-context-mods.scm +++ b/scm/document-context-mods.scm @@ -81,11 +81,8 @@ (map document-mod-list mod-list)))) (define (document-mod obj-pair) - (cond - ((ly:context-mod? (cdr obj-pair)) - (document-context-mod obj-pair)) - (else - #f))) + (and (ly:context-mod? (cdr obj-pair)) + (document-context-mod obj-pair))) (define context-mods-doc-string (format @@ -94,11 +91,9 @@ @end table " (string-join - (filter - identity - (map - document-mod - (sort - (ly:module->alist (current-module)) - identifieralist (current-module)) + identifieralist (current-module)) - identifieralist (current-module)) + identifiernames (make-hash-table 61)) -(filter-map (lambda (entry) - (let* ((class (ly:camel-case->lisp-identifier (car entry))) - (classes (ly:make-event-class class))) - (if classes - (map - (lambda (cl) - (hashq-set! music-types->names cl - (cons (car entry) - (hashq-ref music-types->names cl '())))) - classes) - #f))) - music-descriptions) +(for-each (lambda (entry) + (let* ((class (ly:camel-case->lisp-identifier (car entry))) + (classes (ly:make-event-class class))) + (if classes + (for-each + (lambda (cl) + (hashq-set! music-types->names cl + (cons (car entry) + (hashq-ref music-types->names cl '())))) + classes)))) + music-descriptions) (define (strip-description x) (cons (symbol->string (car x)) diff --git a/scm/document-translation.scm b/scm/document-translation.scm index 8237260c45..5e867bb4c2 100644 --- a/scm/document-translation.scm +++ b/scm/document-translation.scm @@ -78,20 +78,19 @@ (let* ((layout-alist (ly:output-description $defaultlayout)) (context-description-alist (map cdr layout-alist)) (contexts - (apply append - (map - (lambda (x) - (let* ((context (assoc-get 'context-name x)) - (group (assq-ref x 'group-type)) - (consists (append - (if group - (list group) - '()) - (assoc-get 'consists x)))) - (if (member name-sym consists) - (list context) - '()))) - context-description-alist))) + (append-map + (lambda (x) + (let* ((context (assoc-get 'context-name x)) + (group (assq-ref x 'group-type)) + (consists (append + (if group + (list group) + '()) + (assoc-get 'consists x)))) + (if (member name-sym consists) + (list context) + '()))) + context-description-alist)) (context-list (human-listify (map ref-ify (sort (map symbol->string contexts) @@ -114,7 +113,7 @@ ;; Second level, part of Context description (define name->engraver-table (make-hash-table 61)) -(map +(for-each (lambda (x) (hash-set! name->engraver-table (ly:translator-name x) x)) (ly:get-all-translators)) @@ -186,9 +185,9 @@ "." (if (and (pair? props) (not (null? props))) - (let ((str (apply string-append - (sort (map document-property-operation props) - ly:string-citexi items-alist)) + (string-concatenate (map one-item->texi items-alist)) "\n" "@end table\n" (if quote? "@end quotation\n" ""))) @@ -113,14 +113,14 @@ string-to-use). If QUOTE? is #t, embed table in a @quotation environment." (string-append "\n@menu" - (apply string-append - (map (lambda (x) - (string-append - (string-pad-right - (string-append "\n* " (car x) ":: ") - (+ maxwid 8)) - (cdr x))) - items-alist)) + (string-concatenate + (map (lambda (x) + (string-append + (string-pad-right + (string-append "\n* " (car x) ":: ") + (+ maxwid 8)) + (cdr x))) + items-alist)) "\n@end menu\n" ;; Menus don't appear in html, so we make a list ourselves "\n@ignore\n" diff --git a/scm/flag-styles.scm b/scm/flag-styles.scm index c8fea1ae5d..59495ba40b 100644 --- a/scm/flag-styles.scm +++ b/scm/flag-styles.scm @@ -16,7 +16,8 @@ ;;;; along with LilyPond. If not, see . ;;;; This file implements different flag styles in Scheme / GUILE, most -;;;; notably the old-straight-flag and the modern-straight-flag styles. +;;;; notably the old-straight-flag, the modern-straight-flag and the flat-flag +;;;; styles. (define-public (no-flag grob) @@ -80,16 +81,22 @@ All lengths are scaled according to the font size of the note." (raw-length (if stem-up upflag-length downflag-length)) (angle (if stem-up upflag-angle downflag-angle)) (flag-length (+ (* raw-length factor) half-stem-thickness)) - (flag-end (polar->rectangular flag-length angle)) + ;; For flat flags the points to create the stencil using + ;; ly:round-filled-polygon need to be different concerning flag-end + (flag-end (if (= angle 0) + (cons flag-length (* half-stem-thickness dir)) + (polar->rectangular flag-length angle))) (thickness (* flag-thickness factor)) (thickness-offset (cons 0 (* -1 thickness dir))) (spacing (* -1 flag-spacing factor dir )) (start (cons (- half-stem-thickness) (* half-stem-thickness dir))) ;; The points of a round-filled-polygon need to be given in clockwise ;; order, otherwise the polygon will be enlarged by blot-size*2! - (points (if stem-up (list start flag-end - (offset-add flag-end thickness-offset) - (offset-add start thickness-offset)) + (points (if stem-up + (list start + flag-end + (offset-add flag-end thickness-offset) + (offset-add start thickness-offset)) (list start (offset-add start thickness-offset) (offset-add flag-end thickness-offset) @@ -118,6 +125,10 @@ of Bach, etc." flags are both 45 degrees." ((straight-flag 0.55 1 -45 1.2 45 1.4) grob)) +(define-public (flat-flag grob) + "Flat flag style. The angles of the flags are both 0 degrees" + ((straight-flag 0.55 1.0 0 1.0 0 1.0) grob)) + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;; Flags created from feta glyphs (normal and mensural flags) diff --git a/scm/font.scm b/scm/font.scm index 8753019fa7..45a54b5f8d 100644 --- a/scm/font.scm +++ b/scm/font.scm @@ -50,16 +50,16 @@ #:children (make-hash-table 11))) (define-method (display (leaf ) port) - (map (lambda (x) (display x port)) - (list - "#" - ))) + (for-each (lambda (x) (display x port)) + (list + "#" + ))) (define-method (display (node ) port) - (map + (for-each (lambda (x) (display x port)) (list diff --git a/scm/framework-ps.scm b/scm/framework-ps.scm index 3517f90ebb..d92affb11c 100644 --- a/scm/framework-ps.scm +++ b/scm/framework-ps.scm @@ -109,15 +109,15 @@ (list (ly:font-name font)))) (let* ((fonts (ly:paper-fonts paper)) - (names (apply append (map extract-names fonts)))) - (apply string-append - (map (lambda (f) - (format #f - (if load-fonts? - "%%DocumentSuppliedResources: font ~a\n" - "%%DocumentNeededResources: font ~a\n") - f)) - (uniq-list (sort names stringnumber (match:substring (car interesting) 1)))) (format #t "VMDATA: ~a\n" mem) (display (gc-stats)) @@ -898,12 +897,11 @@ PIDs or the number of the process." (ly:exit 2 #t))) (if (ly:get-option 'read-file-list) (set! files - (filter (lambda (s) - (> (string-length s) 0)) - (apply append - (map (lambda (f) - (string-split (string-delete (ly:gulp-file f) #\cr) #\nl)) - files))))) + (remove string-null? + (append-map + (lambda (f) + (string-split (string-delete (ly:gulp-file f) #\cr) #\nl)) + files)))) (if (and (number? (ly:get-option 'job-count)) (>= (length files) (ly:get-option 'job-count))) (let* ((count (ly:get-option 'job-count)) diff --git a/scm/ly-syntax-constructors.scm b/scm/ly-syntax-constructors.scm index 8b6f4ffefb..b3d7f3f0f0 100644 --- a/scm/ly-syntax-constructors.scm +++ b/scm/ly-syntax-constructors.scm @@ -134,9 +134,8 @@ "Extract @code{'direction} and @code{'text} from @var{music}, and transform into a @code{MultiMeasureTextEvent}." - (if (memq 'script-event (ly:music-property music 'types)) - (apply make-music 'MultiMeasureTextEvent - (flatten-alist (ly:music-mutable-properties music))) + (if (music-is-of-type? music 'script-event) + (make-music 'MultiMeasureTextEvent music) music)) (define-ly-syntax (multi-measure-rest parser location duration articulations) diff --git a/scm/markup.scm b/scm/markup.scm index 69a6ad13ff..64a1139738 100644 --- a/scm/markup.scm +++ b/scm/markup.scm @@ -48,16 +48,13 @@ Example: (define-public interpret-markup ly:text-interface::interpret-markup) (define-public (interpret-markup-list layout props markup-list) - ;; This relies on the markup list returned by a markup list command - ;; to be modifiable - (reverse! - (fold - (lambda (m prev) - (if (markup-command-list? m) - (reverse! (apply (car m) layout props (cdr m)) prev) - (cons (interpret-markup layout props m) prev))) - '() - markup-list))) + (fold-right + (lambda (m prev) + (if (markup-command-list? m) + (append (apply (car m) layout props (cdr m)) prev) + (cons (interpret-markup layout props m) prev))) + '() + markup-list)) (define-public (prepend-alist-chain key val chain) (cons (acons key val (car chain)) (cdr chain))) diff --git a/scm/modal-transforms.scm b/scm/modal-transforms.scm index 3db3904726..71892bde65 100644 --- a/scm/modal-transforms.scm +++ b/scm/modal-transforms.scm @@ -120,7 +120,7 @@ LilyPond scheme pitches, e.g. @code{(ly:make-pitch 0 2 0)} (ly:music-set-property! music 'pitch (converter pitch))) ((pair? elements) - (map (lambda (x) (change-pitches x converter)) elements)) + (for-each (lambda (x) (change-pitches x converter)) elements)) ((ly:music? element) (change-pitches element converter))))) @@ -206,7 +206,7 @@ Typically used to construct a scale for input to transposer-factory (if (ly:dir? span-dir) (ly:music-set-property! music 'span-direction (- span-dir))) - (map retrograde-music reversed) + (for-each retrograde-music reversed) music)) diff --git a/scm/music-functions.scm b/scm/music-functions.scm index 092cf84e4b..afcdb843e7 100644 --- a/scm/music-functions.scm +++ b/scm/music-functions.scm @@ -137,7 +137,7 @@ For instance, (string-length "-markup"))))))) (define (transform-arg arg) (cond ((and (pair? arg) (markup? (car arg))) ;; a markup list - (apply append (map inner-markup->make-markup arg))) + (append-map inner-markup->make-markup arg)) ((and (not (string? arg)) (markup? arg)) ;; a markup (inner-markup->make-markup arg)) (else ;; scheme arg @@ -164,12 +164,12 @@ equivalent to @var{obj}, that is, for a music expression, a (ly:music? obj) `(make-music ',(ly:music-property obj 'name) - ,@(apply append (map (lambda (prop) - `(',(car prop) - ,(music->make-music (cdr prop)))) - (remove (lambda (prop) - (eqv? (car prop) 'origin)) - (ly:music-mutable-properties obj)))))) + ,@(append-map (lambda (prop) + `(',(car prop) + ,(music->make-music (cdr prop)))) + (remove (lambda (prop) + (eqv? (car prop) 'origin)) + (ly:music-mutable-properties obj))))) (;; moment (ly:moment? obj) `(ly:make-moment ,(ly:moment-main-numerator obj) @@ -973,24 +973,37 @@ predicates require the parameter to be entered as Scheme expression. predicates, to be used in case of a type error in arguments or result." + (define (currying-lambda args doc-string? body) + (if (and (pair? args) + (pair? (car args))) + (currying-lambda (car args) doc-string? + `((lambda ,(cdr args) ,@body))) + (if doc-string? + `(lambda ,args ,doc-string? ,@body) + `(lambda ,args ,@body)))) + (set! signature (map (lambda (pred) (if (pair? pred) `(cons ,(car pred) ,(and (pair? (cdr pred)) (cadr pred))) pred)) (cons type signature))) - (if (and (pair? body) (pair? (car body)) (eqv? '_i (caar body))) - ;; When the music function definition contains a i10n doc string, - ;; (_i "doc string"), keep the literal string only - (let ((docstring (cadar body)) - (body (cdr body))) - `(ly:make-music-function (list ,@signature) - (lambda ,args - ,docstring - ,@body))) - `(ly:make-music-function (list ,@signature) - (lambda ,args - ,@body)))) + + (let ((docstring + (and (pair? body) (pair? (cdr body)) + (if (string? (car body)) + (car body) + (and (pair? (car body)) + (eq? '_i (caar body)) + (pair? (cdar body)) + (string? (cadar body)) + (null? (cddar body)) + (cadar body)))))) + ;; When the music function definition contains an i10n doc string, + ;; (_i "doc string"), keep the literal string only + `(ly:make-music-function + (list ,@signature) + ,(currying-lambda args docstring (if docstring (cdr body) body))))) (defmacro-public define-music-function rest "Defining macro returning music functions. @@ -1940,9 +1953,9 @@ base onto the following musical context." (layout (ly:grob-layout root)) (blot (ly:output-def-lookup layout 'blot-diameter))) ;; Hide spanned stems - (map (lambda (st) - (set! (ly:grob-property st 'stencil) #f)) - stems) + (for-each (lambda (st) + (set! (ly:grob-property st 'stencil) #f)) + stems) ;; Draw a nice looking stem with rounded corners (ly:round-filled-box (ly:grob-extent root root X) yextent blot)) ;; Nothing to connect, don't draw the span @@ -1974,7 +1987,7 @@ other stems just because of that." ;; two stems at this musical moment (if (<= 2 (length stems)) (let ((roots (filter stem-is-root? stems))) - (map (make-stem-span! stems trans) roots)))) + (for-each (make-stem-span! stems trans) roots)))) (define-public (Span_stem_engraver ctx) "Connect cross-staff stems to the stems above in the system" diff --git a/scm/output-lib.scm b/scm/output-lib.scm index e04b298975..dc88b4387a 100644 --- a/scm/output-lib.scm +++ b/scm/output-lib.scm @@ -620,8 +620,8 @@ and duration-log @var{log}." (define-public (color? x) (and (list? x) (= 3 (length x)) - (apply eq? #t (map number? x)) - (apply eq? #t (map (lambda (y) (<= 0 y 1)) x)))) + (every number? x) + (every (lambda (y) (<= 0 y 1)) x))) (define-public (rgb-color r g b) (list r g b)) @@ -854,6 +854,11 @@ and duration-log @var{log}." the previous calculated offset value." prev-offset) +(define-public (scale-by-font-size x) + (ly:make-unpure-pure-container + (lambda (grob) + (* x (magstep (ly:grob-property grob 'font-size 0)))))) + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; diff --git a/scm/output-svg.scm b/scm/output-svg.scm index 1df5a53d70..cb9f598d3f 100644 --- a/scm/output-svg.scm +++ b/scm/output-svg.scm @@ -40,14 +40,14 @@ ;; Helper functions (define-public (attributes attributes-alist) - (apply string-append - (map (lambda (x) - (let ((attr (car x)) - (value (cdr x))) - (if (number? value) - (set! value (ly:format "~4f" value))) - (format #f " ~s=\"~a\"" attr value))) - attributes-alist))) + (string-concatenate + (map (lambda (x) + (let ((attr (car x)) + (value (cdr x))) + (if (number? value) + (set! value (ly:format "~4f" value))) + (format #f " ~s=\"~a\"" attr value))) + attributes-alist))) (define-public (eo entity . attributes-alist) "o = open" @@ -108,8 +108,8 @@ (integer->entity (char->integer char))) (define (string->entities string) - (apply string-append - (map (lambda (x) (char->entity x)) (string->list string)))) + (string-concatenate + (map char->entity (string->list string)))) (define svg-element-regexp (make-regexp "^(<[a-z]+) ?(.*>)")) @@ -552,7 +552,7 @@ `(stroke-linecap . ,(symbol->string cap-style)) '(stroke . "currentColor") `(fill . ,(if fill? "currentColor" "none")) - `(d . ,(apply string-append (convert-path-exps commands)))))) + `(d . ,(string-concatenate (convert-path-exps commands)))))) (define (placebox x y expr) (if (string-null? expr) diff --git a/scm/page.scm b/scm/page.scm index 428b95c87b..f6bb29d701 100644 --- a/scm/page.scm +++ b/scm/page.scm @@ -291,7 +291,7 @@ (append (cdr lines) (list #f))) (paper-system-annotate-last (car (last-pair lines)) layout))) - (map add-system lines) + (for-each add-system lines) (ly:prob-set-property! page 'bottom-system-edge diff --git a/scm/parser-clef.scm b/scm/parser-clef.scm index 719cc4ce50..6ba1261ca7 100644 --- a/scm/parser-clef.scm +++ b/scm/parser-clef.scm @@ -119,7 +119,7 @@ "Generate the clef setting commands for a clef with name @var{clef-name}." (define (make-prop-set props) (let ((m (make-music 'PropertySet))) - (map (lambda (x) (set! (ly:music-property m (car x)) (cdr x))) props) + (for-each (lambda (x) (set! (ly:music-property m (car x)) (cdr x))) props) m)) (let ((e '()) (c0 0) diff --git a/scm/part-combiner.scm b/scm/part-combiner.scm index dadce94863..4e3e4b6603 100644 --- a/scm/part-combiner.scm +++ b/scm/part-combiner.scm @@ -275,9 +275,9 @@ LilyPond version 2.8 and earlier." (define (analyse-forced-combine result-idx prev-res) (define (get-forced-event x) - (if (ly:in-event-class? x 'part-combine-force-event) - (cons (ly:event-property x 'forced-type) (ly:event-property x 'once)) - #f)) + (and (ly:in-event-class? x 'part-combine-force-event) + (cons (ly:event-property x 'forced-type) + (ly:event-property x 'once)))) (define (part-combine-events vs) (if (not vs) '() @@ -338,7 +338,7 @@ Only set if not set previously. (prev (configuration prev-ss))) (if (symbol? prev) (put prev)))) - (map copy-one-state (span-state vs))) + (for-each copy-one-state (span-state vs))) (define (analyse-notes now-state) (let* ((vs1 (car (voice-states now-state))) diff --git a/scm/ps-to-png.scm b/scm/ps-to-png.scm index 34887b0aec..948e56e145 100644 --- a/scm/ps-to-png.scm +++ b/scm/ps-to-png.scm @@ -167,7 +167,7 @@ (if (not (= 0 status)) (begin - (map delete-file files) + (for-each delete-file files) (exit 1))) (if (and rename-page-1 multi-page?) diff --git a/scm/safe-lily.scm b/scm/safe-lily.scm index cfc088c8b3..25209e5a0b 100644 --- a/scm/safe-lily.scm +++ b/scm/safe-lily.scm @@ -15,7 +15,7 @@ ;;;; You should have received a copy of the GNU General Public License ;;;; along with LilyPond. If not, see . -(map +(for-each (lambda (sym) (set! safe-objects (cons (cons sym (primitive-eval sym)) safe-objects))) diff --git a/scm/song-util.scm b/scm/song-util.scm index c0c226d7c2..31cb1e8d48 100644 --- a/scm/song-util.scm +++ b/scm/song-util.scm @@ -80,12 +80,11 @@ ((record-constructor ,record) ,@(map car slots*)))) (set! ,$copy-record (lambda (record) - (,$make-record ,@(apply - append - (map (lambda (slot) - (list (symbol->keyword slot) - (list (make-symbol reader-format slot) 'record))) - (map car slots*)))))) + (,$make-record ,@(append-map + (lambda (slot) + (list (symbol->keyword slot) + (list (make-symbol reader-format slot) 'record))) + (map car slots*))))) ,@(map (lambda (s) `(set! ,(make-symbol reader-format (car s)) (record-accessor ,record (quote ,(car s))))) diff --git a/scm/stencil.scm b/scm/stencil.scm index 65852fc305..0833382b61 100644 --- a/scm/stencil.scm +++ b/scm/stencil.scm @@ -246,16 +246,16 @@ the partial ellipse until 7*PI/2. For example, in pseudo-code: \n((0.0 . 2) (PI/2 . 3) (PI . -2) (3*PI/2 . -3)\ \n(2*PI . 2) (5*PI/2 . 3) (3*PI . -2) (7*PI/2 . -3)) " - (apply append - (map (lambda (adder) - (map (lambda (quadrant) - (cons (+ adder (car quadrant)) - (cdr quadrant))) - `((0.0 . (,x-radius . 0.0)) - (,PI-OVER-TWO . (0.0 . ,y-radius)) - (,PI . (,(- x-radius) . 0.0)) - (,THREE-PI-OVER-TWO . (0.0 . ,(- y-radius)))))) - `(0.0 ,TWO-PI)))) + (append-map + (lambda (adder) + (map (lambda (quadrant) + (cons (+ adder (car quadrant)) + (cdr quadrant))) + `((0.0 . (,x-radius . 0.0)) + (,PI-OVER-TWO . (0.0 . ,y-radius)) + (,PI . (,(- x-radius) . 0.0)) + (,THREE-PI-OVER-TWO . (0.0 . ,(- y-radius)))))) + `(0.0 ,TWO-PI))) (define (insert-in-ordered-list ordering-function value inlist cutl? cutr?) @@ -304,7 +304,7 @@ then reduce using @var{min-max}: " (reduce min-max (if (eq? min-max min) 100000 -100000) - (map (lambda (x) (side x)) l))) + (map side l))) (let* (;; the outside limit of the x-radius @@ -647,12 +647,12 @@ with optional arrows of @code{max-size} on start and end controlled by (null (cons 0 0)) (arrow-1 (ly:make-stencil - `(polygon (quote ,(concatenate (map complex-to-offset p1s))) + `(polygon (quote ,(append-map complex-to-offset p1s)) 0.0 #t) null null)) (arrow-2 (ly:make-stencil - `(polygon (quote ,(concatenate (map complex-to-offset p2s))) + `(polygon (quote ,(append-map complex-to-offset p2s)) 0.0 #t) null null ) ) (thickness (min (/ distance 12) 0.1)) diff --git a/scm/tablature.scm b/scm/tablature.scm index d62f0aa017..e32d712e19 100644 --- a/scm/tablature.scm +++ b/scm/tablature.scm @@ -376,7 +376,7 @@ (elt (ly:music-property mus 'element))) (cond ((pair? elts) - (map make-harmonic elts)) + (for-each make-harmonic elts)) ((ly:music? elt) (make-harmonic elt)) ((music-is-of-type? mus 'note-event) diff --git a/scm/time-signature-settings.scm b/scm/time-signature-settings.scm index e2102e759e..82e22fe591 100644 --- a/scm/time-signature-settings.scm +++ b/scm/time-signature-settings.scm @@ -381,8 +381,8 @@ a fresh copy of the list-head is made." ;; Normalize to given beat, extract the beats and join them to one list (let* ((beat (calculate-compound-base-beat-full time-sig)) (normalized (map (lambda (f) (normalize-fraction f beat)) time-sig)) - (beats (map (lambda (f) (reverse (cdr (reverse f)))) normalized))) - (apply append beats))) + (beats (map (lambda (f) (drop-right f 1)) normalized))) + (concatenate beats))) (define-public (calculate-compound-beat-grouping time-sig) (cond diff --git a/scm/to-xml.scm b/scm/to-xml.scm index 8b33cbaccc..2407fe3766 100644 --- a/scm/to-xml.scm +++ b/scm/to-xml.scm @@ -70,7 +70,7 @@ is then separated. (if (equal? (node-value node) "") (string-append (if xml-name "\n" "") - (apply string-append (map musicxml-node->string (node-children node)))) + (string-concatenate (map musicxml-node->string (node-children node)))) (node-value node)) (if xml-name (close-tag xml-name) "") (if xml-name "\n" "")))) @@ -80,8 +80,7 @@ is then separated. "\n" (open-tag (node-name node) (node-attributes node) '()) (if (equal? (node-value node) "") - (string-append - (apply string-append (map xml-node->string (node-children node)))) + (string-concatenate (map xml-node->string (node-children node))) (node-value node)) "\n" (close-tag (node-name node)))) @@ -224,7 +223,7 @@ is then separated. (string-append "<" (symbol->string tag) - (apply string-append (map dump-attr (filter candidate? attrs))) + (string-concatenate (map dump-attr (filter candidate? attrs))) ">")) (define (close-tag name) diff --git a/scm/translation-functions.scm b/scm/translation-functions.scm index 5d40da8cfa..9bc12cc53c 100644 --- a/scm/translation-functions.scm +++ b/scm/translation-functions.scm @@ -321,14 +321,14 @@ along with @var{minimum-fret}, @var{maximum-stretch}, and if no fingering is present." (let* ((articulations (ly:event-property ev 'articulations)) (finger-found #f)) - (map (lambda (art) - (let* ((num (ly:event-property art 'digit))) - - (if (and (ly:in-event-class? art 'fingering-event) - (number? num) - (> num 0)) - (set! finger-found num)))) - articulations) + (for-each (lambda (art) + (let* ((num (ly:event-property art 'digit))) + + (if (and (ly:in-event-class? art 'fingering-event) + (number? num) + (> num 0)) + (set! finger-found num)))) + articulations) finger-found)) (define (delete-free-string string) @@ -582,7 +582,7 @@ only ~a fret labels provided") (make-vcenter-markup (format #f "~a" fret-number))) -;; The 5-string banjo has got a extra string, the fifth (duh), which +;; The 5-string banjo has got an extra string, the fifth (duh), which ;; starts at the fifth fret on the neck. Frets on the fifth string ;; are referred to relative to the other frets: ;; the "first fret" on the fifth string is really the sixth fret diff --git a/scripts/auxiliar/ref_check.py b/scripts/auxiliar/ref_check.py index 09c3449599..33a610d9c0 100755 --- a/scripts/auxiliar/ref_check.py +++ b/scripts/auxiliar/ref_check.py @@ -46,6 +46,9 @@ class CrossRefs: def addNode(self, nodeName, manualName, fileName): global returnCode # print "Node: ", nodeName, " in ", manualName, " found in ", fileName + if "\\" in nodeName: + returnCode = 1 + print "nodeName: ", nodeName, " in ", fileName, " contains backslash" if manualName+"/"+nodeName in self.Nodes.keys(): print "Error: Duplicate nodename ",nodeName, " in ", fileName, " and ", self.Nodes[manualName+"/"+nodeName][1] returnCode=1 @@ -53,6 +56,10 @@ class CrossRefs: self.nodeNames[nodeName] = fileName def addRef(self, toManualName, toHeading, inFileName): + global returnCode + if "\\" in toHeading: + returnCode = 1 + print "ref to: ", toHeading, " in ", inFileName, " contains backslash" # if inFileName == "notation/vocal.itely": # print "Ref to ", toManualName, "/",toHeading, " found in ", inFileName self.Refs.append([toManualName + "/" + toHeading, inFileName]) diff --git a/scripts/convert-ly.py b/scripts/convert-ly.py index 7acd2e29da..641d763713 100644 --- a/scripts/convert-ly.py +++ b/scripts/convert-ly.py @@ -24,6 +24,7 @@ import os import sys import re +import shutil """ @relocate-preamble@ @@ -129,18 +130,25 @@ def get_option_parser (): action='store_true', dest='diff_version_update', default=False) - + p.add_option ("-s", '--show-rules', help=_ ("show rules [default: -f 0, -t %s]") % program_version, dest='show_rules', action='store_true', default=False) - + p.add_option ('-t', '--to', help=_ ("convert to VERSION [default: %s]") % program_version, metavar=_ ('VERSION'), action='store', dest="to_version", default='') + + p.add_option ('-b', '--backup-numbered', + help=_ ("make a numbered backup [default: filename.ext~]"), + action='store_true', + dest="backup_numbered", + default='') + p.add_option ('-w', '--warranty', help=_ ("show warranty and copyright"), action='store_true', ), @@ -152,8 +160,6 @@ def get_option_parser (): return p - - def str_to_tuple (s): return tuple ([int(n) for n in s.split ('.')]) @@ -182,13 +188,15 @@ def show_rules (file, from_version, to_version): def do_conversion (str, from_version, to_version): """Apply conversions from FROM_VERSION to TO_VERSION. Return -tuple (LAST,STR), with the last successful conversion and the resulting -string.""" +tuple (LAST,LASTCHANGED,STR,ERRORS), with the last applied conversion, +the last conversion resulting in a change, the resulting +string and the number of errors.""" conv_list = get_conversions (from_version, to_version) ly.progress (_ ("Applying conversion: "), newline = False) last_conversion = None + last_change = None errors = 0 try: for x in conv_list: @@ -197,8 +205,11 @@ string.""" ly.progress (', ', newline = False) else: ly.progress (tup_to_str (x[0])) - str = x[1] (str) + newstr = x[1] (str) last_conversion = x[0] + if (newstr != str): + last_change = last_conversion + str = newstr except convertrules.FatalConversionError: ly.error (_ ("Error while converting") @@ -206,9 +217,7 @@ string.""" + _ ("Stopping at last successful rule")) errors += 1 - return (last_conversion, str, errors) - - + return (last_conversion, last_change, str, errors) def guess_lilypond_version (input): m = lilypond_version_strict_re.search (input) @@ -230,6 +239,19 @@ class InvalidVersion (Exception): def __init__ (self, version): self.version = version +def back_up (file, numbered): + if numbered: + n = 0 + while True: + n = n + 1 + back_up = file + '.~' + str(n) + '~' + if not os.path.exists (back_up): + break + else: + back_up = file + '~' + shutil.copy2 (file, back_up) + return back_up + def do_one_file (infile_name): ly.progress (_ (u"Processing `%s\'... ") % infile_name, True) @@ -259,13 +281,16 @@ def do_one_file (infile_name): raise InvalidVersion (".".join ([str(n) for n in from_version])) - (last, result, errors) = do_conversion (input, from_version, to_version) + (last, last_change, result, errors) = \ + do_conversion (input, from_version, to_version) if global_options.force_current_version and \ (last is None or last == to_version): last = str_to_tuple (program_version) if last: if global_options.diff_version_update: + # Note that last_change can be set even if the result is + # the same if two conversion rules cancelled out if result == input: # check the y in x.y.z (minor version number) previous_stable = (last[0], 2*(last[1]/2), 0) @@ -276,6 +301,8 @@ def do_one_file (infile_name): else: # make no (actual) change to the version number last = from_version + else: + last = last_change newversion = r'\version "%s"' % tup_to_str (last) if lilypond_version_re.search (result): @@ -287,11 +314,7 @@ def do_one_file (infile_name): ly.progress ('\n') if global_options.edit: - try: - os.remove (infile_name + '~') - except: - pass - os.rename (infile_name, infile_name + '~') + backup = back_up (infile_name, global_options.backup_numbered) outfile = open (infile_name, 'w') else: outfile = sys.stdout @@ -363,5 +386,4 @@ def main (): "There were %d errors.", errors) % errors) sys.exit (1) - main () diff --git a/scripts/lilymidi.py b/scripts/lilymidi.py index 20d13aa508..498682ef26 100644 --- a/scripts/lilymidi.py +++ b/scripts/lilymidi.py @@ -80,11 +80,21 @@ class meta_formatter (formatter): return str (val2); class tempo_formatter (formatter): def format_vals (self, val1, val2): - return str (val2) + " msec/quarter" + return str (ord (val2[0])*65536 + ord (val2[1])*256 + ord (val2[2])) \ + + " msec/quarter" class time_signature_formatter (formatter): def format_vals (self, val1, val2 = ""): - return str (val2) # TODO + from fractions import Fraction + # if there are more notated 32nd notes per midi quarter than 8, + # we display a fraction smaller than 1 as scale factor. + r = Fraction(8, ord (val2[3])) + if r == 1: + ratio ="" + else: + ratio = " *" + str (r) + return str (ord (val2[0])) + "/" + str(1 << ord (val2[1])) + ratio \ + + ", metronome " + str (Fraction (ord (val2[2]), 96)) class key_signature_formatter (formatter): def format_vals (self, val1, val2): key_names = ['F', 'C', 'G', 'D', 'A', 'E', 'B'] diff --git a/stepmake/stepmake/generic-rules.make b/stepmake/stepmake/generic-rules.make index 0b04186db4..3e527e2eb7 100644 --- a/stepmake/stepmake/generic-rules.make +++ b/stepmake/stepmake/generic-rules.make @@ -3,6 +3,3 @@ $(outdir)/%: %.m4 %.gz: % gzip -c9 $< > $@ - -$(outdir)/%.css: $(CSS_DIRECTORY)/%.css - ln -f $< $@ diff --git a/stepmake/stepmake/generic-targets.make b/stepmake/stepmake/generic-targets.make index 1b998b938d..7e29760e42 100644 --- a/stepmake/stepmake/generic-targets.make +++ b/stepmake/stepmake/generic-targets.make @@ -1,10 +1,12 @@ -.PHONY : all clean bin-clean default dist exe help html lib TAGS\ +.PHONY : all clean bin-clean default dist exe help html lib man TAGS\ po doc doc-stage-1 WWW-1 WWW-2 WWW-post local-WWW-1 local-WWW-2\ - log-clean + local-all local-clean local-bin-clean local-doc log-clean -all: default +all: default $(LOOP) +local-all: default + man: $(LOOP) @@ -37,8 +39,9 @@ generic-help: @echo "Targets specific to current directory:" help: generic-help local-help - @echo "Generic targets that recurse into subdirectories*:" + @echo "Generic targets that recurse into subdirectories:" @echo " all update everything except documentation with images" + @echo " (same as the empty target)" @echo " clean remove all generated stuff in $(outdir)" @echo " bin-clean same as clean, except that mf/out is preserved" @echo " doc update documentation with images in directory \`out-www'" @@ -52,7 +55,7 @@ help: generic-help local-help @echo " any of the above commands to the current directory." @echo @echo "Other generic targets:" - @echo " default same as the empty target" + @echo " default same as \`make all', but restricted to the current directory" @echo " exe update all executables" @echo " help this help" @echo " lib update all libraries" diff --git a/stepmake/stepmake/metafont-rules.make b/stepmake/stepmake/metafont-rules.make index 5b6ad17d91..5be005a198 100644 --- a/stepmake/stepmake/metafont-rules.make +++ b/stepmake/stepmake/metafont-rules.make @@ -2,13 +2,13 @@ # we want to see botched results as well. $(outdir)/%.dvi: %.mf - -MFINPUTS=$(src-dir) $(METAFONT) "\scrollmode; input $<;" + -$(DO_MF_DEP) MFINPUTS=$(src-dir) $(METAFONT) "\scrollmode; input $<;" gftodvi $(basename $<) mv $(basename $<).dvi $(outdir) rm $(basename $<).*gf $(outdir)/%.tfm $(outdir)/%.log: %.mf - MFINPUTS=$(src-dir) $(METAFONT) "\mode:=$(MFMODE); nonstopmode; input $<;" $(METAFONT_QUIET) + $(DO_MF_DEP) MFINPUTS=$(src-dir) $(METAFONT) "\mode:=$(MFMODE); nonstopmode; input $<;" $(METAFONT_QUIET) # Let's keep this log output, it saves another mf run. mv $(basename $(@F)).log $(basename $(@F)).tfm $(outdir) rm -f $(basename $(@F)).*gf $(basename $(@F)).*pk @@ -19,7 +19,7 @@ $(outdir)/%.tfm $(outdir)/%.log: %.mf # the soft link for mf2pt1.mp is for recent mpost versions # which no longer dump a .mem file $(outdir)/%.pfb: %.mf $(outdir)/mf2pt1.mem $(outdir)/%.log - TMP=`mktemp -d $(outdir)/pfbtemp.$*.XXXXXXXXX` \ + $(DO_MF_DEP) TMP=`mktemp -d $(outdir)/pfbtemp.$*.XXXXXXXXX` \ && ( cd $$TMP \ && ln -s ../mf2pt1.mem . \ && ln -s ../../mf2pt1.mp . \ diff --git a/stepmake/stepmake/metafont-vars.make b/stepmake/stepmake/metafont-vars.make index aeb75c5f00..73f35a53ed 100644 --- a/stepmake/stepmake/metafont-vars.make +++ b/stepmake/stepmake/metafont-vars.make @@ -15,3 +15,24 @@ METAFONT_QUIET = >/dev/null else METAFONT_QUIET = endif + +# Find the metafont file $(1) within the source dirs and return its path. +# If not found, return $(outdir)/$(1) assuming that it is a generated file. +find-mf = \ +$(firstword \ + $(wildcard $(src-dir)/$(1)) \ + $(wildcard $(top-src-dir)/mf/$(1)) \ + $(outdir)/$(1) \ +) + +# Recursively scan the metafont .mf file $(1) for "input X;" +# and return all dependencies. +scan-mf = \ +$(foreach f, $(shell test -f $(1) && sed -ne "/^[[:space:]]*input[[:space:]]/s/^[[:space:]]*input\([^.;]*\)\(.mf;\|;\)/\1.mf/p" $(1)), \ + $(call find-mf,$(f)) \ + $(call scan-mf,$(call find-mf,$(f))) \ +) + +# Find dependencies for the target $@, based on the metafont source file $<, +# and write the dependencies to a .dep file. +DO_MF_DEP = ( echo ./$@: $(call scan-mf,$<) > $(basename $@).dep ) && diff --git a/stepmake/stepmake/texinfo-rules.make b/stepmake/stepmake/texinfo-rules.make index 838219a673..063a346091 100644 --- a/stepmake/stepmake/texinfo-rules.make +++ b/stepmake/stepmake/texinfo-rules.make @@ -24,7 +24,7 @@ endif touch $@ # Copy files while tracking their dependencies. -$(outdir)/%.texi: %.texi +$(outdir)/%.texi: %.texi $(outdir)/version.itexi mkdir -p $(dir $@) $(DO_TEXI_DEP) cp -f $< $@ @@ -82,8 +82,8 @@ $(outdir)/%.html.omf: %.texi $(outdir)/%.pdf.omf: %.texi $(call GENERATE_OMF,pdf) -$(outdir)/version.%: $(top-src-dir)/VERSION +$(outdir)/version.itexi: $(top-src-dir)/VERSION $(PYTHON) $(top-src-dir)/scripts/build/create-version-itexi.py > $@ -$(outdir)/weblinks.%: $(top-src-dir)/VERSION +$(outdir)/weblinks.itexi: $(top-src-dir)/VERSION $(PYTHON) $(top-src-dir)/scripts/build/create-weblinks-itexi.py > $@ diff --git a/stepmake/stepmake/texinfo-vars.make b/stepmake/stepmake/texinfo-vars.make index d164356555..20170d33b3 100644 --- a/stepmake/stepmake/texinfo-vars.make +++ b/stepmake/stepmake/texinfo-vars.make @@ -17,10 +17,10 @@ $(firstword \ $(outdir)/$(1) \ ) -# Recursively scan the file $(1) for @include, search for included files -# within the texinfo include dirs, and return all dependencies. +# Recursively scan the file $(1) for @include and @verbatiminclude, search for +# included files within the texinfo include dirs, and return all dependencies. scan-texi = \ -$(foreach f, $(shell sed -ne "/^@include[[:space:]]/s/@include//p" $(1)), \ +$(foreach f, $(shell test -f $(1) && sed -ne "/^@\(verbatim\)\?include[[:space:]]/s/@\(verbatim\)\?include//p" $(1)), \ $(call find-texi,$(f)) \ $(call scan-texi,$(call find-texi,$(f))) \ ) @@ -31,8 +31,6 @@ DO_TEXI_DEP = ( echo ./$@: $(call scan-texi,$<) > $(basename $@).dep ) && TEXINFO_PAPERSIZE_OPTION= $(if $(findstring $(PAPERSIZE),a4),,-t @afourpaper) -DOCUMENTATION_INCLUDES += -I $(top-src-dir)/Documentation - MAKEINFO_FLAGS += --enable-encoding --error-limit=0 $(DOCUMENTATION_INCLUDES) MAKEINFO = LANG= $(MAKEINFO_PROGRAM) $(MAKEINFO_FLAGS) diff --git a/stepmake/stepmake/topdocs-vars.make b/stepmake/stepmake/topdocs-vars.make index f2fc5610ed..ca9a782aa1 100644 --- a/stepmake/stepmake/topdocs-vars.make +++ b/stepmake/stepmake/topdocs-vars.make @@ -1,7 +1,3 @@ TO_TOP_FILES=$(addprefix $(outdir)/, $(addsuffix .txt, $(README_TOP_FILES))) -DOCUMENTATION_INCLUDES +=\ - -I $(top-src-dir)/Documentation/usage\ - -I $(top-src-dir)/Documentation/contributor\ - #