From: Francisco Vila Date: Sun, 30 Oct 2011 16:24:51 +0000 (+0100) Subject: Merge branch 'lilypond/translation' X-Git-Tag: release/2.15.17-1~34 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=1d509b27723ea1c359b51c0f2fe623a32867d6f9;hp=48545ba23847c7a5b8ab42bc2b25b18dcdf39c43;p=lilypond.git Merge branch 'lilypond/translation' --- diff --git a/Documentation/changes.tely b/Documentation/changes.tely index 8728b73314..475f6c0902 100644 --- a/Documentation/changes.tely +++ b/Documentation/changes.tely @@ -60,6 +60,15 @@ which scares away people. * only show user-visible changes. @end ignore +@item +The @code{\markuplines} command has been renamed to @code{\markuplist} +for a better match with its semantics and general Lilypond +nomenclature. + +@item +The interface for specifying string tunings in tablature has been +simplified considerably. + @item Beams can now have their slopes preserved over line breaks. @lilypond[fragment,quote,relative=2] @@ -78,8 +87,18 @@ Furthermore, @code{ly:beam::quanting} now only takes one argument - the beam grob. @item -Music, event, and scheme functions can now be defined with optional -arguments before mandatory arguments. +In function arguments music, markups and Scheme expressions (as well +as several other syntactic entities) have become mostly +interchangeable and are told apart only by evaluating the respective +predicate. + +@item +Music functions (and their close relatives) can now be defined with +optional arguments. + +@item +For defining commands executed only for their side-effects, +@code{define-void-function} is now available. @item There is a new @code{define-event-function} command in analogy to diff --git a/Documentation/contributor/programming-work.itexi b/Documentation/contributor/programming-work.itexi index 4eb9957cc6..0e0d3c723e 100644 --- a/Documentation/contributor/programming-work.itexi +++ b/Documentation/contributor/programming-work.itexi @@ -1868,20 +1868,27 @@ There a simple solution for almost every common comparison. Another example: we want to know if a Scheme value is a non-empty list. Instead of: @example -(scm_list_p (scm_value) && scm_value != SCM_EOL) +(scm_is_true (scm_list_p (scm_value)) && scm_value != SCM_EOL) @end example -one should use: +one can usually use: @example scm_is_pair (scm_value) @end example -since a list of at least one member is considered as a pair. +since a list of at least one member is a pair. This test is +cheap; @code{scm_list_p} is actually quite more complex since it makes +sure that its argument is neither a `dotted list' where the last pair +has a non-null @code{cdr}, nor a circular list. There are few +situations where the complexity of those tests make sense. Unfortunately, there is not a @code{scm_is_[something]} function for everything. That's one of the reasons why LilyPond has its own Scheme -interface. +interface. As a rule of thumb, tests that are cheap enough to be +worth inlining tend to have such a C interface. So there is +@code{scm_is_pair} but not @code{scm_is_list}, and @code{scm_is_eq} +but not @code{scm_is_equal}. @subheading General definitions @@ -1889,8 +1896,13 @@ interface. Return @code{true} if @var{b} is @code{SCM_BOOL_T}, else return @code{false}. -This should be used instead of @code{scm_is_true} and @code{scm_is_false} -for properties since empty lists are sometimes used to unset them. +This should be used instead of @code{scm_is_true} and +@code{scm_is_false} for properties since in Lilypond, unset properties +are read as an empty list, and by convention unset Boolean properties +default to false. Since both @code{scm_is_true} and +@code{scm_is_false} only compare with @code{##f} in line with what +Scheme's conditionals do, they are not really useful for checking the +state of a Boolean property. @subsubheading bool ly_is_[something] (args) @@ -1899,7 +1911,15 @@ Behave the same as scm_is_[something] would do if it existed. @subsubheading bool is_[type] (SCM s) Test whether the type of @var{s} is [type]. -[type] is a LilyPond-only type of value (direction, axis...). +[type] is a LilyPond-only set of values (direction, axis...). More +often than not, the code checks Lilypond specific C++-implemented +types using + +@subsubheading [type *] unsmob_[type] (SCM s) + +This tries converting a Scheme object to a pointer of the desired +kind. If the Scheme object is of the wrong type, a pointer value +of@w{ }@code{0} is returned, making this suitable for a Boolean test. @node Conversion @subsection Conversion diff --git a/Documentation/de/extending/programming-interface.itely b/Documentation/de/extending/programming-interface.itely index 257ec972a6..32b49ab2ad 100644 --- a/Documentation/de/extending/programming-interface.itely +++ b/Documentation/de/extending/programming-interface.itely @@ -8,7 +8,7 @@ Guide, node Updating translation committishes.. @end ignore -@c \version "2.14.0" +@c \version "2.15.17" @c Translators: Till Paala @@ -771,7 +771,7 @@ Zuletzt wird die Beschriftungsliste ausgewertet durch die Dieser neue Beschriftungslistenbefehl kann wie folgt benutzt werden: @example -\markuplines @{ +\markuplist @{ \paragraph @{ Die Kunst des Notensatzes wird auch als \italic @{Notenstich@} bezeichnet. Dieser Begriff stammt aus dem traditionellen Notendruck. Noch bis vor etwa diff --git a/Documentation/de/notation/fretted-strings.itely b/Documentation/de/notation/fretted-strings.itely index 5fcc0694a2..34b30e99a4 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.14.0" +@c \version "2.15.16" @c Translators: Till Paala @@ -584,7 +584,8 @@ mynotes = { \mynotes } \new TabStaff { - \contextStringTuning #'custom-tuning + #(define custom-tuning #{ \stringTuning #}) + \set stringTunings = #custom-tuning \mynotes } >> @@ -606,7 +607,7 @@ benutzt werden soll und eine Akkordkonstruktion, die die Stimmung definiert. Das vorherige Beispiel könnte auch folgenderweise geschrieben werden: @lilypond[quote,verbatim] -\makeStringTuning #'custom-tuning +"custom-tuning" = \stringTuning mynotes = { c'4 e' g' c'' | diff --git a/Documentation/de/notation/input.itely b/Documentation/de/notation/input.itely index 7ab810733c..eb516d6716 100644 --- a/Documentation/de/notation/input.itely +++ b/Documentation/de/notation/input.itely @@ -8,7 +8,7 @@ Guide, node Updating translation committishes. @end ignore -@c \version "2.14.0" +@c \version "2.15.17" @c Translators: Till Paala @@ -934,14 +934,14 @@ bestimmt. Wenn eine Partitur zwischen 10 und 99 Seiten hat, kann man @translationof Table of contents Ein Inhaltsverzeichnis kann eingefügt werden mit dem Befehl -@code{\markuplines \table-of-contents}. Die Elemente, die im +@code{\markuplist \table-of-contents}. Die Elemente, die im Inhaltsverzeichnis aufgelistet werden sollen, werden mit dem @code{\tocItem}-Befehl markiert, welches sowohl auf höchster Ebene als auch in einem musikalischen Ausdruck verwendet werden kann. @verbatim -\markuplines \table-of-contents +\markuplist \table-of-contents \pageBreak \tocItem \markup "Erste Partitur" @@ -1033,7 +1033,7 @@ tocAct = (add-toc-item! 'tocActMarkup text)) \book { - \markuplines \table-of-contents + \markuplist \table-of-contents \tocAct \markup { Atto Primo } \tocItem \markup { Coro. Viva il nostro Alcide } \tocItem \markup { Cesare. Presti omai l'Egizzia terra } @@ -1054,7 +1054,7 @@ Linie gefüllt werden: } \book { - \markuplines \table-of-contents + \markuplist \table-of-contents \tocItem \markup { Allegro } \tocItem \markup { Largo } \markup \null diff --git a/Documentation/de/notation/notation-appendices.itely b/Documentation/de/notation/notation-appendices.itely index 5b4e05ac72..4dad94f90d 100644 --- a/Documentation/de/notation/notation-appendices.itely +++ b/Documentation/de/notation/notation-appendices.itely @@ -10,7 +10,7 @@ @c Translators: Till Paala -@c \version "2.14.0" +@c \version "2.15.17" @node Notationsübersicht @appendix Notationsübersicht @@ -654,8 +654,8 @@ zu (bspw. @code{g^\markup @{ @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #clefs +\markuplist \override-lines #'(word-space . 4) + \doc-chars #clefs @end lilypond @@ -666,8 +666,8 @@ zu (bspw. @code{g^\markup @{ @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #timesig +\markuplist \override-lines #'(word-space . 4) + \doc-chars #timesig @end lilypond @@ -677,8 +677,8 @@ zu (bspw. @code{g^\markup @{ @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #numbers +\markuplist \override-lines #'(word-space . 4) + \doc-chars #numbers @end lilypond @@ -688,8 +688,8 @@ zu (bspw. @code{g^\markup @{ @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #accidentals +\markuplist \override-lines #'(word-space . 4) + \doc-chars #accidentals @end lilypond @@ -699,8 +699,8 @@ zu (bspw. @code{g^\markup @{ @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #default-noteheads +\markuplist \override-lines #'(word-space . 4) + \doc-chars #default-noteheads @end lilypond @@ -710,8 +710,8 @@ zu (bspw. @code{g^\markup @{ @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #special-noteheads +\markuplist \override-lines #'(word-space . 4) + \doc-chars #special-noteheads @end lilypond @@ -721,8 +721,8 @@ zu (bspw. @code{g^\markup @{ @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #shape-note-noteheads +\markuplist \override-lines #'(word-space . 4) + \doc-chars #shape-note-noteheads @end lilypond @@ -732,8 +732,8 @@ zu (bspw. @code{g^\markup @{ @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #rests +\markuplist \override-lines #'(word-space . 4) + \doc-chars #rests @end lilypond @@ -743,8 +743,8 @@ zu (bspw. @code{g^\markup @{ @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #flags +\markuplist \override-lines #'(word-space . 4) + \doc-chars #flags @end lilypond @@ -754,8 +754,8 @@ zu (bspw. @code{g^\markup @{ @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #dots +\markuplist \override-lines #'(word-space . 4) + \doc-chars #dots @end lilypond @@ -765,8 +765,8 @@ zu (bspw. @code{g^\markup @{ @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #dynamics +\markuplist \override-lines #'(word-space . 4) + \doc-chars #dynamics @end lilypond @@ -775,8 +775,8 @@ zu (bspw. @code{g^\markup @{ @translationof Script glyphs @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #scripts +\markuplist \override-lines #'(word-space . 4) + \doc-chars #scripts @end lilypond @@ -786,8 +786,8 @@ zu (bspw. @code{g^\markup @{ @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #arrowheads +\markuplist \override-lines #'(word-space . 4) + \doc-chars #arrowheads @end lilypond @@ -797,8 +797,8 @@ zu (bspw. @code{g^\markup @{ @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #brackettips +\markuplist \override-lines #'(word-space . 4) + \doc-chars #brackettips @end lilypond @@ -808,8 +808,8 @@ zu (bspw. @code{g^\markup @{ @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #pedal +\markuplist \override-lines #'(word-space . 4) + \doc-chars #pedal @end lilypond @@ -819,8 +819,8 @@ zu (bspw. @code{g^\markup @{ @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #accordion +\markuplist \override-lines #'(word-space . 4) + \doc-chars #accordion @end lilypond @@ -830,8 +830,8 @@ zu (bspw. @code{g^\markup @{ @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #vaticana +\markuplist \override-lines #'(word-space . 4) + \doc-chars #vaticana @end lilypond @@ -841,8 +841,8 @@ zu (bspw. @code{g^\markup @{ @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #medicaea +\markuplist \override-lines #'(word-space . 4) + \doc-chars #medicaea @end lilypond @@ -852,8 +852,8 @@ zu (bspw. @code{g^\markup @{ @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #hufnagel +\markuplist \override-lines #'(word-space . 4) + \doc-chars #hufnagel @end lilypond @@ -863,8 +863,8 @@ zu (bspw. @code{g^\markup @{ @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #mensural +\markuplist \override-lines #'(word-space . 4) + \doc-chars #mensural @end lilypond @@ -874,8 +874,8 @@ zu (bspw. @code{g^\markup @{ @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #neomensural +\markuplist \override-lines #'(word-space . 4) + \doc-chars #neomensural @end lilypond @@ -885,8 +885,8 @@ zu (bspw. @code{g^\markup @{ @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #petrucci +\markuplist \override-lines #'(word-space . 4) + \doc-chars #petrucci @end lilypond @@ -896,8 +896,8 @@ zu (bspw. @code{g^\markup @{ @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #solesmes +\markuplist \override-lines #'(word-space . 4) + \doc-chars #solesmes @end lilypond @@ -927,7 +927,7 @@ Folgende Stile können zur Darstellung der Notenköpfe verwendet werden: @appendixsec Textbeschriftungslistenbefehle @translationof Text markup list commands -Folgende Befehle können mit dem Befehl @code{\markuplines} zusammen +Folgende Befehle können mit dem Befehl @code{\markuplist} zusammen benutzt werden: @include markup-list-commands.tely diff --git a/Documentation/de/notation/text.itely b/Documentation/de/notation/text.itely index 27bda76774..cde9ad583e 100644 --- a/Documentation/de/notation/text.itely +++ b/Documentation/de/notation/text.itely @@ -8,7 +8,7 @@ Guide, node Updating translation committishes. @end ignore -@c \version "2.14.0" +@c \version "2.15.17" @c Translators: Till Paala @@ -380,14 +380,14 @@ dass man Textdokumente oder Bücher ausschließlich mit LilyPond setzen kann. Einzelheiten zu den vielfältigen Möglichkeiten finden sich in @ref{Textbeschriftung über mehrere Seiten}. -@funindex \markuplines +@funindex \markuplist @funindex \markup -@funindex markuplines +@funindex markuplist @funindex markup @predefined @code{\markup}, -@code{\markuplines}. +@code{\markuplist}. @endpredefined @@ -1341,8 +1341,8 @@ Installierte Dateien: @cindex Text über mehrere Seiten @cindex mehrseitiger Text -@funindex \markuplines -@funindex markuplines +@funindex \markuplist +@funindex markuplist @funindex \justified-lines @funindex justified-lines @funindex \wordwrap-lines @@ -1353,7 +1353,7 @@ einer spezifischen Umgebung ist es möglich, Text auch über mehrere Seiten fließen zu lassen: @lilypond[quote,verbatim] -\markuplines { +\markuplist { \justified-lines { A very long text of justified lines. ... @@ -1396,11 +1396,11 @@ Referenz der Interna: Installierte Dateien: @file{scm/define-markup-commands.scm}. -@funindex \markuplines -@funindex markuplines +@funindex \markuplist +@funindex markuplist @predefined -@code{\markuplines}. +@code{\markuplist}. @endpredefined diff --git a/Documentation/es/extending/programming-interface.itely b/Documentation/es/extending/programming-interface.itely index 7c3666643f..0a5336b488 100644 --- a/Documentation/es/extending/programming-interface.itely +++ b/Documentation/es/extending/programming-interface.itely @@ -7,7 +7,7 @@ version that you are working on. See TRANSLATION for details. @end ignore -@c \version "2.14.0" +@c \version "2.15.17" @node Interfaces para programadores @chapter Interfaces para programadores @@ -1001,7 +1001,7 @@ del argumento @code{props}. #(define-markup-list-command (paragraph layout props args) (markup-list?) #:properties ((par-indent 2)) (interpret-markup-list layout props - #@{\markuplines \justified-lines @{ \hspace #$par-indent $args @} #@})) + #@{\markuplist \justified-lines @{ \hspace #$par-indent $args @} #@})) @end example @@ -1033,7 +1033,7 @@ interpreta usando la función @code{interpret-markup-list}. Esta nueva instrucción de lista de marcados se puede usar como sigue: @example -\markuplines @{ +\markuplist @{ \paragraph @{ El arte de la tipografía musical se llama \italic @{grabado (en plancha).@} El término deriva del proceso tradicional de impresión de música. diff --git a/Documentation/es/learning/tweaks.itely b/Documentation/es/learning/tweaks.itely index 54cfb60a91..13c5e241dc 100644 --- a/Documentation/es/learning/tweaks.itely +++ b/Documentation/es/learning/tweaks.itely @@ -3617,7 +3617,6 @@ de que la ligadura se cruza entre las voces: { \once \override Stem #'transparent = ##t \once \override Flag #'transparent = ##t - \once \override Flag #'transparent = ##t b8~ b\noBeam } \\ @@ -3634,7 +3633,6 @@ valor de longitud @code{length} a @code{8}, { \once \override Stem #'transparent = ##t \once \override Flag #'transparent = ##t - \once \override Flag #'transparent = ##t \once \override Stem #'length = #8 b8~ b\noBeam } diff --git a/Documentation/es/notation/ancient.itely b/Documentation/es/notation/ancient.itely index df33af4475..add84f49b2 100644 --- a/Documentation/es/notation/ancient.itely +++ b/Documentation/es/notation/ancient.itely @@ -2700,7 +2700,6 @@ spirLyr = \lyricmode { \override BarLine #'X-extent = #'(-1 . 1) \override Stem #'transparent = ##t \override Flag #'transparent = ##t - \override Flag #'transparent = ##t \override Beam #'transparent = ##t \override BarLine #'transparent = ##t \override TupletNumber #'transparent = ##t diff --git a/Documentation/es/notation/changing-defaults.itely b/Documentation/es/notation/changing-defaults.itely index f53bf6227b..9660880cfb 100644 --- a/Documentation/es/notation/changing-defaults.itely +++ b/Documentation/es/notation/changing-defaults.itely @@ -850,7 +850,6 @@ Las notas parecen barras inclinadas y no tienen plica: \override NoteHead #'style = #'slash \override Stem #'transparent = ##t \override Flag #'transparent = ##t -\override Flag #'transparent = ##t @end example Todos estos añadidos tienen que cooperar, y esto se consigue con un @@ -874,7 +873,6 @@ Al juntarlo todo, obtenemos \override NoteHead #'style = #'slash \override Stem #'transparent = ##t \override Flag #'transparent = ##t - \override Flag #'transparent = ##t \alias Voice @} @end example diff --git a/Documentation/es/notation/fretted-strings.itely b/Documentation/es/notation/fretted-strings.itely index b5b9c27ecf..065fe5cdeb 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.14.0" +@c \version "2.15.16" @node Instrumentos de cuerda con trastes @section Instrumentos de cuerda con trastes @@ -592,7 +592,8 @@ mynotes = { \mynotes } \new TabStaff { - \contextStringTuning #'custom-tuning + #(define custom-tuning #{ \stringTuning #}) + \set stringTunings = #custom-tuning \mynotes } >> @@ -615,7 +616,7 @@ la afinación. El ejemplo anterior también se podría haber escrito como sigue: @lilypond[quote,verbatim] -\makeStringTuning #'custom-tuning +"custom-tuning" = \stringTuning mynotes = { c'4 e' g' c'' | diff --git a/Documentation/es/notation/input.itely b/Documentation/es/notation/input.itely index fcffa2574e..e27129348b 100644 --- a/Documentation/es/notation/input.itely +++ b/Documentation/es/notation/input.itely @@ -8,7 +8,7 @@ Guide, node Updating translation committishes.. @end ignore -@c \version "2.14.0" +@c \version "2.15.17" @node Entrada y salida generales @chapter Entrada y salida generales @@ -1118,13 +1118,13 @@ dígitos. @translationof Table of contents Se puede insertar un índice general o tabla de contenidos utilizando -la instrucción @code{\markuplines \table-of-contents}. Los elementos +la instrucción @code{\markuplist \table-of-contents}. Los elementos que deben aparecer en la tabla de contenidos se introducen con la instrucción @code{\tocItem}, que se puede usar en el nivel más alto de la jerarquía del código, o dentro de una expresión musical. @verbatim -\markuplines \table-of-contents +\markuplist \table-of-contents \pageBreak \tocItem \markup "Primera partitura" @@ -1209,7 +1209,7 @@ tocAct = (add-toc-item! 'tocActMarkup text)) \book { - \markuplines \table-of-contents + \markuplist \table-of-contents \tocAct \markup { Atto Primo } \tocItem \markup { Coro. Viva il nostro Alcide } \tocItem \markup { Cesare. Presti omai l'Egizzia terra } @@ -1229,7 +1229,7 @@ Se pueden añadir puntos de relleno entre un elemento y su número de página: } \book { - \markuplines \table-of-contents + \markuplist \table-of-contents \tocItem \markup { Allegro } \tocItem \markup { Largo } \markup \null diff --git a/Documentation/es/notation/notation-appendices.itely b/Documentation/es/notation/notation-appendices.itely index d81adc5529..6d6df37904 100644 --- a/Documentation/es/notation/notation-appendices.itely +++ b/Documentation/es/notation/notation-appendices.itely @@ -8,7 +8,7 @@ Guide, node Updating translation committishes.. @end ignore -@c \version "2.14.0" +@c \version "2.15.17" @node Tablas del manual sobre notación @appendix Tablas del manual sobre notación @@ -657,8 +657,8 @@ consulte @ref{Formatear el texto}. @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #clefs +\markuplist \override-lines #'(word-space . 4) + \doc-chars #clefs @end lilypond @@ -668,8 +668,8 @@ consulte @ref{Formatear el texto}. @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #timesig +\markuplist \override-lines #'(word-space . 4) + \doc-chars #timesig @end lilypond @@ -679,8 +679,8 @@ consulte @ref{Formatear el texto}. @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #numbers +\markuplist \override-lines #'(word-space . 4) + \doc-chars #numbers @end lilypond @@ -690,8 +690,8 @@ consulte @ref{Formatear el texto}. @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #accidentals +\markuplist \override-lines #'(word-space . 4) + \doc-chars #accidentals @end lilypond @@ -701,8 +701,8 @@ consulte @ref{Formatear el texto}. @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #default-noteheads +\markuplist \override-lines #'(word-space . 4) + \doc-chars #default-noteheads @end lilypond @@ -712,8 +712,8 @@ consulte @ref{Formatear el texto}. @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #special-noteheads +\markuplist \override-lines #'(word-space . 4) + \doc-chars #special-noteheads @end lilypond @@ -723,8 +723,8 @@ consulte @ref{Formatear el texto}. @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #shape-note-noteheads +\markuplist \override-lines #'(word-space . 4) + \doc-chars #shape-note-noteheads @end lilypond @@ -734,8 +734,8 @@ consulte @ref{Formatear el texto}. @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #rests +\markuplist \override-lines #'(word-space . 4) + \doc-chars #rests @end lilypond @@ -745,8 +745,8 @@ consulte @ref{Formatear el texto}. @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #flags +\markuplist \override-lines #'(word-space . 4) + \doc-chars #flags @end lilypond @@ -756,8 +756,8 @@ consulte @ref{Formatear el texto}. @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #dots +\markuplist \override-lines #'(word-space . 4) + \doc-chars #dots @end lilypond @@ -767,8 +767,8 @@ consulte @ref{Formatear el texto}. @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #dynamics +\markuplist \override-lines #'(word-space . 4) + \doc-chars #dynamics @end lilypond @@ -778,8 +778,8 @@ consulte @ref{Formatear el texto}. @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #scripts +\markuplist \override-lines #'(word-space . 4) + \doc-chars #scripts @end lilypond @@ -789,8 +789,8 @@ consulte @ref{Formatear el texto}. @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #arrowheads +\markuplist \override-lines #'(word-space . 4) + \doc-chars #arrowheads @end lilypond @@ -800,8 +800,8 @@ consulte @ref{Formatear el texto}. @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #brackettips +\markuplist \override-lines #'(word-space . 4) + \doc-chars #brackettips @end lilypond @@ -811,8 +811,8 @@ consulte @ref{Formatear el texto}. @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #pedal +\markuplist \override-lines #'(word-space . 4) + \doc-chars #pedal @end lilypond @@ -822,8 +822,8 @@ consulte @ref{Formatear el texto}. @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #accordion +\markuplist \override-lines #'(word-space . 4) + \doc-chars #accordion @end lilypond @@ -833,8 +833,8 @@ consulte @ref{Formatear el texto}. @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #ties +\markuplist \override-lines #'(word-space . 4) + \doc-chars #ties @end lilypond @node Glifos de vaticana @@ -843,8 +843,8 @@ consulte @ref{Formatear el texto}. @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #vaticana +\markuplist \override-lines #'(word-space . 4) + \doc-chars #vaticana @end lilypond @@ -854,8 +854,8 @@ consulte @ref{Formatear el texto}. @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #medicaea +\markuplist \override-lines #'(word-space . 4) + \doc-chars #medicaea @end lilypond @@ -865,8 +865,8 @@ consulte @ref{Formatear el texto}. @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #hufnagel +\markuplist \override-lines #'(word-space . 4) + \doc-chars #hufnagel @end lilypond @@ -876,8 +876,8 @@ consulte @ref{Formatear el texto}. @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #mensural +\markuplist \override-lines #'(word-space . 4) + \doc-chars #mensural @end lilypond @@ -887,8 +887,8 @@ consulte @ref{Formatear el texto}. @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #neomensural +\markuplist \override-lines #'(word-space . 4) + \doc-chars #neomensural @end lilypond @@ -898,8 +898,8 @@ consulte @ref{Formatear el texto}. @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #petrucci +\markuplist \override-lines #'(word-space . 4) + \doc-chars #petrucci @end lilypond @@ -909,8 +909,8 @@ consulte @ref{Formatear el texto}. @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #solesmes +\markuplist \override-lines #'(word-space . 4) + \doc-chars #solesmes @end lilypond @@ -936,7 +936,7 @@ Se pueden usar los siguientes estilos para las cabezas de las notas. @translationof Text markup list commands Se puede usar cualquiera de las siguientes instrucciones con -@code{\markuplines}: +@code{\markuplist}: @include markup-list-commands.tely diff --git a/Documentation/es/notation/text.itely b/Documentation/es/notation/text.itely index 80faad40f6..fcf4e6b1e6 100644 --- a/Documentation/es/notation/text.itely +++ b/Documentation/es/notation/text.itely @@ -7,7 +7,7 @@ Guide, node Updating translation committishes.. @end ignore -@c \version "2.14.0" +@c \version "2.15.17" @node Texto @section Texto @@ -367,12 +367,12 @@ requiere se describen en @ref{Elementos de marcado de varias páginas}. @funindex \markup @funindex markup -@funindex \markuplines -@funindex markuplines +@funindex \markuplist +@funindex markuplist @predefined @code{\markup}, -@code{\markuplines}. +@code{\markuplist}. @endpredefined @@ -1322,8 +1322,8 @@ Archivos de inicio: @cindex marcado, texto de, varias páginas @cindex texto que ocupa varias páginas -@funindex \markuplines -@funindex markuplines +@funindex \markuplist +@funindex markuplist @funindex \justified-lines @funindex justified-lines @funindex \wordwrap-lines @@ -1335,7 +1335,7 @@ que pueden abarcar varias páginas: @c KEEP LY @lilypond[quote,verbatim] -\markuplines { +\markuplist { \justified-lines { Un texto muy largo de líneas justificadas. ... @@ -1379,11 +1379,11 @@ Archivos de inicio: @file{scm/define-markup-commands.scm}. -@funindex \markuplines -@funindex markuplines +@funindex \markuplist +@funindex markuplist @predefined -@code{\markuplines}. +@code{\markuplist}. @endpredefined diff --git a/Documentation/es/texidocs/chord-glissando-in-tablature.texidoc b/Documentation/es/texidocs/chord-glissando-in-tablature.texidoc index 274dd82171..87e5a1a4dd 100644 --- a/Documentation/es/texidocs/chord-glissando-in-tablature.texidoc +++ b/Documentation/es/texidocs/chord-glissando-in-tablature.texidoc @@ -8,4 +8,4 @@ los acordes y para notas sueltas. " - doctitlees = "Glissando de acordes en tablatura" \ No newline at end of file + doctitlees = "Glissando de acordes en tablatura" diff --git a/Documentation/es/texidocs/printing-marks-at-the-end-of-a-line.texidoc b/Documentation/es/texidocs/printing-marks-at-the-end-of-a-line.texidoc index 69cc104713..c13cb230c7 100644 --- a/Documentation/es/texidocs/printing-marks-at-the-end-of-a-line.texidoc +++ b/Documentation/es/texidocs/printing-marks-at-the-end-of-a-line.texidoc @@ -7,4 +7,4 @@ principio de la línea siguiente. En estos casos, puede ser preferible alinear el borde derecho de la marca con la línea divisoria. " - doctitlees = "Imprimir marcas al final de una línea" \ No newline at end of file + doctitlees = "Imprimir marcas al final de una línea" diff --git a/Documentation/es/texidocs/script-chart.texidoc b/Documentation/es/texidocs/script-chart.texidoc index 1cb85708f2..d1368addcc 100644 --- a/Documentation/es/texidocs/script-chart.texidoc +++ b/Documentation/es/texidocs/script-chart.texidoc @@ -2,4 +2,4 @@ texidoces = " He aquí un cuadro que muestra todas las articulaciones disponibles: -" \ No newline at end of file +" diff --git a/Documentation/extending/programming-interface.itely b/Documentation/extending/programming-interface.itely index aaca71c9b3..87430c6a19 100644 --- a/Documentation/extending/programming-interface.itely +++ b/Documentation/extending/programming-interface.itely @@ -8,7 +8,7 @@ Guide, node Updating translation committishes.. @end ignore -@c \version "2.14.0" +@c \version "2.15.17" @node Interfaces for programmers @chapter Interfaces for programmers @@ -148,18 +148,33 @@ given the correct @code{origin}. @noindent Some type predicates are specially handled by the parser since it can't recognize the arguments reliably otherwise. Currently these are -@code{ly:music?}, @code{ly:pitch?}, and @code{ly:duration?}. - -All other predicates can be specified in Scheme syntax if desired -(introduced with @code{#} or as the result of calling a scheme -function), but Lilypond will also accept a number of Lilypond -constructs it can recognize fully without lookahead. Currently, those -include simple strings (with or without quotes), context -modifications, full markups and markup lists. - -If you really want to input one of the special items as a Scheme rather -than a LilyPond expression, you may write them as a Scheme expression -that calls @code{ly:export} at its outermost level. +@code{ly:pitch?} and @code{ly:duration?}. + +Suitability of arguments for all other predicates is determined by +actually calling the predicate after Lilypond has already converted +them into a Scheme expression. As a consequence, the argument can be +specified in Scheme syntax if desired (introduced with @code{#} or as +the result of calling a scheme function), but Lilypond will also +convert a number of Lilypond constructs into Scheme before actually +checking the predicate on them. Currently, those include music, +simple strings (with or without quotes), full markups and markup +lists, score, book, bookpart, context definition and output definition +blocks. + +For some kinds of expression (like most music not enclosed in braces) +Lilypond needs to look further than the expression itself in order to +determine its end. When such an expression is considered for an +optional argument by evaluating its predicate, Lilypond can't ``back +up'' when it decides the expression does not fit the parameter, and +complains. So in some contexts involving optional arguments, you may +need extra braces to make them acceptable to Lilypond. + +This also applies for music arguments preceding @code{ly:duration?} +arguments. It may also affect the last argument of a scheme function +that is used as the last part of another expression, since otherwise +Lilypond won't know whether following postevents or durations apply to +the argument of the Scheme function, or to the containing music +expression. For a list of available type predicates, see @ruser{Predefined type predicates}. @@ -187,26 +202,19 @@ immediately following optional arguments are replaced with their default values, and the matching continues with the next non-optional argument. Apart from places where a Scheme value is required, there are a few -places where @code{#} expressions are accepted and evaluated for their -side effects but otherwise ignored. Mostly those are the places where -an assignment would be acceptable as well. - -There are a few special places where an argument matching -@code{ly:music?} has to be either a music identifier or a music -expression enclosed in @code{@{}@dots{}@code{@}} or -@code{<<}@dots{}@code{>>} explicitly, so that possibly following -optional durations or postevents can't be confused with additional -arguments. One obvious place is before a @code{ly:duration?} -predicate. Another is as the last argument of a scheme function when it -is used in a place where such optional parts could be considered either -part of the music argument or not. - -In those rare cases, you have to delimit your music arguments -appropriately to spare LilyPond from getting confused. +places where @code{#} expressions are currently accepted and evaluated +for their side effects but otherwise ignored. Mostly those are the +places where an assignment would be acceptable as well. + +Since it is a bad idea to return values that can be misinterpreted in +some context, you should use normal scheme functions only for those +cases where you always return a useful value, and use void scheme +functions (@pxref{Void scheme functions}) otherwise. @node Void scheme functions @subsection Void scheme functions @funindex define-void-function +@funindex \void Sometimes a procedure is executed in order to perform an action rather than return a value. Some programming languages (like C and Scheme) @@ -234,6 +242,18 @@ noPointAndClick = \noPointAndClick % disable point and click @end example +If you want to evaluate an expression only for its side-effect and +don't want any value it may return interpreted, you can do so by +prefixing it with @code{\void}: + +@example +\void #(hashq-set! some-table some-key some-value) +@end example + +That way, you can be sure that Lilypond will not assign meaning to the +returned value regardless of where it encounters it. This will also +work for music functions such as @code{\displayMusic}. + @node Music functions @section Music functions @@ -933,7 +953,7 @@ indented. The indent width is taken from the @code{props} argument. #(define-markup-list-command (paragraph layout props args) (markup-list?) #:properties ((par-indent 2)) (interpret-markup-list layout props - #@{\markuplines \justified-lines @{ \hspace #$par-indent $args @} #@})) + #@{\markuplist \justified-lines @{ \hspace #$par-indent $args @} #@})) @end example @@ -962,7 +982,7 @@ interpreted using the @code{interpret-markup-list} function. This new markup list command can be used as follows: @example -\markuplines @{ +\markuplist @{ \paragraph @{ The art of music typography is called \italic @{(plate) engraving.@} The term derives from the traditional process of music printing. diff --git a/Documentation/extending/scheme-tutorial.itely b/Documentation/extending/scheme-tutorial.itely index d656f09a2f..4c180538f5 100644 --- a/Documentation/extending/scheme-tutorial.itely +++ b/Documentation/extending/scheme-tutorial.itely @@ -1006,6 +1006,10 @@ containing a @code{NoteEvent} object (storing the duration and pitch properties) and any extra information (in this case, an @code{AbsoluteDynamicEvent} with a @code{"f"} text property. +@funindex{\void} +@code{\displayMusic} returns the music it displays, so it will get +interpreted as well as displayed. To avoid interpretation, write +@code{\void} before @code{\displayMusic}. @node Music properties @subsection Music properties diff --git a/Documentation/fr/notation/fretted-strings.itely b/Documentation/fr/notation/fretted-strings.itely index c67c728fb7..6d2d8ca462 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.14.0" +@c \version "2.15.16" @c Translators: Matthieu Jacquot @c Translation checkers: Jean-Charles Malahieude @@ -570,7 +570,8 @@ mynotes = { \mynotes } \new TabStaff { - \contextStringTuning #'custom-tuning + #(define custom-tuning #{ \stringTuning #}) + \set stringTunings = #custom-tuning \mynotes } >> @@ -592,7 +593,7 @@ l'identifiant de ce nouvel accordage et l'accord dont il est constitué. Nous pourrions donc écrire l'exemple précédent ainsi@tie{}: @lilypond[quote,verbatim] -\makeStringTuning #'custom-tuning +"custom-tuning" = \stringTuning mynotes = { c'4 e' g' c'' | diff --git a/Documentation/fr/notation/input.itely b/Documentation/fr/notation/input.itely index f68687a274..55146ac588 100644 --- a/Documentation/fr/notation/input.itely +++ b/Documentation/fr/notation/input.itely @@ -8,7 +8,7 @@ Guide, node Updating translation committishes.. @end ignore -@c \version "2.14.0" +@c \version "2.15.17" @c Translators: Jean-Charles Malahieude, Valentin Villenave @@ -1158,13 +1158,13 @@ emporte-pièce sur deux caractères -- soit @code{"00"}. @subsection Table des matières @translationof Table of contents -La commande @code{\markuplines \table-of-contents} vous permettra de +La commande @code{\markuplist \table-of-contents} vous permettra de générer une table des matières. Les éléments qui la composeront sont créés par la commande @code{\tocItem}, insérée indépendamment ou au sein d'une expression musicale. @verbatim -\markuplines \table-of-contents +\markuplist \table-of-contents \pageBreak \tocItem \markup "Premier mouvement" @@ -1253,7 +1253,7 @@ tocAct = (add-toc-item! 'tocActMarkup text)) \book { - \markuplines \table-of-contents + \markuplist \table-of-contents \tocAct \markup { Atto Primo } \tocItem \markup { Coro. Viva il nostro Alcide } \tocItem \markup { Cesare. Presti omai l'Egizzia terra } @@ -1274,7 +1274,7 @@ pointillée@tie{}: } \book { - \markuplines \table-of-contents + \markuplist \table-of-contents \tocItem \markup { Allegro } \tocItem \markup { Largo } \markup \null diff --git a/Documentation/fr/notation/notation-appendices.itely b/Documentation/fr/notation/notation-appendices.itely index 7fa677c743..6bce4787ca 100644 --- a/Documentation/fr/notation/notation-appendices.itely +++ b/Documentation/fr/notation/notation-appendices.itely @@ -8,7 +8,7 @@ Guide, node Updating translation committishes.. @end ignore -@c \version "2.14.0" +@c \version "2.15.17" @c Translators: Frédéric Chiasson, Jean-Charles Malahieude @@ -639,8 +639,8 @@ informations, reportez-vous au chapitre @ref{Mise en forme du texte}. @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #clefs +\markuplist \override-lines #'(word-space . 4) + \doc-chars #clefs @end lilypond @@ -650,8 +650,8 @@ informations, reportez-vous au chapitre @ref{Mise en forme du texte}. @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #timesig +\markuplist \override-lines #'(word-space . 4) + \doc-chars #timesig @end lilypond @@ -661,8 +661,8 @@ informations, reportez-vous au chapitre @ref{Mise en forme du texte}. @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #numbers +\markuplist \override-lines #'(word-space . 4) + \doc-chars #numbers @end lilypond @@ -672,8 +672,8 @@ informations, reportez-vous au chapitre @ref{Mise en forme du texte}. @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #accidentals +\markuplist \override-lines #'(word-space . 4) + \doc-chars #accidentals @end lilypond @@ -683,8 +683,8 @@ informations, reportez-vous au chapitre @ref{Mise en forme du texte}. @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #default-noteheads +\markuplist \override-lines #'(word-space . 4) + \doc-chars #default-noteheads @end lilypond @@ -694,8 +694,8 @@ informations, reportez-vous au chapitre @ref{Mise en forme du texte}. @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #special-noteheads +\markuplist \override-lines #'(word-space . 4) + \doc-chars #special-noteheads @end lilypond @@ -705,8 +705,8 @@ informations, reportez-vous au chapitre @ref{Mise en forme du texte}. @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #shape-note-noteheads +\markuplist \override-lines #'(word-space . 4) + \doc-chars #shape-note-noteheads @end lilypond @@ -716,8 +716,8 @@ informations, reportez-vous au chapitre @ref{Mise en forme du texte}. @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #rests +\markuplist \override-lines #'(word-space . 4) + \doc-chars #rests @end lilypond @@ -727,8 +727,8 @@ informations, reportez-vous au chapitre @ref{Mise en forme du texte}. @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #flags +\markuplist \override-lines #'(word-space . 4) + \doc-chars #flags @end lilypond @@ -738,8 +738,8 @@ informations, reportez-vous au chapitre @ref{Mise en forme du texte}. @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #dots +\markuplist \override-lines #'(word-space . 4) + \doc-chars #dots @end lilypond @@ -749,8 +749,8 @@ informations, reportez-vous au chapitre @ref{Mise en forme du texte}. @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #dynamics +\markuplist \override-lines #'(word-space . 4) + \doc-chars #dynamics @end lilypond @@ -760,8 +760,8 @@ informations, reportez-vous au chapitre @ref{Mise en forme du texte}. @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #scripts +\markuplist \override-lines #'(word-space . 4) + \doc-chars #scripts @end lilypond @@ -771,8 +771,8 @@ informations, reportez-vous au chapitre @ref{Mise en forme du texte}. @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #arrowheads +\markuplist \override-lines #'(word-space . 4) + \doc-chars #arrowheads @end lilypond @@ -782,8 +782,8 @@ informations, reportez-vous au chapitre @ref{Mise en forme du texte}. @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #brackettips +\markuplist \override-lines #'(word-space . 4) + \doc-chars #brackettips @end lilypond @@ -793,8 +793,8 @@ informations, reportez-vous au chapitre @ref{Mise en forme du texte}. @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #pedal +\markuplist \override-lines #'(word-space . 4) + \doc-chars #pedal @end lilypond @@ -804,8 +804,8 @@ informations, reportez-vous au chapitre @ref{Mise en forme du texte}. @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #accordion +\markuplist \override-lines #'(word-space . 4) + \doc-chars #accordion @end lilypond @@ -814,8 +814,8 @@ informations, reportez-vous au chapitre @ref{Mise en forme du texte}. @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #ties +\markuplist \override-lines #'(word-space . 4) + \doc-chars #ties @end lilypond @@ -825,8 +825,8 @@ informations, reportez-vous au chapitre @ref{Mise en forme du texte}. @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #vaticana +\markuplist \override-lines #'(word-space . 4) + \doc-chars #vaticana @end lilypond @@ -836,8 +836,8 @@ informations, reportez-vous au chapitre @ref{Mise en forme du texte}. @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #medicaea +\markuplist \override-lines #'(word-space . 4) + \doc-chars #medicaea @end lilypond @@ -847,8 +847,8 @@ informations, reportez-vous au chapitre @ref{Mise en forme du texte}. @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #hufnagel +\markuplist \override-lines #'(word-space . 4) + \doc-chars #hufnagel @end lilypond @@ -858,8 +858,8 @@ informations, reportez-vous au chapitre @ref{Mise en forme du texte}. @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #mensural +\markuplist \override-lines #'(word-space . 4) + \doc-chars #mensural @end lilypond @@ -869,8 +869,8 @@ informations, reportez-vous au chapitre @ref{Mise en forme du texte}. @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #neomensural +\markuplist \override-lines #'(word-space . 4) + \doc-chars #neomensural @end lilypond @@ -880,8 +880,8 @@ informations, reportez-vous au chapitre @ref{Mise en forme du texte}. @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #petrucci +\markuplist \override-lines #'(word-space . 4) + \doc-chars #petrucci @end lilypond @@ -891,8 +891,8 @@ informations, reportez-vous au chapitre @ref{Mise en forme du texte}. @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #solesmes +\markuplist \override-lines #'(word-space . 4) + \doc-chars #solesmes @end lilypond @@ -920,7 +920,7 @@ Les commandes suivantes peuvent être utilisées dans un bloc @translationof Text markup list commands Les commandes suivantes peuvent être utilisées dans un -bloc @code{\markuplines @{ @}}. +bloc @code{\markuplist @{ @}}. @include markup-list-commands.tely diff --git a/Documentation/fr/notation/text.itely b/Documentation/fr/notation/text.itely index c18d491c32..368649a803 100644 --- a/Documentation/fr/notation/text.itely +++ b/Documentation/fr/notation/text.itely @@ -7,7 +7,7 @@ Guide, node Updating translation committishes.. @end ignore -@c \version "2.14.0" +@c \version "2.15.17" @c Translators: Jean-Charles Malahieude @c Translation checkers: Valentin Villenave, John Mandereau @@ -372,12 +372,12 @@ détail au chapitre @ref{Texte avec sauts de page}. @funindex \markup @funindex markup -@funindex \markuplines -@funindex markuplines +@funindex \markuplist +@funindex markuplist @predefined @code{\markup}, -@code{\markuplines}. +@code{\markuplist}. @endpredefined @@ -1334,21 +1334,21 @@ Fichiers d'initialisation : @cindex markup, texte multi-page @cindex plusieurs pages de texte -@funindex \markuplines -@funindex markuplines +@funindex \markuplist +@funindex markuplist @funindex \justified-lines @funindex justified-lines @funindex \wordwrap-lines @funindex wordwrap-lines Alors que @code{\markup} s'utilise pour traiter un bloc de texte -insécable, @code{\markuplines} permet, employé en tête de partition, +insécable, @code{\markuplist} permet, employé en tête de partition, d'obtenir un bloc de lignes réparties différemment et, le cas échéant, sur plusieurs pages. @c KEEP LY @lilypond[quote,verbatim] -\markuplines { +\markuplist { \justified-lines { Un long texte constitué de lignes justifiées. ... @@ -1394,11 +1394,11 @@ Fichiers d'initialisation : @file{scm/define-markup-commands.scm}. -@funindex \markuplines -@funindex markuplines +@funindex \markuplist +@funindex markuplist @predefined -@code{\markuplines}. +@code{\markuplist}. @endpredefined diff --git a/Documentation/included/README b/Documentation/included/README index 6252de2399..ef7b0eef32 100644 --- a/Documentation/included/README +++ b/Documentation/included/README @@ -10,4 +10,4 @@ direction and listed here. Do not use @ref{} in files in Documentation/included/; cross-references should be made with specific macros such as @rcontrib{}, @rextend{}, etc. See Documentation/macros.itexi for a -complete list. \ No newline at end of file +complete list. diff --git a/Documentation/included/authors.itexi b/Documentation/included/authors.itexi index 3ce5b4eef6..262453279a 100644 --- a/Documentation/included/authors.itexi +++ b/Documentation/included/authors.itexi @@ -48,6 +48,9 @@ Assistant documentation editor @uref{http://www.philholmes.net} Build unentangler, Bug squad member +@item Ian Hulin: +Core developer + @item Reinhold Kainhofer: @email{reinhold@@kainhofer.com}, @uref{http://reinhold.kainhofer.com}, diff --git a/Documentation/included/display-predefined-string-tunings.ly b/Documentation/included/display-predefined-string-tunings.ly index 6216fbe123..d917dd3d64 100644 --- a/Documentation/included/display-predefined-string-tunings.ly +++ b/Documentation/included/display-predefined-string-tunings.ly @@ -7,30 +7,18 @@ tuning-alist)) #(define (chord-display tuning-alist-entry) - (let* ((ch-mus (cdr tuning-alist-entry)) - (tuning-symbol (car tuning-alist-entry)) - (ev-chord (car (extract-named-music - ch-mus - 'EventChord))) - (elts (ly:music-property ev-chord 'elements))) - (music-map (lambda (m) - (begin - (if (not (null? (ly:music-property m 'duration))) - (ly:music-set-property! - m - 'duration - (ly:make-duration 0 0 1 1))) - m)) - ev-chord) - (let ((elts (ly:music-property ev-chord 'elements)) - (script (make-music 'TextScriptEvent - 'direction 1 - 'text (symbol->string tuning-symbol)))) - (ly:music-set-property! - ev-chord - 'elements - (cons script elts))) - ev-chord)) + (let* ((tuning-symbol (car tuning-alist-entry)) + (pitches (cdr tuning-alist-entry))) + (make-music 'EventChord + 'elements + (cons (make-music 'TextScriptEvent + 'direction 1 + 'text (symbol->string tuning-symbol)) + (map (lambda (pitch) + (make-music 'NoteEvent + 'duration (ly:make-duration 0 0 1 1) + 'pitch pitch)) + pitches))))) displayInstrumentDefaultTunings = #(define-music-function (parser location instrument) (string?) diff --git a/Documentation/included/special-characters.ly b/Documentation/included/special-characters.ly index 7c6f2728bf..447e2c8a4f 100644 --- a/Documentation/included/special-characters.ly +++ b/Documentation/included/special-characters.ly @@ -1,4 +1,4 @@ -\version "2.15.13" +\version "2.15.17" #(set-default-paper-size "a4") \paper { @@ -15,4 +15,4 @@ #:override '(thickness . 0.1) #:box (cdr pair)))) (list-tail (assoc-get 'replacement-alist defs) 3))))) -\markuplines \justified-lines \show-special-characters +\markuplist \justified-lines \show-special-characters diff --git a/Documentation/ja/notation/changing-defaults.itely b/Documentation/ja/notation/changing-defaults.itely index 76dfba43bd..5f8c656d2d 100644 --- a/Documentation/ja/notation/changing-defaults.itely +++ b/Documentation/ja/notation/changing-defaults.itely @@ -896,7 +896,6 @@ squashedPosition = #0 \override NoteHead #'style = #'slash \override Stem #'transparent = ##t \override Flag #'transparent = ##t -\override Flag #'transparent = ##t @end example これらのプラグインすべてが共同する必要があり、@c @@ -921,7 +920,6 @@ squashedPosition = #0 \override NoteHead #'style = #'slash \override Stem #'transparent = ##t \override Flag #'transparent = ##t - \override Flag #'transparent = ##t \alias Voice @} @end example diff --git a/Documentation/ja/notation/input.itely b/Documentation/ja/notation/input.itely index b530ab8cfa..bf28780d6b 100644 --- a/Documentation/ja/notation/input.itely +++ b/Documentation/ja/notation/input.itely @@ -7,7 +7,7 @@ Guide, node Updating translation committishes.. @end ignore -@c \version "2.14.0" +@c \version "2.15.17" @c Translators: Yoshiki Sawada @@ -1189,12 +1189,12 @@ book のページ数が 10 から 99 までの範囲であるのなら、ゲー @subsection 目次 @translationof Table of contents -目次は @code{\markuplines \table-of-contents} コマンドを用いて挿入します。@c +目次は @code{\markuplist \table-of-contents} コマンドを用いて挿入します。@c 目次に表示すべき要素は @code{\tocItem} コマンドで挿入されます -- このコマンドは最上位あるいは音楽表記の内部で使用します。 @verbatim -\markuplines \table-of-contents +\markuplist \table-of-contents \pageBreak \tocItem \markup "First score" @@ -1280,7 +1280,7 @@ tocAct = (add-toc-item! 'tocActMarkup text)) \book { - \markuplines \table-of-contents + \markuplist \table-of-contents \tocAct \markup { Atto Primo } \tocItem \markup { Coro. Viva il nostro Alcide } \tocItem \markup { Cesare. Presti omai l'Egizzia terra } @@ -1300,7 +1300,7 @@ tocAct = } \book { - \markuplines \table-of-contents + \markuplist \table-of-contents \tocItem \markup { Allegro } \tocItem \markup { Largo } \markup \null diff --git a/Documentation/ja/notation/text.itely b/Documentation/ja/notation/text.itely index aa1d7e54c2..e060c49355 100644 --- a/Documentation/ja/notation/text.itely +++ b/Documentation/ja/notation/text.itely @@ -6,7 +6,7 @@ version that you are working on. See TRANSLATION for details. @end ignore -@c \version "2.14.0" +@c \version "2.15.17" @c Translators: Yoshiki Sawada @@ -369,12 +369,12 @@ c c @funindex \markup @funindex markup -@funindex \markuplines -@funindex markuplines +@funindex \markuplist +@funindex markuplist @predefined @code{\markup}, -@code{\markuplines} +@code{\markuplist} @endpredefined @@ -1322,8 +1322,8 @@ c d e f @cindex markup text, multi-page (複数ページにわたるマークアップ テキスト) @cindex text spread over multiple pages (複数ページに広がるテキスト) -@funindex \markuplines -@funindex markuplines +@funindex \markuplist +@funindex markuplist @funindex \justified-lines @funindex justified-lines @funindex \wordwrap-lines @@ -1335,7 +1335,7 @@ c d e f @c KEEP LY @lilypond[quote,verbatim] -\markuplines { +\markuplist { \justified-lines { 両端揃えされた非常に長いテキスト。 ... @@ -1379,11 +1379,11 @@ c d e f インストールされているファイル: @file{scm/define-markup-commands.scm}. -@funindex \markuplines -@funindex markuplines +@funindex \markuplist +@funindex markuplist @predefined -@code{\markuplines} +@code{\markuplist} @endpredefined diff --git a/Documentation/learning/tweaks.itely b/Documentation/learning/tweaks.itely index 0ad7e72016..6e6f733210 100644 --- a/Documentation/learning/tweaks.itely +++ b/Documentation/learning/tweaks.itely @@ -3469,7 +3469,6 @@ cross voices: { \once \override Stem #'transparent = ##t \once \override Flag #'transparent = ##t - \once \override Flag #'transparent = ##t b8~ b\noBeam } \\ @@ -3486,7 +3485,6 @@ too much, we can lengthen the stem by setting the { \once \override Stem #'transparent = ##t \once \override Flag #'transparent = ##t - \once \override Flag #'transparent = ##t \once \override Stem #'length = #8 b8~ b\noBeam } diff --git a/Documentation/lily_search.js b/Documentation/lily_search.js index 09516b306b..17cbb53b82 100644 --- a/Documentation/lily_search.js +++ b/Documentation/lily_search.js @@ -98,4 +98,4 @@ function print_search_field (language, manual, bigpage) } if (useAjax) { resObject = erzXMLHttpRequestObject (); -} \ No newline at end of file +} diff --git a/Documentation/notation/ancient.itely b/Documentation/notation/ancient.itely index 921e7c334e..8dd363d712 100644 --- a/Documentation/notation/ancient.itely +++ b/Documentation/notation/ancient.itely @@ -2651,7 +2651,6 @@ spirLyr = \lyricmode { \override BarLine #'X-extent = #'(-1 . 1) \override Stem #'transparent = ##t \override Flag #'transparent = ##t - \override Flag #'transparent = ##t \override Beam #'transparent = ##t \override BarLine #'transparent = ##t \override TupletNumber #'transparent = ##t diff --git a/Documentation/notation/changing-defaults.itely b/Documentation/notation/changing-defaults.itely index 31ba8424bd..c589a6932d 100644 --- a/Documentation/notation/changing-defaults.itely +++ b/Documentation/notation/changing-defaults.itely @@ -856,7 +856,6 @@ The notes look like a slash, and have no stem, \override NoteHead #'style = #'slash \override Stem #'transparent = ##t \override Flag #'transparent = ##t -\override Flag #'transparent = ##t @end example All these plug-ins have to cooperate, and this is achieved with a @@ -880,7 +879,6 @@ Put together, we get \override NoteHead #'style = #'slash \override Stem #'transparent = ##t \override Flag #'transparent = ##t - \override Flag #'transparent = ##t \alias Voice @} @end example diff --git a/Documentation/notation/fretted-strings.itely b/Documentation/notation/fretted-strings.itely index d3407249ab..4574e9bda1 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.14.0" +@c \version "2.15.16" @node Fretted string instruments @section Fretted string instruments @@ -503,7 +503,7 @@ Guitar special effects are limited to harmonics and slides. @cindex tablature, bass @cindex tablature, double bass -@funindex StringTunings +@funindex stringTunings LilyPond tablature automatically calculates the fret for a note based on the string to which the note is assigned. @@ -541,19 +541,18 @@ is the standard EADGBE tuning. Some other predefined tunings are @code{banjo-open-g-tuning}. The predefined string tunings are found in @file{ly/string-tuning-init.ly}. -@funindex contextStringTunings -@funindex \contextStringTunings +@funindex stringTuning +@funindex \stringTuning @cindex tablature, custom string tunings @cindex custom string tunings Any desired string tuning can be created. The -@code{\contextStringTuning} function can be -used to define a string tuning and set it as the -@code{stringTunings} for the current context. -@code{\contextStringTuning} takes two arguments: the -symbol in which the string tuning will be stored, -and a chord construct -that defines the pitches of each string in the tuning. +@code{\stringTuning} function can be +used to define a string tuning which can be used +to set @code{stringTunings} for the current context. + +Its argument is a chord construct +defining the pitches of each string in the tuning. The chord construct must be in absolute octave mode, see @ref{Absolute octave entry}. The string with the highest number (generally the lowest string) must @@ -574,7 +573,7 @@ mynotes = { \mynotes } \new TabStaff { - \contextStringTuning #'custom-tuning + \set stringTunings = \stringTuning \mynotes } >> @@ -583,21 +582,14 @@ mynotes = { The @code{stringTunings} property is also used by @code{FretBoards} to calculate automatic fret diagrams. -@funindex makeStringTuning -@funindex \makeStringTuning - String tunings are used as part of the hash key for predefined fret diagrams -(see @ref{Predefined fret diagrams}). The @code{\makeStringTuning} -function is used to create a string tuning without setting the -@code{stringTunings} property in the current context. The -arguments to @code{\makeStringTuning} are the symbol to be -used for the new string tuning and a chord construct used -to define the tuning. +(see @ref{Predefined fret diagrams}). + The previous example could also be written as follows: @lilypond[quote,verbatim] -\makeStringTuning #'custom-tuning +"custom-tuning" = \stringTuning mynotes = { c'4 e' g' c'' | @@ -627,36 +619,26 @@ A string pitch in a string tuning list is a LilyPond pitch object. Pitch objects are created with the Scheme function @code{ly:make-pitch} (see @ref{Scheme functions}). -If desired, a string tuning can be created as a Scheme -literal. The example below recreates the examples above, -but the string tuning is not saved as a separate object: - -@lilypond[quote,verbatim] -mynotes = { - c'4 e' g' c'' | - e''4 g'' b'' c''' -} - -<< - \new Staff { - \clef treble - \mynotes - } - \new TabStaff { - \set TabStaff.stringTunings = #`(,(ly:make-pitch 1 5 0) - ,(ly:make-pitch 1 1 0) - ,(ly:make-pitch 0 4 0) - ,(ly:make-pitch 0 0 0)) - \mynotes - } ->> -@end lilypond +@code{\stringTuning} creates such an object from chord input. LilyPond automatically calculates the number of lines in the @code{TabStaff} and the number of strings in an automatically calculated @code{FretBoard} as the number of elements in @code{stringTunings}. +To let all TabStaff contexts use the same custom tuning by default, +you can use + +@example +\layout @{ + \context @{ + \TabStaff + stringTunings = \stringTuning \notemode @{ @} + @} +@} +@end example + + @cindex moderntab clef @cindex clef, moderntab @cindex clef, tab diff --git a/Documentation/notation/input.itely b/Documentation/notation/input.itely index 4c0bc09a8a..a162c0ecce 100644 --- a/Documentation/notation/input.itely +++ b/Documentation/notation/input.itely @@ -8,7 +8,7 @@ Guide, node Updating translation committishes.. @end ignore -@c \version "2.14.0" +@c \version "2.15.17" @node General input and output @chapter General input and output @@ -1066,13 +1066,13 @@ ie. a two digit number. @node Table of contents @subsection Table of contents -A table of contents is included using the @code{\markuplines \table-of-contents} +A table of contents is included using the @code{\markuplist \table-of-contents} command. The elements which should appear in the table of contents are entered with the @code{\tocItem} command, which may be used either at top-level, or inside a music expression. @verbatim -\markuplines \table-of-contents +\markuplist \table-of-contents \pageBreak \tocItem \markup "First score" @@ -1155,7 +1155,7 @@ tocAct = (add-toc-item! 'tocActMarkup text)) \book { - \markuplines \table-of-contents + \markuplist \table-of-contents \tocAct \markup { Atto Primo } \tocItem \markup { Coro. Viva il nostro Alcide } \tocItem \markup { Cesare. Presti omai l'Egizzia terra } @@ -1175,7 +1175,7 @@ Dots can be added to fill the line between an item and its page number: } \book { - \markuplines \table-of-contents + \markuplist \table-of-contents \tocItem \markup { Allegro } \tocItem \markup { Largo } \markup \null @@ -1964,10 +1964,9 @@ Standard MIDI oputput is somewhat crude; optionally, an enhanced and more realistic MIDI output is available by means of @ref{The Articulate script}. -@c TODO Check this -The midi output allocates a channel for each staff, and one for global -settings. Therefore the midi file should not have more than 15 staves -(or 14 if you do not use drums). Other staves will remain silent. +The MIDI output allocates a channel for each staff, and reserves channel +10 for drums. There are only 16 MIDI channels per device, so if the +score contains more than 15 staves, MIDI channels will be reused. @menu * Creating MIDI files:: @@ -2630,8 +2629,9 @@ display musical information as text. @funindex \displayLilyMusic Displaying a music expression in LilyPond notation can be -done with the music function @code{\displayLilyMusic} but only when -using the command line. For example, +done with the music function @code{\displayLilyMusic}. To see the +output, you will typically want to call LilyPond using the command +line. For example, @example @{ @@ -2654,6 +2654,21 @@ redirect the output to a file. lilypond file.ly >display.txt @end example +@funindex \void +Note that Lilypond does not just display the music expression, but +also interprets it (since @code{\displayLilyMusic} returns it in +addition to displaying it). This is convenient since you can just +insert @code{\displayLilyMusic} into existing music in order to get +information about it. If you don't actually want Lilypond to +interpret the displayed music as well as display it, use @code{\void} +in order to have it ignored: + +@example +@{ + \void \displayLilyMusic \transpose c a, @{ c4 e g a bes @} +@} +@end example + @node Displaying scheme music expressions @subsection Displaying scheme music expressions diff --git a/Documentation/notation/notation-appendices.itely b/Documentation/notation/notation-appendices.itely index 81b43d9390..c2927539ab 100644 --- a/Documentation/notation/notation-appendices.itely +++ b/Documentation/notation/notation-appendices.itely @@ -8,7 +8,7 @@ Guide, node Updating translation committishes.. @end ignore -@c \version "2.14.0" +@c \version "2.15.17" @node Notation manual tables @appendix Notation manual tables @@ -644,8 +644,8 @@ see @ref{Formatting text}. @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #clefs +\markuplist \override-lines #'(word-space . 4) + \doc-chars #clefs @end lilypond @@ -654,8 +654,8 @@ see @ref{Formatting text}. @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #timesig +\markuplist \override-lines #'(word-space . 4) + \doc-chars #timesig @end lilypond @@ -664,8 +664,8 @@ see @ref{Formatting text}. @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #numbers +\markuplist \override-lines #'(word-space . 4) + \doc-chars #numbers @end lilypond @@ -674,8 +674,8 @@ see @ref{Formatting text}. @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #accidentals +\markuplist \override-lines #'(word-space . 4) + \doc-chars #accidentals @end lilypond @@ -684,8 +684,8 @@ see @ref{Formatting text}. @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #default-noteheads +\markuplist \override-lines #'(word-space . 4) + \doc-chars #default-noteheads @end lilypond @@ -694,8 +694,8 @@ see @ref{Formatting text}. @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #special-noteheads +\markuplist \override-lines #'(word-space . 4) + \doc-chars #special-noteheads @end lilypond @@ -704,8 +704,8 @@ see @ref{Formatting text}. @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #shape-note-noteheads +\markuplist \override-lines #'(word-space . 4) + \doc-chars #shape-note-noteheads @end lilypond @@ -714,8 +714,8 @@ see @ref{Formatting text}. @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #rests +\markuplist \override-lines #'(word-space . 4) + \doc-chars #rests @end lilypond @@ -724,8 +724,8 @@ see @ref{Formatting text}. @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #flags +\markuplist \override-lines #'(word-space . 4) + \doc-chars #flags @end lilypond @@ -734,8 +734,8 @@ see @ref{Formatting text}. @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #dots +\markuplist \override-lines #'(word-space . 4) + \doc-chars #dots @end lilypond @@ -744,8 +744,8 @@ see @ref{Formatting text}. @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #dynamics +\markuplist \override-lines #'(word-space . 4) + \doc-chars #dynamics @end lilypond @@ -754,8 +754,8 @@ see @ref{Formatting text}. @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #scripts +\markuplist \override-lines #'(word-space . 4) + \doc-chars #scripts @end lilypond @@ -764,8 +764,8 @@ see @ref{Formatting text}. @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #arrowheads +\markuplist \override-lines #'(word-space . 4) + \doc-chars #arrowheads @end lilypond @@ -774,8 +774,8 @@ see @ref{Formatting text}. @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #brackettips +\markuplist \override-lines #'(word-space . 4) + \doc-chars #brackettips @end lilypond @@ -784,8 +784,8 @@ see @ref{Formatting text}. @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #pedal +\markuplist \override-lines #'(word-space . 4) + \doc-chars #pedal @end lilypond @@ -794,8 +794,8 @@ see @ref{Formatting text}. @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #accordion +\markuplist \override-lines #'(word-space . 4) + \doc-chars #accordion @end lilypond @@ -804,8 +804,8 @@ see @ref{Formatting text}. @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #ties +\markuplist \override-lines #'(word-space . 4) + \doc-chars #ties @end lilypond @@ -814,8 +814,8 @@ see @ref{Formatting text}. @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #vaticana +\markuplist \override-lines #'(word-space . 4) + \doc-chars #vaticana @end lilypond @@ -824,8 +824,8 @@ see @ref{Formatting text}. @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #medicaea +\markuplist \override-lines #'(word-space . 4) + \doc-chars #medicaea @end lilypond @@ -834,8 +834,8 @@ see @ref{Formatting text}. @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #hufnagel +\markuplist \override-lines #'(word-space . 4) + \doc-chars #hufnagel @end lilypond @@ -844,8 +844,8 @@ see @ref{Formatting text}. @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #mensural +\markuplist \override-lines #'(word-space . 4) + \doc-chars #mensural @end lilypond @@ -854,8 +854,8 @@ see @ref{Formatting text}. @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #neomensural +\markuplist \override-lines #'(word-space . 4) + \doc-chars #neomensural @end lilypond @@ -864,8 +864,8 @@ see @ref{Formatting text}. @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #petrucci +\markuplist \override-lines #'(word-space . 4) + \doc-chars #petrucci @end lilypond @@ -874,8 +874,8 @@ see @ref{Formatting text}. @lilypond[quote] \include "font-table.ly" -\markuplines \override-lines #'(word-space . 4) - \doc-chars #solesmes +\markuplist \override-lines #'(word-space . 4) + \doc-chars #solesmes @end lilypond @@ -897,7 +897,7 @@ The following styles may be used for note heads. @node Text markup list commands @appendixsec Text markup list commands -The following commands can all be used with @code{\markuplines}: +The following commands can all be used with @code{\markuplist}: @include markup-list-commands.tely diff --git a/Documentation/notation/text.itely b/Documentation/notation/text.itely index d56fa1348f..a770eb1d9c 100644 --- a/Documentation/notation/text.itely +++ b/Documentation/notation/text.itely @@ -7,7 +7,7 @@ Guide, node Updating translation committishes.. @end ignore -@c \version "2.14.0" +@c \version "2.15.17" @node Text @section Text @@ -348,12 +348,12 @@ requires, are described in @ref{Multi-page markup}. @funindex \markup @funindex markup -@funindex \markuplines -@funindex markuplines +@funindex \markuplist +@funindex markuplist @predefined @code{\markup}, -@code{\markuplines}. +@code{\markuplist}. @endpredefined @@ -1277,8 +1277,8 @@ Installed Files: @cindex markup text, multi-page @cindex text spread over multiple pages -@funindex \markuplines -@funindex markuplines +@funindex \markuplist +@funindex markuplist @funindex \justified-lines @funindex justified-lines @funindex \wordwrap-lines @@ -1289,7 +1289,7 @@ makes it possible to enter lines of text that can spread over multiple pages: @lilypond[quote,verbatim] -\markuplines { +\markuplist { \justified-lines { A very long text of justified lines. ... @@ -1333,11 +1333,11 @@ Installed Files: @file{scm/define-markup-commands.scm}. -@funindex \markuplines -@funindex markuplines +@funindex \markuplist +@funindex markuplist @predefined -@code{\markuplines}. +@code{\markuplist}. @endpredefined diff --git a/Documentation/pictures/bwv861mm33-34-annotate.svg b/Documentation/pictures/bwv861mm33-34-annotate.svg index e0b80cc584..d321ba4407 100644 --- a/Documentation/pictures/bwv861mm33-34-annotate.svg +++ b/Documentation/pictures/bwv861mm33-34-annotate.svg @@ -741,4 +741,4 @@ sodipodi:rx="7.8389831" sodipodi:ry="8.8188562" d="m 103.86653,28.416313 a 7.8389831,8.8188562 0 1 1 -15.677971,0 7.8389831,8.8188562 0 1 1 15.677971,0 z" - transform="matrix(0.8,0,0,-0.8,1.9597458,92.108051)" /> \ No newline at end of file + transform="matrix(0.8,0,0,-0.8,1.9597458,92.108051)" /> diff --git a/Documentation/snippets/changing-fret-orientations.ly b/Documentation/snippets/changing-fret-orientations.ly index 412b8b97eb..f2b0848295 100644 --- a/Documentation/snippets/changing-fret-orientations.ly +++ b/Documentation/snippets/changing-fret-orientations.ly @@ -26,6 +26,9 @@ Ils s'aligneront par défaut sur la corde du haut ou le sommet du fret. + + + %% Translation of GIT committish: 2d548a99cb9dba80f2ff035582009477cd37eceb texidoces = " diff --git a/Documentation/snippets/customizing-fretboard-fret-diagrams.ly b/Documentation/snippets/customizing-fretboard-fret-diagrams.ly index 29ca8275c8..c5512b86ad 100644 --- a/Documentation/snippets/customizing-fretboard-fret-diagrams.ly +++ b/Documentation/snippets/customizing-fretboard-fret-diagrams.ly @@ -27,6 +27,9 @@ l'instancier de manière explicite pour adapter ses propriétés. + + + %% Translation of GIT committish: 2d548a99cb9dba80f2ff035582009477cd37eceb texidoces = " Se pueden establecer las propiedades de los diagramas de diff --git a/Documentation/snippets/defining-predefined-fretboards-for-other-instruments.ly b/Documentation/snippets/defining-predefined-fretboards-for-other-instruments.ly index 80b9459020..a3f147e4a8 100644 --- a/Documentation/snippets/defining-predefined-fretboards-for-other-instruments.ly +++ b/Documentation/snippets/defining-predefined-fretboards-for-other-instruments.ly @@ -67,63 +67,6 @@ contiennent des informations sur les cordes. Ceci est amené à évoluer. lsrtags = "fretted-strings" -%% Translation of GIT committish: cde045f4e833aa491fb63f2222e14bef49507577 - texidoces = " - -Se pueden añadir diagramas de posiciones predefinidas para -instrumentos nuevos además de los estándar que se usan para la -guitarra. Este archivo muestra cómo se hace, definiendo una afinación -nueva y unas cuantas posiciones para el cuatro venezolano. - -Este archivo también muestra cómo se pueden incluir las digitaciones -en los acordes que se usan como puntos de referencia para la búsqueda -de acordes en la tabla, y mostrarse en el diagrama de posiciones y la -tablatura @code{TabStaff}, pero no en la música. - -Estas posiciones no se pueden transportar porque contienen información -de las cuerdas. Hay planes para corregir esto en un futuro. - -" - doctitlees = "Definición de posiciones predefinidas para otros instrumentos" - - -%% Translation of GIT committish: f23429bc5cfa9d141ef7b4509afc46c140308a1e - texidocde = " -Vordefinierte Bunddiagramme können für neue Instrumente hinzugefügt werden -neben denen, die schon für die Gitarre definiert sind. Dieses Schnipsel -zeigt, wie man eine neue Saitenstimmung definiert und dann eigene vordefinierte -Bunddiagramme bestimmt. Das Beispiel ist für das venezualische Cuatro. - -Dieses Schnipsel zeigt auch, wie Fingersatz in die Akkorde eingebunden -werden kann, um als Referenzpunkt für die Akkordauswahl benutzt werden -kann. Dieser Fingersatz wird im Bunddiagramm und in der Tabulatur, -aber nicht in den Noten angezeigt. - -Diese Bunddiagramme sind nicht transponierbar, weil sie Saiteninformationen -enthalten. Das soll in der Zukunft verbessert werden. - -" - doctitlede = "Eigene vordefinierte Bunddiagramme für andere Instrumente erstellen" - -%% Translation of GIT committish: 4ab2514496ac3d88a9f3121a76f890c97cedcf4e - - texidocfr = " -La liste des diagrammes standards prédéfinis pour la guitare peut être -augmentée d'autres définitions spécifiques à d'autres instruments. -Voici comment définir un nouvel accordage ainsi que quelques diagrammes -prédéfinis pour le @qq{cuatro vénézuélien}. - -Cet exemple illustre aussi la manière d'ajouter des doigtés aux -accords ; ils serviront de référence pour la boucle d'accord et seront -indiqués dans les diagrammes et le @code{TabStaff}, mais pas dans la musique. - -Ces diagrammes ne peuvent pas être transposés, dans la mesure où ils -contiennent des informations sur les cordes. Ceci est amené à évoluer. - -" - doctitlefr = "Création de diagrammes de fret prédéfinis pour d'autres instruments" - - texidoc = " Predefined fret diagrams can be added for new instruments in addition to the standards used for guitar. This file shows how this is done by diff --git a/Documentation/snippets/guitar-slides.ly b/Documentation/snippets/guitar-slides.ly index 8babc678bd..e115053e0d 100644 --- a/Documentation/snippets/guitar-slides.ly +++ b/Documentation/snippets/guitar-slides.ly @@ -4,7 +4,7 @@ % and then run scripts/auxiliar/makelsr.py % % This file is in the public domain. -%% Note: this file works from version 2.14.0 +%% Note: this file works from version 2.15.10 \version "2.15.10" \header { @@ -38,7 +38,7 @@ in the following example. hideFretNumber = { \once \override TabNoteHead #'transparent = ##t \once \override NoteHead #'transparent = ##t - \once \override Stem #'transparent = ##t \once \override Flag #'transparent = ##t + \once \override Stem #'transparent = ##t \once \override Flag #'transparent = ##t \once \override NoteHead #'no-ledgers = ##t \once \override Glissando #'(bound-details left padding) = #0.3 diff --git a/Documentation/snippets/markup-lines.ly b/Documentation/snippets/markup-lines.ly index fea2fb1ea7..106ad4f36e 100644 --- a/Documentation/snippets/markup-lines.ly +++ b/Documentation/snippets/markup-lines.ly @@ -4,14 +4,14 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.14.0" +\version "2.15.17" \header { lsrtags = "text" texidoc = " Text that can spread over pages is entered with the -@code{\\markuplines} command. +@code{\\markuplist} command. " doctitle = "Markup lines" @@ -24,7 +24,7 @@ Text that can spread over pages is entered with the (make-justified-lines-markup-list (cons (make-hspace-markup 2) args)))) % Candide, Voltaire -\markuplines { +\markuplist { \override-lines #'(baseline-skip . 2.5) { \paragraph { Il y avait en Westphalie, dans le château de M. le baron de diff --git a/Documentation/snippets/new/guitar-slides.ly b/Documentation/snippets/new/guitar-slides.ly index cf1ad8f2cd..8a5437eb61 100644 --- a/Documentation/snippets/new/guitar-slides.ly +++ b/Documentation/snippets/new/guitar-slides.ly @@ -19,7 +19,6 @@ hideFretNumber = { \once \override NoteHead #'transparent = ##t \once \override Stem #'transparent = ##t \once \override Flag #'transparent = ##t - \once \override Flag #'transparent = ##t \once \override NoteHead #'no-ledgers = ##t \once \override Glissando #'(bound-details left padding) = #0.3 } diff --git a/Documentation/snippets/table-of-contents.ly b/Documentation/snippets/table-of-contents.ly index 60292e665a..42fe2cb4d2 100644 --- a/Documentation/snippets/table-of-contents.ly +++ b/Documentation/snippets/table-of-contents.ly @@ -4,13 +4,13 @@ %% and then run scripts/auxiliar/makelsr.py %% %% This file is in the public domain. -\version "2.14.0" +\version "2.15.17" \header { lsrtags = "paper-and-layout" texidoc = " -A table of contents is included using @code{\\markuplines +A table of contents is included using @code{\\markuplist \\table-of-contents}. The TOC items are added with the @code{\\tocItem} command. @@ -21,7 +21,7 @@ A table of contents is included using @code{\\markuplines #(set-default-paper-size "a6") \book { - \markuplines \table-of-contents + \markuplist \table-of-contents \pageBreak \tocItem \markup { The first score } \score { diff --git a/Documentation/web/news-front.itexi b/Documentation/web/news-front.itexi index 443ef459bd..40e7b715b2 100644 --- a/Documentation/web/news-front.itexi +++ b/Documentation/web/news-front.itexi @@ -8,6 +8,20 @@ @c used for news about the upcoming release; see CG 10.2 +@newsItem +@subsubheading LilyPond 2.15.16 released! @emph{October 28, 2011} + +We are happy to announce the release of LilyPond 2.15.16. This +release contains the usual number of bugfixes. + +It is strongly recommended that normal users do @strong{not} use +this release, and instead use the stable 2.14 version. Please +note that due to a few Critical bugs, this is not the next release +candidate. + +@newsEnd + + @newsItem @subsubheading LilyPond 2.15.15 released! @emph{October 24, 2011} diff --git a/VERSION b/VERSION index 8c7c0d0a7b..ba27691107 100644 --- a/VERSION +++ b/VERSION @@ -1,7 +1,7 @@ PACKAGE_NAME=LilyPond MAJOR_VERSION=2 MINOR_VERSION=15 -PATCH_LEVEL=16 +PATCH_LEVEL=17 MY_PATCH_LEVEL= VERSION_STABLE=2.14.2 -VERSION_DEVEL=2.15.15 +VERSION_DEVEL=2.15.16 diff --git a/flower/include/std-vector.hh b/flower/include/std-vector.hh index 1d0cbbac3a..48b34f12ed 100644 --- a/flower/include/std-vector.hh +++ b/flower/include/std-vector.hh @@ -89,6 +89,10 @@ public: { } + vector (size_t n) : __flower_vector (n) + { + } + vector (vector const &v) : __flower_vector (v) { } diff --git a/input/regression/ambitus-slur.ly b/input/regression/ambitus-slur.ly index 0cc3084db6..6250f699e5 100644 --- a/input/regression/ambitus-slur.ly +++ b/input/regression/ambitus-slur.ly @@ -9,4 +9,4 @@ slur engravers. \new Voice \with { \consists Ambitus_engraver } { c'4( es') } -} \ No newline at end of file +} diff --git a/input/regression/automatic-polyphony-drumstaff.ly b/input/regression/automatic-polyphony-drumstaff.ly index 0f53dfe71c..8eaa94662f 100644 --- a/input/regression/automatic-polyphony-drumstaff.ly +++ b/input/regression/automatic-polyphony-drumstaff.ly @@ -12,4 +12,4 @@ bd4 sn4 bd4 sn4 } } -} \ No newline at end of file +} diff --git a/input/regression/automatic-polyphony-tabstaff.ly b/input/regression/automatic-polyphony-tabstaff.ly index bed980d736..02ab57e30a 100644 --- a/input/regression/automatic-polyphony-tabstaff.ly +++ b/input/regression/automatic-polyphony-tabstaff.ly @@ -15,4 +15,4 @@ test = { \new Staff { \clef "treble_8" \test } \new TabStaff { \test } >> -} \ No newline at end of file +} diff --git a/input/regression/beam-collision-accidentals.ly b/input/regression/beam-collision-accidentals.ly index df37e003c0..d5b70b70ad 100644 --- a/input/regression/beam-collision-accidentals.ly +++ b/input/regression/beam-collision-accidentals.ly @@ -9,4 +9,4 @@ \unset suggestAccidentals c'8 [ des'' ] r2 -} \ No newline at end of file +} diff --git a/input/regression/beam-collision-grace.ly b/input/regression/beam-collision-grace.ly index d922949f8c..fffca6fdf7 100644 --- a/input/regression/beam-collision-grace.ly +++ b/input/regression/beam-collision-grace.ly @@ -13,4 +13,4 @@ grace notes too. \relative c'{ d16 e f \grace d'8 g,16 -} \ No newline at end of file +} diff --git a/input/regression/beam-multiplicity-over-rests.ly b/input/regression/beam-multiplicity-over-rests.ly index 56b703c297..5578931633 100644 --- a/input/regression/beam-multiplicity-over-rests.ly +++ b/input/regression/beam-multiplicity-over-rests.ly @@ -12,4 +12,4 @@ beamlets pointing towards the rest unless absolutely necessary." c32[ c32 r16 c8] c16[ r32 c32 r16 c16] c16[ r16 c32 r32 c16] -} \ No newline at end of file +} diff --git a/input/regression/bookparts.ly b/input/regression/bookparts.ly index 75ab8a54b5..528f547085 100644 --- a/input/regression/bookparts.ly +++ b/input/regression/bookparts.ly @@ -1,4 +1,4 @@ -\version "2.14.0" +\version "2.15.17" \header { texidoc = "A book can be split into several parts with different paper settings, @@ -35,5 +35,5 @@ Page labels are also collected into the top-level paper." \tocItem \markup "Third part" \markup { Third part } - \markuplines \table-of-contents + \markuplist \table-of-contents } diff --git a/input/regression/break-alignment-anchor-alignment.ly b/input/regression/break-alignment-anchor-alignment.ly index d5dad0f0d0..8b6811f9fa 100644 --- a/input/regression/break-alignment-anchor-alignment.ly +++ b/input/regression/break-alignment-anchor-alignment.ly @@ -17,4 +17,4 @@ the anchor to the extent of the break-aligned grob." \once \override Staff.KeySignature #'break-align-anchor-alignment = #RIGHT \mark \default ces1 -} \ No newline at end of file +} diff --git a/input/regression/break-alignment-anchors.ly b/input/regression/break-alignment-anchors.ly index 3810a85f95..c2e7729cb0 100644 --- a/input/regression/break-alignment-anchors.ly +++ b/input/regression/break-alignment-anchors.ly @@ -16,4 +16,4 @@ the horizontal offset at which other grobs should attach." \mark \default \noBreak c'1 -} \ No newline at end of file +} diff --git a/input/regression/chord-repetition-relative.ly b/input/regression/chord-repetition-relative.ly index 65e75c5e60..a946155d6b 100644 --- a/input/regression/chord-repetition-relative.ly +++ b/input/regression/chord-repetition-relative.ly @@ -10,4 +10,4 @@ the same octaves as the original one. { 4^"absolute" q q q \relative c' { 4^"relative" q q q } -} \ No newline at end of file +} diff --git a/input/regression/context-string-tuning.ly b/input/regression/context-string-tuning.ly index 2281bb9a82..6651e21527 100644 --- a/input/regression/context-string-tuning.ly +++ b/input/regression/context-string-tuning.ly @@ -1,4 +1,4 @@ -\version "2.14.0" +\version "2.15.16" \header { texidoc=" @@ -17,7 +17,8 @@ mynotes = { \mynotes } \new TabStaff { - \contextStringTuning #'custom-tuning + #(define custom-tuning #{ \stringTuning #}) + \set stringTunings = #custom-tuning \mynotes } >> diff --git a/input/regression/figured-bass-continuation-end-position.ly b/input/regression/figured-bass-continuation-end-position.ly index 4901303df5..81cd81daf4 100644 --- a/input/regression/figured-bass-continuation-end-position.ly +++ b/input/regression/figured-bass-continuation-end-position.ly @@ -15,4 +15,4 @@ alteration or two-digit figures) should still stop at the same position." <12 5>4. <12 5>4. r4 -} \ No newline at end of file +} diff --git a/input/regression/fingering-cross-staff.ly b/input/regression/fingering-cross-staff.ly index 9d38a417c6..bad3a25eb9 100644 --- a/input/regression/fingering-cross-staff.ly +++ b/input/regression/fingering-cross-staff.ly @@ -22,4 +22,4 @@ music = \relative c { \override Fingering #'direction = #down \transpose c c, \music } >> -} \ No newline at end of file +} diff --git a/input/regression/grid-lines.ly b/input/regression/grid-lines.ly index 5371092c2b..a3d4a813fb 100644 --- a/input/regression/grid-lines.ly +++ b/input/regression/grid-lines.ly @@ -75,7 +75,6 @@ skips = \override NoteHead #'no-ledgers = ##t \override Stem #'transparent = ##t \override Flag #'transparent = ##t - \override Flag #'transparent = ##t \override Beam #'transparent = ##t << \skips diff --git a/input/regression/instrument-name-pedal-lyrics.ly b/input/regression/instrument-name-pedal-lyrics.ly index 2dc1da8274..a006f4de14 100644 --- a/input/regression/instrument-name-pedal-lyrics.ly +++ b/input/regression/instrument-name-pedal-lyrics.ly @@ -37,4 +37,4 @@ lower = \relative c { \new Staff = "Staff_pfLower" << \lower >> >> >> -} \ No newline at end of file +} diff --git a/input/regression/lilypond-book/suffix-lyxml.lyxml b/input/regression/lilypond-book/suffix-lyxml.lyxml index 0e8c8ae9a4..c6fcc604ab 100644 --- a/input/regression/lilypond-book/suffix-lyxml.lyxml +++ b/input/regression/lilypond-book/suffix-lyxml.lyxml @@ -11,4 +11,4 @@ - \ No newline at end of file + diff --git a/input/regression/lilypond-book/tex-auto-linebreak.lytex b/input/regression/lilypond-book/tex-auto-linebreak.lytex index a76e9e17c8..1c3af72abc 100644 --- a/input/regression/lilypond-book/tex-auto-linebreak.lytex +++ b/input/regression/lilypond-book/tex-auto-linebreak.lytex @@ -19,4 +19,4 @@ snippets will be properly line-broken. For example, \end{lilypond} -\end{document} \ No newline at end of file +\end{document} diff --git a/input/regression/markup-lines-identifier.ly b/input/regression/markup-lines-identifier.ly index 579a735d9f..5f9ccca581 100644 --- a/input/regression/markup-lines-identifier.ly +++ b/input/regression/markup-lines-identifier.ly @@ -1,19 +1,19 @@ -\version "2.14.0" +\version "2.15.17" \header { texidoc = "Text that can spread over pages is entered with the -@code{\\markuplines} command. It can be assigned to a variable and inserted -at top-level with or without preceding it by @code{\\markuplines}." +@code{\\markuplist} command. It can be assigned to a variable and inserted +at top-level with or without preceding it by @code{\\markuplist}." } #(set-default-paper-size "a6") -mytext = \markuplines { +mytext = \markuplist { \justified-lines { Lorem ipsum dolor sit amet, consectetur adipisici elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua. ... } } -\markuplines \mytext +\markuplist \mytext \mytext diff --git a/input/regression/markup-lines.ly b/input/regression/markup-lines.ly index c0f61f2348..038b6830ef 100644 --- a/input/regression/markup-lines.ly +++ b/input/regression/markup-lines.ly @@ -1,10 +1,10 @@ -\version "2.14.0" +\version "2.15.17" \header { tagline = ##f texidoc = "Text that can spread over pages is entered with the -@code{\\markuplines} command. Widowed and orphaned lines are avoided -at the begininng and end of a @code{\\markuplines} containing more +@code{\\markuplist} command. Widowed and orphaned lines are avoided +at the begininng and end of a @code{\\markuplist} containing more than one line." } @@ -14,9 +14,9 @@ than one line." (interpret-markup-list layout props (make-justified-lines-markup-list (cons (make-hspace-markup 2) args)))) \book { - \markuplines {} % Empty list is handled gracefully + \markuplist {} % Empty list is handled gracefully %% Candide, Voltaire - \markuplines \override-lines #'(baseline-skip . 3.0) { + \markuplist \override-lines #'(baseline-skip . 3.0) { \paragraph { % The final two lines are placed on page 2. Il y avait en Westphalie, dans le château de M. le baron de Thunder-ten-tronckh, un jeune garçon à qui la nature avait donné @@ -31,7 +31,7 @@ than one line." perdu par l'injure du temps. (not orphaned) } } - \markuplines \override-lines #'(baseline-skip . 3.9) { + \markuplist \override-lines #'(baseline-skip . 3.9) { \paragraph { Monsieur le baron était un des plus puissants seigneurs de la Westphalie, car son château avait une porte et des fenêtres. Sa @@ -42,7 +42,7 @@ than one line." riaient quand il faisait des contes. } } - \markuplines { + \markuplist { \paragraph { % A single-line paragraph may be orphaned Madame la ... (may be orphaned) } diff --git a/input/regression/modern-tab-clef-scaled.ly b/input/regression/modern-tab-clef-scaled.ly index d1ad29e231..ecdde2301f 100644 --- a/input/regression/modern-tab-clef-scaled.ly +++ b/input/regression/modern-tab-clef-scaled.ly @@ -36,4 +36,4 @@ guitar = \relative c { \guitar } >> -} \ No newline at end of file +} diff --git a/input/regression/modern-tab-clef.ly b/input/regression/modern-tab-clef.ly index b9fc3f945e..6a368d02a1 100644 --- a/input/regression/modern-tab-clef.ly +++ b/input/regression/modern-tab-clef.ly @@ -41,4 +41,4 @@ guitar = \relative c { \guitar } >> -} \ No newline at end of file +} diff --git a/input/regression/musicxml/00-Introduction.itexi b/input/regression/musicxml/00-Introduction.itexi index f3eab7559b..a929697d19 100644 --- a/input/regression/musicxml/00-Introduction.itexi +++ b/input/regression/musicxml/00-Introduction.itexi @@ -107,4 +107,4 @@ MIDI generation don'thave any test cases yet. * 75 ... Other instrumental notation * 90 ... Compressed MusicXML files * 99 ... Compatibility with broken MusicXML -@end menu \ No newline at end of file +@end menu diff --git a/input/regression/no-header.ly b/input/regression/no-header.ly index c5f2d4b3a5..352b84480d 100644 --- a/input/regression/no-header.ly +++ b/input/regression/no-header.ly @@ -1,6 +1,6 @@ -\version "2.14.0" +\version "2.15.17" -\markuplines \wordwrap-lines { +\markuplist \wordwrap-lines { This regtest does not contain any header and paper blocks. Its purpose is to test whether anything breaks if these blocks are absent. } diff --git a/input/regression/page-breaking-max-systems-per-page.ly b/input/regression/page-breaking-max-systems-per-page.ly index 79796338ba..596611d313 100644 --- a/input/regression/page-breaking-max-systems-per-page.ly +++ b/input/regression/page-breaking-max-systems-per-page.ly @@ -16,4 +16,4 @@ max-systems-per-page in unusual situations." } { c'1 \break c'1 \break \noPageBreak c'1 \break c'1 } -} \ No newline at end of file +} diff --git a/input/regression/page-breaking-min-systems-per-page1.ly b/input/regression/page-breaking-min-systems-per-page1.ly index fe4dd32eef..7268c0bac8 100644 --- a/input/regression/page-breaking-min-systems-per-page1.ly +++ b/input/regression/page-breaking-min-systems-per-page1.ly @@ -14,4 +14,4 @@ a minimum number of systems. Titles do not count as systems here." } { \repeat unfold 11 { c'1 } \pageBreak \repeat unfold 6 { c'1 } } -} \ No newline at end of file +} diff --git a/input/regression/page-breaking-page-count1.ly b/input/regression/page-breaking-page-count1.ly index 414af383a4..3780d0765e 100644 --- a/input/regression/page-breaking-page-count1.ly +++ b/input/regression/page-breaking-page-count1.ly @@ -10,4 +10,4 @@ \book { \paper { page-count = 2} \score { {c'1 c'1} } -} \ No newline at end of file +} diff --git a/input/regression/page-breaking-page-count2.ly b/input/regression/page-breaking-page-count2.ly index 8ecbb0c8df..9892c1a25a 100644 --- a/input/regression/page-breaking-page-count2.ly +++ b/input/regression/page-breaking-page-count2.ly @@ -11,4 +11,4 @@ few systems for the number of pages, we append blank pages." \book { \paper { page-count = 3} \score { {c'1 c'1} } -} \ No newline at end of file +} diff --git a/input/regression/page-breaking-page-count3.ly b/input/regression/page-breaking-page-count3.ly index 09f3c7ae73..abadd1a62b 100644 --- a/input/regression/page-breaking-page-count3.ly +++ b/input/regression/page-breaking-page-count3.ly @@ -11,4 +11,4 @@ too many systems for that number of pages, we will squeeze them in." \book { \paper { page-count = 1} \score { { \repeat unfold 10 {c'1 \break} } } -} \ No newline at end of file +} diff --git a/input/regression/page-breaking-rehearsal-mark.ly b/input/regression/page-breaking-rehearsal-mark.ly index b07a003358..1e658cfec8 100644 --- a/input/regression/page-breaking-rehearsal-mark.ly +++ b/input/regression/page-breaking-rehearsal-mark.ly @@ -10,4 +10,4 @@ breaking." \book { \repeat unfold 2 { \mark \markup \column {A B C D E F G H I J K L M N O P Q R S T U V W X Y Z} c1 \break } -} \ No newline at end of file +} diff --git a/input/regression/page-breaking-systems-per-page.ly b/input/regression/page-breaking-systems-per-page.ly index a534ff91ac..1607d51edc 100644 --- a/input/regression/page-breaking-systems-per-page.ly +++ b/input/regression/page-breaking-systems-per-page.ly @@ -14,4 +14,4 @@ per page. Titles are not counted as systems." } { \repeat unfold 3 { c'1 } \pageBreak \repeat unfold 3 { c'1 } } -} \ No newline at end of file +} diff --git a/input/regression/page-label-loose-column.ly b/input/regression/page-label-loose-column.ly index 4ecc672fe3..6e0dadd0e5 100644 --- a/input/regression/page-label-loose-column.ly +++ b/input/regression/page-label-loose-column.ly @@ -1,4 +1,4 @@ -\version "2.14.0" +\version "2.15.17" \header { texidoc = "Page labels on loose columns are not ignored: this includes both mid-line @@ -9,7 +9,7 @@ break-aligned grobs)." #(set-default-paper-size "a6") \book { - \markuplines \table-of-contents + \markuplist \table-of-contents \relative c' { c2 \tocItem "Mid-line" c^"mid" diff --git a/input/regression/page-label.ly b/input/regression/page-label.ly index c7893c8e31..143d685a78 100644 --- a/input/regression/page-label.ly +++ b/input/regression/page-label.ly @@ -43,4 +43,4 @@ and refered to in markups." } \header { piece = "First score" } } -} \ No newline at end of file +} diff --git a/input/regression/page-links-nolabel.ly b/input/regression/page-links-nolabel.ly index 6ebdf57063..ea57303433 100644 --- a/input/regression/page-links-nolabel.ly +++ b/input/regression/page-links-nolabel.ly @@ -8,4 +8,4 @@ \book { \markup { \with-link #'dummy \concat { "Link to non-existing label" } } -} \ No newline at end of file +} diff --git a/input/regression/page-links.ly b/input/regression/page-links.ly index f9be4dd3e2..db9c2b9ef8 100644 --- a/input/regression/page-links.ly +++ b/input/regression/page-links.ly @@ -28,4 +28,4 @@ d' d' } } -} \ No newline at end of file +} diff --git a/input/regression/page-minimal-page-breaking-last-page.ly b/input/regression/page-minimal-page-breaking-last-page.ly index 3a4ddf9891..5fac3162a2 100644 --- a/input/regression/page-minimal-page-breaking-last-page.ly +++ b/input/regression/page-minimal-page-breaking-last-page.ly @@ -20,4 +20,4 @@ textBox = \markup \fill-line { \override #'(box-padding . 13) \box Text } \markup \textBox \markup \textBox \markup \textBox -} \ No newline at end of file +} diff --git a/input/regression/page-minimal-page-breaking.ly b/input/regression/page-minimal-page-breaking.ly index 540894ea82..b3102fc907 100644 --- a/input/regression/page-minimal-page-breaking.ly +++ b/input/regression/page-minimal-page-breaking.ly @@ -32,4 +32,4 @@ only accounting for manual page break commands." \new Staff \repeat unfold 12 { g'4 } >> } -} \ No newline at end of file +} diff --git a/input/regression/page-spacing-bottom-spring.ly b/input/regression/page-spacing-bottom-spring.ly index dc29d10c4e..560cfcdd19 100644 --- a/input/regression/page-spacing-bottom-spring.ly +++ b/input/regression/page-spacing-bottom-spring.ly @@ -17,4 +17,4 @@ page. However, it is sufficiently stiff to cause stretching." \new Staff c'1 \new Staff c'1 >> -} \ No newline at end of file +} diff --git a/input/regression/page-spacing-markups.ly b/input/regression/page-spacing-markups.ly index 55acfaeef6..d11613b945 100644 --- a/input/regression/page-spacing-markups.ly +++ b/input/regression/page-spacing-markups.ly @@ -1,4 +1,4 @@ -\version "2.14.0" +\version "2.15.17" \header { texidoc = "Adjacent lines of markup are placed as closely @@ -10,7 +10,7 @@ together as possible." \paper { ragged-last-bottom = ##f } - \markuplines { + \markuplist { \column { A B } C D E } } diff --git a/input/regression/page-spacing-staff-group.ly b/input/regression/page-spacing-staff-group.ly index ba2552ecb3..8a0366f78c 100644 --- a/input/regression/page-spacing-staff-group.ly +++ b/input/regression/page-spacing-staff-group.ly @@ -27,4 +27,4 @@ closely than staves not in a StaffGroup." \new Staff c'1 >> >> -} \ No newline at end of file +} diff --git a/input/regression/pdfmark-metadata-unicode.ly b/input/regression/pdfmark-metadata-unicode.ly index 80a2a45bb9..e3946c26f0 100644 --- a/input/regression/pdfmark-metadata-unicode.ly +++ b/input/regression/pdfmark-metadata-unicode.ly @@ -23,4 +23,4 @@ \score { \new Staff c'1 -} \ No newline at end of file +} diff --git a/input/regression/ragged-right-compressed.ly b/input/regression/ragged-right-compressed.ly index 06f5d2d65b..7aa1cd6b0d 100644 --- a/input/regression/ragged-right-compressed.ly +++ b/input/regression/ragged-right-compressed.ly @@ -5,4 +5,4 @@ is not printed as ragged." } -{ \repeat unfold 9 {a b c d} } \ No newline at end of file +{ \repeat unfold 9 {a b c d} } diff --git a/input/regression/ragged-right-disabled.ly b/input/regression/ragged-right-disabled.ly index 606c1c41f1..f654e9a95f 100644 --- a/input/regression/ragged-right-disabled.ly +++ b/input/regression/ragged-right-disabled.ly @@ -9,4 +9,4 @@ line will not be printed as ragged." ragged-right = ##f } -{ a b c d } \ No newline at end of file +{ a b c d } diff --git a/input/regression/ragged-right-one-line.ly b/input/regression/ragged-right-one-line.ly index 6779e8dd6c..4ba84997b7 100644 --- a/input/regression/ragged-right-one-line.ly +++ b/input/regression/ragged-right-one-line.ly @@ -5,4 +5,4 @@ is printed as ragged by default." } -{ a b c d } \ No newline at end of file +{ a b c d } diff --git a/input/regression/repeat-tremolo-beams.ly b/input/regression/repeat-tremolo-beams.ly index ed683f30c9..3b7d2431b5 100644 --- a/input/regression/repeat-tremolo-beams.ly +++ b/input/regression/repeat-tremolo-beams.ly @@ -10,4 +10,4 @@ \repeat tremolo 12 { c64 e64 } \repeat tremolo 14 { c64 e64 } \repeat tremolo 15 { c64 e64 } ->> \ No newline at end of file +>> diff --git a/input/regression/repeat-tremolo-dots.ly b/input/regression/repeat-tremolo-dots.ly index e5ab74c216..cec2aa46a4 100644 --- a/input/regression/repeat-tremolo-dots.ly +++ b/input/regression/repeat-tremolo-dots.ly @@ -8,4 +8,4 @@ \score { \relative c' { c8 \repeat "tremolo" 14 { c32 a32 } | } -} \ No newline at end of file +} diff --git a/input/regression/scheme-engraver-instance.ly b/input/regression/scheme-engraver-instance.ly index 33296d1433..d78e85a5db 100644 --- a/input/regression/scheme-engraver-instance.ly +++ b/input/regression/scheme-engraver-instance.ly @@ -33,4 +33,4 @@ << \relative c'' { c4 d e f } \\ \relative c' { c4 d e f } ->> \ No newline at end of file +>> diff --git a/input/regression/slur-multiple-linebreak.ly b/input/regression/slur-multiple-linebreak.ly index 05d76aa582..68cde96f9d 100644 --- a/input/regression/slur-multiple-linebreak.ly +++ b/input/regression/slur-multiple-linebreak.ly @@ -24,4 +24,4 @@ a2( b4 c) % ^ extra SlurEvent } -%% END \ No newline at end of file +%% END diff --git a/input/regression/spacing-empty-bar.ly b/input/regression/spacing-empty-bar.ly index 9c630faab9..547e4a4811 100644 --- a/input/regression/spacing-empty-bar.ly +++ b/input/regression/spacing-empty-bar.ly @@ -7,4 +7,4 @@ { c'4 c' \bar "" c' c' \break \repeat unfold 10 { c' c' c' c' \bar "" \noBreak } -} \ No newline at end of file +} diff --git a/input/regression/spacing-folded-clef3.ly b/input/regression/spacing-folded-clef3.ly index 465dc30ab0..ed94152b5a 100644 --- a/input/regression/spacing-folded-clef3.ly +++ b/input/regression/spacing-folded-clef3.ly @@ -22,4 +22,4 @@ \new Staff = "lh" \relative c' { s2. } ->> \ No newline at end of file +>> diff --git a/input/regression/spacing-knee-compressed.ly b/input/regression/spacing-knee-compressed.ly index f3bcb4a025..db2cec637d 100644 --- a/input/regression/spacing-knee-compressed.ly +++ b/input/regression/spacing-knee-compressed.ly @@ -24,4 +24,4 @@ lh = \change Staff = "lh" \clef bass \repeat unfold 12 { \rh a'16 \lh d \rh a' \lh d \noBreak } } ->> \ No newline at end of file +>> diff --git a/input/regression/spacing-non-adjacent-columns1.ly b/input/regression/spacing-non-adjacent-columns1.ly index 2acaa15909..009e42ff88 100644 --- a/input/regression/spacing-non-adjacent-columns1.ly +++ b/input/regression/spacing-non-adjacent-columns1.ly @@ -18,4 +18,4 @@ bar = \relative c { \new Voice \foo \new Voice \bar >> -} \ No newline at end of file +} diff --git a/input/regression/spacing-space-to-barline.ly b/input/regression/spacing-space-to-barline.ly index 1402d58559..5e3dd95f76 100644 --- a/input/regression/spacing-space-to-barline.ly +++ b/input/regression/spacing-space-to-barline.ly @@ -20,4 +20,4 @@ the start of the barline." \override NoteSpacing #'space-to-barline = ##f c'2 c'2 c'1 -} \ No newline at end of file +} diff --git a/input/regression/tablature-letter.ly b/input/regression/tablature-letter.ly index 3fc098e8d8..2f808613e3 100644 --- a/input/regression/tablature-letter.ly +++ b/input/regression/tablature-letter.ly @@ -1,4 +1,4 @@ -\version "2.14.0" +\version "2.15.17" \header { texidoc = " @@ -16,25 +16,20 @@ if the length is too short. notes = \relative c' { \time 3/4 4. 8 4 - \set fretLabels = #`("a" "b" ,(markup #:italic #:smaller "c")) + \set fretLabels = \markuplist {"a" "b" \italic \smaller "c"} 4. 8 4 - \set fretLabels = #`(,(markup #:with-color red "a") + \set fretLabels = \markuplist {\with-color #red "a" "b" - ,(markup #:italic #:smaller "c")) + \italic \smaller "c"} 4. 8 4 - \set fretLabels = #'("α" "β" "γ") + \set fretLabels = \markuplist {"α" "β" "γ"} 4. 8 4 } \score { \new TabStaff \with { - stringTunings = #`(,(ly:make-pitch 1 3 0) - ,(ly:make-pitch 1 1 0) - ,(ly:make-pitch 0 5 0) - ,(ly:make-pitch 0 3 0) - ,(ly:make-pitch 0 1 0) - ,(ly:make-pitch -1 5 0)) + stringTunings = \stringTuning \notemode { } tablatureFormat = #fret-letter-tablature-format } \new TabVoice { diff --git a/input/regression/tablature-string-tunings.ly b/input/regression/tablature-string-tunings.ly index 0808e8d565..9727294b54 100644 --- a/input/regression/tablature-string-tunings.ly +++ b/input/regression/tablature-string-tunings.ly @@ -1,4 +1,4 @@ -\version "2.14.0" +\version "2.15.16" \header { @@ -10,10 +10,7 @@ \new TabStaff { - \set TabStaff.stringTunings = #`(,(ly:make-pitch 0 3 0) - ,(ly:make-pitch 0 5 SHARP) - ,(ly:make-pitch 1 1 SHARP) - ,(ly:make-pitch 1 4 SHARP)) + \set TabStaff.stringTunings = \stringTuning \relative c'' { c4 d e f } } diff --git a/input/regression/toc.ly b/input/regression/toc.ly index c16018afbb..ab25f4e867 100644 --- a/input/regression/toc.ly +++ b/input/regression/toc.ly @@ -1,8 +1,8 @@ -\version "2.14.0" +\version "2.15.17" \header { texidoc = "A table of contents is included using -@code{\\markuplines \\table-of-contents}. The toc items are added with +@code{\\markuplist \\table-of-contents}. The toc items are added with the @code{\\tocItem} command. In the PDF backend, the toc items are linked to the corresponding pages." } @@ -10,7 +10,7 @@ to the corresponding pages." #(set-default-paper-size "a6") \book { - \markuplines \table-of-contents + \markuplist \table-of-contents \pageBreak \tocItem \markup "The first score" @@ -27,4 +27,4 @@ to the corresponding pages." { e' } \header { piece = "Second score" } } -} \ No newline at end of file +} diff --git a/lily/flag.cc b/lily/flag.cc index 5aee4d9d15..ceab63e0e4 100644 --- a/lily/flag.cc +++ b/lily/flag.cc @@ -174,4 +174,4 @@ ADD_INTERFACE (Flag, /* properties */ "style " "stroke-style " - ); \ No newline at end of file + ); diff --git a/lily/lily-guile.cc b/lily/lily-guile.cc index 710fe15126..933bf27170 100644 --- a/lily/lily-guile.cc +++ b/lily/lily-guile.cc @@ -326,25 +326,6 @@ ly_scm2offsets (SCM s) /* ALIST */ - -// This one is used nowhere. -bool -ly_is_alist_equal (SCM a, SCM b) -{ - if (!scm_is_pair (a) || !scm_is_pair (b)) - return false; - for (SCM s = a; scm_is_pair (s); s = scm_cdr (s)) - { - SCM key = scm_caar (s); - SCM val = scm_cdar (s); - SCM l = scm_assoc (key, b); - - if (scm_is_false (l) || !ly_is_equal (scm_cdr (l), val)) - return false; - } - return true; -} - SCM ly_alist_vals (SCM alist) { diff --git a/lily/lily-lexer.cc b/lily/lily-lexer.cc index 6c1336744b..1298604f12 100644 --- a/lily/lily-lexer.cc +++ b/lily/lily-lexer.cc @@ -67,7 +67,7 @@ static Keyword_ent the_key_tab[] {"lyricsto", LYRICSTO}, {"mark", MARK}, {"markup", MARKUP}, - {"markuplines", MARKUPLINES}, + {"markuplist", MARKUPLIST}, {"midi", MIDI}, {"name", NAME}, {"new", NEWCONTEXT}, diff --git a/lily/output-def-scheme.cc b/lily/output-def-scheme.cc index 455702b0aa..d1ee310837 100644 --- a/lily/output-def-scheme.cc +++ b/lily/output-def-scheme.cc @@ -196,4 +196,4 @@ LY_DEFINE (ly_paper_fonts, "ly:paper-fonts", } return font_list; -} \ No newline at end of file +} diff --git a/lily/parser.yy b/lily/parser.yy index f2ef9b0cb5..0adb95c2f5 100644 --- a/lily/parser.yy +++ b/lily/parser.yy @@ -58,7 +58,7 @@ or %right FUNCTION_ARGUMENTS MARKUP LYRICS_STRING MARKUP_IDENTIFIER STRING STRING_IDENTIFIER - MARKUPLINES WITH CONTEXT_MOD_IDENTIFIER MARKUPLINES_IDENTIFIER + MARKUPLIST WITH CONTEXT_MOD_IDENTIFIER MARKUPLIST_IDENTIFIER SCORE BOOK BOOKPART PAPER LAYOUT MIDI SEQUENTIAL SIMULTANEOUS DOUBLE_ANGLE_OPEN MUSIC_IDENTIFIER '{' PITCH_IDENTIFIER NOTENAME_PITCH TONICNAME_PITCH @@ -225,7 +225,7 @@ void set_music_properties (Music *p, SCM a); %token LYRICSTO "\\lyricsto" %token MARK "\\mark" %token MARKUP "\\markup" -%token MARKUPLINES "\\markuplines" +%token MARKUPLIST "\\markuplist" %token MIDI "\\midi" %token NAME "\\name" %token NOTEMODE "\\notemode" @@ -322,7 +322,7 @@ If we give names, Bison complains. %token MARKUP_FUNCTION %token MARKUP_LIST_FUNCTION %token MARKUP_IDENTIFIER -%token MARKUPLINES_IDENTIFIER +%token MARKUPLIST_IDENTIFIER %token MUSIC_FUNCTION %token MUSIC_IDENTIFIER %token NOTENAME_PITCH @@ -1660,6 +1660,10 @@ scalar_bare: | full_markup { $$ = $1; } + | full_markup_list + { + $$ = $1; + } ; scalar: @@ -2642,10 +2646,10 @@ lyric_markup: ; full_markup_list: - MARKUPLINES_IDENTIFIER { + MARKUPLIST_IDENTIFIER { $$ = $1; } - | MARKUPLINES + | MARKUPLIST { PARSER->lexer_->push_markup_state (); } markup_list { $$ = $3; @@ -2678,7 +2682,7 @@ markup_top: ; markup_list: - MARKUPLINES_IDENTIFIER { + MARKUPLIST_IDENTIFIER { $$ = $1; } | markup_composed_list { @@ -2879,7 +2883,7 @@ Lily_lexer::try_special_identifiers (SCM *destination, SCM sid) return MARKUP_IDENTIFIER; } else if (Text_interface::is_markup_list (sid)) { *destination = sid; - return MARKUPLINES_IDENTIFIER; + return MARKUPLIST_IDENTIFIER; } return -1; diff --git a/lily/spring-smob.cc b/lily/spring-smob.cc index 8e263d0694..f0e8a21f64 100644 --- a/lily/spring-smob.cc +++ b/lily/spring-smob.cc @@ -42,3 +42,41 @@ Spring::equal_p (SCM a, SCM b) return a == b ? SCM_BOOL_T : SCM_BOOL_F; } +LY_DEFINE (ly_make_spring, "ly:make-spring", + 2, 0, 0, (SCM ideal, SCM min_dist), + "Make a spring. @var{ideal} is the ideal distance of the" + " spring, and @var{min-dist} is the minimum distance.") +{ + LY_ASSERT_TYPE (scm_is_number, ideal, 1); + LY_ASSERT_TYPE (scm_is_number, min_dist, 2); + + Spring s (scm_to_double (ideal), scm_to_double (min_dist)); + + return s.smobbed_copy (); +} + +LY_DEFINE (ly_spring_set_inverse_compress_strength_x, "ly:spring-set-inverse-compress-strength!", + 2, 0, 0, (SCM spring, SCM strength), + "Set the inverse compress @var{strength} of @var{spring}.") +{ + LY_ASSERT_SMOB (Spring, spring, 1); + LY_ASSERT_TYPE (scm_is_number, strength, 2); + + Spring *s = unsmob_spring (spring); + s->set_inverse_compress_strength (scm_to_double (strength)); + return s->smobbed_copy (); +} + +LY_DEFINE (ly_spring_set_inverse_stretch_strength_x, "ly:spring-set-inverse-stretch-strength!", + 2, 0, 0, (SCM spring, SCM strength), + "Set the inverse stretch @var{strength} of @var{spring}.") +{ + LY_ASSERT_SMOB (Spring, spring, 1); + LY_ASSERT_TYPE (scm_is_number, strength, 2); + + Spring *s = unsmob_spring (spring); + s->set_inverse_stretch_strength (scm_to_double (strength)); + return s->smobbed_copy (); +} + +IMPLEMENT_TYPE_P (Spring, "ly:spring?"); diff --git a/lily/staff-symbol.cc b/lily/staff-symbol.cc index 80be13b993..ed15db7d73 100644 --- a/lily/staff-symbol.cc +++ b/lily/staff-symbol.cc @@ -22,6 +22,7 @@ #include "lookup.hh" #include "dimensions.hh" #include "output-def.hh" +#include "paper-column.hh" #include "warn.hh" #include "item.hh" #include "staff-symbol-referencer.hh" @@ -66,10 +67,10 @@ Staff_symbol::print (SCM smob) { Item *x = sp->get_bound (d); - span_points[d] = x->relative_coordinate (common, X_AXIS); - if (!x->break_status_dir () - && !x->extent (x, X_AXIS).is_empty ()) - span_points[d] += x->extent (x, X_AXIS)[d]; + span_points[d] = ((!x->break_status_dir () + && !x->extent (x, X_AXIS).is_empty ()) + ? Paper_column::break_align_width (x, ly_symbol2scm ("break-alignment"))[d] + : x->relative_coordinate (common, X_AXIS)); } span_points[d] -= d * t / 2; @@ -156,6 +157,7 @@ Staff_symbol::ledger_positions (Grob *me, int pos) Direction dir = (Direction)sign (pos - nearest_line); if (scm_is_pair (ledger_positions)) + // custom ledger line positions { Real min_pos = HUGE_VAL; Real max_pos = -HUGE_VAL; @@ -184,6 +186,8 @@ Staff_symbol::ledger_positions (Grob *me, int pos) int n = (int) floor ((ledger_fill[DOWN] - min_pos) / cycle); Real current; SCM s = scm_cdr (ledger_positions); + if (!scm_is_pair (s) || cycle < 0.1) + return values; do { s2 = scm_car (s); @@ -225,6 +229,7 @@ Staff_symbol::ledger_positions (Grob *me, int pos) while (current <= ledger_fill[UP]); } else + // normal ledger lines { int ledger_count = (int) floor ((abs (nearest_line - pos) + ledger_extra) / 2); values.resize (ledger_count); diff --git a/ly/gregorian.ly b/ly/gregorian.ly index 956af5d596..af073aa42d 100644 --- a/ly/gregorian.ly +++ b/ly/gregorian.ly @@ -302,7 +302,6 @@ neumeDemoLayout = \layout { \override NoteHead #'style = #'vaticana.punctum \override Stem #'transparent = ##t \override Flag #'transparent = ##t - \override Flag #'transparent = ##t } } diff --git a/ly/property-init.ly b/ly/property-init.ly index 35489e03e6..2de518fb46 100644 --- a/ly/property-init.ly +++ b/ly/property-init.ly @@ -234,7 +234,6 @@ hideNotes = { \override NoteHead #'no-ledgers = ##t \override Stem #'transparent = ##t \override Flag #'transparent = ##t - \override Flag #'transparent = ##t \override Beam #'transparent = ##t \override Accidental #'transparent = ##t } @@ -243,7 +242,6 @@ unHideNotes = { \revert Beam #'transparent \revert Stem #'transparent \revert Flag #'transparent - \revert Flag #'transparent \revert NoteHead #'transparent \revert NoteHead #'no-ledgers \revert Dots #'transparent diff --git a/ly/string-tunings-init.ly b/ly/string-tunings-init.ly index fade5dad32..d3e4f54d57 100644 --- a/ly/string-tunings-init.ly +++ b/ly/string-tunings-init.ly @@ -15,118 +15,77 @@ %%%% You should have received a copy of the GNU General Public License %%%% along with LilyPond. If not, see . -\version "2.14.0" +\version "2.15.16" %% A stringTuning is a list of pitches ordered by string number %% from 1 to N. %% Here we define a number of default string tunings. -%% A scheme function for converting a chord to a string tuning -#(define (chord->tuning parser tuning-symbol chord) - (let* ((ev-chord (car (extract-named-music chord 'EventChord))) - (pitches (event-chord-pitches ev-chord))) - (ly:parser-define! parser tuning-symbol (reverse pitches)))) - %% A music function for converting a chord to a string tuning. %% The music argument for \makeStringTuning must be a chord in %% absolute mode ordered from the highest string number to the %% lowest string number -makeStringTuning = -#(define-music-function (parser location tuning chord) - (symbol? ly:music?) - (_ "Convert @{chord} to a string tuning stored in @code{tuning}. -@{chord} must be in absolute pitches and should have the highest -string number (generally the lowest pitch) first. @code{tuning} -should be a string that will be converted to a symbol.") - (begin - (chord->tuning parser tuning chord) - (make-music 'SequentialMusic 'void #t))) - - -%% A music function for converting a chord to a string tuning -%% and setting the current context stringTunings property to -%% the newly-defined-string tuning. - -contextStringTuning = -#(define-music-function (parser location tuning chord) - (symbol? ly:music?) - (_ "Convert @{chord} to a string tuning stored in @code{tuning}, -and set @code{stringTunings} of the current context to the -newly-defined tuning. -@{chord} must be in absolute pitches and should have the highest -string number (generally the lowest pitch) first. @code{tuning} -should be a string that will be converted to a symbol.") - (chord->tuning parser tuning chord) - #{ \set stringTunings = #(ly:parser-lookup $parser $tuning) - #}) - -%% A music function for converting an alist to string-tunings -makeDefaultStringTunings = -#(define-music-function (parser location default-tuning-alist) - (cheap-list?) - (_ "Define default string tunings for each element of -@code{default-tuning-alist}.") - (begin - (for-each (lambda (alist-entry) - (chord->tuning parser (car alist-entry) (cdr alist-entry))) - default-tuning-alist) - (make-music 'SequentialMusic 'void #t))) - -% tuning definitions require default pitchnames -\languageSaveAndChange #default-language - -%% Define alist of default string tunings -defaultStringTunings = -#`( - ;; guitar tunings - (guitar-tuning . ,#{#}) - (guitar-seven-string-tuning . ,#{#}) - (guitar-drop-d-tuning . ,#{#}) - (guitar-open-g-tuning . ,#{#}) - (guitar-open-d-tuning . ,#{#}) - (guitar-dadgad-tuning . ,#{#}) - (guitar-lute-tuning . ,#{#}) - (guitar-asus4-tuning . ,#{#}) - - ;; bass tunings - (bass-tuning . ,#{#}) - (bass-four-string-tuning . ,#{#}) - (bass-drop-d-tuning . ,#{#}) - (bass-five-string-tuning . ,#{#}) - (bass-six-string-tuning . ,#{#}) - - ;; mandolin tunings - (mandolin-tuning . ,#{#}) - - ;; tunings for 5-string banjo - (banjo-open-g-tuning . ,#{#}) - (banjo-c-tuning . ,#{#}) - (banjo-modal-tuning . ,#{#}) - (banjo-open-d-tuning . ,#{#}) - (banjo-open-dm-tuning . ,#{#}) - - ;; ukulele tunings - (ukulele-tuning . ,#{#}) - (ukulele-d-tuning . ,#{#}) - (tenor-ukulele-tuning . ,#{#}) - (baritone-ukulele-tuning . ,#{#}) - - ;; orchestral strings - (violin-tuning . ,#{#}) - (viola-tuning . ,#{#}) - (cello-tuning . ,#{#}) - (double-bass-tuning . ,#{#}) - ) +stringTuning = +#(define-scheme-function (parser location chord) + (ly:music?) + (_i "Convert @var{chord} to a string tuning. +@var{chord} must be in absolute pitches and should have the highest +string number (generally the lowest pitch) first.") + (let* ((ev-chord (car (extract-named-music chord 'EventChord)))) + (reverse! (event-chord-pitches ev-chord)))) + +defaultStringTunings = #'() + +makeDefaultStringTuning = +#(define-void-function (parser location symbol pitches) (symbol? list?) + (_i "This defines a string tuning @var{symbol} via a list of @var{pitches}. +The @var{symbol} also gets registered in @code{defaultStringTunings} +for documentation purposes.") + (ly:parser-define! parser symbol pitches) + (set! defaultStringTunings (acons symbol pitches defaultStringTunings))) + +%% guitar tunings +\makeDefaultStringTuning #'guitar-tuning \stringTuning +\makeDefaultStringTuning #'guitar-seven-string-tuning \stringTuning +\makeDefaultStringTuning #'guitar-drop-d-tuning \stringTuning +\makeDefaultStringTuning #'guitar-open-g-tuning \stringTuning +\makeDefaultStringTuning #'guitar-open-d-tuning \stringTuning +\makeDefaultStringTuning #'guitar-dadgad-tuning \stringTuning +\makeDefaultStringTuning #'guitar-lute-tuning \stringTuning +\makeDefaultStringTuning #'guitar-asus4-tuning \stringTuning + +%% bass tunings +\makeDefaultStringTuning #'bass-tuning \stringTuning +\makeDefaultStringTuning #'bass-four-string-tuning \stringTuning +\makeDefaultStringTuning #'bass-drop-d-tuning \stringTuning +\makeDefaultStringTuning #'bass-five-string-tuning \stringTuning +\makeDefaultStringTuning #'bass-six-string-tuning \stringTuning + +%% mandolin tunings +\makeDefaultStringTuning #'mandolin-tuning \stringTuning + +%% tunings for 5-string banjo +\makeDefaultStringTuning #'banjo-open-g-tuning \stringTuning +\makeDefaultStringTuning #'banjo-c-tuning \stringTuning +\makeDefaultStringTuning #'banjo-modal-tuning \stringTuning +\makeDefaultStringTuning #'banjo-open-d-tuning \stringTuning +\makeDefaultStringTuning #'banjo-open-dm-tuning \stringTuning + +%% ukulele tunings +\makeDefaultStringTuning #'ukulele-tuning \stringTuning +\makeDefaultStringTuning #'ukulele-d-tuning \stringTuning +\makeDefaultStringTuning #'tenor-ukulele-tuning \stringTuning +\makeDefaultStringTuning #'baritone-ukulele-tuning \stringTuning + +%% orchestral strings +\makeDefaultStringTuning #'violin-tuning \stringTuning +\makeDefaultStringTuning #'viola-tuning \stringTuning +\makeDefaultStringTuning #'cello-tuning \stringTuning +\makeDefaultStringTuning #'double-bass-tuning \stringTuning + +defaultStringTunings = #(reverse! defaultStringTunings) %% convert 5-string banjo tuning to 4-string by removing the 5th string -#(define-public (four-string-banjo tuning) - (reverse (cdr (reverse tuning)))) - -%% make all of the default string tunings - -\makeDefaultStringTunings #defaultStringTunings - -% restore the language -\languageRestore - +"four-string-banjo" = #(lambda (tuning) + (take tuning 4)) diff --git a/ly/toc-init.ly b/ly/toc-init.ly index 55b48b96c2..f959e1679f 100644 --- a/ly/toc-init.ly +++ b/ly/toc-init.ly @@ -1,4 +1,4 @@ -\version "2.14.0" +\version "2.15.17" %% defined later, in a closure #(define-public (add-toc-item! markup-symbol text) @@ -38,7 +38,7 @@ tocItemWithDotsMarkup = \markup \fill-with-pattern #1 #RIGHT . ( _i "Outputs the table of contents, using the paper variable @code{tocTitleMarkup} for its title, then the list of lines built using the @code{tocItem} music function -Usage: @code{\\markuplines \\table-of-contents}" ) +Usage: @code{\\markuplist \\table-of-contents}" ) (cons (interpret-markup layout props (ly:output-def-lookup layout 'tocTitleMarkup)) (space-lines (chain-assoc-get 'baseline-skip props) diff --git a/make/website.make b/make/website.make index 3bb0faca53..d6d9ef7a12 100644 --- a/make/website.make +++ b/make/website.make @@ -17,8 +17,6 @@ ifeq ($(WEBSITE_ONLY_BUILD),1) top-htaccess=$(trusted-dir)/lilypond.org.htaccess dir-htaccess=$(trusted-dir)/website-dir.htaccess TEXI2HTML_PROGRAM=$(HOME)/usr/bin/texi2html - EXAMPLES=$(HOME)/lilypond/media/ly-examples - PICTURES=$(HOME)/lilypond/media/pictures PYTHON=python PYTHONPATH=$(TRUSTED_DIR) else @@ -28,9 +26,6 @@ else top-htaccess=$(top-src-dir)/Documentation/web/server/lilypond.org.htaccess dir-htaccess=$(top-src-dir)/Documentation/web/server/website-dir.htaccess include $(config_make) - # I assume this is run from top-build-dir - EXAMPLES=Documentation/web/ly-examples/out-www - PICTURES=Documentation/pictures/out-www endif ################################################################ @@ -76,6 +71,9 @@ MASS_LINK=python $(script-dir)/mass-link.py WEB_POST=python $(script-dir)/website_post.py WEB_BIBS=python $(script-dir)/bib2texi.py +EXAMPLES=$(LILYPOND_WEB_MEDIA_GIT)/ly-examples +PICTURES=$(LILYPOND_WEB_MEDIA_GIT)/pictures + SERVER_FILES=$(top-src-dir)/Documentation/web/server # don't include web @@ -133,9 +131,15 @@ xref-files = $(MANUALS_BASE:%=$(OUT)/%.xref-map) .PHONY: website website-bibs website-css website-examples website-misc \ website-pictures website-post website-test website-texinfo \ - website-version website-xrefs + website-version website-xrefs check-setup + +check-setup: +ifeq ($(LILYPOND_WEB_MEDIA_GIT),) + echo "Need a $LILYPOND_WEB_MEDIA_GIT environment variable!" + exit 1 +endif -website: website-post website-examples website-pictures website-css website-misc +website: check-setup website-post website-examples website-pictures website-css website-misc website-bibs: website-version $(OUT) $(bib-files) diff --git a/python/convertrules.py b/python/convertrules.py index 749e8624b6..bbba578e48 100644 --- a/python/convertrules.py +++ b/python/convertrules.py @@ -3244,6 +3244,29 @@ def conv (str): str = re.sub (r"(\s+(?:\\once\s*)?)\\revert\s*Stem\s+#'stencil", r"\g<1>\\revert Stem #'stencil\g<1>\\revert Flag #'stencil", str) return str +@rule ((2, 15, 16), r"\makeStringTuning, \contextStringTuning -> \stringTuning") +def conv (str): + str = re.sub (r"(\s+)\\contextStringTuning(\s+)#'([-a-zA-Z]+)(\s+<[^<>]+>)", + r"""\g<1>#(define \g<3> #{ \\stringTuning\g<4> #})\g<1>\\set stringTunings = #\g<3>""", + str) + str = re.sub (r""" +\\makeStringTuning(\s+)#'([-a-zA-Z]+)""", + r""" +"\g<2>" = \\stringTuning""", str) + str = re.sub (r"\\makeStringTuning(\s+)#'([-a-zA-Z]+)(\s+<[^<>]+>)", + r"#(define \g<2> #{ \\stringTuning\g<3> #})", str) + return str + +@rule ((2, 15, 17), "\\markuplines -> \\markuplist") +def conv (str): + str = re.sub (r""" +\\markuplines( +)([^ ].*) + \1([^ ])""", r""" +\\markuplist\g<1>\g<2> + \g<1>\g<3>""", str) + str = re.sub (r"\\markuplines", r"\\markuplist", str) + str = re.sub (r"@funindex markuplines", r"@funindex markuplist", str) + return str # Guidelines to write rules (please keep this at the end of this file) # diff --git a/scm/lily.scm b/scm/lily.scm index 90df1f6a09..3ad7fb580e 100644 --- a/scm/lily.scm +++ b/scm/lily.scm @@ -563,6 +563,7 @@ LilyPond safe mode. The syntax is the same as `define*-public'." (,ly:skyline-pair? . "pair of skylines") (,ly:source-file? . "source file") (,ly:spanner? . "spanner") + (,ly:spring? . "spring") (,ly:stencil? . "stencil") (,ly:stream-event? . "stream event") (,ly:translator? . "translator") diff --git a/scripts/auxiliar/ref_check.py b/scripts/auxiliar/ref_check.py index ec6f6b622f..09c3449599 100755 --- a/scripts/auxiliar/ref_check.py +++ b/scripts/auxiliar/ref_check.py @@ -185,4 +185,4 @@ crossRefs = CrossRefs() topFile.read(crossRefs) crossRefs.check() if returnCode > 0: - print "Errors found: status code: ",returnCode \ No newline at end of file + print "Errors found: status code: ",returnCode diff --git a/stepmake/stepmake/shared-library-targets.make b/stepmake/stepmake/shared-library-targets.make index 4f8dbe8d2b..690fdfaf01 100644 --- a/stepmake/stepmake/shared-library-targets.make +++ b/stepmake/stepmake/shared-library-targets.make @@ -1,4 +1,4 @@ default: $(SHARED_LIBRARY) -$(SHARED_LIB_PREFIX)$(NAME): default \ No newline at end of file +$(SHARED_LIB_PREFIX)$(NAME): default diff --git a/tex/txi-hu.tex b/tex/txi-hu.tex index 7f03a7cb95..2366ee7432 100644 --- a/tex/txi-hu.tex +++ b/tex/txi-hu.tex @@ -84,4 +84,4 @@ 16.\or 17.\or 18.\or 19.\or 20.\or 21.\or 22.\or 23.\or 24.\or 25.\or 26.\or 27.\or 28.\or 29.\or 30.\or - 31.\fi} \ No newline at end of file + 31.\fi}