From: John Mandereau Date: Sat, 15 Nov 2008 17:24:22 +0000 (+0100) Subject: Merge branch 'lilypond/translation' of ssh://jomand@git.sv.gnu.org/srv/git/lilypond X-Git-Tag: release/2.11.64-1~20 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=c5a4d8bc26d69c661666364b8b26700ea13fa645;hp=c3fc8142767cef1e1103c7dde949422e2866e322;p=lilypond.git Merge branch 'lilypond/translation' of ssh://jomand@git.sv.gnu.org/srv/git/lilypond --- diff --git a/Documentation/de/user/tutorial.itely b/Documentation/de/user/tutorial.itely index 6ddef88ac0..ab89f2df11 100644 --- a/Documentation/de/user/tutorial.itely +++ b/Documentation/de/user/tutorial.itely @@ -1,7 +1,7 @@ @c -*- coding: utf-8; mode: texinfo; -*- @c This file is part of lilypond.tely @ignore - Translation of GIT committish: 9c728939dbd36dc81bf0afb29bc5fe22b66d675c + Translation of GIT committish: f413550b658b43fbea690fc060f872bce6bbc885 When revising a translation, copy the HEAD committish of the version that you are working on. See TRANSLATION for details. @@ -820,15 +820,15 @@ d cis fis hat keine der Noten ein Versetzungszeichen, trotzdem muss im Quelltext das @q{is} für @code{cis} und @code{fis} notiert werden. -Der Code @q{e} heißt also nicht: @qq{Zeichne einen schwarzen Punkt -auf die erste Linie des Systems.} Im Gegenteil, er heißt vielmehr: - @qq{Hier soll eine Note mit der Tonhöhe E gesetzt werden.} +Der Code @q{b} heißt also nicht: @qq{Zeichne einen schwarzen Punkt +auf die Mittellinie des Systems.} Im Gegenteil, er heißt vielmehr: + @qq{Hier soll eine Note mit der Tonhöhe B gesetzt werden.} In der Tonart As-Dur @emph{bekommt} sie ein Versetzungszeichen: -@lilypond[verbatim,quote,relative=1] +@lilypond[verbatim,quote,relative=2] \key aes \major -e +b @end lilypond Alle diese Versetzungszeichen ausdrücklich zu schreiben, bedeutet vielleicht diff --git a/Documentation/es/user/spacing.itely b/Documentation/es/user/spacing.itely index 3cb339cfb1..07cf5d49eb 100644 --- a/Documentation/es/user/spacing.itely +++ b/Documentation/es/user/spacing.itely @@ -7,6 +7,7 @@ version that you are working on. See TRANSLATION for details. @end ignore +@c \version "2.11.64" @node Spacing issues @chapter Spacing issues @@ -519,8 +520,8 @@ longitud horizontal natural. Predeterminado: @code{##f}. Si la partitura sólo tiene un sistema, el valor predeterminado es @code{##t}. -@item systemSeparatorMarkup -@funindex systemSeparatorMarkup +@item system-separator-markup +@funindex system-separator-markup Objeto de marcado que se inserta entre los sistemas. Se suele usar para partituras orquestales. Predeterminado: sin establecer. @@ -535,7 +536,7 @@ valor predeterminado apropiado, por ejemplo \relative { c1 \break c1 } } \paper { - systemSeparatorMarkup = \slashSeparator + system-separator-markup = \slashSeparator } } @end lilypond diff --git a/Documentation/es/user/tutorial.itely b/Documentation/es/user/tutorial.itely index d47b022877..cbc7e83f46 100644 --- a/Documentation/es/user/tutorial.itely +++ b/Documentation/es/user/tutorial.itely @@ -1,7 +1,7 @@ @c -*- coding: utf-8; mode: texinfo; documentlanguage: es -*- @c This file is part of lilypond-learning.tely @ignore - Translation of GIT committish: 470afe4ab29825194827f7dfcf031addb68771ce + Translation of GIT committish: f413550b658b43fbea690fc060f872bce6bbc885 When revising a translation, copy the HEAD committish of the version that you are working on. See TRANSLATION for details. @@ -815,14 +815,14 @@ d cis fis ninguna nota lleva una alteración impresa, pero de todas formas usted debe añadir el @code{is} a @code{cis} y a @code{fis}. -El texto @code{e} no significa @qq{imprimir una bolita negra en la -primera línea del pentagrama.} Más bien significa: @qq{hay una nota -Mi natural.} En la tonalidad de La bemol mayor, @emph{lleva} una +El texto @code{b} no significa @qq{imprimir una bolita negra en la +tercera línea del pentagrama.} Más bien significa: @qq{hay una nota +Si natural.} En la tonalidad de La bemol mayor, @emph{lleva} una alteración accidental: -@lilypond[verbatim,quote,relative=1] +@lilypond[verbatim,quote,relative=2] \key aes \major -e +b @end lilypond Poner todas las alteraciones de forma explícita puede que requiera diff --git a/Documentation/fr/user/tutorial.itely b/Documentation/fr/user/tutorial.itely index 60ede05de9..a4dd9dc1be 100644 --- a/Documentation/fr/user/tutorial.itely +++ b/Documentation/fr/user/tutorial.itely @@ -1,7 +1,7 @@ @c -*- coding: utf-8; mode: texinfo; documentlanguage: fr -*- @c This file is part of lilypond.tely @ignore - Translation of GIT committish: 9c728939dbd36dc81bf0afb29bc5fe22b66d675c + Translation of GIT committish: f413550b658b43fbea690fc060f872bce6bbc885 When revising a translation, copy the HEAD committish of the version that you are working on. See TRANSLATION for details. @@ -808,14 +808,14 @@ d cis fis aucune note n'a d'altération accidentelle, et pourtant vous devrez entrer le @code{is} pour les notes @code{cis} et @code{fis}. -Le code @code{e} ne veut pas dire @qq{Imprimez-moi un point noir sur -la première ligne de la portée.} Cela signifie plutôt : @qq{Ici se -trouve une note dont la hauteur est un mi naturel.} Avec une armure -de la bémol majeur, ce mi est flanqué d'un bécarre accidentel : +Le code @code{b} ne veut pas dire @qq{Imprimez-moi un point noir sur +la troisième ligne de la portée.} Cela signifie plutôt : @qq{Ici se +trouve une note dont la hauteur est un si naturel.} Avec une armure +de la bémol majeur, ce si est flanqué d'un bécarre accidentel : -@lilypond[verbatim,quote,relative=1] +@lilypond[verbatim,quote,relative=2] \key aes \major -e +b @end lilypond Ajouter explicitement toutes les altérations demande un peu plus diff --git a/Documentation/topdocs/NEWS.tely b/Documentation/topdocs/NEWS.tely index e6b2866b5d..6de795eb34 100644 --- a/Documentation/topdocs/NEWS.tely +++ b/Documentation/topdocs/NEWS.tely @@ -224,6 +224,7 @@ scripts.caesura -> scripts.caesura.curved \hcenter -> \center-align printallheaders -> print-all-headers \bigger -> \larger (already existing command) +systemSeparatorMarkup -> system-separator-markup @end example @noindent diff --git a/Documentation/user/spacing.itely b/Documentation/user/spacing.itely index c4e303010e..9ade001b4e 100644 --- a/Documentation/user/spacing.itely +++ b/Documentation/user/spacing.itely @@ -7,7 +7,7 @@ version that you are working on. See TRANSLATION for details. @end ignore -@c \version "2.11.61" +@c \version "2.11.64" @ignore GDP TODO list @@ -561,8 +561,8 @@ systems end at their natural horizontal length. Default: If the score has only one system, the default value is @code{##t}. -@item systemSeparatorMarkup -@funindex systemSeparatorMarkup +@item system-separator-markup +@funindex system-separator-markup A markup object that is inserted between systems. This is often used for orchestral scores. Default: unset. @@ -577,7 +577,7 @@ default, for example \relative { c1 \break c1 } } \paper { - systemSeparatorMarkup = \slashSeparator + system-separator-markup = \slashSeparator } } @end lilypond diff --git a/Documentation/user/tutorial.itely b/Documentation/user/tutorial.itely index b755efdcb7..5f2a290c12 100644 --- a/Documentation/user/tutorial.itely +++ b/Documentation/user/tutorial.itely @@ -758,14 +758,14 @@ d cis fis No note has a printed accidental, but you must still add @code{is} and type @code{cis} and @code{fis} in the input file. -The code @code{e} does not mean @qq{print a black dot just on -the first line of the staff.} Rather, it means @qq{there is a -note with pitch E-natural.} In the key of A-flat major, it +The code @code{b} does not mean @qq{print a black dot just on +the middle line of the staff.} Rather, it means @qq{there is a +note with pitch B-natural.} In the key of A-flat major, it @emph{does} get an accidental: -@lilypond[verbatim,quote,relative=1] +@lilypond[verbatim,quote,relative=2] \key aes \major -e +b @end lilypond Adding all alterations explicitly might require a little more diff --git a/input/lsr/adjusting-the-shape-of-falls-and-doits.ly b/input/lsr/adjusting-the-shape-of-falls-and-doits.ly index fd0d2be34f..785ca355e0 100644 --- a/input/lsr/adjusting-the-shape-of-falls-and-doits.ly +++ b/input/lsr/adjusting-the-shape-of-falls-and-doits.ly @@ -12,6 +12,14 @@ caídas y subidas de tono («falls» y «doits»). " doctitlees = "Ajustar la forma de las subidas y caídas de tono" + +%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a> +texidocde = " +Die @code{shortest-duration-space}-Eigenschaft kann verändert werden, um +das Aussehen von unbestimmten Glissandi anzupassen. + +" + doctitlede = "Das Aussehen von unbestimmten Glissandi anpassen" texidoc = " The @code{shortest-duration-space} property may have to be tweaked to diff --git a/input/lsr/beam-endings-in-score-context.ly b/input/lsr/beam-endings-in-score-context.ly new file mode 100644 index 0000000000..f9d9e040ee --- /dev/null +++ b/input/lsr/beam-endings-in-score-context.ly @@ -0,0 +1,49 @@ +%% Do not edit this file; it is auto-generated from LSR http://lsr.dsi.unimi.it +%% This file is in the public domain. +\version "2.11.62" + +\header { + lsrtags = "rhythms" + + texidoc = " +Beam-ending rules specified in the @code{Score} context apply to all +staves, but can be modified at both @code{Staff} and @code{Voice} +levels: + +" + doctitle = "Beam endings in Score context" +} % begin verbatim + +\relative c'' { + \time 5/4 + % Set default beaming for all staves + #(score-override-auto-beam-setting '(end * * 5 4) 3 8) + #(score-override-auto-beam-setting '(end * * 5 4) 7 8) + << + \new Staff { + c8 c c c c c c c c c + } + \new Staff { + % Modify beaming for just this staff + #(override-auto-beam-setting '(end * * 5 4) 6 8 'Staff) + #(revert-auto-beam-setting '(end * * 5 4) 7 8 'Staff) + c8 c c c c c c c c c + } + \new Staff { + % Inherit beaming from Score context + << + { + \voiceOne + c8 c c c c c c c c c + } + % Modify beaming for this voice only + \new Voice { + \voiceTwo + #(override-auto-beam-setting '(end * * 5 4) 6 8) + #(revert-auto-beam-setting '(end * * 5 4) 7 8) + a8 a a a a a a a a a + } + >> + } + >> +} diff --git a/input/lsr/beam-grouping-in-7-8-time.ly b/input/lsr/beam-grouping-in-7-8-time.ly index 98fa4b6858..72c70e2f54 100644 --- a/input/lsr/beam-grouping-in-7-8-time.ly +++ b/input/lsr/beam-grouping-in-7-8-time.ly @@ -14,6 +14,16 @@ compás de 7/8, especificamos los finales de barra en 2/8 y 5/8: " doctitlees = "Agrupamiento de las barras en el compás de 7/8" + +%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a> +texidocde = " +Es gibt keine automatischen Balkengruppen für 7/8-Takte. Wenn diese +Taktart benötigt wird, müssen die Gruppierungen definiert werden. Um +beispielsweise alle Noten in 2/8-3/8-2/8 aufzuteilen, müssen Balkenenden +für 2/8 und 5/8 definiert werden: + +" + doctitlede = "Balkengruppen für 7/8-Takte" texidoc = " There are no default automatic beam groupings specified for 7/8 time, diff --git a/input/lsr/beams-across-line-breaks.ly b/input/lsr/beams-across-line-breaks.ly index da954b11f2..c27ff1b953 100644 --- a/input/lsr/beams-across-line-breaks.ly +++ b/input/lsr/beams-across-line-breaks.ly @@ -12,6 +12,15 @@ comportamiento como se muestra aquí: " doctitle = "Barras que atraviesan saltos de línea" + +%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a> + +texidocde = " +Zeilenumbrüche sind normalerweise während Balken verboten. Das kann geändert +werden. + +" + doctitlede = "Balken über Zeilenumbrüche" texidoc = " Line breaks are normally forbidden when beams cross bar lines. This diff --git a/input/lsr/changing-beam-knee-gap.ly b/input/lsr/changing-beam-knee-gap.ly index ca72dc8995..c3ca7244b2 100644 --- a/input/lsr/changing-beam-knee-gap.ly +++ b/input/lsr/changing-beam-knee-gap.ly @@ -17,6 +17,19 @@ establecido a 5.5 espacios de pentagrama. " doctitlees = "Cambiar el salto de las barras en ángulo" + +%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a> +texidocde = " +Balken mit Hälsen in unterschiedliche Richtungen werden automatisch +erstellt, wenn ein großer Sprung zwischen Tonhöhen gefunden wird. Dieses +Verhalten kann durch die @code{auto-knee-gap}-Eigenschaft beeinflusst +werden. Ein derartiger Knie-Balken wird erstellt, wenn der Abstand größer +ist als der Wert von @code{auto-knee-gap} plus der Dicke des Balkens +(was von der Notendauer und der Neigung des Balkens abhängt). Der +Standardwert von @code{auto-knee-gap} ist 5.5 Notensystemabstände. + +" + doctitlede = "Balken für weit außeinander liegende Noten ändern" texidoc = " Kneed beams are inserted automatically when a large gap is detected diff --git a/input/lsr/changing-form-of-multi--measure-rests.ly b/input/lsr/changing-form-of-multi--measure-rests.ly index e2f66c384c..0b3ddb0f23 100644 --- a/input/lsr/changing-form-of-multi--measure-rests.ly +++ b/input/lsr/changing-form-of-multi--measure-rests.ly @@ -11,6 +11,16 @@ muestra una barra normal. Este número predeterminado de diez se puede cambiar sobreescribiendo la propiedad @code{expand-limit}: " + +texidocde = " +Wenn zehn oder weniger Pausentakte vorkommen, wird eine Reihe von Longa- +und Brevispausen (auch Kirchenpausen genannt) gesetzt, bei mehr Takten +wird eine Line mit der Taktanzahl ausgegeben. Der vorgegebene Wert von +zehn kann geändert werden, indem man die @code{expand-limit}-Eigenschaft +setzt: +" + doctitlede = "Die Erscheinung von Pausentakten ändern" + lsrtags = "rhythms,tweaks-and-overrides" texidoc = " If there are ten or fewer measures of rests, a series of longa diff --git a/input/lsr/changing-text-and-spanner-styles-for-text-dynamics.ly b/input/lsr/changing-text-and-spanner-styles-for-text-dynamics.ly index f8fe762258..9093d21fa8 100644 --- a/input/lsr/changing-text-and-spanner-styles-for-text-dynamics.ly +++ b/input/lsr/changing-text-and-spanner-styles-for-text-dynamics.ly @@ -15,6 +15,18 @@ valores posibles se encuentran @code{'line} (línea), " doctitlees = "Cambiar el texto y los estilos de objeto de extensión para las indicaciones dinámicas textuales" + +%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a> +texidocde = " +Der Text, der für Crescendo und Decrescendo gestzt wird, kann geändert +werden, indem man die Eigenschaften @code{crescendoText} und +@code{decrescendoText} verändert. Der Stil des Streckers kann auch +geändert werden, indem die @code{'style}-Eigenschaft des +@code{DynamicTextSpanner} beeinflusst wird. Der Standardwert ist +@code{'hairpin}, ander Möglichkeiten sind @code{'line}, @code{'dashed-line} +und @code{'dotted-line}: +" + doctitlede = "Text und Strecker-Stile für Dynamik-Texte ändern" lsrtags = "rhythms,tweaks-and-overrides" texidoc = " diff --git a/input/lsr/changing-the-breath-mark-symbol.ly b/input/lsr/changing-the-breath-mark-symbol.ly index efb54b8966..a04b0b5d7d 100644 --- a/input/lsr/changing-the-breath-mark-symbol.ly +++ b/input/lsr/changing-the-breath-mark-symbol.ly @@ -12,6 +12,15 @@ sobreescribiendo la proopiedad de texto del objeto de presentación " doctitlees = "Cambiar el símbolo de la marca de respiración" + +%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a> + texidocde = " +Das Schriftzeichen für das Atemzeichen kann verändert werden, indem +die Text-Eigenschaft des @code{BreathingSign}-Layoutobjekts mit einer +beliebigen Textbeschriftung definiert wird. + +" + doctitlede = "Das Atemzeichen-Symbol verändern" texidoc = " The glyph of the breath mark can be tuned by overriding the text diff --git a/input/lsr/changing-the-time-signature-without-affecting-the-beaming.ly b/input/lsr/changing-the-time-signature-without-affecting-the-beaming.ly index 48931a5d55..d6c254dc84 100644 --- a/input/lsr/changing-the-time-signature-without-affecting-the-beaming.ly +++ b/input/lsr/changing-the-time-signature-without-affecting-the-beaming.ly @@ -5,6 +5,17 @@ \header { lsrtags = "rhythms" + texidoces = " +La instrucción @code{\time} establece las propiedades +@code{timeSignatureFraction}, @code{beatLength}, @code{beatGrouping} y +@code{measureLength} en el contexto @code{Timing}, que normalmente +tiene el alias @code{Score}. La modificación del valor de +@code{timeSignatureFraction} hace que se imprima la nueva indicación +de compás sin que cambie ninguna de las demás propiedades: + +" + doctitlees = "Cambio de compás sin afectar al barrado" + texidoc = " The @code{\\time} command sets the properties @code{timeSignatureFraction}, @code{beatLength}, @code{beatGrouping} diff --git a/input/lsr/changing-the-tuplet-number.ly b/input/lsr/changing-the-tuplet-number.ly index 6638f500a6..ef7f16734a 100644 --- a/input/lsr/changing-the-tuplet-number.ly +++ b/input/lsr/changing-the-tuplet-number.ly @@ -16,6 +16,7 @@ del grupo, o eliminar el número. " +%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a> texidocde = " Standardmäßig wird nur der Zähler des N-tolen-Bruchs über der Klammer dargestellt, wie er dem @code{\\times}-Befehl übergeben wird. diff --git a/input/lsr/compound-time-signatures.ly b/input/lsr/compound-time-signatures.ly index e9ab5202cb..35d380ff56 100644 --- a/input/lsr/compound-time-signatures.ly +++ b/input/lsr/compound-time-signatures.ly @@ -17,6 +17,18 @@ gráficas de la agrupación de compases; véase el fragmento de código apropiado en la base de datos). " + +%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a> +texidocde = " +Ungerade Taktarten werden (wie etwa \"5/8\") werden oft als zusammengesetzte +Taktarten interpretiert (bspw. \"3/8 + 2/8\"), in welchen zwei oder mehr +Teiltakte unterschieden werden. LilyPond kann derartige Noten produzieren, +indem entsprechende Taktarten gesetzt werden und die automatische +Bebalkung angepasst wird. + +" + doctitlede = "Zusammengesetzte Taktarten" + texidoc = " Odd 20th century time signatures (such as \"5/8\") can often be played as compound time signatures (e.g. \"3/8 + 2/8\"), which combine two or diff --git a/input/lsr/contemporary-glissando.ly b/input/lsr/contemporary-glissando.ly index f326a0b7bf..15dcc1d5a3 100644 --- a/input/lsr/contemporary-glissando.ly +++ b/input/lsr/contemporary-glissando.ly @@ -11,6 +11,14 @@ utilizando una nota oculta y temporalización de cadenza. " doctitlees = "Glissando contemporáneo" + +%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a> +texidocde = " +Ein modernes Glissando ohne eine Endnote kann gesetzt werden, indem +eine Kadenz eingesetzt wird und die Endnote unsichtbar gemacht wird. + +" + doctitlede = "Moderne Glissandi" texidoc = " A contemporary glissando without a final note can be typeset using a diff --git a/input/lsr/controlling-the-vertical-ordering-of-scripts.ly b/input/lsr/controlling-the-vertical-ordering-of-scripts.ly index a33f84bb29..fb506cef5b 100644 --- a/input/lsr/controlling-the-vertical-ordering-of-scripts.ly +++ b/input/lsr/controlling-the-vertical-ordering-of-scripts.ly @@ -19,6 +19,21 @@ lugar. " doctitlees = "Controlar la ordenación vertical de las inscripciones" + +%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a> +texidocde = " +Die vertikale Anordnung von Beschriftungen wird mit der +@code{'script-priority}-Eigenschaft kontrolliert. Um so kleiner die +Zahl, umso näher wird die Beschriftung in Bezug auf die Note gesetzt. In +diesem Beispiel hat das @code{TextScript}-Objekt (das Kreuz) zuerst +die niedrigste Priorität, wird also auch am niedrigsten in dem ersten +Beispiel gesetzt. Im zweiten Fall hat der Praller (das @code{Script}) +die niedrigste Priorität, darum wird er am nächsten zum System gesetzt. +Wenn zwei Objekte die gleiche Priorität haben, wird ihre Reihenfolge +anhand ihres Auftretens in der Quelldatei entschieden. + +" + doctitlede = "Die vertikale Anordnung von Beschriftungen kontrollieren" texidoc = " The vertical ordering of scripts is controlled with the diff --git a/input/lsr/creating-arpeggios-across-notes-in-different-voices.ly b/input/lsr/creating-arpeggios-across-notes-in-different-voices.ly index 3cde987930..d0460e2e68 100644 --- a/input/lsr/creating-arpeggios-across-notes-in-different-voices.ly +++ b/input/lsr/creating-arpeggios-across-notes-in-different-voices.ly @@ -13,6 +13,15 @@ voces que están sobre el mismo pentagrama si el grabador " doctitlees = "Crear arpegios entre notas de voces distintas" + +%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a> +texidocde = " +Ein Arpeggio kann zwischen Noten aus unterschidlichen Stimmen auf demselben +System gezogen werden, wenn der @code{Span_arpeggio_engraver} in den +@code{Staff}-Kontext verschoben wird: + +" + doctitlede = "Arpeggios zwischen unterschiedlichen Stimmen erzeugen" texidoc = " An arpeggio can be drawn across notes in different voices on the same diff --git a/input/lsr/creating-cross-staff-arpeggios-in-a-piano-staff.ly b/input/lsr/creating-cross-staff-arpeggios-in-a-piano-staff.ly index 5690d8a066..9259c26867 100644 --- a/input/lsr/creating-cross-staff-arpeggios-in-a-piano-staff.ly +++ b/input/lsr/creating-cross-staff-arpeggios-in-a-piano-staff.ly @@ -12,6 +12,15 @@ cruce entre los pentagramas ajustando la propiedad " doctitlees = "Crear arpegios que se cruzan entre pentagramas dentro de un sistema de piano" + +%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a> +texidocde = " +Arpeggio über mehrere Systeme können in anderen Kontexten als dem +@code{PianoStaff} erstellt werden, wenn der @code{Span_arpeggio_engraver} +in den @code{Score}-Kontext eingefügt wird. + +" + doctitlede = "Arpeggio über mehrere Systeme in anderen Kontexten" texidoc = " In a @code{PianoStaff}, it is possible to let an arpeggio cross between diff --git a/input/lsr/creating-cross-staff-arpeggios-in-other-contexts.ly b/input/lsr/creating-cross-staff-arpeggios-in-other-contexts.ly index 4ad262fe54..fdb326a137 100644 --- a/input/lsr/creating-cross-staff-arpeggios-in-other-contexts.ly +++ b/input/lsr/creating-cross-staff-arpeggios-in-other-contexts.ly @@ -12,6 +12,16 @@ contextos distintos a @code{PianoStaff} si se incluye el grabador " doctitlees = "Creación de arpegios que se cruzan entre pentagramas dentro de otros contextos" + +%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a> + texidocde = " +In einem Klaviersystem (@code{PianoStaff}) ist es möglich, ein Arpeggio +zwischen beiden Systemen zu verbinden, indem die +@code{PianoStaff.connectArpeggios}-Eigenschaft gesetzt wird. + + +" + doctitlede = "Arpeggio zwischen Systemen in einem Klaviersystem erstellen" texidoc = " Cross-staff arpeggios can be created in contexts other than diff --git a/input/lsr/defining-predefined-fretboards-for-other-instruments.ly b/input/lsr/defining-predefined-fretboards-for-other-instruments.ly index da647564c0..7a3d0ee7cc 100644 --- a/input/lsr/defining-predefined-fretboards-for-other-instruments.ly +++ b/input/lsr/defining-predefined-fretboards-for-other-instruments.ly @@ -2,6 +2,24 @@ %% This file is in the public domain. \version "2.11.62" \header { + 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" + lsrtags = "fretted-strings" texidoc = "Predefined fret diagrams can be added for new instruments in addition to the standards used for guitar. This file shows how diff --git a/input/lsr/engraving-ties-manually.ly b/input/lsr/engraving-ties-manually.ly index badd680207..e8ba3f7743 100644 --- a/input/lsr/engraving-ties-manually.ly +++ b/input/lsr/engraving-ties-manually.ly @@ -14,6 +14,18 @@ espacios de pentagrama, y el segundo número indica la dirección (1 = hacia arriba, -1 = hacia abajo). " + +%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a> +texidocde = " +Überbindungen können manuell gesetzt werden, indem man die +@code{tie-configuration}-Eigenschaft des @code{TieColumn}-Objekts +beeinflusst. Die erste Zahl zeigt den Abstand von der Mitte in +Notensystemabständen an, die zweite Zahl zeigt die Richtung an (1 = nach oben, +-1 = nach unten). + +" + doctitlede = "Bindebögen manuell setzen" + texidoc = " Ties may be engraved manually by changing the @code{tie-configuration} property of the @code{TieColumn} object. The first number indicates the diff --git a/input/lsr/entering-several-tuplets-using-only-one--times-command.ly b/input/lsr/entering-several-tuplets-using-only-one--times-command.ly index 56dd6ee9f8..ff96bb4f83 100644 --- a/input/lsr/entering-several-tuplets-using-only-one--times-command.ly +++ b/input/lsr/entering-several-tuplets-using-only-one--times-command.ly @@ -22,6 +22,7 @@ Para ver más inforamción sobre @code{make-moment}, véase " +%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a> texidocde = " Die Eigenschaft @code{tupletSpannerDuration} bestimmt, wie lange jede der N-tolen innerhalb der Klammern nach dem @code{\\times}-Befehl diff --git a/input/lsr/flat-flags-and-beam-nibs.ly b/input/lsr/flat-flags-and-beam-nibs.ly index a5ca3e0322..1929fa2121 100644 --- a/input/lsr/flat-flags-and-beam-nibs.ly +++ b/input/lsr/flat-flags-and-beam-nibs.ly @@ -5,6 +5,57 @@ \header { lsrtags = "rhythms" + texidoces = " + Son posibles tanto los corchetes rectos sobre notas sueltas como +extremos de barra sueltos en figuras unidas, con una combinación de +@code{stemLeftBeamCount}, @code{stemRightBeamCount} e indicadores de +barra @code{[ ]} emparejados. + + + + +Para corchetes rectos que apunten a la derecha sobre notas sueltas, +use indicadores de barra emparejados @code{[ ]} y establezca +@code{stemLeftBeamCount} a cero (véase el ejemplo 1). + + + + +Para corchetes rectos que apunten a la izquierda, establezca en su +lugar @code{stemRightBeamCount} (ejemplo 2). + + + + +Para extremos sueltos que apunten a la derecha al final de un conjunto +de notas unidas, establezca @code{stemRightBeamCount} a un valor +positivo. Y para extremos sueltos que apunten a la izquierda al +principio de un conjunto de notas unidas, establezca +@code{stemLeftBeamCount} en su lugar (ejemplo 3). + + + + +A veces, para una nota suelta rodeada de silencios tiene sentido que +lleve los dos extremos sueltos del corchete plano, apuntando a derecha +e izquierda. Hágalo solamente con indicadores de barra emparejados +@code{[ ]} (ejemplo 4). + + + + +(Observe que @code{\\set stemLeftBeamCount} siempre equivale a +@code{\\once \\set}. En otras palabras, los ajustes de la cantidad de +barras no se recuerdan, y por ello el par de corchetes planos +aplicados a la nota Do semicorchea @code{c'16 [ ]} del último ejemplo +no tiene nada que ver con el @code{\\set} de dos notas por detrás.) + + + + +" + doctitlees = "Corchetes rectos y extremos de barra sueltos" + texidoc = " Flat flags on lone notes and beam nibs at the ends of beamed figures are both possible with a combination of @code{stemLeftBeamCount}, diff --git a/input/lsr/grid-lines--changing-their-appearance.ly b/input/lsr/grid-lines--changing-their-appearance.ly index 2c204b2d44..ac360817e7 100644 --- a/input/lsr/grid-lines--changing-their-appearance.ly +++ b/input/lsr/grid-lines--changing-their-appearance.ly @@ -20,43 +20,44 @@ properties. doctitle = "Grid lines: changing their appearance" } % begin verbatim -\layout { - \context { - \Staff - % set up grids - \consists "Grid_point_engraver" - % set the grid interval to one quarter note - gridInterval = #(ly:make-moment 1 4) - } -} - -\new Score \with { - \consists "Grid_line_span_engraver" - % this moves them to the right half a staff space - \override NoteColumn #'X-offset = #-0.5 -} - -\new ChoirStaff << - \new Staff { - \relative c'' { - \stemUp - c'4. d8 e8 f g4 +\score { + \new ChoirStaff << + \new Staff { + \relative c'' { + \stemUp + c'4. d8 e8 f g4 + } } - } - \new Staff { - \relative c { - % this moves them up one staff space from the default position - \override Score.GridLine #'extra-offset = #'(0.0 . 1.0) - \stemDown - \clef bass - \once \override Score.GridLine #'thickness = #5.0 - c4 - \once \override Score.GridLine #'thickness = #1.0 - g' - \once \override Score.GridLine #'thickness = #3.0 - f - \once \override Score.GridLine #'thickness = #5.0 - e + \new Staff { + \relative c { + % this moves them up one staff space from the default position + \override Score.GridLine #'extra-offset = #'(0.0 . 1.0) + \stemDown + \clef bass + \once \override Score.GridLine #'thickness = #5.0 + c4 + \once \override Score.GridLine #'thickness = #1.0 + g'4 + \once \override Score.GridLine #'thickness = #3.0 + f4 + \once \override Score.GridLine #'thickness = #5.0 + e4 + } + } + >> + \layout { + \context { + \Staff + % set up grids + \consists "Grid_point_engraver" + % set the grid interval to one quarter note + gridInterval = #(ly:make-moment 1 4) + } + \context { + \Score + \consists "Grid_line_span_engraver" + % this moves them to the right half a staff space + \override NoteColumn #'X-offset = #-0.5 } } ->> +} diff --git a/input/lsr/grid-lines--emphasizing-rhythms-and-notes-synchronization.ly b/input/lsr/grid-lines--emphasizing-rhythms-and-notes-synchronization.ly index 1f547ff678..04cb25130d 100644 --- a/input/lsr/grid-lines--emphasizing-rhythms-and-notes-synchronization.ly +++ b/input/lsr/grid-lines--emphasizing-rhythms-and-notes-synchronization.ly @@ -15,7 +15,7 @@ las líneas sean más cortas, como en este fragmento de código. doctitlees = "Líneas de rejilla: destacar ritmos y la relación temporal entre notas" texidoc = " -Regular vertical lines can be drawn between staves to show notes +Regular vertical lines can be drawn between staves to show note synchronization; however, in case of monophonic music, you may want to make the second stave invisible, and make the lines shorter like in this snippet. @@ -24,62 +24,50 @@ this snippet. doctitle = "Grid lines: emphasizing rhythms and notes synchronization" } % begin verbatim -%% sets of grid -\layout { - \context { - \Staff - \consists "Grid_point_engraver" - gridInterval = #(ly:make-moment 1 8) -%% lines length - \override GridPoint #'Y-extent = #'(6 . 0) - } - \context { - \StaffGroup - \remove "System_start_delimiter_engraver" - } +\score { + \new ChoirStaff { + \relative c'' << + \new Staff { + \time 12/8 + \stemUp + c4. d8 e8 f g4 f8 e8. d16 c8 + } + \new Staff { + % hides staff and notes so that only the grid lines are visible + \hideNotes + \override Staff.BarLine #'transparent = ##t + \override Staff.StaffSymbol #'line-count = #0 + \override Staff.TimeSignature #'transparent = ##t + \override Staff.Clef #'transparent = ##t + + % dummy notes to force regular note spacing + \once \override Score.GridLine #'thickness = #4.0 + c8 c c + \once \override Score.GridLine #'thickness = #3.0 + c8 c c + \once \override Score.GridLine #'thickness = #4.0 + c8 c c + \once \override Score.GridLine #'thickness = #3.0 + c8 c c + } + >> + } + \layout { + \context { + \Score + \consists "Grid_line_span_engraver" + % center grid lines horizontally below note heads + \override NoteColumn #'X-offset = #-0.5 + } + \context { + \Staff + \consists "Grid_point_engraver" + gridInterval = #(ly:make-moment 1 8) + % set line length and positioning: + % two staff spaces above center line on hidden staff + % to four spaces below center line on visible staff + \override GridPoint #'Y-extent = #'(2 . -4) + } + ragged-right = ##t + } } - -\layout { - ragged-right = ##t -} -\new Score -\with { - \consists "Grid_line_span_engraver" -%% centers grid lines horizontally below noteheads - \override NoteColumn #'X-offset = #-0.5 -} - -\new ChoirStaff << - \new Staff - { - \time 12/8 - \stemUp - \relative { - c'4. d8 e8 f g4 f8 e8.[ d16 c8] } - } - \new Staff - { -%% making sure the lines will be placed outside the Staff - \override Score.GridLine #'extra-offset = #'( 0.0 . -4.0 ) - -%% hides staff and notes so that only the grid lines are visible - \override NoteHead #'transparent = ##t - \override NoteHead #'no-ledgers = ##t - \override Stem #'transparent = ##t - \override Beam #'transparent = ##t - \override Staff.BarLine #'transparent = ##t - \override Staff.StaffSymbol #'line-count = #0 - \override Staff.TimeSignature #'transparent = ##t - \override Staff.Clef #'transparent = ##t - -% you have to put 'dummy' notes here to force regular grid spacing... - \once \override Score.GridLine #'thickness = #4.0 - c8 c8 c8 - \once \override Score.GridLine #'thickness = #3.0 - c8 c8 c8 - \once \override Score.GridLine #'thickness = #4.0 - c8 c8 c8 - \once \override Score.GridLine #'thickness = #3.0 - c8 c8 c8 - } ->> diff --git a/input/lsr/grouping-beats.ly b/input/lsr/grouping-beats.ly index e25afd8de3..0ac2183c05 100644 --- a/input/lsr/grouping-beats.ly +++ b/input/lsr/grouping-beats.ly @@ -11,6 +11,14 @@ Los patrones de barrado se pueden alterar con la propiedad " doctitlees = "Agrupar los pulsos" + +%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a> +texidocde = " +Balkengruppen können mit der @code{beatGrouping}-Eigenschaft geändert +werden: + +" + doctitlede = "Notengruppen" texidoc = " Beaming patterns may be altered with the @code{beatGrouping} property: diff --git a/input/lsr/guitar-strum-rhythms.ly b/input/lsr/guitar-strum-rhythms.ly index a065b4c7e8..83737a5640 100644 --- a/input/lsr/guitar-strum-rhythms.ly +++ b/input/lsr/guitar-strum-rhythms.ly @@ -10,6 +10,14 @@ además de las notas de la melodía, acordes y diagramas de posiciones. " doctitlees = "Ritmos rasgueados de guitarra" +%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a> + texidocde = " +In Guitarrennotation kann neben Melodie, Akkordbezeichnungen und +Bunddiagrammen auch der Schlagrhythmus angegeben werden. + +" + doctitldee = "Schlagrhythmus für Guitarren" + lsrtags = "rhythms,fretted-strings" texidoc = " For guitar music, it is possible to show strum rhythms, along diff --git a/input/lsr/hiding-the-extender-line-for-text-dynamics.ly b/input/lsr/hiding-the-extender-line-for-text-dynamics.ly index a6db8a4cc0..9d1bc64927 100644 --- a/input/lsr/hiding-the-extender-line-for-text-dynamics.ly +++ b/input/lsr/hiding-the-extender-line-for-text-dynamics.ly @@ -12,6 +12,15 @@ Esta línea se puede suprimir de la siguiente manera: " doctitlees = "Ocultar la línea de extensión de las expresiones textuales de dinámica" + +%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a> +texidocde = " +Dynamik-Texte (wie cresc. und dim.) werden mit einer gestrichelten Linie +gesetzt, die ihre Dauer anzeigt. Diese Linie kann auf foldenge Weise +unterdrückt werden: + +" + doctitlede = "Crescendo-Linien von Dynamik-Texten unterdrücken" texidoc = " Text style dynamic changes (such as cresc. and dim.) are printed with a diff --git a/input/lsr/inserting-a-caesura.ly b/input/lsr/inserting-a-caesura.ly index 97105b9383..090978591c 100644 --- a/input/lsr/inserting-a-caesura.ly +++ b/input/lsr/inserting-a-caesura.ly @@ -9,6 +9,14 @@ una marca de cesura curva. " doctitlees = "Insertar una cesura" + +%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a> + texidocde = " +Zäsurzeichen können erstellt werden, indem die @code{'text}-Eigenschaft +des @code{BreathingSign}-Objektes verändert wird. Ein gekrümmtes +Zäsurzeichen ist auch möglich. +" + doctitlede = "Eine Zäsur einfügen" lsrtags = "expressive-marks,tweaks-and-overrides" texidoc = " diff --git a/input/lsr/modifying-default-values-for-articulation-shorthand-notation.ly b/input/lsr/modifying-default-values-for-articulation-shorthand-notation.ly index 7f9ea84352..01a55b551a 100644 --- a/input/lsr/modifying-default-values-for-articulation-shorthand-notation.ly +++ b/input/lsr/modifying-default-values-for-articulation-shorthand-notation.ly @@ -19,6 +19,20 @@ semitrino en lugar del símboloo predeterminado +, asigne el valor " doctitlees = "Modificar los valores predeterminados para la notación abreviada de las articulaciones" +%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a> + texidocde = " +Die Abkürzungen sind in der Datei @samp{ly/script-init.ly} definiert, wo +den Variablen @code{dashHat}, @code{dashPlus}, @code{dashDash}, +@code{dashBar}, @code{dashLarger}, @code{dashDot} und +@code{dashUnderscore} Standardwerte zugewiesen werden. Diese Standardwerte +können verändert werden. Um zum Beispiel die Abkürzung +@code{-+} (@code{dashPlus}) mit dem Triller anstatt mit dem +-Symbol zu +assoziieren, muss der Wert @code{trill} der Variable +@code{dashPlus} zugewiesen werden: + +" + doctitlede = "Die Standardwerte für Arkkikulationsabkürzungen verändern" + texidoc = " The shorthands are defined in @samp{ly/script-init.ly}, where the variables @code{dashHat}, @code{dashPlus}, @code{dashDash}, diff --git a/input/lsr/permitting-line-breaks-within-beamed-tuplets.ly b/input/lsr/permitting-line-breaks-within-beamed-tuplets.ly index a7a71dbc91..a400d96839 100644 --- a/input/lsr/permitting-line-breaks-within-beamed-tuplets.ly +++ b/input/lsr/permitting-line-breaks-within-beamed-tuplets.ly @@ -14,6 +14,7 @@ sincopados se deben barrar manualmente. " +%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a> texidocde = " Dieses künstliche Beispiel zeigt, wie sowohl automatische als auch manuelle Zeilenumbrüche innerhalb einer N-tole mit Balken erlaubt diff --git a/input/lsr/positioning-multi--measure-rests.ly b/input/lsr/positioning-multi--measure-rests.ly index 67d4af11e2..38344c0b86 100644 --- a/input/lsr/positioning-multi--measure-rests.ly +++ b/input/lsr/positioning-multi--measure-rests.ly @@ -13,6 +13,17 @@ impar están separados verticalmente. La colocación de los silencios multicompás se puede controlar como se ve a continuación: " + +texidocde = " +Anders als bei normalen Pausen gibt es keinen direkten Befehl, um die +vertikale Position von Ganztaktpausen zu beeinflussen, indem man sie an +eine Tonhöhe anhängt. In polyphoner Notation wird aber dennoch die +Position der Pausen von geraden und ungeraden Stimmen voneinander +unterschieden. Die Position von Ganztaktpausen kann wie folgt verändert +werden: + " + doctitlede = "Positionierung von Ganztaktpausen" + lsrtags = "rhythms,tweaks-and-overrides" texidoc = " Unlike ordinary rests, there is no predefined command diff --git a/input/lsr/printing-hairpins-using-al-niente-notation.ly b/input/lsr/printing-hairpins-using-al-niente-notation.ly index feaa06846f..f990166f11 100644 --- a/input/lsr/printing-hairpins-using-al-niente-notation.ly +++ b/input/lsr/printing-hairpins-using-al-niente-notation.ly @@ -12,6 +12,16 @@ Se pueden imprimir reguladores con un círculo en la punta " doctitlees = "Impresión de reguladores utilizando la notación «al niente»" + +%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a> + texidocde = " + Crescendo-Klammern können mit einem kleinen Kreis vor der Spitze + notiert werden (al niente = bis zum Nichts), indem die +@code{circled-tip}-Eigenschaft des @code{Hairpin}-Objekts auf +@code{#t} gesetzt wird. + +" + doctitlede = "Crescendo Klammern al niente schreiben" texidoc = " Hairpins may be printed with a circled tip (al niente notation) by diff --git a/input/lsr/printing-marks-on-every-staff.ly b/input/lsr/printing-marks-on-every-staff.ly index 31b0a2a623..c774a721ff 100644 --- a/input/lsr/printing-marks-on-every-staff.ly +++ b/input/lsr/printing-marks-on-every-staff.ly @@ -21,21 +21,21 @@ they may also be printed on every staff. doctitle = "Printing marks on every staff" } % begin verbatim -{ - \new Score \with { - \remove "Mark_engraver" - \remove "Staff_collecting_engraver" - } +\score { << - \new Staff \with { - \consists "Mark_engraver" - \consists "Staff_collecting_engraver" + \new Staff { c''1 \mark "molto" c'' } + \new Staff { c'1 \mark "molto" c' } + >> + \layout { + \context { + \Score + \remove "Mark_engraver" + \remove "Staff_collecting_engraver" } - { c''1 \mark "molto" c'' } - \new Staff \with { + \context { + \Staff \consists "Mark_engraver" \consists "Staff_collecting_engraver" } - { c'1 \mark "molto" c' } - >> + } } diff --git a/input/lsr/rhythms.snippet-list b/input/lsr/rhythms.snippet-list index 40a2222f25..0459ff64a7 100644 --- a/input/lsr/rhythms.snippet-list +++ b/input/lsr/rhythms.snippet-list @@ -36,6 +36,7 @@ rhythmic-slashes.ly automatic-beams-two-per-two-in-4-4-or-2-2-time-signature.ly using-beatlength-and-beatgrouping.ly three-sided-box.ly +beam-endings-in-score-context.ly flat-flags-and-beam-nibs.ly specifying-context-with-beatgrouping.ly skips-in-lyric-mode.ly diff --git a/input/lsr/setting-hairpin-behavior-at-bar-lines.ly b/input/lsr/setting-hairpin-behavior-at-bar-lines.ly index c4201f79f6..d3537b1e63 100644 --- a/input/lsr/setting-hairpin-behavior-at-bar-lines.ly +++ b/input/lsr/setting-hairpin-behavior-at-bar-lines.ly @@ -10,6 +10,15 @@ sobreescribiendo la propiedad @code{to-barline}. " doctitlees = "Establecer el comportamiento de los reguladores en las barras de compás" + +%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a> +texidocde = " +Wenn die Note, an welcher eine Crescendo-Klammer endet, die erste Note +eines Taktes ist, wird die Klammer an der vorhergehenden Tatklinie +beendet. Dieses Verhalten kann auch mit der Eigenschaft +@code{'to-barline} geändert werden: +" + doctitlede = "Das Verhalten von Crescendo-Klammern an Taktlinien beeinflussen" lsrtags = "expressive-marks" texidoc = "If the note which ends a hairpin falls on a downbeat, diff --git a/input/lsr/setting-the-minimum-length-of-hairpins.ly b/input/lsr/setting-the-minimum-length-of-hairpins.ly index e9e7749e0a..f29767f62b 100644 --- a/input/lsr/setting-the-minimum-length-of-hairpins.ly +++ b/input/lsr/setting-the-minimum-length-of-hairpins.ly @@ -12,6 +12,15 @@ modificando la propiedad @code{minimum-length} del objeto " doctitlees = "Ajustar la longitud mínima de los reguladores" + +%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a> +texidocde = " +Wenn Crescendo-Klammern zu kurz sind, können sie verlängert werden, indem +die @code{minimum-length}-Eigenschaft des @code{Hairpin}-Objektes +verändert wird. + +" + doctitlede = "Die Mindestlänge von Crescendo-Klammern bestimmen" texidoc = " If hairpins are too short, they can be lengthened by modifying the diff --git a/input/lsr/specifying-context-with-beatgrouping.ly b/input/lsr/specifying-context-with-beatgrouping.ly index e130e37e5f..7bcb9580c5 100644 --- a/input/lsr/specifying-context-with-beatgrouping.ly +++ b/input/lsr/specifying-context-with-beatgrouping.ly @@ -3,6 +3,15 @@ \version "2.11.62" \header { + texidoces = " +Mediante la especificación del contexto, el efecto de +@code{beatGrouping} puede limitarse al contexto especificado, y +sobreescribirse los valores establecidos en contextos de niveles más +altos: + +" + doctitlees = "Especificar el contexto con beatGrouping" + lsrtags = "rhythms" texidoc = " By specifying the context, the effect of @code{beatGrouping} can be diff --git a/input/lsr/sub-dividing-beams.ly b/input/lsr/sub-dividing-beams.ly index 83ed556424..5070d73eff 100644 --- a/input/lsr/sub-dividing-beams.ly +++ b/input/lsr/sub-dividing-beams.ly @@ -31,9 +31,10 @@ the beams into sub-groups by setting the property @code{subdivideBeams}. When set, multiple beams will be sub-divided at intervals defined by the current value of @code{beatLength} by reducing the multiple beams to just one beam between the sub-groups. Note that -@code{beatLength} defaults to a quarter note if not set explicitly. It -must be set to a fraction giving the duration of the beam sub-group -using the @code{make-moment} function, as shown here: +@code{beatLength} defaults to one over the denominator of the current +time signature if not set explicitly. It must be set to a fraction +giving the duration of the beam sub-group using the @code{make-moment} +function, as shown here: diff --git a/input/lsr/using-beatlength-and-beatgrouping.ly b/input/lsr/using-beatlength-and-beatgrouping.ly index 35369decd2..ce9b1b7459 100644 --- a/input/lsr/using-beatlength-and-beatgrouping.ly +++ b/input/lsr/using-beatlength-and-beatgrouping.ly @@ -3,6 +3,18 @@ \version "2.11.62" \header { + texidoces = " +La propiedad @code{measureLength} determina dónde se deben insertar +líneas divisorias y, con @code{beatLength} y @code{beatGrouping}, cómo +se deben generar las barras autoomáticas para las duraciones de barra +y compases para los que no hay ninguna regla definida para los finales +de barra. Este ejemplo muestra distintas dormas de controlar el +barrado mediante el establecimiento de estas propiedades. Las +explicaciones están en forma de comentarios dentro del código. + +" + doctitlees = "Utilización de beatLength y beatGrouping" + lsrtags = "rhythms" texidoc = " The property @code{measureLength} determines where bar lines diff --git a/input/lsr/using-double-slurs-for-legato-chords.ly b/input/lsr/using-double-slurs-for-legato-chords.ly index 02ff49c7eb..d2c46816ab 100644 --- a/input/lsr/using-double-slurs-for-legato-chords.ly +++ b/input/lsr/using-double-slurs-for-legato-chords.ly @@ -11,6 +11,14 @@ legato. Esto se puede conseguir estableciendo @code{doubleSlurs}. " doctitlees = "Utilizar ligaduras dobles para acordes legato" + +%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a> +texidocde = " +Einige Komponisten schreiben doppelte Bögen, wenn Legato-Akkorde notiert +werden. Das kann mit der Eigenschaft @code{doubleSlurs} erreicht werden. + +" + doctitlede = "Doppelte Bögen für Legato-Akkorde benutzen" texidoc = " Some composers write two slurs when they want legato chords. This can diff --git a/input/lsr/using-ties-with-arpeggios.ly b/input/lsr/using-ties-with-arpeggios.ly index e41c86478f..47fbcf399d 100644 --- a/input/lsr/using-ties-with-arpeggios.ly +++ b/input/lsr/using-ties-with-arpeggios.ly @@ -16,6 +16,18 @@ en principio, también se puede usar para notas normales consecutivas, como se muestra en este ejemplo. " + +%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a> + texidocde = " + Überbindungen werden teilweise benutzt, um Arpeggios zu notieren. In + diesem Fall stehen die übergebundenen Noten nicht unbedingt hintereinander. +Das Verhalten kann erreicht werden, indem die @code{tieWaitForNote}-Eigenschaft +auf @code{#t} gesetzt wird. Diese Funktion ist auch sinnvoll, um etwa +ein Tremolo mit einem Akkord zu überbinden, kann aber prinzipiell auch +für normale Überbindungen eingesetzt werden +" + doctitlede = "Überbingungen für Arpeggio genutzen" + texidoc = " Ties are sometimes used to write out arpeggios. In this case, two tied notes need not be consecutive. This can be achieved by setting the diff --git a/input/lsr/vertically-aligned-dynamics-and-textscripts.ly b/input/lsr/vertically-aligned-dynamics-and-textscripts.ly index 5048b5808e..63f1dca4bb 100644 --- a/input/lsr/vertically-aligned-dynamics-and-textscripts.ly +++ b/input/lsr/vertically-aligned-dynamics-and-textscripts.ly @@ -18,6 +18,21 @@ largo de su línea de base. " doctitlees = "Indicaciones dinámicas y textuales alineadas verticalmente" + +%% Translation of GIT committish :<6ce7f350682dfa99af97929be1dec6b9f1cbc01a> +texidocde = " +Indem man die @code{'Y-extent}-Eigenschaft auf einen passenden Wert setzt, +können alle @code{DynamicLineSpanner}-Objekte (Crescendo-Klammern und +Dynamik-Texte) (hairpins and dynamic texts) unabhängig von ihrer +wirklichen Ausdehnung an einem gemeinsamen Referenzpunkt ausgerichtet werden. +Auf diese Weise ist jedes Element vertikal ausgerichtet und der Notensatz +sieht ansprechender aus. + +Die gleiche Idee wird benutzt, um Textbeschriftungen an ihrer +Grundlinie auszurichten. + +" + doctitlede = "Vertikale Ausrichtung von Dynamik und Textbeschriftung beeinflussen" texidoc = " By setting the @code{'Y-extent} property to a suitable value, all diff --git a/input/regression/figured-bass-continuation-modifiers.ly b/input/regression/figured-bass-continuation-modifiers.ly new file mode 100644 index 0000000000..de92cdaf32 --- /dev/null +++ b/input/regression/figured-bass-continuation-modifiers.ly @@ -0,0 +1,21 @@ +\header { + + texidoc = "Figured bass extender lines shall be broken when a figure has + a different alteration, augmentation or diminishment." + +} + +\version "2.11.63" +\paper { + ragged-right = ##t +} + +<< + \relative \new Voice { + c8 c c c c c + } + \figures { + \bassFigureExtendersOn + <6 4 3>8 <6\\ 4! 3!> <6 4- 3+> <6/ 4\+ 3> <6 4\! 3+> <6\+ 4\+ 3++> + } +>> diff --git a/input/regression/musicxml/00-Basics.ily b/input/regression/musicxml/00-Basics.ily new file mode 100644 index 0000000000..08c6f05cb3 --- /dev/null +++ b/input/regression/musicxml/00-Basics.ily @@ -0,0 +1,11 @@ +\version "2.10.0" + +\header{ + texidoc = " +@section Basics (pitches, durations, ...) + +" +} + +% make sure the .png is generated. +\lyrics { "" } \ No newline at end of file diff --git a/input/regression/musicxml/00a-Basics-Pitches.xml b/input/regression/musicxml/00a-Basics-Pitches.xml index 9edd9ab787..176850dca3 100644 --- a/input/regression/musicxml/00a-Basics-Pitches.xml +++ b/input/regression/musicxml/00a-Basics-Pitches.xml @@ -4,7 +4,12 @@ Pitches and accidentals - Reinhold Kainhofer + + All pitches from G to c'''' in + ascending steps; First without accidentals, then with a sharp and then + with a flat accidental. Double alterations and cautionary accidentals + are tested at the end. + diff --git a/input/regression/musicxml/00b-Basics-Intervals.xml b/input/regression/musicxml/00b-Basics-Intervals.xml index e5f9ef4852..79d1430c62 100644 --- a/input/regression/musicxml/00b-Basics-Intervals.xml +++ b/input/regression/musicxml/00b-Basics-Intervals.xml @@ -3,6 +3,12 @@ "http://www.musicxml.org/dtds/partwise.dtd"> Various piches and interval sizes + + + All pitch intervals in ascending + jump size. + + MusicXML Part diff --git a/input/regression/musicxml/00c-Basics-Durations.xml b/input/regression/musicxml/00c-Basics-Durations.xml index c42439e04b..83b19ae8cc 100644 --- a/input/regression/musicxml/00c-Basics-Durations.xml +++ b/input/regression/musicxml/00c-Basics-Durations.xml @@ -4,7 +4,11 @@ Note durations - Reinhold Kainhofer + + All note durations, from long, + brevis, whole until 128th; First with their plain values, then dotted + and finally doubly-dotted. + diff --git a/input/regression/musicxml/00d-Basics-RestDurations.xml b/input/regression/musicxml/00d-Basics-RestDurations.xml index 1d942f528e..d23d2c385a 100644 --- a/input/regression/musicxml/00d-Basics-RestDurations.xml +++ b/input/regression/musicxml/00d-Basics-RestDurations.xml @@ -4,13 +4,17 @@ Rest unit test - Reinhold Kainhofer Public Domain Finale 2007 for Windows Dolet Light for Finale 2007 2007-10-26 + + All different rest lengths: A + two-bar multi-measure rest, a whole rest, a half, etc. until a + 128th-rest; Then the same with dotted durations. + diff --git a/input/regression/musicxml/00e-Basics-PitchedRests-PJB.xml b/input/regression/musicxml/00e-Basics-PitchedRests-PJB.xml index 1142b4a88b..165520d451 100644 --- a/input/regression/musicxml/00e-Basics-PitchedRests-PJB.xml +++ b/input/regression/musicxml/00e-Basics-PitchedRests-PJB.xml @@ -7,6 +7,13 @@ /usr/bin/vi 2007-02-02 + + Rests can have + explicit pitches, where they are displayed. The + first rest uses no explicit position and should use + the default position, all others are explicitly + positioned somewhere else. + MIDI Track 1 diff --git a/input/regression/musicxml/00f-Basics-Clefs.xml b/input/regression/musicxml/00f-Basics-Clefs.xml index 9e3e384da9..11eb38a8f7 100644 --- a/input/regression/musicxml/00f-Basics-Clefs.xml +++ b/input/regression/musicxml/00f-Basics-Clefs.xml @@ -11,6 +11,14 @@ Dolet Light for Finale 2007 2007-09-01 + + Various clefs: G, C, F, percussion, + TAB and none; some are also possible with octavation and on other + staff lines than their default (e.g. soprano/alto/tenor/bariton C + clefs); Each measure shows a different clef (measure 17 has the "none" + clef), only measure 18 has the same treble clef as measure + 1. + @@ -328,24 +336,6 @@ - - - TAB - 5 - - - - - C - 4 - - 4 - 1 - whole - - - - @@ -363,7 +353,7 @@ - + G diff --git a/input/regression/musicxml/00g-Basics-Keys.xml b/input/regression/musicxml/00g-Basics-Keys.xml index 7049164017..b8c0fb7ae0 100644 --- a/input/regression/musicxml/00g-Basics-Keys.xml +++ b/input/regression/musicxml/00g-Basics-Keys.xml @@ -3,6 +3,11 @@ "http://www.musicxml.org/dtds/partwise.dtd"> Different Key signatures + + + Various key signature: from 11 flats to 11 sharps (each one first one measure in major, then one measure in minor) + + MusicXML Part diff --git a/input/regression/musicxml/00h-Basics-TimeSignatures.xml b/input/regression/musicxml/00h-Basics-TimeSignatures.xml index 9439b47679..5ded630ad3 100644 --- a/input/regression/musicxml/00h-Basics-TimeSignatures.xml +++ b/input/regression/musicxml/00h-Basics-TimeSignatures.xml @@ -3,6 +3,11 @@ "http://www.musicxml.org/dtds/partwise.dtd"> Different time signatures + + + Various time signatures: 2/2 (alla breve), 4/4 (C), 2/2, 3/2, 2/4, 3/4, 4/4, 5/4, 3/8, 6/8, 12/8 + + MusicXML Part diff --git a/input/regression/musicxml/00i-Basics-NoKeyOrClef.xml b/input/regression/musicxml/00i-Basics-NoKeyOrClef.xml index 25e7bc4732..448f79f4bc 100644 --- a/input/regression/musicxml/00i-Basics-NoKeyOrClef.xml +++ b/input/regression/musicxml/00i-Basics-NoKeyOrClef.xml @@ -2,7 +2,13 @@ No key or clef given - + + + A score without + any key or clef defined. The default (4/4 in treble + clef) should be used. + + diff --git a/input/regression/musicxml/00j-Basics-NoTime-PJB.xml b/input/regression/musicxml/00j-Basics-NoTime-PJB.xml index e6c9ca066a..98f48b063a 100644 --- a/input/regression/musicxml/00j-Basics-NoTime-PJB.xml +++ b/input/regression/musicxml/00j-Basics-NoTime-PJB.xml @@ -2,8 +2,13 @@ - No time signature given - + No time signature given + + + A score without + a time signature (but with a key and clefs) + + diff --git a/input/regression/musicxml/00k-Basics-Backup.xml b/input/regression/musicxml/00k-Basics-Backup.xml index 8c2f7d92f4..81a6d449af 100644 --- a/input/regression/musicxml/00k-Basics-Backup.xml +++ b/input/regression/musicxml/00k-Basics-Backup.xml @@ -3,6 +3,14 @@ Backup not to 0 in second voice + + + Two voices with a backup, that + does not jump to the beginning for the measure for voice 2, but + somewhere in the middle. Voice 2 thus won't have any notes or rests + for the first beat of the measures. + + diff --git a/input/regression/musicxml/00l-Basics-MultiMeasureRests.xml b/input/regression/musicxml/00l-Basics-MultiMeasureRests.xml index e904ff081f..0f66541c5f 100644 --- a/input/regression/musicxml/00l-Basics-MultiMeasureRests.xml +++ b/input/regression/musicxml/00l-Basics-MultiMeasureRests.xml @@ -9,6 +9,10 @@ Dolet Light for Finale 2007 2007-11-26 + + Four multi-measure rests: 3 + measures, 15 measures, 1 measure, and 12 measures. + diff --git a/input/regression/musicxml/00l-Basics-Tie-PJB.xml b/input/regression/musicxml/00l-Basics-Tie-PJB.xml index e467ce7ab7..a2f85e0687 100644 --- a/input/regression/musicxml/00l-Basics-Tie-PJB.xml +++ b/input/regression/musicxml/00l-Basics-Tie-PJB.xml @@ -3,7 +3,11 @@ "http://www.musicxml.org/dtds/partwise.dtd"> A tie - + + + Two simple tied whole notes + + diff --git a/input/regression/musicxml/00m-MultimeasureRests-TimeSignatures.xml b/input/regression/musicxml/00m-MultimeasureRests-TimeSignatures.xml new file mode 100644 index 0000000000..3446ef5f91 --- /dev/null +++ b/input/regression/musicxml/00m-MultimeasureRests-TimeSignatures.xml @@ -0,0 +1,167 @@ + + + + Multi-measure rests (different time signatures) + + Reinhold Kainhofer + Public Domain + + Finale 2008 for Windows + Dolet Light for Finale 2008 + 2008-11-11 + + + Multi-Measure rests should always + be converted into durations that are a multiple of the time + signature. + + + + + MusicXML Part + + Acoustic Grand Piano + + + 1 + 1 + + + + + + + + 1 + + 0 + major + + + + G + 2 + + + 2 + + + + + 4 + 1 + + + + + + + 4 + 1 + + + + + + + + 3 + + + + + 3 + 1 + + + + + + + 3 + 1 + + + + + + + 3 + 1 + + + + + + + + 2 + + + + + 2 + 1 + + + + + + + 2 + 1 + + + + + + + + 2 + + + + + 4 + 1 + + + + + + + 4 + 1 + + + + + + + C + 5 + + 4 + 1 + whole + + + light-heavy + + + + + diff --git a/input/regression/musicxml/01-Chords.ily b/input/regression/musicxml/01-Chords.ily new file mode 100644 index 0000000000..4de0118e8e --- /dev/null +++ b/input/regression/musicxml/01-Chords.ily @@ -0,0 +1,11 @@ +\version "2.10.0" + +\header{ + texidoc = " +@section Chorded notes + +" +} + +% make sure the .png is generated. +\lyrics { "" } \ No newline at end of file diff --git a/input/regression/musicxml/01a-Chord-Rosegarden.xml b/input/regression/musicxml/01a-Chord-Rosegarden.xml index f953641244..4606341e1d 100644 --- a/input/regression/musicxml/01a-Chord-Rosegarden.xml +++ b/input/regression/musicxml/01a-Chord-Rosegarden.xml @@ -7,7 +7,11 @@ Rosegarden-4 - + + One simple chord + consisting of two notes. + + Chord test diff --git a/input/regression/musicxml/01b-Chords-Rosegarden.xml b/input/regression/musicxml/01b-Chords-Rosegarden.xml index aeb0b3b525..f8b0b162bb 100644 --- a/input/regression/musicxml/01b-Chords-Rosegarden.xml +++ b/input/regression/musicxml/01b-Chords-Rosegarden.xml @@ -7,6 +7,10 @@ Rosegarden-4 + + Some subsequent + (identical) two-note chords. + diff --git a/input/regression/musicxml/01c-Chords-Rosegarden.xml b/input/regression/musicxml/01c-Chords-Rosegarden.xml index c5be6e58ae..952752d88d 100644 --- a/input/regression/musicxml/01c-Chords-Rosegarden.xml +++ b/input/regression/musicxml/01c-Chords-Rosegarden.xml @@ -7,6 +7,10 @@ Rosegarden-4 + + Some three-note + chords, with various durations. + diff --git a/input/regression/musicxml/01d-Chords-SchubertStabatMater.xml b/input/regression/musicxml/01d-Chords-SchubertStabatMater.xml index 3dce2b83c2..d614b66b7d 100644 --- a/input/regression/musicxml/01d-Chords-SchubertStabatMater.xml +++ b/input/regression/musicxml/01d-Chords-SchubertStabatMater.xml @@ -7,6 +7,12 @@ Rosegarden-4 + + Chords in the + second measure, after several ornaments in the first + measure and a p at the beginning of the second + measure. + diff --git a/input/regression/musicxml/01e-Chords-PickupMeasures.xml b/input/regression/musicxml/01e-Chords-PickupMeasures.xml index 4b9c9d4060..c89c1d4233 100644 --- a/input/regression/musicxml/01e-Chords-PickupMeasures.xml +++ b/input/regression/musicxml/01e-Chords-PickupMeasures.xml @@ -2,9 +2,16 @@ - - Chord detection messed up - + + Chord detection messed up + + + + Check for proper chord detection + after a pickup measure (i.e. the first beat of the measure is not + aligned with multiples of the time signature! + + Piano diff --git a/input/regression/musicxml/01f-Chord-ElementInBetween.xml b/input/regression/musicxml/01f-Chord-ElementInBetween.xml new file mode 100644 index 0000000000..8ed49793ce --- /dev/null +++ b/input/regression/musicxml/01f-Chord-ElementInBetween.xml @@ -0,0 +1,92 @@ + + + + Elements between notes of a chord + + + Between the individual notes of + a chord there can be direction or harmony elements, which should be + properly assigned to the chord (or the position of the + chord). + + + + + Chord test + + 0 + + + 1 + 1 + + + + + + + 960 + + + G + 2 + + + + + A + 4 + + 960 + 1 + quarter + + + + + + + + + + F + 4 + 1 + + 960 + 1 + quarter + + + +

+ + + + + + D + 4 + + 960 + 1 + quarter + + + + 960 + 1 + quarter + + + + 1920 + 1 + half + + + + diff --git a/input/regression/musicxml/02-Notations-Articulations.ily b/input/regression/musicxml/02-Notations-Articulations.ily new file mode 100644 index 0000000000..39ed41a687 --- /dev/null +++ b/input/regression/musicxml/02-Notations-Articulations.ily @@ -0,0 +1,11 @@ +\version "2.10.0" + +\header{ + texidoc = " +@section Notations and Articulations + +" +} + +% make sure the .png is generated. +\lyrics { "" } \ No newline at end of file diff --git a/input/regression/musicxml/02a-Notations-MusicXML.xml b/input/regression/musicxml/02a-Notations-MusicXML.xml index 431a80ffc9..4b350a71fd 100644 --- a/input/regression/musicxml/02a-Notations-MusicXML.xml +++ b/input/regression/musicxml/02a-Notations-MusicXML.xml @@ -3,7 +3,13 @@ "http://www.musicxml.org/dtds/partwise.dtd"> MusicXML notations (attached to note) - + + + All <notation> elements + defined in MusicXML. The lyrics show the notation assigned to each + note. + + diff --git a/input/regression/musicxml/02b-Articulations-Texts-PJB.xml b/input/regression/musicxml/02b-Articulations-Texts-PJB.xml index 8e52b8d21c..bc54908c78 100644 --- a/input/regression/musicxml/02b-Articulations-Texts-PJB.xml +++ b/input/regression/musicxml/02b-Articulations-Texts-PJB.xml @@ -7,6 +7,10 @@ /usr/bin/vi 2007-02-01 + + Text markup: + different font sizes, weights and colors. + diff --git a/input/regression/musicxml/02c-MultipleNotationChildren-RFK.xml b/input/regression/musicxml/02c-MultipleNotationChildren-RFK.xml index 450201d2cc..8f7ecefd32 100644 --- a/input/regression/musicxml/02c-MultipleNotationChildren-RFK.xml +++ b/input/regression/musicxml/02c-MultipleNotationChildren-RFK.xml @@ -9,9 +9,9 @@ Hand-crafted MusicXML - + It should not make any difference whether two articulations are given - inside to different notation elements, inside two different articulations + inside two different notation elements, inside two different articulations children of the same notation element or inside the same articulations element. Thus, all three notes should have a staccato and an accent. diff --git a/input/regression/musicxml/02d-Arpeggio.xml b/input/regression/musicxml/02d-Arpeggio.xml index 97e33b15ff..3f92724e95 100644 --- a/input/regression/musicxml/02d-Arpeggio.xml +++ b/input/regression/musicxml/02d-Arpeggio.xml @@ -3,7 +3,12 @@ "http://www.musicxml.org/dtds/partwise.dtd"> Arpeggios in MusicXML - + + + Different Arpeggio directions + (normal, up, down, non-arpeggiate) + + diff --git a/input/regression/musicxml/03-Directions.ily b/input/regression/musicxml/03-Directions.ily new file mode 100644 index 0000000000..339b1b44a3 --- /dev/null +++ b/input/regression/musicxml/03-Directions.ily @@ -0,0 +1,11 @@ +\version "2.10.0" + +\header{ + texidoc = " +@section Dynamics and other single symbols + +" +} + +% make sure the .png is generated. +\lyrics { "" } \ No newline at end of file diff --git a/input/regression/musicxml/03a-Directions-MusicXML.xml b/input/regression/musicxml/03a-Directions-MusicXML.xml index 6863135b0d..f0994fa0ab 100644 --- a/input/regression/musicxml/03a-Directions-MusicXML.xml +++ b/input/regression/musicxml/03a-Directions-MusicXML.xml @@ -3,7 +3,13 @@ "http://www.musicxml.org/dtds/partwise.dtd"> MusicXML directions (attached to staff) - + + + All <direction> elements + defined in MusicXML. The lyrics for each note describes the direction + element assigned to that note. + + diff --git a/input/regression/musicxml/03b-AccordionRegistrations-MusicXML.xml b/input/regression/musicxml/03b-AccordionRegistrations-MusicXML.xml index ad6fa3c739..fa0a250afb 100644 --- a/input/regression/musicxml/03b-AccordionRegistrations-MusicXML.xml +++ b/input/regression/musicxml/03b-AccordionRegistrations-MusicXML.xml @@ -3,7 +3,12 @@ "http://www.musicxml.org/dtds/partwise.dtd"> Accordion registrations - + + + All possible accordion + registrations. + + diff --git a/input/regression/musicxml/03c-MetronomeMarks.xml b/input/regression/musicxml/03c-MetronomeMarks.xml index 0ce8208418..ffb76c172e 100644 --- a/input/regression/musicxml/03c-MetronomeMarks.xml +++ b/input/regression/musicxml/03c-MetronomeMarks.xml @@ -3,7 +3,12 @@ "http://www.musicxml.org/dtds/partwise.dtd"> Tempo markings - + + + Tempo Markings: note=bpm, + text (note=bpm), note=note, (note=note), (note=bpm) + + diff --git a/input/regression/musicxml/04-Spanners.ily b/input/regression/musicxml/04-Spanners.ily new file mode 100644 index 0000000000..8f57bf5e37 --- /dev/null +++ b/input/regression/musicxml/04-Spanners.ily @@ -0,0 +1,11 @@ +\version "2.10.0" + +\header{ + texidoc = " +@section Spanners + +" +} + +% make sure the .png is generated. +\lyrics { "" } diff --git a/input/regression/musicxml/04a-Spanners-Finale.xml b/input/regression/musicxml/04a-Spanners-Finale.xml index 30ab933783..573ebf6783 100644 --- a/input/regression/musicxml/04a-Spanners-Finale.xml +++ b/input/regression/musicxml/04a-Spanners-Finale.xml @@ -11,6 +11,9 @@ Dolet Light for Finale 2007 2007-08-31 + + Several spanners defined in MusicXML + diff --git a/input/regression/musicxml/04b-Glissando.xml b/input/regression/musicxml/04b-Glissando.xml index a9e0e0a7da..0e143098b1 100644 --- a/input/regression/musicxml/04b-Glissando.xml +++ b/input/regression/musicxml/04b-Glissando.xml @@ -3,7 +3,12 @@ "http://www.musicxml.org/dtds/partwise.dtd"> Glissando and Slide in MusicXML - + + + All different types of + glissando defined in MusicXML + + diff --git a/input/regression/musicxml/04c-Spanners-Noteedit.xml b/input/regression/musicxml/04c-Spanners-Noteedit.xml index a404b5e736..5862d7d1db 100644 --- a/input/regression/musicxml/04c-Spanners-Noteedit.xml +++ b/input/regression/musicxml/04c-Spanners-Noteedit.xml @@ -11,6 +11,9 @@ NoteEdit + + Some spanners, exported by NoteEdit + diff --git a/input/regression/musicxml/04d-Spanners-JScore.xml b/input/regression/musicxml/04d-Spanners-JScore.xml index 677879398f..f82b62acf6 100644 --- a/input/regression/musicxml/04d-Spanners-JScore.xml +++ b/input/regression/musicxml/04d-Spanners-JScore.xml @@ -11,6 +11,9 @@ JMSL's MusicXMLWriter by Nick Didkovsky. Java Music Specification Language by Nick Didkovsky and Phil Burk, (c) 2003 Nick Didkovsky, Phil Burk. Available from: http://www.algomusic.com + +Some spanners, exported by JMSL's MusicXMLWriter + diff --git a/input/regression/musicxml/04e-OctaveShifts-Finale.xml b/input/regression/musicxml/04e-OctaveShifts-Finale.xml index 3e93c60077..5d7e78307f 100644 --- a/input/regression/musicxml/04e-OctaveShifts-Finale.xml +++ b/input/regression/musicxml/04e-OctaveShifts-Finale.xml @@ -11,6 +11,9 @@ Dolet Light for Finale 2007 2007-09-14 + + All types of octave shifts (15ma, 15mb, 8va, 8vb) + diff --git a/input/regression/musicxml/04f-Slurs.xml b/input/regression/musicxml/04f-Slurs.xml new file mode 100644 index 0000000000..1da68d980d --- /dev/null +++ b/input/regression/musicxml/04f-Slurs.xml @@ -0,0 +1,159 @@ + + + + Slurs + + Reinhold Kainhofer + Public Domain + + Finale 2008 for Windows + Dolet Light for Finale 2008 + 2008-11-11 + + + A note can be the end of one + slur and the start of a new slur. Also, in MusicXML, nested slurs + are possible. + + + + + MusicXML Part + + Grand Piano + + + 1 + 1 + + + + + + + + 1 + + 0 + major + + + + G + 2 + + + + + G + 4 + + 1 + 1 + quarter + + + + + + + C + 5 + + 1 + 1 + quarter + + + + + + + + A + 4 + + 1 + 1 + quarter + + + + + + + + G + 4 + + 1 + 1 + quarter + + + + + + + + + + G + 4 + + 1 + 1 + quarter + + + + + + + C + 5 + + 1 + 1 + quarter + + + + + + + A + 4 + + 1 + 1 + quarter + up + + + + + + + G + 4 + + 1 + 1 + quarter + up + + + + + + light-heavy + + + + + diff --git a/input/regression/musicxml/04g-Trill-EndingOnGraceNote-Finale.xml b/input/regression/musicxml/04g-Trill-EndingOnGraceNote-Finale.xml new file mode 100644 index 0000000000..b74ff00d19 --- /dev/null +++ b/input/regression/musicxml/04g-Trill-EndingOnGraceNote-Finale.xml @@ -0,0 +1,159 @@ + + + + Sonata No. 2 + + Simon Bielman + + Finale 2007 for Windows + Dolet Light for Finale 2007 + 2008-08-20 + + + A trill spanner that ends on an + after-grace note. + + + + + Piano + + Acoustic Grand Piano + + + 1 + 1 + + + + + + + + 336 + + 0 + major + + + 2 + + G + 2 + + + F + 4 + + + + + E + 5 + + 336 + 1 + quarter + down + 1 + + + + + + + F + 1 + 5 + + 84 + 1 + 16th + sharp + down + 1 + begin + begin + + + + G + 5 + + 84 + 1 + 16th + down + 1 + end + end + + + + + + + + + + + + B + 5 + + 1 + 16th + up + 1 + + + + A + 5 + + 504 + 1 + quarter + + down + 1 + + + + + G + 5 + + 1 + 16th + up + 1 + begin + begin + + + + + A + 5 + + 1 + 16th + up + 1 + end + end + + + + + + + + + + diff --git a/input/regression/musicxml/05-Header.ily b/input/regression/musicxml/05-Header.ily new file mode 100644 index 0000000000..3c2ffbbd4c --- /dev/null +++ b/input/regression/musicxml/05-Header.ily @@ -0,0 +1,11 @@ +\version "2.10.0" + +\header{ + texidoc = " +@section Header information + +" +} + +% make sure the .png is generated. +\lyrics { "" } diff --git a/input/regression/musicxml/05a-HeaderQuotes-Finale.xml b/input/regression/musicxml/05a-HeaderQuotes-Finale.xml index e98b46b469..903cd2a3b9 100644 --- a/input/regression/musicxml/05a-HeaderQuotes-Finale.xml +++ b/input/regression/musicxml/05a-HeaderQuotes-Finale.xml @@ -10,6 +10,12 @@ "Hand-crafted" MusicXML file 2008-02-06 + + Several header fields and part + names can contain quotes ("). This test checks whether they are + converted/imported without problems (i.e. whether they are correctly + escaped when converting). + diff --git a/input/regression/musicxml/06-Lyrics.ily b/input/regression/musicxml/06-Lyrics.ily new file mode 100644 index 0000000000..c4e6ca6b8f --- /dev/null +++ b/input/regression/musicxml/06-Lyrics.ily @@ -0,0 +1,11 @@ +\version "2.10.0" + +\header{ + texidoc = " +@section Lyrics + +" +} + +% make sure the .png is generated. +\lyrics { "" } diff --git a/input/regression/musicxml/06a-Lyrics-Finale.xml b/input/regression/musicxml/06a-Lyrics-Finale.xml index b1fbd4474f..e4b76f4c0d 100644 --- a/input/regression/musicxml/06a-Lyrics-Finale.xml +++ b/input/regression/musicxml/06a-Lyrics-Finale.xml @@ -8,6 +8,9 @@ Dolet Light for Finale 2007 2007-08-29 + + Some notes with simple lyrics: Syllables, notes without a syllable, syllable spanners. + diff --git a/input/regression/musicxml/06b-MultipleLyrics-Finale.xml b/input/regression/musicxml/06b-MultipleLyrics-Finale.xml index f2d7c8d869..75ea3a0e5e 100644 --- a/input/regression/musicxml/06b-MultipleLyrics-Finale.xml +++ b/input/regression/musicxml/06b-MultipleLyrics-Finale.xml @@ -11,6 +11,11 @@ Dolet Light for Finale 2007 2007-08-31 + + Multiple (simple) lyrics. The + order of the exported stanzas is relevant (identified by the number + attribute in this test case) + diff --git a/input/regression/musicxml/06c-Lyrics-Pianostaff-Finale.xml b/input/regression/musicxml/06c-Lyrics-Pianostaff-Finale.xml index 98f33cdfb2..88c86f11eb 100644 --- a/input/regression/musicxml/06c-Lyrics-Pianostaff-Finale.xml +++ b/input/regression/musicxml/06c-Lyrics-Pianostaff-Finale.xml @@ -10,6 +10,11 @@ Dolet Light for Finale 2007 2007-08-29 + + Lyrics assigned to the voices of + a piano staff containing two simple staves. Each staff is assigned + exactly one lyrics line. + diff --git a/input/regression/musicxml/06d-Lyrics-Melisma-Finale.xml b/input/regression/musicxml/06d-Lyrics-Melisma-Finale.xml index f5f0b9cdf9..5bd8d25685 100644 --- a/input/regression/musicxml/06d-Lyrics-Melisma-Finale.xml +++ b/input/regression/musicxml/06d-Lyrics-Melisma-Finale.xml @@ -9,6 +9,11 @@ Dolet Light for Finale 2007 2007-10-23 + + How to treat lyrics and slurred + notes. Normally, a slurred group of notes is assigned only one lyrics + syllable. + diff --git a/input/regression/musicxml/06e-Lyrics-Chords-Finale.xml b/input/regression/musicxml/06e-Lyrics-Chords-Finale.xml index 6521be5908..cd4ded886d 100644 --- a/input/regression/musicxml/06e-Lyrics-Chords-Finale.xml +++ b/input/regression/musicxml/06e-Lyrics-Chords-Finale.xml @@ -9,6 +9,9 @@ Dolet Light for Finale 2007 2007-10-23 + + Assigning lyrics to chorded notes. + diff --git a/input/regression/musicxml/06f-Lyrics-GracedNotes-Finale.xml b/input/regression/musicxml/06f-Lyrics-GracedNotes-Finale.xml index d6fa55c1c0..91278b9531 100644 --- a/input/regression/musicxml/06f-Lyrics-GracedNotes-Finale.xml +++ b/input/regression/musicxml/06f-Lyrics-GracedNotes-Finale.xml @@ -9,6 +9,10 @@ Dolet Light for Finale 2007 2007-10-27 + + Grace notes shall not mess up the + lyrics, and they shall not be assigned a syllable. + diff --git a/input/regression/musicxml/06g-Lyrics-NameNumber.xml b/input/regression/musicxml/06g-Lyrics-NameNumber.xml index 1d9494f4f2..c383bf4504 100644 --- a/input/regression/musicxml/06g-Lyrics-NameNumber.xml +++ b/input/regression/musicxml/06g-Lyrics-NameNumber.xml @@ -5,6 +5,15 @@ Lyrics attributes: name and number Reinhold Kainhofer + + A lyrics syllable can have both + a number and a name attribute. The question is: What should be used + to put syllables of the same voice together. This example uses + different number/name combinations to check how different + applications handle this unspecified case (The advice on the + MusicXML mailing list was "there is no correct way, each + application can do what it thinks is best"). + diff --git a/input/regression/musicxml/06h-Lyrics-BeamsMelismata.xml b/input/regression/musicxml/06h-Lyrics-BeamsMelismata.xml index b369be229e..90cf992a0a 100644 --- a/input/regression/musicxml/06h-Lyrics-BeamsMelismata.xml +++ b/input/regression/musicxml/06h-Lyrics-BeamsMelismata.xml @@ -3,7 +3,13 @@ "http://www.musicxml.org/dtds/partwise.dtd"> Lyrics and melismata - + + + Beaming or slurs can indicate + melismata for lyrics. Also make sure that notes without an explicit + syllable are treated as if they were part of a melisma. + + diff --git a/input/regression/musicxml/08-Multiple-Parts.ily b/input/regression/musicxml/08-Multiple-Parts.ily new file mode 100644 index 0000000000..037f071414 --- /dev/null +++ b/input/regression/musicxml/08-Multiple-Parts.ily @@ -0,0 +1,11 @@ +\version "2.10.0" + +\header{ + texidoc = " +@section Multiple parts (staves) + +" +} + +% make sure the .png is generated. +\lyrics { "" } diff --git a/input/regression/musicxml/08a-Partorder-Rosegarden.xml b/input/regression/musicxml/08a-Partorder-Rosegarden.xml index 90f6f9239d..883d94e7d7 100644 --- a/input/regression/musicxml/08a-Partorder-Rosegarden.xml +++ b/input/regression/musicxml/08a-Partorder-Rosegarden.xml @@ -7,6 +7,10 @@ Rosegarden-4 + + A piece with + four parts. Are they converted in the correct order? + diff --git a/input/regression/musicxml/08b-StaffGroups-Finale.xml b/input/regression/musicxml/08b-StaffGroups-Finale.xml index 2bf1b50f00..6e0c296d09 100644 --- a/input/regression/musicxml/08b-StaffGroups-Finale.xml +++ b/input/regression/musicxml/08b-StaffGroups-Finale.xml @@ -11,6 +11,13 @@ Dolet Light for Finale 2006 2007-08-25 + + A huge orchestra score with 28 + parts and different kinds of nested bracketed groups. Each part/group + is assigned a name and an abbreviation to be shown before the staff. + Also, most of the groups show unbroken barlines, while the barlines + are broken between the groups. + diff --git a/input/regression/musicxml/08c-More-than-10-parts-Rosegarden.xml b/input/regression/musicxml/08c-More-than-10-parts-Rosegarden.xml index 10c95818b3..edb5dfb37c 100644 --- a/input/regression/musicxml/08c-More-than-10-parts-Rosegarden.xml +++ b/input/regression/musicxml/08c-More-than-10-parts-Rosegarden.xml @@ -7,6 +7,11 @@ Rosegarden-4 + + A piece with + more than 10 parts to check whether the parts are + correctly sorted. + diff --git a/input/regression/musicxml/08d-NestedPartsBrackets-Finale.xml b/input/regression/musicxml/08d-NestedPartsBrackets-Finale.xml index f919e2ccd4..0eb84b8a7f 100644 --- a/input/regression/musicxml/08d-NestedPartsBrackets-Finale.xml +++ b/input/regression/musicxml/08d-NestedPartsBrackets-Finale.xml @@ -4,13 +4,17 @@ Part test - Reinhold Kainhofer Public Domain Finale 2007 for Windows Dolet Light for Finale 2007 2007-09-18 + + Two properly nested part groups: + One group (with a square bracket) goes from staff 2 to 4) and another + group (with a curly bracket) goes from staff 3 to 4. + diff --git a/input/regression/musicxml/08e-LinebrokenInstrumentNames-Finale.xml b/input/regression/musicxml/08e-LinebrokenInstrumentNames-Finale.xml index 1b1948f1f9..7344ecf732 100644 --- a/input/regression/musicxml/08e-LinebrokenInstrumentNames-Finale.xml +++ b/input/regression/musicxml/08e-LinebrokenInstrumentNames-Finale.xml @@ -11,6 +11,10 @@ Dolet Light for Finale 2007 2007-09-23 + + Part names and abbreviations can + contain line breaks. + diff --git a/input/regression/musicxml/08f-PianoStaff-PJB.xml b/input/regression/musicxml/08f-PianoStaff-PJB.xml index ad4023a951..426bb2325f 100644 --- a/input/regression/musicxml/08f-PianoStaff-PJB.xml +++ b/input/regression/musicxml/08f-PianoStaff-PJB.xml @@ -7,6 +7,9 @@ /usr/bin/vi 2007-01-22 + + A simple piano staff + diff --git a/input/regression/musicxml/08g-OverlappingPartGroups-Finale.xml b/input/regression/musicxml/08g-OverlappingPartGroups-Finale.xml index fd2ca4b52e..89bb325056 100644 --- a/input/regression/musicxml/08g-OverlappingPartGroups-Finale.xml +++ b/input/regression/musicxml/08g-OverlappingPartGroups-Finale.xml @@ -4,13 +4,18 @@ Overlapping part groups - In MusicXML groups can overlap (Grp1: #1-4, Grp2: #3-5) - In Lilypond, overlaps are not possible: Grp2 ends at #4 Finale 2007 for Windows Dolet Light for Finale 2007 2007-10-28 + + MusicXML allows for overlapping + part-groups, while many applications do not allow overlapping groups, + but require them to be properly nested. In this case, one group + (with a square bracket) goes from staff 2 to 4) and another group + (with a curly bracket) goes from staff 3 to 5. + diff --git a/input/regression/musicxml/09-Measures.ily b/input/regression/musicxml/09-Measures.ily new file mode 100644 index 0000000000..c8ab96cc1f --- /dev/null +++ b/input/regression/musicxml/09-Measures.ily @@ -0,0 +1,11 @@ +\version "2.10.0" + +\header{ + texidoc = " +@section Measures, Barlines, Repeats + +" +} + +% make sure the .png is generated. +\lyrics { "" } diff --git a/input/regression/musicxml/09a-SimpleRepeat-Finale.xml b/input/regression/musicxml/09a-SimpleRepeat-Finale.xml index cf34f14144..4600109deb 100644 --- a/input/regression/musicxml/09a-SimpleRepeat-Finale.xml +++ b/input/regression/musicxml/09a-SimpleRepeat-Finale.xml @@ -8,6 +8,10 @@ Dolet Light for Finale 2007 2007-10-17 + + A simple, repeated measure + (repeated 5 times) + diff --git a/input/regression/musicxml/09b-RepeatWithAlternatives-Finale.xml b/input/regression/musicxml/09b-RepeatWithAlternatives-Finale.xml index 23b0212698..76e39c9cc4 100644 --- a/input/regression/musicxml/09b-RepeatWithAlternatives-Finale.xml +++ b/input/regression/musicxml/09b-RepeatWithAlternatives-Finale.xml @@ -8,6 +8,10 @@ Dolet Light for Finale 2007 2007-10-17 + + A simple repeat with two + alternative endings (volta brackets). + diff --git a/input/regression/musicxml/09c-Barlines-Finale.xml b/input/regression/musicxml/09c-Barlines-Finale.xml index 611760a819..4c0849a3ec 100644 --- a/input/regression/musicxml/09c-Barlines-Finale.xml +++ b/input/regression/musicxml/09c-Barlines-Finale.xml @@ -11,6 +11,10 @@ Dolet Light for Finale 2007 2007-09-21 + + Different types of (non-repeat) + barlines. + diff --git a/input/regression/musicxml/09d-RepeatMultipleTimes-Finale.xml b/input/regression/musicxml/09d-RepeatMultipleTimes-Finale.xml index 6cbe6db71f..1bb4cb8c45 100644 --- a/input/regression/musicxml/09d-RepeatMultipleTimes-Finale.xml +++ b/input/regression/musicxml/09d-RepeatMultipleTimes-Finale.xml @@ -8,6 +8,9 @@ Dolet Light for Finale 2007 2007-10-19 + + Repeats can also be nested. + diff --git a/input/regression/musicxml/09e-Alternatives-Finale.xml b/input/regression/musicxml/09e-Alternatives-Finale.xml index dbbb9d4946..25a96a5af9 100644 --- a/input/regression/musicxml/09e-Alternatives-Finale.xml +++ b/input/regression/musicxml/09e-Alternatives-Finale.xml @@ -9,6 +9,10 @@ Dolet Light for Finale 2007 2007-10-15 + + Nested repeats, each with + alternative endings. + diff --git a/input/regression/musicxml/09f-Repeats-Finale.xml b/input/regression/musicxml/09f-Repeats-Finale.xml index ec5bb43885..9272c6935f 100644 --- a/input/regression/musicxml/09f-Repeats-Finale.xml +++ b/input/regression/musicxml/09f-Repeats-Finale.xml @@ -11,6 +11,11 @@ Dolet Light for Finale 2007 2007-08-31 + + Some more nested repeats with + alternatives. The barline between measure 7 and 8 will probably be + messed up! (Should be a repeat on both sides!) + diff --git a/input/regression/musicxml/09g-Endings-Finale.xml b/input/regression/musicxml/09g-Endings-Finale.xml index 82b4c5524a..7e0453971e 100644 --- a/input/regression/musicxml/09g-Endings-Finale.xml +++ b/input/regression/musicxml/09g-Endings-Finale.xml @@ -8,6 +8,12 @@ Dolet Light for Finale 2007 2007-10-13 + + Some more nested repeats with + alternatives, where the MusicXML file does not make sense in the + first place. How well are applications able to cope with improper + repeats and alternatives? + diff --git a/input/regression/musicxml/09h-RepeatsNoEndBar-Finale.xml b/input/regression/musicxml/09h-RepeatsNoEndBar-Finale.xml index 2dc1ef8f64..b2d94f5c48 100644 --- a/input/regression/musicxml/09h-RepeatsNoEndBar-Finale.xml +++ b/input/regression/musicxml/09h-RepeatsNoEndBar-Finale.xml @@ -9,6 +9,10 @@ Dolet Light for Finale 2007 2007-10-23 + + A forward-repeating bar line + without an ending repeat bar. + diff --git a/input/regression/musicxml/09i-MidmeasureBarline.xml b/input/regression/musicxml/09i-MidmeasureBarline.xml index dc35c64f40..5d227bc340 100644 --- a/input/regression/musicxml/09i-MidmeasureBarline.xml +++ b/input/regression/musicxml/09i-MidmeasureBarline.xml @@ -7,6 +7,10 @@ + + Barlines can appear at + mid-measure positions! + diff --git a/input/regression/musicxml/09j-Midmeasure-Clef-Finale.xml b/input/regression/musicxml/09j-Midmeasure-Clef-Finale.xml index efe20ca588..d4508f1ee3 100644 --- a/input/regression/musicxml/09j-Midmeasure-Clef-Finale.xml +++ b/input/regression/musicxml/09j-Midmeasure-Clef-Finale.xml @@ -11,6 +11,9 @@ Dolet Light for Finale 2007 2007-09-22 + + A clef change in the middle of a measure + diff --git a/input/regression/musicxml/09k-Upbeats-ImplicitMeasures-Finale.xml b/input/regression/musicxml/09k-Upbeats-ImplicitMeasures-Finale.xml index c81bd38e73..955e98a9fd 100644 --- a/input/regression/musicxml/09k-Upbeats-ImplicitMeasures-Finale.xml +++ b/input/regression/musicxml/09k-Upbeats-ImplicitMeasures-Finale.xml @@ -9,6 +9,11 @@ Dolet Light for Finale 2007 2007-10-09 + + A 3/8 pickup measure, a measure + that is split into one (incomplete, only 2/4) measure and an implicit + measure, and an incomplete measure (containg 3/4). + diff --git a/input/regression/musicxml/09l-PickupMeasure-SecondVoiceMessup.xml b/input/regression/musicxml/09l-PickupMeasure-SecondVoiceMessup.xml index c69fdd1f89..b86502b529 100644 --- a/input/regression/musicxml/09l-PickupMeasure-SecondVoiceMessup.xml +++ b/input/regression/musicxml/09l-PickupMeasure-SecondVoiceMessup.xml @@ -3,10 +3,13 @@ "http://www.musicxml.org/dtds/partwise.dtd"> - Begin of second voice messed up with pickup measure + Pickup measure with two voices - Voice 2 should start at 2nd beat of first full measure + + Voice 2 should start at 2nd + beat of first full measure. + diff --git a/input/regression/musicxml/09m-MultiVoice-MidMeasureClefChange-Finale.xml b/input/regression/musicxml/09m-MultiVoice-MidMeasureClefChange-Finale.xml new file mode 100644 index 0000000000..96ae458068 --- /dev/null +++ b/input/regression/musicxml/09m-MultiVoice-MidMeasureClefChange-Finale.xml @@ -0,0 +1,433 @@ + + + + Sonata No. 2 + + Simon Bielman + + Finale 2007 for Windows + Dolet Light for Finale 2007 + 2008-08-20 + + + A multi-voice / multi-staff part + with a clef change in the middle of a measure and a <backward> + for voice 2 jumping back beyond that clef change. + + + + + Piano + + Acoustic Grand Piano + + + 1 + 1 + + + + + + + + 336 + + 0 + major + + + 2 + + G + 2 + + + F + 4 + + + + + F + 4 + + 168 + 1 + eighth + up + 1 + begin + + + + + + + + + D + 4 + + 168 + 1 + eighth + up + 1 + continue + + + + + + + + + B + 3 + + 168 + 1 + eighth + up + 1 + end + + + + + + + + + F + 4 + + + + + G + 3 + + 168 + 1 + eighth + down + 1 + + + + + + + F + 3 + + 336 + 1 + quarter + down + 1 + + + + + + 1008 + + + + 168 + 3 + eighth + 2 + + + + G + 2 + + 168 + 3 + eighth + up + 2 + begin + + + + + + + + + G + 2 + + 168 + 3 + eighth + up + 2 + end + + + + + + + + + G + 2 + + 168 + 3 + eighth + up + 2 + begin + + + + + + + A + 2 + + 84 + 3 + 16th + up + 2 + continue + begin + + + + G + 2 + + 84 + 3 + 16th + up + 2 + continue + continue + + + + F + 1 + 2 + + 84 + 3 + 16th + sharp + up + 2 + continue + continue + + + + G + 2 + + 84 + 3 + 16th + up + 2 + end + end + + + + + + light-light + + + + + + + G + 2 + + + + + E + 5 + + 168 + 1 + eighth + down + 1 + begin + + + + + + + + + + + + C + 5 + + 168 + 1 + eighth + down + 1 + continue + + + + + + + + + G + 4 + + 168 + 1 + eighth + down + 1 + end + + + + + + + + + G + 4 + + 168 + 1 + eighth + up + 1 + + + + + + + F + 4 + + 336 + 1 + quarter + up + 1 + + + + + + 1008 + + + + C + 3 + + 336 + 3 + quarter + down + 2 + + + + + E + 3 + + 336 + 3 + quarter + down + 2 + + + + + G + 3 + + 336 + 3 + quarter + down + 2 + + + + + C + 4 + + 336 + 3 + quarter + down + 2 + + + + 168 + 3 + eighth + 2 + + + + 336 + 3 + quarter + 2 + + + + G + 3 + + 168 + 3 + eighth + down + 2 + + + + + + + + + + + diff --git a/input/regression/musicxml/10-Multiple-Voices.ily b/input/regression/musicxml/10-Multiple-Voices.ily new file mode 100644 index 0000000000..987f6a058d --- /dev/null +++ b/input/regression/musicxml/10-Multiple-Voices.ily @@ -0,0 +1,11 @@ +\version "2.10.0" + +\header{ + texidoc = " +@section Multiple voices per staff + +" +} + +% make sure the .png is generated. +\lyrics { "" } diff --git a/input/regression/musicxml/10a-TwoVoicesOnStaff-Finale.xml b/input/regression/musicxml/10a-TwoVoicesOnStaff-Finale.xml index 400389b3f7..a8d838602c 100644 --- a/input/regression/musicxml/10a-TwoVoicesOnStaff-Finale.xml +++ b/input/regression/musicxml/10a-TwoVoicesOnStaff-Finale.xml @@ -11,6 +11,9 @@ Dolet Light for Finale 2007 2007-09-06 + + Two voices share one staff. Each voice is assigned some lyrics. + diff --git a/input/regression/musicxml/12-Tuplets.ily b/input/regression/musicxml/12-Tuplets.ily new file mode 100644 index 0000000000..86e8fa9601 --- /dev/null +++ b/input/regression/musicxml/12-Tuplets.ily @@ -0,0 +1,11 @@ +\version "2.10.0" + +\header{ + texidoc = " +@section Triplets, Tuplets + +" +} + +% make sure the .png is generated. +\lyrics { "" } diff --git a/input/regression/musicxml/12a-TripletsDuration-NoBracket-PJB.xml b/input/regression/musicxml/12a-TripletsDuration-NoBracket-PJB.xml index 0e255600b8..d4a6b638d8 100644 --- a/input/regression/musicxml/12a-TripletsDuration-NoBracket-PJB.xml +++ b/input/regression/musicxml/12a-TripletsDuration-NoBracket-PJB.xml @@ -7,6 +7,15 @@ /usr/bin/vi 2007-02-02 + + Some "triplets" + on the end of the first and in the second staff, using only + <time-modification>, but not explicit tuplet + bracket. Thus, the duration of the notes in the + second staff should be scaled properly in comparison + to staff 1, but no visual indication about the + tuplets is given. + MIDI Track 1 diff --git a/input/regression/musicxml/12b-Tuplets-Finale.xml b/input/regression/musicxml/12b-Tuplets-Finale.xml index e1d54e097f..a6d55dc69b 100644 --- a/input/regression/musicxml/12b-Tuplets-Finale.xml +++ b/input/regression/musicxml/12b-Tuplets-Finale.xml @@ -11,6 +11,11 @@ Dolet Light for Finale 2007 2007-09-14 + + Some tuplets (3:2, 3:2, 3:2, 4:2, + 4:1, 7:3, 6:2) with the default tuplet bracket displaying the number + of actual notes played. + diff --git a/input/regression/musicxml/13-Grace-Notes.ily b/input/regression/musicxml/13-Grace-Notes.ily new file mode 100644 index 0000000000..fc89633fcc --- /dev/null +++ b/input/regression/musicxml/13-Grace-Notes.ily @@ -0,0 +1,11 @@ +\version "2.10.0" + +\header{ + texidoc = " +@section Grace notes + +" +} + +% make sure the .png is generated. +\lyrics { "" } diff --git a/input/regression/musicxml/13a-GraceNotes-Finale.xml b/input/regression/musicxml/13a-GraceNotes-Finale.xml index afb34cbb26..aaaa663178 100644 --- a/input/regression/musicxml/13a-GraceNotes-Finale.xml +++ b/input/regression/musicxml/13a-GraceNotes-Finale.xml @@ -11,6 +11,11 @@ Dolet Light for Finale 2007 2007-09-16 + + Different kinds of grace notes: + acciaccatura, appoggiatura; beamed grace notes; grace notes with + accidentals; different durations of the grace notes. + diff --git a/input/regression/musicxml/13b-ChordAsGraceNote-Finale.xml b/input/regression/musicxml/13b-ChordAsGraceNote-Finale.xml index 8efa525f41..341d4e1ee8 100644 --- a/input/regression/musicxml/13b-ChordAsGraceNote-Finale.xml +++ b/input/regression/musicxml/13b-ChordAsGraceNote-Finale.xml @@ -11,6 +11,9 @@ Dolet Light for Finale 2007 2007-09-16 + + Chords as grace notes. + diff --git a/input/regression/musicxml/13c-GraceNote-MeasureEnd-Finale.xml b/input/regression/musicxml/13c-GraceNote-MeasureEnd-Finale.xml new file mode 100644 index 0000000000..50bbbe5ab2 --- /dev/null +++ b/input/regression/musicxml/13c-GraceNote-MeasureEnd-Finale.xml @@ -0,0 +1,100 @@ + + + + Sonata No. 2 + + Simon Bielman + + Finale 2007 for Windows + Dolet Light for Finale 2007 + 2008-08-20 + + + A grace note that appears at the + measure end (without any steal-from-* attribute set). Some + applications need to convert this into an after-grace. + + + + + Piano + + Acoustic Grand Piano + + + 1 + 1 + + + + + + + + 32 + + 0 + major + + + + G + 2 + + + + + E + 5 + + 64 + 1 + half + down + 1 + + + + E + 5 + + 64 + 1 + half + down + 1 + + + + + G + 5 + + 1 + 16th + up + 1 + begin + begin + + + + + A + 5 + + 1 + 16th + up + 1 + end + end + + + + + diff --git a/input/regression/musicxml/13d-AfterGrace.xml b/input/regression/musicxml/13d-AfterGrace.xml new file mode 100644 index 0000000000..aeb577cd2e --- /dev/null +++ b/input/regression/musicxml/13d-AfterGrace.xml @@ -0,0 +1,131 @@ + + + + Sonata No. 2 + + Simon Bielman + + Finale 2007 for Windows + Dolet Light for Finale 2007 + 2008-08-20 + + + Some grace notes and after-graces (indicated by steal-time-previous and steal-time-next). + + + + + Piano + + Acoustic Grand Piano + + + 1 + 1 + + + + + + + + 32 + + 0 + major + + + + G + 2 + + + + + E + 5 + + 64 + 1 + half + down + 1 + + + + + G + 5 + + 1 + 16th + up + 1 + + + + + A + 5 + + 1 + 16th + up + 1 + + + + + A + 5 + + 1 + 16th + up + 1 + + + + E + 5 + + 64 + 1 + half + down + 1 + + + + + G + 5 + + 1 + 16th + up + 1 + begin + begin + + + + + A + 5 + + 1 + 16th + up + 1 + end + end + + + + + diff --git a/input/regression/musicxml/14-Multi-Staff-Parts.ily b/input/regression/musicxml/14-Multi-Staff-Parts.ily new file mode 100644 index 0000000000..5f66b425bd --- /dev/null +++ b/input/regression/musicxml/14-Multi-Staff-Parts.ily @@ -0,0 +1,11 @@ +\version "2.10.0" + +\header{ + texidoc = " +@section One voice on multiple staves + +" +} + +% make sure the .png is generated. +\lyrics { "" } diff --git a/input/regression/musicxml/14a-MultistaffClefDynamics-Finale.xml b/input/regression/musicxml/14a-MultistaffClefDynamics-Finale.xml index 7c040fcd43..cfc6791a50 100644 --- a/input/regression/musicxml/14a-MultistaffClefDynamics-Finale.xml +++ b/input/regression/musicxml/14a-MultistaffClefDynamics-Finale.xml @@ -4,13 +4,17 @@ Piano staff with dynamics and one-staff clef changes - Reinhold Kainhofer Public Domain Finale 2007 for Windows Dolet Light for Finale 2007 2007-09-18 + + A piano staff with dynamics and + clef changes, that apply only to one voice or one staff, + respectively. + diff --git a/input/regression/musicxml/14b-DifferentKeys-PJB.xml b/input/regression/musicxml/14b-DifferentKeys-PJB.xml index e863e840f9..83d2eafbc8 100644 --- a/input/regression/musicxml/14b-DifferentKeys-PJB.xml +++ b/input/regression/musicxml/14b-DifferentKeys-PJB.xml @@ -7,6 +7,12 @@ /usr/bin/vi 2007-01-22 + + A piano staff + with different keys and clefs for each of its + staves. The keys and clefs for both staves are given + at the very beginning of the measure. + @@ -18,6 +24,7 @@ 96 0 + 2 2 G2 @@ -31,9 +38,6 @@ 1 384 - - 2 - B2 384 diff --git a/input/regression/musicxml/14b-DifferentKeysAfterBackup-PJB.xml b/input/regression/musicxml/14b-DifferentKeysAfterBackup-PJB.xml index 72abf7b4f7..58558825c6 100644 --- a/input/regression/musicxml/14b-DifferentKeysAfterBackup-PJB.xml +++ b/input/regression/musicxml/14b-DifferentKeysAfterBackup-PJB.xml @@ -7,6 +7,14 @@ /usr/bin/vi 2007-01-22 + + A piano staff + with different keys and clefs for each of its + staves. The key and clef for the second staff is + given only after a backward, just before the first + note of the second staff is given, but after the + whole measure for staff 1 has been given. + diff --git a/input/regression/musicxml/14c-StaffChange-Finale.xml b/input/regression/musicxml/14c-StaffChange-Finale.xml index 5ac8eff824..5ed14d87d8 100644 --- a/input/regression/musicxml/14c-StaffChange-Finale.xml +++ b/input/regression/musicxml/14c-StaffChange-Finale.xml @@ -4,13 +4,17 @@ Staff change in piano staff - The voice from the second staff has some notes/chords on the first staff - The final two chords have some notes on the first, some on the second staff Finale 2007 for Windows Dolet Light for Finale 2007 2007-10-27 + + Staff changes in a piano staff. + The voice from the second staff has some notes/chords on the first + staff. The final two chords have some notes on the first, some on + the second staff. + diff --git a/input/regression/musicxml/15-Percussion.ily b/input/regression/musicxml/15-Percussion.ily new file mode 100644 index 0000000000..4dc5aec651 --- /dev/null +++ b/input/regression/musicxml/15-Percussion.ily @@ -0,0 +1,11 @@ +\version "2.10.0" + +\header{ + texidoc = " +@section Percussion + +" +} + +% make sure the .png is generated. +\lyrics { "" } diff --git a/input/regression/musicxml/15a-Percussion-Finale.xml b/input/regression/musicxml/15a-Percussion-Finale.xml index b404932e63..8bb304ffd8 100644 --- a/input/regression/musicxml/15a-Percussion-Finale.xml +++ b/input/regression/musicxml/15a-Percussion-Finale.xml @@ -3,7 +3,14 @@ "http://www.musicxml.org/dtds/partwise.dtd"> Percussion Staves - + + + Three types of percussion staves: + A five-line staff with bass clef for Timpani, a five-line staff with + percussion clef, and a one-line percussion staff with only unpitched + notes. + + Timpani diff --git a/input/regression/musicxml/17-Guitar.ily b/input/regression/musicxml/17-Guitar.ily new file mode 100644 index 0000000000..e957743fd0 --- /dev/null +++ b/input/regression/musicxml/17-Guitar.ily @@ -0,0 +1,11 @@ +\version "2.10.0" + +\header{ + texidoc = " +@section Guitar notation + +" +} + +% make sure the .png is generated. +\lyrics { "" } diff --git a/input/regression/musicxml/17a-Chords-Finale.xml b/input/regression/musicxml/17a-Chords-Finale.xml index 385bd36d2c..d1f83915d2 100644 --- a/input/regression/musicxml/17a-Chords-Finale.xml +++ b/input/regression/musicxml/17a-Chords-Finale.xml @@ -9,6 +9,10 @@ Dolet Light for Finale 2007 2007-10-25 + + A normal staff with several + (complex) chord names displayed. + diff --git a/input/regression/musicxml/17b-Fretboards-Finale.xml b/input/regression/musicxml/17b-Fretboards-Finale.xml index bfd24c5e5f..0d2d12650d 100644 --- a/input/regression/musicxml/17b-Fretboards-Finale.xml +++ b/input/regression/musicxml/17b-Fretboards-Finale.xml @@ -9,6 +9,10 @@ Dolet Light for Finale 2007 2007-10-25 + + A staff with chord names and some + fretboards shown. (In Finaly, only the fretboards were shown!!!) + diff --git a/input/regression/musicxml/17c-ChordsFrets-Finale.xml b/input/regression/musicxml/17c-ChordsFrets-Finale.xml index 8a5de4414d..dbe9227b56 100644 --- a/input/regression/musicxml/17c-ChordsFrets-Finale.xml +++ b/input/regression/musicxml/17c-ChordsFrets-Finale.xml @@ -9,6 +9,12 @@ Dolet Light for Finale 2007 2007-10-26 + + A staff with chord names and some + fretboards shown. The fretboards can have an arbitrary number of + frets/strings, can start at an arbitrary fret and can even contain + fingering information. + diff --git a/input/regression/musicxml/17d-ChordsFretsOnMultistaff-Finale.xml b/input/regression/musicxml/17d-ChordsFretsOnMultistaff-Finale.xml index c96217bf28..6ba0c290ac 100644 --- a/input/regression/musicxml/17d-ChordsFretsOnMultistaff-Finale.xml +++ b/input/regression/musicxml/17d-ChordsFretsOnMultistaff-Finale.xml @@ -9,6 +9,11 @@ Dolet Light for Finale 2007 2007-10-26 + + Chords and fretboards assigned to + the voices in a multi-voice, multi-staff part. There should be fret + diagrams above each of the two staves. + diff --git a/input/regression/musicxml/17e-TabStaves-Finale.xml b/input/regression/musicxml/17e-TabStaves-Finale.xml index 0b878114e5..67bb52c7ba 100644 --- a/input/regression/musicxml/17e-TabStaves-Finale.xml +++ b/input/regression/musicxml/17e-TabStaves-Finale.xml @@ -9,6 +9,11 @@ Dolet Light for Finale 2007 2007-10-30 + + Some tablature staves, with + explicit fingering information and different string tunings given + in the MusicXML file. + diff --git a/input/regression/musicxml/17f-AllChordTypes.xml b/input/regression/musicxml/17f-AllChordTypes.xml index ba24bed6a3..c7a1634bef 100644 --- a/input/regression/musicxml/17f-AllChordTypes.xml +++ b/input/regression/musicxml/17f-AllChordTypes.xml @@ -3,7 +3,14 @@ "http://www.musicxml.org/dtds/partwise.dtd"> All MusicXML chord names/types with <root> - + + + All chord types defined in + MusicXML. The staff will only contain one c' note (NO chord) for + all of them, but the chord names should be properly + printed. + + MusicXML Part diff --git a/input/regression/musicxml/18-Figured-Bass.ily b/input/regression/musicxml/18-Figured-Bass.ily new file mode 100644 index 0000000000..23522431a8 --- /dev/null +++ b/input/regression/musicxml/18-Figured-Bass.ily @@ -0,0 +1,11 @@ +\version "2.10.0" + +\header{ + texidoc = " +@section Figured bass + +" +} + +% make sure the .png is generated. +\lyrics { "" } diff --git a/input/regression/musicxml/18a-FiguredBass.xml b/input/regression/musicxml/18a-FiguredBass.xml index b0a43eb94b..a7493c16e0 100644 --- a/input/regression/musicxml/18a-FiguredBass.xml +++ b/input/regression/musicxml/18a-FiguredBass.xml @@ -3,7 +3,17 @@ "http://www.musicxml.org/dtds/partwise.dtd"> Figured Bass - + + + Some figured bass containing + alterated figures, bracketed figures and slashed figures. The last + note contains an empty <figured-bass> element, which is + invalid MusicXML, to check how well applications cope with malformed + files. + + Note that this file does not contain any extenders! + + MusicXML Part diff --git a/input/regression/musicxml/19-Page-Layout.ily b/input/regression/musicxml/19-Page-Layout.ily new file mode 100644 index 0000000000..30e45e7b9f --- /dev/null +++ b/input/regression/musicxml/19-Page-Layout.ily @@ -0,0 +1,11 @@ +\version "2.10.0" + +\header{ + texidoc = " +@section Page layout + +" +} + +% make sure the .png is generated. +\lyrics { "" } diff --git a/input/regression/musicxml/19a-PageLayout-PrintMusic.xml b/input/regression/musicxml/19a-PageLayout-PrintMusic.xml index ac51b7fff1..4846212e0b 100644 --- a/input/regression/musicxml/19a-PageLayout-PrintMusic.xml +++ b/input/regression/musicxml/19a-PageLayout-PrintMusic.xml @@ -9,6 +9,11 @@ Dolet Light for PrintMusic 2008 2007-11-04 + + Several page layout settings: + paper size, margins, system margins and distances, different fonts, + etc. + diff --git a/input/regression/musicxml/20-Compressed-MusicXML.ily b/input/regression/musicxml/20-Compressed-MusicXML.ily new file mode 100644 index 0000000000..1ae142ed84 --- /dev/null +++ b/input/regression/musicxml/20-Compressed-MusicXML.ily @@ -0,0 +1,11 @@ +\version "2.10.0" + +\header{ + texidoc = " +@section Compressed MusicXML files + +" +} + +% make sure the .png is generated. +\lyrics { "" } diff --git a/input/regression/musicxml/20a-Compressed-MusicXML-Sample.mxl b/input/regression/musicxml/20a-Compressed-MusicXML-Sample.mxl deleted file mode 100644 index 0d41bf3eaa..0000000000 Binary files a/input/regression/musicxml/20a-Compressed-MusicXML-Sample.mxl and /dev/null differ diff --git a/input/regression/musicxml/20a-Compressed-MusicXML.mxl b/input/regression/musicxml/20a-Compressed-MusicXML.mxl new file mode 100644 index 0000000000..d709094487 Binary files /dev/null and b/input/regression/musicxml/20a-Compressed-MusicXML.mxl differ diff --git a/input/regression/musicxml/99-Compatibility.ily b/input/regression/musicxml/99-Compatibility.ily new file mode 100644 index 0000000000..3988198fa6 --- /dev/null +++ b/input/regression/musicxml/99-Compatibility.ily @@ -0,0 +1,11 @@ +\version "2.10.0" + +\header{ + texidoc = " +@section Compatibility with broken MusicXML + +" +} + +% make sure the .png is generated. +\lyrics { "" } diff --git a/input/regression/musicxml/99a-Sibelius5-IgnoreBeaming.xml b/input/regression/musicxml/99a-Sibelius5-IgnoreBeaming.xml index 07d97a88e6..d3f39f9fd9 100644 --- a/input/regression/musicxml/99a-Sibelius5-IgnoreBeaming.xml +++ b/input/regression/musicxml/99a-Sibelius5-IgnoreBeaming.xml @@ -9,6 +9,13 @@ + + Dolet 3 for + Sibelius (5.1) did not print out any closing beam + tags, only starting and continuing beam tags. For + such files, one either needs to ignore all beaming + information or close all beams + @@ -62,6 +69,27 @@ continue continue + + + F + 1 + 6 + + 96 + 1 + 32nd + continue + + + + F + 1 + 6 + + 384 + 1 + eighth + G @@ -71,9 +99,8 @@ 96 1 32nd - continue - continue - continue + begin + begin diff --git a/input/regression/musicxml/99b-Lyrics-BeamsMelismata-IgnoreBeams.xml b/input/regression/musicxml/99b-Lyrics-BeamsMelismata-IgnoreBeams.xml index 417faa724d..1dc3035081 100644 --- a/input/regression/musicxml/99b-Lyrics-BeamsMelismata-IgnoreBeams.xml +++ b/input/regression/musicxml/99b-Lyrics-BeamsMelismata-IgnoreBeams.xml @@ -8,6 +8,12 @@ Sibelius 5.1 Dolet 3.4 for Sibelius + + If we properly ignore all beaming + information from the Dolet 3 for Sibelius export file, make sure that + the lyrics syllables are still assigned to the correct + notes. + diff --git a/input/regression/musicxml/GNUmakefile b/input/regression/musicxml/GNUmakefile index ae9d27a768..92f44b6817 100644 --- a/input/regression/musicxml/GNUmakefile +++ b/input/regression/musicxml/GNUmakefile @@ -3,8 +3,17 @@ depth = ../../.. STEPMAKE_TEMPLATES=documentation texinfo tex LOCALSTEPMAKE_TEMPLATES=lilypond ly lysdoc musicxml +TITLE=Lilypond musicxml2ly Regression Tests + + +ILY_FILES = $(call src-wildcard,*.ily) +EXTRA_OUT_LY_FILES = ${ILY_FILES:%.ily=$(outdir)/%.ly} +EXTRA_DIST_FILES += $(ILY_FILES) + + include $(depth)/make/stepmake.make TITLE=Lilypond musicxml2ly Regression Tests -MXL_FILES := $(call src-wildcard,*.mxl) -EXTRA_DIST_FILES += $(MXL_FILES) +.SUFFIXES: .ily +$(outdir)/%.ly: %.ily + ln -f $< $@ diff --git a/input/regression/ragged-bottom-one-page.ly b/input/regression/ragged-bottom-one-page.ly new file mode 100644 index 0000000000..07f8f3885d --- /dev/null +++ b/input/regression/ragged-bottom-one-page.ly @@ -0,0 +1,13 @@ +\version "2.11.64" + +\header { + texidoc = "For a one-page score, ragged-bottom should have the +same effect as ragged-last-bottom." +} + +\paper { + ragged-bottom = ##t + ragged-last-bottom = ##f +} + +\repeat unfold 16 c'4 diff --git a/input/regression/repeat-percent-count-visibility.ly b/input/regression/repeat-percent-count-visibility.ly new file mode 100644 index 0000000000..39e3fddb40 --- /dev/null +++ b/input/regression/repeat-percent-count-visibility.ly @@ -0,0 +1,15 @@ +\version "2.11.64" +\header { + texidoc = " +Percent repeat counters can be shown at regular +intervals by setting @code{repeatCountVisibility}. +" +} + +\relative c'' { + \set countPercentRepeats = ##t + \set repeatCountVisibility = #(every-nth-repeat-count-visible 5) + \repeat percent 10 { c1 } \break + \set repeatCountVisibility = #(every-nth-repeat-count-visible 2) + \repeat percent 6 { c1 d1 } +} diff --git a/input/regression/system-separator.ly b/input/regression/system-separator.ly index d33a619bfc..d7c58f197f 100644 --- a/input/regression/system-separator.ly +++ b/input/regression/system-separator.ly @@ -1,24 +1,25 @@ -\version "2.11.51" +\version "2.11.64" \header { - texidoc = "System separators may be defined as markups in the -@code{systemSeparator} field of the paper block. They are centered -between the boundary staves of each system." - +@code{system-separator-markup} field of the paper block. They are +centered between the boundary staves of each system." } \paper { - systemSeparatorMarkup = \slashSeparator + system-separator-markup = \slashSeparator +} +foobar = \relative c' { + c1 c \break + c1 c \break + c1 c } -foobar = \relative { c1 c \break c c \break c c } -\book -{ +\book { \score { - \new GrandStaff << - \new Staff \foobar - \new Staff \foobar - >> + \new GrandStaff << + \new Staff \foobar + \new Staff \foobar + >> } } diff --git a/lily/GNUmakefile b/lily/GNUmakefile index 3b13b8a6d9..41692eb1b6 100644 --- a/lily/GNUmakefile +++ b/lily/GNUmakefile @@ -23,7 +23,8 @@ ifeq ($(HAVE_LIBKPATHSEA_SO),no) MODULE_LDFLAGS += $(KPATHSEA_LIBS) endif ifeq ($(LINK_GXX_STATICALLY),yes) -MODULE_LDFLAGS += -L$(outdir) -static-libgcc +LD = $(CC) # GCC-4.0.x will never link statically to allow exceptions +MODULE_LDFLAGS += -L$(outdir) -static-libgcc -lstdc++ endif CXXFLAGS += -Woverloaded-virtual diff --git a/lily/figured-bass-engraver.cc b/lily/figured-bass-engraver.cc index 782574e5e6..a0554eed58 100644 --- a/lily/figured-bass-engraver.cc +++ b/lily/figured-bass-engraver.cc @@ -28,6 +28,9 @@ struct Figure_group SCM number_; SCM alteration_; + SCM augmented_; + SCM diminished_; + SCM augmented_slash_; Item *figure_item_; Stream_event *current_event_; @@ -40,6 +43,9 @@ struct Figure_group continuation_line_ = 0; number_ = SCM_EOL; alteration_ = SCM_EOL; + augmented_ = SCM_EOL; + diminished_ = SCM_EOL; + augmented_slash_ = SCM_EOL; group_ = 0; current_event_ = 0; } @@ -51,7 +57,13 @@ struct Figure_group && ly_is_equal (number_, current_event_->get_property ("figure")) && ly_is_equal (alteration_, - current_event_->get_property ("alteration")); + current_event_->get_property ("alteration")) + && ly_is_equal (augmented_, + current_event_->get_property ("augmented")) + && ly_is_equal (diminished_, + current_event_->get_property ("diminished")) + && ly_is_equal (augmented_slash_, + current_event_->get_property ("augmented-slash")); } }; @@ -91,6 +103,9 @@ Figured_bass_engraver::derived_mark () const { scm_gc_mark (groups_[i].number_); scm_gc_mark (groups_[i].alteration_); + scm_gc_mark (groups_[i].augmented_); + scm_gc_mark (groups_[i].diminished_); + scm_gc_mark (groups_[i].augmented_slash_); } } @@ -348,6 +363,9 @@ Figured_bass_engraver::process_music () { groups_[i].number_ = SCM_BOOL_F; groups_[i].alteration_ = SCM_BOOL_F; + groups_[i].augmented_ = SCM_BOOL_F; + groups_[i].diminished_ = SCM_BOOL_F; + groups_[i].augmented_slash_ = SCM_BOOL_F; } } @@ -451,6 +469,9 @@ Figured_bass_engraver::create_grobs () group.number_ = fig; group.alteration_ = group.current_event_->get_property ("alteration"); + group.augmented_ = group.current_event_->get_property ("augmented"); + group.diminished_ = group.current_event_->get_property ("diminished"); + group.augmented_slash_ = group.current_event_->get_property ("augmented-slash"); SCM text = group.current_event_->get_property ("text"); if (!Text_interface::is_markup (text) diff --git a/lily/optimal-page-breaking.cc b/lily/optimal-page-breaking.cc index 3c26c9abe0..b45781fd0a 100644 --- a/lily/optimal-page-breaking.cc +++ b/lily/optimal-page-breaking.cc @@ -63,6 +63,8 @@ Optimal_page_breaking::solve () if (page_count > 1 && best.systems_per_page_[page_count - 2] > 1) min_sys_count -= best.systems_per_page_[page_count - 2]; + + min_sys_count = max (min_sys_count, (vsize)1); } else { diff --git a/lily/page-spacing.cc b/lily/page-spacing.cc index 19129b3c17..78ad9a842a 100644 --- a/lily/page-spacing.cc +++ b/lily/page-spacing.cc @@ -204,7 +204,7 @@ Page_spacer::calc_subproblem (vsize page, vsize line) if (page > 0 || page_start == 0) { - if (line == lines_.size () - 1 && ragged_last_ && space.force_ > 0) + if (line == lines_.size () - 1 && ragged && last && space.force_ > 0) space.force_ = 0; /* we may have to deal with single lines that are taller than a page */ diff --git a/lily/percent-repeat-engraver.cc b/lily/percent-repeat-engraver.cc index fc3d2a727a..b00eac52f6 100644 --- a/lily/percent-repeat-engraver.cc +++ b/lily/percent-repeat-engraver.cc @@ -1,5 +1,5 @@ /* - new-chord-tremolo-engraver.cc -- implement Chord_tremolo_engraver + percent-repeat-engraver.cc -- implement Percent_repeat_engraver source file of the GNU LilyPond music typesetter @@ -30,6 +30,7 @@ class Percent_repeat_engraver : public Engraver { void typeset_perc (); + bool check_count_visibility (SCM count); public: TRANSLATOR_DECLARATIONS (Percent_repeat_engraver); @@ -120,7 +121,7 @@ Percent_repeat_engraver::listen_percent (Stream_event *ev) /* don't warn about percent repeats: slash repeats are not exactly 1 or 2 measures long. - */ + */ return; } percent_event_ = ev; @@ -147,7 +148,8 @@ Percent_repeat_engraver::process_music () percent_->set_bound (LEFT, col); SCM count = percent_event_->get_property ("repeat-count"); - if (count != SCM_EOL && to_boolean (get_property ("countPercentRepeats"))) + if (count != SCM_EOL && to_boolean (get_property ("countPercentRepeats")) + && check_count_visibility (count)) { percent_counter_ = make_spanner ("PercentRepeatCounter", percent_event_->self_scm ()); @@ -167,8 +169,8 @@ Percent_repeat_engraver::process_music () Item *double_percent = make_item ("DoublePercentRepeat", percent_event_->self_scm ()); SCM count = percent_event_->get_property ("repeat-count"); - if (count != SCM_EOL - && to_boolean (get_property ("countPercentRepeats"))) + if (count != SCM_EOL && to_boolean (get_property ("countPercentRepeats")) + && check_count_visibility (count)) { Item *double_percent_counter = make_item ("DoublePercentRepeatCounter", percent_event_->self_scm ()); @@ -219,6 +221,14 @@ Percent_repeat_engraver::typeset_perc () } } +bool +Percent_repeat_engraver::check_count_visibility (SCM count) +{ + SCM proc = get_property ("repeatCountVisibility"); + return (ly_is_procedure (proc) && to_boolean (scm_call_2 (proc, + count, + context ()->self_scm ()))); +} void @@ -239,7 +249,8 @@ ADD_TRANSLATOR (Percent_repeat_engraver, /* read */ "countPercentRepeats " "currentCommandColumn " - "measureLength ", + "measureLength " + "repeatCountVisibility ", /* write */ "forbidBreak " diff --git a/ly/engraver-init.ly b/ly/engraver-init.ly index 49f22c1b3d..b1be75d1cb 100644 --- a/ly/engraver-init.ly +++ b/ly/engraver-init.ly @@ -522,6 +522,8 @@ automatically when an output definition (a @code{\score} or explicitKeySignatureVisibility = #all-visible implicitTimeSignatureVisibility = #end-of-line-invisible + repeatCountVisibility = #all-repeat-counts-visible + autoBeamSettings = #default-auto-beam-settings autoBeaming = ##t autoBeamCheck = #default-auto-beam-check diff --git a/make/musicxml-rules.make b/make/musicxml-rules.make index c00d2da87a..d0c4651197 100644 --- a/make/musicxml-rules.make +++ b/make/musicxml-rules.make @@ -1,5 +1,8 @@ -.SUFFIXES: .xml +.SUFFIXES: .xml .mxl $(outdir)/%.ly: %.xml $(PYTHON) $(MUSICXML2LY) -o $@ $< + +$(outdir)/%.ly: %.mxl + $(PYTHON) $(MUSICXML2LY) -z -o $@ $< diff --git a/make/musicxml-targets.make b/make/musicxml-targets.make index a0668ce825..0f63330a21 100644 --- a/make/musicxml-targets.make +++ b/make/musicxml-targets.make @@ -1 +1 @@ -default: $(OUT_LY_FILES) +default: diff --git a/make/musicxml-vars.make b/make/musicxml-vars.make index 0844fa730e..55cb25b75b 100644 --- a/make/musicxml-vars.make +++ b/make/musicxml-vars.make @@ -1,10 +1,8 @@ # rules for directories with MusicXML files. -MUSICXML_FILES := $(call src-wildcard,*.xml) -# LY_FILES=$(addprefix $(outdir)/, $(addsuffix .ly, $(MUSICXML_FILE))) -# LY_FILES = $(MUSICXML_FILES:%.xml=$(outdir)/%.ly) -OUT_LY_FILES = $(MUSICXML_FILES:%.xml=$(outdir)/%.ly) - +MUSICXML_FILES = $(call src-wildcard,*.xml) +MUSICMXL_FILES = $(call src-wildcard,*.mxl) # Allow .mxl for compressed files +OUT_LY_FILES = $(sort ${MUSICXML_FILES:%.xml=$(outdir)/%.ly} ${MUSICMXL_FILES:%.mxl=$(outdir)/%.ly} ${EXTRA_OUT_LY_FILES}) OUT_FILES = $(OUT_LY_FILES) -EXTRA_DIST_FILES += $(MUSICXML_FILES) +EXTRA_DIST_FILES += $(MUSICXML_FILES) $(MUSICMXL_FILES) diff --git a/python/convertrules.py b/python/convertrules.py index e94bf30e76..842d6fb8bd 100644 --- a/python/convertrules.py +++ b/python/convertrules.py @@ -2823,6 +2823,11 @@ def conv (str): str = re.sub (r"\\bigger", r"\\larger", str) return str +@rule ((2, 11, 64), "systemSeparatorMarkup -> system-separator-markup") +def conv (str): + str = re.sub (r'systemSeparatorMarkup', r'system-separator-markup', str) + return str + # Guidelines to write rules (please keep this at the end of this file) # # - keep at most one rule per version; if several conversions should be done, diff --git a/python/lilylib.py b/python/lilylib.py index 34174e1266..f731dec17b 100644 --- a/python/lilylib.py +++ b/python/lilylib.py @@ -18,21 +18,6 @@ import optparse # Users of python modules should include this snippet # and customize variables below. -# We'll suffer this path init stuff as long as we don't install our -# python packages in /lib/pythonx.y (and don't kludge around -# it as we do with teTeX on Red Hat Linux: set some environment var -# (PYTHONPATH) in profile) - -# If set, LILYPOND_DATADIR must take prevalence -# if datadir is not set, we're doing a build and LILYPOND_DATADIR - -datadir = '@local_lilypond_datadir@' -if not os.path.isdir (datadir): - datadir = '@lilypond_datadir@' -if os.environ.has_key ('LILYPOND_DATADIR') : - datadir = os.environ['LILYPOND_DATADIR'] - while datadir[-1] == os.sep: - datadir= datadir[:-1] # Python 2.5 only accepts strings with proper Python internal encoding # (i.e. ASCII or Unicode) when writing to stdout/stderr, so we must diff --git a/python/musicexp.py b/python/musicexp.py index df54f70106..22cfcdcd53 100644 --- a/python/musicexp.py +++ b/python/musicexp.py @@ -582,8 +582,8 @@ class RepeatedMusic: self.music = SequentialMusic () self.music.elements = music else: - warning (_ ("unable to set the music %(music)s for the repeat %(repeat)s" % \ - {'music':music, 'repeat':self})) + warning (_ ("unable to set the music %(music)s for the repeat %(repeat)s") % \ + {'music':music, 'repeat':self}) def add_ending (self, music): self.endings.append (music) def print_ly (self, printer): @@ -706,6 +706,7 @@ class Layout: class ChordEvent (NestedMusic): def __init__ (self): NestedMusic.__init__ (self) + self.after_grace_elements = None self.grace_elements = None self.grace_type = None def append_grace (self, element): @@ -713,6 +714,16 @@ class ChordEvent (NestedMusic): if not self.grace_elements: self.grace_elements = SequentialMusic () self.grace_elements.append (element) + def append_after_grace (self, element): + if element: + if not self.after_grace_elements: + self.after_grace_elements = SequentialMusic () + self.after_grace_elements.append (element) + + def has_elements (self): + return [e for e in self.elements if + isinstance (e, NoteEvent) or isinstance (e, RestEvent)] != [] + def get_length (self): l = Rational (0) @@ -739,6 +750,9 @@ class ChordEvent (NestedMusic): other_events = [e for e in self.elements if not isinstance (e, RhythmicEvent)] + if self.after_grace_elements: + printer ('\\afterGrace {') + if self.grace_elements and self.elements: if self.grace_type: printer ('\\%s' % self.grace_type) @@ -746,6 +760,15 @@ class ChordEvent (NestedMusic): printer ('\\grace') # don't print newlines after the { and } braces self.grace_elements.print_ly (printer, False) + elif self.grace_elements: # no self.elements! + warning (_ ("Grace note with no following music: %s") % self.grace_elements) + if self.grace_type: + printer ('\\%s' % self.grace_type) + else: + printer ('\\grace') + self.grace_elements.print_ly (printer, False) + printer ('{}') + # Print all overrides and other settings needed by the # articulations/ornaments before the note for e in other_events: @@ -777,6 +800,10 @@ class ChordEvent (NestedMusic): for e in other_events: e.print_after_note (printer) + if self.after_grace_elements: + printer ('}') + self.after_grace_elements.print_ly (printer, False) + self.print_comment (printer) class Partial (Music): @@ -805,7 +832,7 @@ class BarLine (Music): if self.bar_number > 0 and (self.bar_number % 10) == 0: printer.dump ("\\barNumberCheck #%d " % self.bar_number) - else: + elif self.bar_number > 0: printer.print_verbatim (' %% %d' % self.bar_number) printer.newline () diff --git a/python/musicxml.py b/python/musicxml.py index a7cf59730f..d2af5d5f2e 100644 --- a/python/musicxml.py +++ b/python/musicxml.py @@ -205,6 +205,15 @@ class Identification (Xml_node): software.append (s.get_text ()) return software + def get_file_description (self): + misc = self.get_named_children ('miscellaneous') + for m in misc: + misc_fields = m.get_named_children ('miscellaneous-field') + for mf in misc_fields: + if hasattr (mf, 'name') and mf.name == 'description': + return mf.get_text () + return None + class Duration (Music_xml_node): @@ -259,15 +268,27 @@ class Measure_element (Music_xml_node): return None def is_first (self): - cn = self._parent.get_typed_children (self.__class__) - cn = [c for c in cn if c.get_voice_id () == self.get_voice_id ()] + # Look at all measure elements (previously we had self.__class__, which + # only looked at objects of the same type! + cn = self._parent.get_typed_children (Measure_element) + # But only look at the correct voice; But include Attributes, too, which + # are not tied to any particular voice + cn = [c for c in cn if (c.get_voice_id () == self.get_voice_id ()) or isinstance (c, Attributes)] return cn[0] == self class Attributes (Measure_element): def __init__ (self): Measure_element.__init__ (self) self._dict = {} + self._original_tag = None + def is_first (self): + cn = self._parent.get_typed_children (self.__class__) + if self._original_tag: + return cn[0] == self._original_tag + else: + return cn[0] == self + def set_attributes_from_previous (self, dict): self._dict.update (dict) @@ -340,7 +361,15 @@ class Note (Measure_element): def __init__ (self): Measure_element.__init__ (self) self.instrument_name = '' - + self._after_grace = False + def is_grace (self): + return self.get_maybe_exist_named_child (u'grace') + def is_after_grace (self): + if not self.is_grace(): + return False; + gr = self.get_maybe_exist_typed_child (Grace) + return self._after_grace or hasattr (gr, 'steal-time-previous'); + def get_duration_log (self): ch = self.get_maybe_exist_named_child (u'type') @@ -510,6 +539,9 @@ class Part (Music_xml_node): measure_start_moment = now is_first_measure = True previous_measure = None + # Graces at the end of a measure need to have their position set to the + # previous number! + pending_graces = [] for m in measures: # implicit measures are used for artificial measures, e.g. when # a repeat bar line splits a bar into two halves. In this case, @@ -539,6 +571,8 @@ class Part (Music_xml_node): # and should not change the current measure position! if isinstance (n, FiguredBass): n._divisions = factor.denominator () + n._when = now + n._measure_position = measure_position continue if isinstance (n, Hash_text): @@ -561,6 +595,12 @@ class Part (Music_xml_node): if n.get_name() == 'backup': dur = - dur + # reset all graces before the backup to after-graces: + for n in pending_graces: + n._when = n._prev_when + n._measure_position = n._prev_measure_position + n._after_grace = True + pending_graces = [] if n.get_maybe_exist_typed_child (Grace): dur = Rational (0) @@ -578,6 +618,23 @@ class Part (Music_xml_node): n._when = now n._measure_position = measure_position + + # For all grace notes, store the previous note, in case need + # to turn the grace note into an after-grace later on! + if isinstance(n, Note) and n.is_grace (): + n._prev_when = last_moment + n._prev_measure_position = last_measure_position + # After-graces are placed at the same position as the previous note + if isinstance(n, Note) and n.is_after_grace (): + # TODO: We should do the same for grace notes at the end of + # a measure with no following note!!! + n._when = last_moment + n._measure_position = last_measure_position + elif isinstance(n, Note) and n.is_grace (): + pending_graces.append (n) + elif (dur > Rational (0)): + pending_graces = []; + n._duration = dur if dur > Rational (0): last_moment = now @@ -599,6 +656,12 @@ class Part (Music_xml_node): if instrument: n.instrument_name = part_list.get_instrument (instrument.id) + # reset all graces at the end of the measure to after-graces: + for n in pending_graces: + n._when = n._prev_when + n._measure_position = n._prev_measure_position + n._after_grace = True + pending_graces = [] # Incomplete first measures are not padded, but registered as partial if is_first_measure: is_first_measure = False @@ -615,6 +678,7 @@ class Part (Music_xml_node): attributes = copy.copy (attr) attributes._children = []; attributes._dict = attr._dict.copy () + attributes._original_tag = attr # copy only the relevant children over for the given staff for c in attr._children: if (not (hasattr (c, 'number') and (c.number != staff)) and diff --git a/scm/define-context-properties.scm b/scm/define-context-properties.scm index e3245477ee..29a633ef3c 100644 --- a/scm/define-context-properties.scm +++ b/scm/define-context-properties.scm @@ -374,6 +374,10 @@ context.") (repeatCommands ,list? "This property is a list of commands of the form @code{(list 'volta @var{x})}, where @var{x} is a string or @code{#f}. @code{'end-repeat} is also accepted as a command.") + (repeatCountVisibility ,procedure? "A procedure taking as +arguments an integer and context, returning whether the corresponding +percent repeat number should be printed when @code{countPercentRepeats} +is set.") (restNumberThreshold ,number? "If a multimeasure rest has more measures than this, a number is printed.") diff --git a/scm/define-grobs.scm b/scm/define-grobs.scm index 975d42582f..aa3b6ee197 100644 --- a/scm/define-grobs.scm +++ b/scm/define-grobs.scm @@ -846,9 +846,10 @@ (side-axis . ,Y) (self-alignment-X . ,LEFT) (outside-staff-priority . 500) - (extra-spacing-width . '(+inf.0 . -inf.0)) + (extra-spacing-width . (+inf.0 . -inf.0)) (meta . ((class . Item) (interfaces . (side-position-interface + text-interface font-interface)))))) diff --git a/scm/output-lib.scm b/scm/output-lib.scm index 22e4377046..dcb1129004 100644 --- a/scm/output-lib.scm +++ b/scm/output-lib.scm @@ -202,6 +202,13 @@ centered, X==1 is at the right, X == -1 is at the left." (define-public (first-bar-number-invisible barnum) (> barnum 1)) +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; percent repeat counters + +(define-public ((every-nth-repeat-count-visible n) count context) (= 0 (modulo count n))) + +(define-public (all-repeat-counts-visible count context) #t) + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; break visibility diff --git a/scm/page.scm b/scm/page.scm index 3e25bdaaee..f83fd18d31 100644 --- a/scm/page.scm +++ b/scm/page.scm @@ -254,7 +254,7 @@ ;; TODO: naming paper-height/paper-width not analogous to TeX. (system-xoffset (ly:output-def-lookup layout 'horizontal-shift 0.0)) - (system-separator-markup (ly:output-def-lookup layout 'systemSeparatorMarkup)) + (system-separator-markup (ly:output-def-lookup layout 'system-separator-markup)) (system-separator-stencil (if (markup? system-separator-markup) (interpret-markup layout (layout-extract-page-properties layout) diff --git a/scripts/convert-ly.py b/scripts/convert-ly.py index 7affd1bd25..ea9804184f 100644 --- a/scripts/convert-ly.py +++ b/scripts/convert-ly.py @@ -174,7 +174,7 @@ string.""" error_file_write ('\n' + _ ("Error while converting") + '\n' - + _ ("Stopping at last succesful rule") + + _ ("Stopping at last successful rule") + '\n') return (last_conversion, str) diff --git a/scripts/musicxml2ly.py b/scripts/musicxml2ly.py index 2a48cd12c1..6ee2a755e2 100644 --- a/scripts/musicxml2ly.py +++ b/scripts/musicxml2ly.py @@ -199,6 +199,8 @@ def extract_score_information (tree): set_if_exists ('encodingdate', ids.get_encoding_date ()) set_if_exists ('encoder', ids.get_encoding_person ()) set_if_exists ('encodingdescription', ids.get_encoding_description ()) + + set_if_exists ('texidoc', ids.get_file_description ()); # Finally, apply the required compatibility modes # Some applications created wrong MusicXML files, so we need to @@ -1556,17 +1558,24 @@ class LilyPondVoiceBuilder: self.pending_multibar = Rational (0) self.ignore_skips = False self.has_relevant_elements = False + self.measure_length = (4, 4) def _insert_multibar (self): + layout_information.set_context_item ('Score', 'skipBars = ##t') r = musicexp.MultiMeasureRest () - r.duration = musicexp.Duration() - r.duration.duration_log = 0 - r.duration.factor = self.pending_multibar + lenfrac = Rational (self.measure_length[0], self.measure_length[1]) + r.duration = rational_to_lily_duration (lenfrac) + r.duration.factor *= self.pending_multibar / lenfrac self.elements.append (r) self.begin_moment = self.end_moment self.end_moment = self.begin_moment + self.pending_multibar self.pending_multibar = Rational (0) - + + def set_measure_length (self, mlen): + if (mlen != self.measure_length) and self.pending_multibar: + self._insert_multibar () + self.measure_length = mlen + def add_multibar_rest (self, duration): self.pending_multibar += duration @@ -1632,6 +1641,8 @@ class LilyPondVoiceBuilder: duration_factor = 1 duration_log = {1: 0, 2: 1, 4:2, 8:3, 16:4, 32:5, 64:6, 128:7, 256:8, 512:9}.get (diff.denominator (), -1) duration_dots = 0 + # TODO: Use the time signature for skips, too. Problem: The skip + # might not start at a measure boundary! if duration_log > 0: # denominator is a power of 2... if diff.numerator () == 3: duration_log -= 1 @@ -1697,6 +1708,13 @@ def musicxml_step_to_lily (step): else: return None +def measure_length_from_attributes (attr, current_measure_length): + mxl = attr.get_named_attribute ('time') + if mxl: + return attr.get_time_signature () + else: + return current_measure_length + def musicxml_voice_to_lily_voice (voice): tuplet_events = [] modes_found = {} @@ -1729,6 +1747,8 @@ def musicxml_voice_to_lily_voice (voice): voice_builder = LilyPondVoiceBuilder () figured_bass_builder = LilyPondVoiceBuilder () chordnames_builder = LilyPondVoiceBuilder () + current_measure_length = (4, 4) + voice_builder.set_measure_length (current_measure_length) for n in voice._elements: if n.get_name () == 'forward': @@ -1746,6 +1766,50 @@ def musicxml_voice_to_lily_voice (voice): voice_builder.add_partial (a) continue + is_chord = n.get_maybe_exist_named_child ('chord') + is_after_grace = (isinstance (n, musicxml.Note) and n.is_after_grace ()); + if not is_chord and not is_after_grace: + try: + voice_builder.jumpto (n._when) + except NegativeSkip, neg: + voice_builder.correct_negative_skip (n._when) + n.message (_ ("Negative skip found: from %s to %s, difference is %s") % (neg.here, neg.dest, neg.dest - neg.here)) + + if isinstance (n, musicxml.Barline): + barlines = musicxml_barline_to_lily (n) + for a in barlines: + if isinstance (a, musicexp.BarLine): + voice_builder.add_barline (a) + elif isinstance (a, RepeatMarker) or isinstance (a, EndingMarker): + voice_builder.add_command (a) + continue + + # Continue any multimeasure-rests before trying to add bar checks! + # Don't handle new MM rests yet, because for them we want bar checks! + rest = n.get_maybe_exist_typed_child (musicxml.Rest) + if (rest and rest.is_whole_measure () + and voice_builder.pending_multibar > Rational (0)): + voice_builder.add_multibar_rest (n._duration) + continue + + + # print a bar check at the beginning of each measure! + if n.is_first () and n._measure_position == Rational (0) and n != voice._elements[0]: + try: + num = int (n.get_parent ().number) + except ValueError: + num = 0 + if num > 0: + voice_builder.add_bar_check (num) + figured_bass_builder.add_bar_check (num) + chordnames_builder.add_bar_check (num) + + # Start any new multimeasure rests + if (rest and rest.is_whole_measure ()): + voice_builder.add_multibar_rest (n._duration) + continue + + if isinstance (n, musicxml.Direction): for a in musicxml_direction_to_lily (n): if a.wait_for_note (): @@ -1770,59 +1834,19 @@ def musicxml_voice_to_lily_voice (voice): pending_figured_bass.append (a) continue - is_chord = n.get_maybe_exist_named_child ('chord') - if not is_chord: - try: - voice_builder.jumpto (n._when) - except NegativeSkip, neg: - voice_builder.correct_negative_skip (n._when) - n.message (_ ("Negative skip found: from %s to %s, difference is %s") % (neg.here, neg.dest, neg.dest - neg.here)) - if isinstance (n, musicxml.Attributes): - if n.is_first () and n._measure_position == Rational (0): - try: - number = int (n.get_parent ().number) - except ValueError: - number = 0 - if number > 0: - voice_builder.add_bar_check (number) - figured_bass_builder.add_bar_check (number) - chordnames_builder.add_bar_check (number) - for a in musicxml_attributes_to_lily (n): voice_builder.add_command (a) - continue - - if isinstance (n, musicxml.Barline): - barlines = musicxml_barline_to_lily (n) - for a in barlines: - if isinstance (a, musicexp.BarLine): - voice_builder.add_barline (a) - elif isinstance (a, RepeatMarker) or isinstance (a, EndingMarker): - voice_builder.add_command (a) + measure_length = measure_length_from_attributes (n, current_measure_length) + if current_measure_length != measure_length: + current_measure_length = measure_length + voice_builder.set_measure_length (current_measure_length) continue if not n.__class__.__name__ == 'Note': - error_message (_ ('unexpected %s; expected %s or %s or %s') % (n, 'Note', 'Attributes', 'Barline')) - continue - - rest = n.get_maybe_exist_typed_child (musicxml.Rest) - if (rest - and rest.is_whole_measure ()): - - voice_builder.add_multibar_rest (n._duration) + n.message (_ ('unexpected %s; expected %s or %s or %s') % (n, 'Note', 'Attributes', 'Barline')) continue - - if n.is_first () and n._measure_position == Rational (0): - try: - num = int (n.get_parent ().number) - except ValueError: - num = 0 - if num > 0: - voice_builder.add_bar_check (num) - figured_bass_builder.add_bar_check (num) - chordnames_builder.add_bar_check (num) - + main_event = musicxml_note_to_lily_main_event (n) if main_event and not first_pitch: first_pitch = main_event.pitch @@ -1837,15 +1861,31 @@ def musicxml_voice_to_lily_voice (voice): ev_chord = musicexp.ChordEvent() voice_builder.add_music (ev_chord, n._duration) + # For grace notes: grace = n.get_maybe_exist_typed_child (musicxml.Grace) - if grace: + if n.is_grace (): + is_after_grace = ev_chord.has_elements () or n.is_after_grace (); + is_chord = n.get_maybe_exist_typed_child (musicxml.Chord) + grace_chord = None - if n.get_maybe_exist_typed_child (musicxml.Chord) and ev_chord.grace_elements: - grace_chord = ev_chord.grace_elements.get_last_event_chord () - if not grace_chord: - grace_chord = musicexp.ChordEvent () - ev_chord.append_grace (grace_chord) - if hasattr (grace, 'slash'): + + # after-graces and other graces use different lists; Depending on + # whether we have a chord or not, obtain either a new ChordEvent or + # the previous one to create a chord + if is_after_grace: + if ev_chord.after_grace_elements and n.get_maybe_exist_typed_child (musicxml.Chord): + grace_chord = ev_chord.after_grace_elements.get_last_event_chord () + if not grace_chord: + grace_chord = musicexp.ChordEvent () + ev_chord.append_after_grace (grace_chord) + elif n.is_grace (): + if ev_chord.grace_elements and n.get_maybe_exist_typed_child (musicxml.Chord): + grace_chord = ev_chord.grace_elements.get_last_event_chord () + if not grace_chord: + grace_chord = musicexp.ChordEvent () + ev_chord.append_grace (grace_chord) + + if hasattr (grace, 'slash') and not is_after_grace: # TODO: use grace_type = "appoggiatura" for slurred grace notes if grace.slash == "yes": ev_chord.grace_type = "acciaccatura" @@ -1906,23 +1946,39 @@ def musicxml_voice_to_lily_voice (voice): frac = (1,1) if mod: frac = mod.get_fraction () - + tuplet_events.append ((ev_chord, tuplet_event, frac)) - slurs = [s for s in notations.get_named_children ('slur') - if s.get_type () in ('start','stop')] - if slurs: - if len (slurs) > 1: - error_message (_ ('cannot have two simultaneous slurs')) + # First, close all open slurs, only then start any new slur + # TODO: Record the number of the open slur to dtermine the correct + # closing slur! + endslurs = [s for s in notations.get_named_children ('slur') + if s.get_type () in ('stop')] + if endslurs and not inside_slur: + endslurs[0].message (_ ('Encountered closing slur, but no slur is open')) + elif endslurs: + if len (endslurs) > 1: + endslurs[0].message (_ ('Cannot have two simultaneous (closing) slurs')) + # record the slur status for the next note in the loop + if not grace: + inside_slur = False + lily_ev = musicxml_spanner_to_lily_event (endslurs[0]) + ev_chord.append (lily_ev) + + startslurs = [s for s in notations.get_named_children ('slur') + if s.get_type () in ('start')] + if startslurs and inside_slur: + startslurs[0].message (_ ('Cannot have a slur inside another slur')) + elif startslurs: + if len (startslurs) > 1: + startslurs[0].message (_ ('Cannot have two simultaneous slurs')) # record the slur status for the next note in the loop if not grace: - if slurs[0].get_type () == 'start': - inside_slur = True - elif slurs[0].get_type () == 'stop': - inside_slur = False - lily_ev = musicxml_spanner_to_lily_event (slurs[0]) + inside_slur = True + lily_ev = musicxml_spanner_to_lily_event (startslurs[0]) ev_chord.append (lily_ev) + if not grace: mxl_tie = notations.get_tie () if mxl_tie and mxl_tie.type == 'start': @@ -1984,7 +2040,7 @@ def musicxml_voice_to_lily_voice (voice): for a in ornaments: for ch in a.get_all_children (): ev = musicxml_articulation_to_lily_event (ch) - if ev: + if ev: ev_chord.append (ev) dynamics = notations.get_named_children ('dynamics') diff --git a/stepmake/aclocal.m4 b/stepmake/aclocal.m4 index b2e27613a4..5d954e67f4 100644 --- a/stepmake/aclocal.m4 +++ b/stepmake/aclocal.m4 @@ -1034,7 +1034,7 @@ AC_DEFUN(STEPMAKE_PYTHON_DEVEL, [ if test -z "$PYTHON_CFLAGS" -a "$PYTHON_CONFIG" != "no"; then # Clean out junk: http://bugs.python.org/issue3290 # Python headers may need some -f* flags, leave them in. - PYTHON_CFLAGS=`$PYTHON_CONFIG --cflags | sed -e 's/ -\(W\|D\|O\)\(\w\|-\)\+//g'` + PYTHON_CFLAGS=`$PYTHON_CONFIG --cflags | sed -e 's/ -\(W\|D\|O\|m\)\(\w\|-\|=\)\+//g'` PYTHON_LDFLAGS=`$PYTHON_CONFIG --ldflags` fi